timeout.go 433 B

12345678910111213141516171819
  1. package internal
  2. import (
  3. "net/http"
  4. "time"
  5. )
  6. const grpcTimeoutHeader = "Grpc-Timeout"
  7. // GetTimeout returns the timeout from the header, if not set, returns the default timeout.
  8. func GetTimeout(header http.Header, defaultTimeout time.Duration) time.Duration {
  9. if timeout := header.Get(grpcTimeoutHeader); len(timeout) > 0 {
  10. if t, err := time.ParseDuration(timeout); err == nil {
  11. return t
  12. }
  13. }
  14. return defaultTimeout
  15. }