Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateForwardedHTTPRequest

func GenerateForwardedHTTPRequest(req *http.Request, addr string) (*http.Request, error)

    GenerateForwardedRequest generates a new http.Request that contains the original requests's information in the new request's body.

    func ParseForwardedHTTPRequest

    func ParseForwardedHTTPRequest(req *http.Request) (*http.Request, error)

      ParseForwardedRequest generates a new http.Request that is comprised of the values in the given request's body, assuming it correctly parses into a ForwardedRequest.

      func ParseForwardedRequest

      func ParseForwardedRequest(fq *Request) (*http.Request, error)

      Types

      type HeaderEntry

      type HeaderEntry struct {
      	Values               []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
      	XXX_NoUnkeyedLiteral struct{} `json:"-"`
      	XXX_unrecognized     []byte   `json:"-"`
      	XXX_sizecache        int32    `json:"-"`
      }

      func (*HeaderEntry) Descriptor

      func (*HeaderEntry) Descriptor() ([]byte, []int)

      func (*HeaderEntry) GetValues

      func (m *HeaderEntry) GetValues() []string

      func (*HeaderEntry) ProtoMessage

      func (*HeaderEntry) ProtoMessage()

      func (*HeaderEntry) Reset

      func (m *HeaderEntry) Reset()

      func (*HeaderEntry) String

      func (m *HeaderEntry) String() string

      func (*HeaderEntry) XXX_DiscardUnknown

      func (m *HeaderEntry) XXX_DiscardUnknown()

      func (*HeaderEntry) XXX_Marshal

      func (m *HeaderEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*HeaderEntry) XXX_Merge

      func (m *HeaderEntry) XXX_Merge(src proto.Message)

      func (*HeaderEntry) XXX_Size

      func (m *HeaderEntry) XXX_Size() int

      func (*HeaderEntry) XXX_Unmarshal

      func (m *HeaderEntry) XXX_Unmarshal(b []byte) error

      type RPCResponseWriter

      type RPCResponseWriter struct {
      	// contains filtered or unexported fields
      }

      func NewRPCResponseWriter

      func NewRPCResponseWriter() *RPCResponseWriter

        NewRPCResponseWriter returns an initialized RPCResponseWriter

        func (*RPCResponseWriter) Body

        func (w *RPCResponseWriter) Body() *bytes.Buffer

        func (*RPCResponseWriter) Header

        func (w *RPCResponseWriter) Header() http.Header

        func (*RPCResponseWriter) StatusCode

        func (w *RPCResponseWriter) StatusCode() int

        func (*RPCResponseWriter) Write

        func (w *RPCResponseWriter) Write(buf []byte) (int, error)

        func (*RPCResponseWriter) WriteHeader

        func (w *RPCResponseWriter) WriteHeader(code int)

        type Request

        type Request struct {
        	// Not used right now but reserving in case it turns out that streaming
        	// makes things more economical on the gRPC side
        	// uint64 id = 1;
        	Method               string                  `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
        	Url                  *URL                    `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
        	HeaderEntries        map[string]*HeaderEntry `` /* 188-byte string literal not displayed */
        	Body                 []byte                  `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
        	Host                 string                  `protobuf:"bytes,6,opt,name=host,proto3" json:"host,omitempty"`
        	RemoteAddr           string                  `protobuf:"bytes,7,opt,name=remote_addr,json=remoteAddr,proto3" json:"remote_addr,omitempty"`
        	PeerCertificates     [][]byte                `protobuf:"bytes,8,rep,name=peer_certificates,json=peerCertificates,proto3" json:"peer_certificates,omitempty"`
        	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
        	XXX_unrecognized     []byte                  `json:"-"`
        	XXX_sizecache        int32                   `json:"-"`
        }

        func GenerateForwardedRequest

        func GenerateForwardedRequest(req *http.Request) (*Request, error)

        func (*Request) Descriptor

        func (*Request) Descriptor() ([]byte, []int)

        func (*Request) GetBody

        func (m *Request) GetBody() []byte

        func (*Request) GetHeaderEntries

        func (m *Request) GetHeaderEntries() map[string]*HeaderEntry

        func (*Request) GetHost

        func (m *Request) GetHost() string

        func (*Request) GetMethod

        func (m *Request) GetMethod() string

        func (*Request) GetPeerCertificates

        func (m *Request) GetPeerCertificates() [][]byte

        func (*Request) GetRemoteAddr

        func (m *Request) GetRemoteAddr() string

        func (*Request) GetUrl

        func (m *Request) GetUrl() *URL

        func (*Request) ProtoMessage

        func (*Request) ProtoMessage()

        func (*Request) Reset

        func (m *Request) Reset()

        func (*Request) String

        func (m *Request) String() string

        func (*Request) XXX_DiscardUnknown

        func (m *Request) XXX_DiscardUnknown()

        func (*Request) XXX_Marshal

        func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

        func (*Request) XXX_Merge

        func (m *Request) XXX_Merge(src proto.Message)

        func (*Request) XXX_Size

        func (m *Request) XXX_Size() int

        func (*Request) XXX_Unmarshal

        func (m *Request) XXX_Unmarshal(b []byte) error

        type Response

        type Response struct {
        	// Not used right now but reserving in case it turns out that streaming
        	// makes things more economical on the gRPC side
        	// uint64 id = 1;
        	StatusCode uint32 `protobuf:"varint,2,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
        	Body       []byte `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
        	// Added in 0.6.2 to ensure that the content-type is set appropriately, as
        	// well as any other information
        	HeaderEntries        map[string]*HeaderEntry `` /* 188-byte string literal not displayed */
        	LastRemoteWal        uint64                  `protobuf:"varint,5,opt,name=last_remote_wal,json=lastRemoteWal,proto3" json:"last_remote_wal,omitempty"`
        	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
        	XXX_unrecognized     []byte                  `json:"-"`
        	XXX_sizecache        int32                   `json:"-"`
        }

        func (*Response) Descriptor

        func (*Response) Descriptor() ([]byte, []int)

        func (*Response) GetBody

        func (m *Response) GetBody() []byte

        func (*Response) GetHeaderEntries

        func (m *Response) GetHeaderEntries() map[string]*HeaderEntry

        func (*Response) GetLastRemoteWal

        func (m *Response) GetLastRemoteWal() uint64

        func (*Response) GetStatusCode

        func (m *Response) GetStatusCode() uint32

        func (*Response) ProtoMessage

        func (*Response) ProtoMessage()

        func (*Response) Reset

        func (m *Response) Reset()

        func (*Response) String

        func (m *Response) String() string

        func (*Response) XXX_DiscardUnknown

        func (m *Response) XXX_DiscardUnknown()

        func (*Response) XXX_Marshal

        func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

        func (*Response) XXX_Merge

        func (m *Response) XXX_Merge(src proto.Message)

        func (*Response) XXX_Size

        func (m *Response) XXX_Size() int

        func (*Response) XXX_Unmarshal

        func (m *Response) XXX_Unmarshal(b []byte) error

        type URL

        type URL struct {
        	Scheme string `protobuf:"bytes,1,opt,name=scheme,proto3" json:"scheme,omitempty"`
        	Opaque string `protobuf:"bytes,2,opt,name=opaque,proto3" json:"opaque,omitempty"`
        	// This isn't needed now but might be in the future, so we'll skip the
        	// number to keep the ordering in net/url
        	// UserInfo user = 3;
        	Host    string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
        	Path    string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`
        	RawPath string `protobuf:"bytes,6,opt,name=raw_path,json=rawPath,proto3" json:"raw_path,omitempty"`
        	// This also isn't needed right now, but we'll reserve the number
        	// bool force_query = 7;
        	RawQuery             string   `protobuf:"bytes,8,opt,name=raw_query,json=rawQuery,proto3" json:"raw_query,omitempty"`
        	Fragment             string   `protobuf:"bytes,9,opt,name=fragment,proto3" json:"fragment,omitempty"`
        	XXX_NoUnkeyedLiteral struct{} `json:"-"`
        	XXX_unrecognized     []byte   `json:"-"`
        	XXX_sizecache        int32    `json:"-"`
        }

        func (*URL) Descriptor

        func (*URL) Descriptor() ([]byte, []int)

        func (*URL) GetFragment

        func (m *URL) GetFragment() string

        func (*URL) GetHost

        func (m *URL) GetHost() string

        func (*URL) GetOpaque

        func (m *URL) GetOpaque() string

        func (*URL) GetPath

        func (m *URL) GetPath() string

        func (*URL) GetRawPath

        func (m *URL) GetRawPath() string

        func (*URL) GetRawQuery

        func (m *URL) GetRawQuery() string

        func (*URL) GetScheme

        func (m *URL) GetScheme() string

        func (*URL) ProtoMessage

        func (*URL) ProtoMessage()

        func (*URL) Reset

        func (m *URL) Reset()

        func (*URL) String

        func (m *URL) String() string

        func (*URL) XXX_DiscardUnknown

        func (m *URL) XXX_DiscardUnknown()

        func (*URL) XXX_Marshal

        func (m *URL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

        func (*URL) XXX_Merge

        func (m *URL) XXX_Merge(src proto.Message)

        func (*URL) XXX_Size

        func (m *URL) XXX_Size() int

        func (*URL) XXX_Unmarshal

        func (m *URL) XXX_Unmarshal(b []byte) error