forwarding

package
v0.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2018 License: MPL-2.0 Imports: 14 Imported by: 0

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 added in v0.6.3

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 added in v0.10.2

func (m *HeaderEntry) XXX_DiscardUnknown()

func (*HeaderEntry) XXX_Marshal added in v0.10.2

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

func (*HeaderEntry) XXX_Merge added in v0.10.2

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

func (*HeaderEntry) XXX_Size added in v0.10.2

func (m *HeaderEntry) XXX_Size() int

func (*HeaderEntry) XXX_Unmarshal added in v0.10.2

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 added in v0.6.3

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

func (*Request) GetHeaderEntries

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

func (*Request) GetHost added in v0.6.3

func (m *Request) GetHost() string

func (*Request) GetMethod added in v0.6.3

func (m *Request) GetMethod() string

func (*Request) GetPeerCertificates added in v0.6.3

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

func (*Request) GetRemoteAddr added in v0.6.3

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 added in v0.10.2

func (m *Request) XXX_DiscardUnknown()

func (*Request) XXX_Marshal added in v0.10.2

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

func (*Request) XXX_Merge added in v0.10.2

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

func (*Request) XXX_Size added in v0.10.2

func (m *Request) XXX_Size() int

func (*Request) XXX_Unmarshal added in v0.10.2

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 */
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (*Response) Descriptor

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

func (*Response) GetBody added in v0.6.3

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

func (*Response) GetHeaderEntries added in v0.6.2

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

func (*Response) GetStatusCode added in v0.6.3

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 added in v0.10.2

func (m *Response) XXX_DiscardUnknown()

func (*Response) XXX_Marshal added in v0.10.2

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

func (*Response) XXX_Merge added in v0.10.2

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

func (*Response) XXX_Size added in v0.10.2

func (m *Response) XXX_Size() int

func (*Response) XXX_Unmarshal added in v0.10.2

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 added in v0.6.3

func (m *URL) GetFragment() string

func (*URL) GetHost added in v0.6.3

func (m *URL) GetHost() string

func (*URL) GetOpaque added in v0.6.3

func (m *URL) GetOpaque() string

func (*URL) GetPath added in v0.6.3

func (m *URL) GetPath() string

func (*URL) GetRawPath added in v0.6.3

func (m *URL) GetRawPath() string

func (*URL) GetRawQuery added in v0.6.3

func (m *URL) GetRawQuery() string

func (*URL) GetScheme added in v0.6.3

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 added in v0.10.2

func (m *URL) XXX_DiscardUnknown()

func (*URL) XXX_Marshal added in v0.10.2

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

func (*URL) XXX_Merge added in v0.10.2

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

func (*URL) XXX_Size added in v0.10.2

func (m *URL) XXX_Size() int

func (*URL) XXX_Unmarshal added in v0.10.2

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL