proxy

package
v0.0.17 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InitMessageSizeLength = 4
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthPhase

type AuthPhase int
const (
	PhaseStartup AuthPhase = iota
	PhaseGSS
	PhaseSASLInit
	PhaseSASL
	PhaseOK
)

type ClientMessageHandlers

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

func NewClientMessageHandlers

func NewClientMessageHandlers() *ClientMessageHandlers

func (*ClientMessageHandlers) AddHandleBind

func (s *ClientMessageHandlers) AddHandleBind(h HandleBind)

func (*ClientMessageHandlers) AddHandleClose

func (s *ClientMessageHandlers) AddHandleClose(h HandleClose)

func (*ClientMessageHandlers) AddHandleCopyData

func (s *ClientMessageHandlers) AddHandleCopyData(h HandleCopyData)

func (*ClientMessageHandlers) AddHandleCopyDone

func (s *ClientMessageHandlers) AddHandleCopyDone(h HandleCopyDone)

func (*ClientMessageHandlers) AddHandleCopyFail

func (s *ClientMessageHandlers) AddHandleCopyFail(h HandleCopyFail)

func (*ClientMessageHandlers) AddHandleDescribe

func (s *ClientMessageHandlers) AddHandleDescribe(h HandleDescribe)

func (*ClientMessageHandlers) AddHandleExecute

func (s *ClientMessageHandlers) AddHandleExecute(h HandleExecute)

func (*ClientMessageHandlers) AddHandleFlush

func (s *ClientMessageHandlers) AddHandleFlush(h HandleFlush)

func (*ClientMessageHandlers) AddHandleFunctionCall

func (s *ClientMessageHandlers) AddHandleFunctionCall(h HandleFunctionCall)

func (*ClientMessageHandlers) AddHandleGSSResponse

func (s *ClientMessageHandlers) AddHandleGSSResponse(h HandleGSSResponse)

func (*ClientMessageHandlers) AddHandleParse

func (s *ClientMessageHandlers) AddHandleParse(h HandleParse)

func (*ClientMessageHandlers) AddHandlePasswordMessage

func (s *ClientMessageHandlers) AddHandlePasswordMessage(h HandlePasswordMessage)

func (*ClientMessageHandlers) AddHandleQuery

func (s *ClientMessageHandlers) AddHandleQuery(h HandleQuery)

func (*ClientMessageHandlers) AddHandleSASLInitialResponse

func (s *ClientMessageHandlers) AddHandleSASLInitialResponse(h HandleSASLInitialResponse)

func (*ClientMessageHandlers) AddHandleSASLResponse

func (s *ClientMessageHandlers) AddHandleSASLResponse(h HandleSASLResponse)

func (*ClientMessageHandlers) AddHandleSync

func (s *ClientMessageHandlers) AddHandleSync(h HandleSync)

func (*ClientMessageHandlers) AddHandleTerminate

func (s *ClientMessageHandlers) AddHandleTerminate(h HandleTerminate)

func (*ClientMessageHandlers) GetHandler

func (s *ClientMessageHandlers) GetHandler(b byte) MessageHandler

type Ctx

type Ctx struct {
	ClientConn     net.Conn
	ServerConn     net.Conn
	ConnInfo       backend.ConnInfo
	RowDescription *message.RowDescription
	AuthPhase      AuthPhase
	Context        context.Context
	Cancel         context.CancelFunc
}

type HandleAuthenticationGSS

type HandleAuthenticationGSS func(ms *Ctx, msg *message.AuthenticationGSS) (*message.AuthenticationGSS, error)

type HandleAuthenticationGSSContinue

type HandleAuthenticationGSSContinue func(ms *Ctx, msg *message.AuthenticationGSSContinue) (*message.AuthenticationGSSContinue, error)

type HandleAuthenticationKerberosV5

type HandleAuthenticationKerberosV5 func(ms *Ctx, msg *message.AuthenticationKerberosV5) (*message.AuthenticationKerberosV5, error)

type HandleAuthenticationMD5Password

type HandleAuthenticationMD5Password func(ms *Ctx, msg *message.AuthenticationMD5Password) (*message.AuthenticationMD5Password, error)

type HandleAuthenticationOk

type HandleAuthenticationOk func(ms *Ctx, msg *message.AuthenticationOk) (*message.AuthenticationOk, error)

type HandleAuthenticationSASL

type HandleAuthenticationSASL func(ms *Ctx, msg *message.AuthenticationSASL) (*message.AuthenticationSASL, error)

type HandleAuthenticationSASLContinue

type HandleAuthenticationSASLContinue func(ms *Ctx, msg *message.AuthenticationSASLContinue) (*message.AuthenticationSASLContinue, error)

