func (this *Shadowsocks) Listen(port v2net.Port) error { if this.accepting { if this.port == port { return nil } else { return proxy.ErrorAlreadyListening } } this.accepting = true tcpHub, err := hub.ListenTCP(port, this.handleConnection) if err != nil { log.Error("Shadowsocks: Failed to listen TCP on port ", port, ": ", err) return err } this.tcpHub = tcpHub if this.config.UDP { udpHub, err := hub.ListenUDP(port, this.handlerUDPPayload) if err != nil { log.Error("Shadowsocks: Failed to listen UDP on port ", port, ": ", err) } this.udpHub = udpHub this.udpServer = hub.NewUDPServer(this.packetDispatcher) } return nil }
func (this *DokodemoDoor) ListenTCP(port v2net.Port) error { tcpListener, err := hub.ListenTCP(port, this.HandleTCPConnection) if err != nil { log.Error("Dokodemo: Failed to listen on port ", port, ": ", err) return err } this.tcpMutex.Lock() this.tcpListener = tcpListener this.tcpMutex.Unlock() return nil }
func (this *HttpProxyServer) Listen(port v2net.Port) error { if this.accepting { if this.listeningPort == port { return nil } else { return proxy.ErrorAlreadyListening } } this.listeningPort = port tcpListener, err := hub.ListenTCP(port, this.handleConnection) if err != nil { log.Error("Http: Failed listen on port ", port, ": ", err) return err } this.Lock() this.tcpListener = tcpListener this.Unlock() this.accepting = true return nil }
func (this *VMessInboundHandler) Listen(port v2net.Port) error { if this.accepting { if this.listeningPort == port { return nil } else { return proxy.ErrorAlreadyListening } } this.listeningPort = port tcpListener, err := hub.ListenTCP(port, this.HandleConnection) if err != nil { log.Error("Unable to listen tcp port ", port, ": ", err) return err } this.accepting = true this.Lock() this.listener = tcpListener this.Unlock() return nil }
func (this *SocksServer) Listen(port v2net.Port) error { if this.accepting { if this.listeningPort == port { return nil } else { return proxy.ErrorAlreadyListening } } this.listeningPort = port listener, err := hub.ListenTCP(port, this.HandleConnection) if err != nil { log.Error("Socks: failed to listen on port ", port, ": ", err) return err } this.accepting = true this.tcpMutex.Lock() this.tcpListener = listener this.tcpMutex.Unlock() if this.config.UDPEnabled { this.ListenUDP(port) } return nil }