package cproxy

import "net/http"

type defaultClientConnector struct{}

func newClientConnector() *defaultClientConnector {
	return &defaultClientConnector{}
}

func (this *defaultClientConnector) Connect(response http.ResponseWriter) Socket {
	if hijacker, ok := response.(http.Hijacker); !ok {
		return nil
	} else if socket, _, _ := hijacker.Hijack(); socket == nil {
		return nil // this 'else if' exists to avoid the pointer nil != interface nil issue
	} else {
		return socket
	}
}