type HandleAuthenticationSASLFinal

type HandleAuthenticationSASLFinal func(ms *Ctx, msg *message.AuthenticationSASLFinal) (*message.AuthenticationSASLFinal, error)

type HandleAuthenticationSSPI

type HandleAuthenticationSSPI func(ms *Ctx, msg *message.AuthenticationSSPI) (*message.AuthenticationSSPI, error)

type HandleBackendKeyData

type HandleBackendKeyData func(ms *Ctx, msg *message.BackendKeyData) (*message.BackendKeyData, error)

type HandleBind

type HandleBind func(md *Ctx, msg *message.Bind) (*message.Bind, error)

type HandleBindComplete

type HandleBindComplete func(ms *Ctx, msg *message.BindComplete) (*message.BindComplete, error)

type HandleClose

type HandleClose func(md *Ctx, msg *message.Close) (*message.Close, error)

type HandleCloseComplete

type HandleCloseComplete func(ms *Ctx, msg *message.CloseComplete) (*message.CloseComplete, error)

type HandleCommandComplete

type HandleCommandComplete func(ms *Ctx, msg *message.CommandComplete) (*message.CommandComplete, error)

type HandleCopyBothResponse

type HandleCopyBothResponse func(ms *Ctx, msg *message.CopyBothResponse) (*message.CopyBothResponse, error)

type HandleCopyData

type HandleCopyData func(md *Ctx, msg *message.CopyData) (*message.CopyData, error)

type HandleCopyDone

type HandleCopyDone func(md *Ctx, msg *message.CopyDone) (*message.CopyDone, error)

type HandleCopyFail

type HandleCopyFail func(md *Ctx, msg *message.CopyFail) (*message.CopyFail, error)

type HandleCopyInResponse

type HandleCopyInResponse func(ms *Ctx, msg *message.CopyInResponse) (*message.CopyInResponse, error)

type HandleCopyOutResponse

type HandleCopyOutResponse func(ms *Ctx, msg *message.CopyOutResponse) (*message.CopyOutResponse, error)

type HandleDataRow

type HandleDataRow func(ms *Ctx, msg *message.DataRow) (*message.DataRow, error)

type HandleDescribe

type HandleDescribe func(md *Ctx, msg *message.Describe) (*message.Describe, error)

type HandleEmptyQueryResponse

type HandleEmptyQueryResponse func(ms *Ctx, msg *message.EmptyQueryResponse) (*message.EmptyQueryResponse, error)

type HandleErrorResponse

type HandleErrorResponse func(ms *Ctx, msg *message.ErrorResponse) (*message.ErrorResponse, error)

type HandleExecute

type HandleExecute func(md *Ctx, msg *message.Execute) (*message.Execute, error)

type HandleFlush

type HandleFlush func(md *Ctx, msg *message.Flush) (*message.Flush, error)

type HandleFunctionCall

type HandleFunctionCall func(md *Ctx, msg *message.FunctionCall) (*message.FunctionCall, error)

type HandleFunctionCallResponse

type HandleFunctionCallResponse func(ms *Ctx, msg *message.FunctionCallResponse) (*message.FunctionCallResponse, error)

type HandleGSSResponse

type HandleGSSResponse func(md *Ctx, msg *message.GSSResponse) (*message.GSSResponse, error)

type HandleNegotiateProtocolVersion

type HandleNegotiateProtocolVersion func(ms *Ctx, msg *message.NegotiateProtocolVersion) (*message.NegotiateProtocolVersion, error)

type HandleNoData

type HandleNoData func(ms *Ctx, msg *message.NoData) (*message.NoData, error)

type HandleNoticeResponse

type HandleNoticeResponse func(ms *Ctx, msg *message.NoticeResponse) (*message.NoticeResponse, error)

type HandleNotificationResponse

type HandleNotificationResponse func(ms *Ctx, msg *message.NotificationResponse) (*message.NotificationResponse, error)

type HandleParameterDescription

type HandleParameterDescription func(ms *Ctx, msg *message.ParameterDescription) (*message.ParameterDescription, error)

type HandleParameterStatus

type HandleParameterStatus func(ms *Ctx, msg *message.ParameterStatus) (*message.ParameterStatus, error)

type HandleParse

type HandleParse func(md *Ctx, msg *message.Parse) (*message.Parse, error)

type HandleParseComplete

type HandleParseComplete func(ms *Ctx, msg *message.ParseComplete) (*message.ParseComplete, error)

type HandlePasswordMessage

type HandlePasswordMessage func(md *Ctx, msg *message.PasswordMessage) (*message.PasswordMessage, error)

