default_client_connector.go 489 B

12345678910111213141516171819
  1. package cproxy
  2. import "net/http"
  3. type defaultClientConnector struct{}
  4. func newClientConnector() *defaultClientConnector {
  5. return &defaultClientConnector{}
  6. }
  7. func (this *defaultClientConnector) Connect(response http.ResponseWriter) Socket {
  8. if hijacker, ok := response.(http.Hijacker); !ok {
  9. return nil
  10. } else if socket, _, _ := hijacker.Hijack(); socket == nil {
  11. return nil // this 'else if' exists to avoid the pointer nil != interface nil issue
  12. } else {
  13. return socket
  14. }
  15. }