default_server_connector.go 561 B

123456789101112131415161718192021222324
  1. package cproxy
  2. type defaultServerConnector struct {
  3. dialer Dialer
  4. initializer initializer
  5. }
  6. func newServerConnector(dialer Dialer, initializer initializer) *defaultServerConnector {
  7. return &defaultServerConnector{dialer: dialer, initializer: initializer}
  8. }
  9. func (this *defaultServerConnector) Connect(client Socket, serverAddress string) proxy {
  10. server := this.dialer.Dial(serverAddress)
  11. if server == nil {
  12. return nil
  13. }
  14. if !this.initializer.Initialize(client, server) {
  15. _ = server.Close()
  16. return nil
  17. }
  18. return newProxy(client, server)
  19. }