type HandlePortalSuspended

type HandlePortalSuspended func(ms *Ctx, msg *message.PortalSuspended) (*message.PortalSuspended, error)

type HandleQuery

type HandleQuery func(md *Ctx, msg *message.Query) (*message.Query, error)

type HandleReadyForQuery

type HandleReadyForQuery func(ms *Ctx, msg *message.ReadyForQuery) (*message.ReadyForQuery, error)

type HandleRowDescription

type HandleRowDescription func(ms *Ctx, msg *message.RowDescription) (*message.RowDescription, error)

type HandleSASLInitialResponse

type HandleSASLInitialResponse func(md *Ctx, msg *message.SASLInitialResponse) (*message.SASLInitialResponse, error)

type HandleSASLResponse

type HandleSASLResponse func(md *Ctx, msg *message.SASLResponse) (*message.SASLResponse, error)

type HandleSync

type HandleSync func(md *Ctx, msg *message.Sync) (*message.Sync, error)

type HandleTerminate

type HandleTerminate func(md *Ctx, msg *message.Terminate) (*message.Terminate, error)

type MessageHandler

type MessageHandler func(*Ctx, []byte) (message.Reader, error)

type MessageHandlerRegister

type MessageHandlerRegister interface {
	GetHandler(byte) MessageHandler
}

type Server

type Server struct {
	PGResolver                    backend.PGResolver
	PGStartupMessageRewriter      backend.PGStartupMessageRewriter
	ConnInfoStore                 backend.ConnInfoStore
	ClientMessageHandlers         *ClientMessageHandlers
	ServerMessageHandlers         *ServerMessageHandlers
	ClientStreamCallbackFactories *StreamCallbackFactories
	ServerStreamCallbackFactories *StreamCallbackFactories
	OnHandleConnError             func(err error, ctx *Ctx, conn net.Conn)
	Splice                        bool
	// contains filtered or unexported fields
}

func (*Server) Serve

func (s *Server) Serve(ln net.Listener) error

func (*Server) Shutdown

func (s *Server) Shutdown()

type ServerMessageHandlers

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

func NewServerMessageHandlers

func NewServerMessageHandlers() *ServerMessageHandlers

func (*ServerMessageHandlers) AddHandleAuthenticationCleartextPassword

func (s *ServerMessageHandlers) AddHandleAuthenticationCleartextPassword(h HandleAuthenticationCleartextPassword)

func (*ServerMessageHandlers) AddHandleAuthenticationGSS

func (s *ServerMessageHandlers) AddHandleAuthenticationGSS(h HandleAuthenticationGSS)

func (*ServerMessageHandlers) AddHandleAuthenticationGSSContinue

func (s *ServerMessageHandlers) AddHandleAuthenticationGSSContinue(h HandleAuthenticationGSSContinue)

func (*ServerMessageHandlers) AddHandleAuthenticationKerberosV5

func (s *ServerMessageHandlers) AddHandleAuthenticationKerberosV5(h HandleAuthenticationKerberosV5)

func (*ServerMessageHandlers) AddHandleAuthenticationMD5Password

func (s *ServerMessageHandlers) AddHandleAuthenticationMD5Password(h HandleAuthenticationMD5Password)

func (*ServerMessageHandlers) AddHandleAuthenticationOk

func (s *ServerMessageHandlers) AddHandleAuthenticationOk(h HandleAuthenticationOk)

func (*ServerMessageHandlers) AddHandleAuthenticationSASL

func (s *ServerMessageHandlers) AddHandleAuthenticationSASL(h HandleAuthenticationSASL)

func (*ServerMessageHandlers) AddHandleAuthenticationSASLContinue

func (s *ServerMessageHandlers) AddHandleAuthenticationSASLContinue(h HandleAuthenticationSASLContinue)

func (*ServerMessageHandlers) AddHandleAuthenticationSASLFinal

func (s *ServerMessageHandlers) AddHandleAuthenticationSASLFinal(h HandleAuthenticationSASLFinal)

func (*ServerMessageHandlers) AddHandleAuthenticationSCMCredential

func (s *ServerMessageHandlers) AddHandleAuthenticationSCMCredential(h HandleAuthenticationSCMCredential)

func (*ServerMessageHandlers) AddHandleAuthenticationSSPI

func (s *ServerMessageHandlers) AddHandleAuthenticationSSPI(h HandleAuthenticationSSPI)

func (*ServerMessageHandlers) AddHandleBackendKeyData

func (s *ServerMessageHandlers) AddHandleBackendKeyData(h HandleBackendKeyData)

func (*ServerMessageHandlers) AddHandleBindComplete

func (s *ServerMessageHandlers) AddHandleBindComplete(h HandleBindComplete)

func (*ServerMessageHandlers) AddHandleCloseComplete

func (s *ServerMessageHandlers) AddHandleCloseComplete(h HandleCloseComplete)

func (*ServerMessageHandlers) AddHandleCommandComplete

func (s *ServerMessageHandlers) AddHandleCommandComplete(h HandleCommandComplete)

func (*ServerMessageHandlers) AddHandleCopyBothResponse

func (s *ServerMessageHandlers) AddHandleCopyBothResponse(h HandleCopyBothResponse)

func (*ServerMessageHandlers) AddHandleCopyData

func (s *ServerMessageHandlers) AddHandleCopyData(h HandleCopyData)

func (*ServerMessageHandlers) AddHandleCopyDone

func (s *ServerMessageHandlers) AddHandleCopyDone(h HandleCopyDone)

func (*ServerMessageHandlers) AddHandleCopyInResponse

func (s *ServerMessageHandlers) AddHandleCopyInResponse(h HandleCopyInResponse)

func (*ServerMessageHandlers) AddHandleCopyOutResponse

func (s *ServerMessageHandlers) AddHandleCopyOutResponse(h HandleCopyOutResponse)

func (*ServerMessageHandlers) AddHandleDataRow

func (s *ServerMessageHandlers) AddHandleDataRow(h HandleDataRow)

func (*ServerMessageHandlers) AddHandleEmptyQueryResponse

func (s *ServerMessageHandlers) AddHandleEmptyQueryResponse(h HandleEmptyQueryResponse)

func (*ServerMessageHandlers) AddHandleErrorResponse

func (s *ServerMessageHandlers) AddHandleErrorResponse(h HandleErrorResponse)

func (*ServerMessageHandlers) AddHandleFunctionCallResponse

func (s *ServerMessageHandlers) AddHandleFunctionCallResponse(h HandleFunctionCallResponse)

func (*ServerMessageHandlers) AddHandleNegotiateProtocolVersion

func (s *ServerMessageHandlers) AddHandleNegotiateProtocolVersion(h HandleNegotiateProtocolVersion)

func (*ServerMessageHandlers) AddHandleNoData

func (s *ServerMessageHandlers) AddHandleNoData(h HandleNoData)

func (*ServerMessageHandlers) AddHandleNoticeResponse

func (s *ServerMessageHandlers) AddHandleNoticeResponse(h HandleNoticeResponse)

func (*ServerMessageHandlers) AddHandleNotificationResponse

func (s *ServerMessageHandlers) AddHandleNotificationResponse(h HandleNotificationResponse)

func (*ServerMessageHandlers) AddHandleParameterDescription

func (s *ServerMessageHandlers) AddHandleParameterDescription(h HandleParameterDescription)

func (*ServerMessageHandlers) AddHandleParameterStatus

func (s *ServerMessageHandlers) AddHandleParameterStatus(h HandleParameterStatus)

func (*ServerMessageHandlers) AddHandleParseComplete

func (s *ServerMessageHandlers) AddHandleParseComplete(h HandleParseComplete)

func (*ServerMessageHandlers) AddHandlePortalSuspended

func (s *ServerMessageHandlers) AddHandlePortalSuspended(h HandlePortalSuspended)

func (*ServerMessageHandlers) AddHandleReadyForQuery

func (s *ServerMessageHandlers) AddHandleReadyForQuery(h HandleReadyForQuery)

func (*ServerMessageHandlers) AddHandleRowDescription

func (s *ServerMessageHandlers) AddHandleRowDescription(h HandleRowDescription)

func (*ServerMessageHandlers) GetHandler

func (s *ServerMessageHandlers) GetHandler(b byte) MessageHandler

type Slice

type Slice struct {
	Head bool
	Last bool
	Data []byte
}

func DefaultStreamCallback

func DefaultStreamCallback(s Slice) Slice

type StreamCallback

type StreamCallback func(slice Slice) Slice

func DefaultStreamCallbackFactory

func DefaultStreamCallbackFactory(ctx *Ctx) StreamCallback

type StreamCallbackFactories

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

func NewStreamCallbackFactories

func NewStreamCallbackFactories() *StreamCallbackFactories

func (*StreamCallbackFactories) GetFactory

func (*StreamCallbackFactories) SetFactory

func (s *StreamCallbackFactories) SetFactory(b byte, factory StreamCallbackFactory)

type StreamCallbackFactory

type StreamCallbackFactory func(ctx *Ctx) StreamCallback

Jump to

Keyboard shortcuts

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