| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | package httpimport (	"net"	"net/http"	"strings"	"github.com/v2ray/v2ray-core/app"	_ "github.com/v2ray/v2ray-core/common/log"	v2net "github.com/v2ray/v2ray-core/common/net")type HttpProxyServer struct {	accepting  bool	dispatcher app.PacketDispatcher	config     Config}func NewHttpProxyServer(dispatcher app.PacketDispatcher, config Config) *HttpProxyServer {	return &HttpProxyServer{		dispatcher: dispatcher,		config:     config,	}}func (this *HttpProxyServer) Listen(port v2net.Port) error {	server := http.Server{		Addr:    ":" + port.String(),		Handler: this,	}	return server.ListenAndServe()}func (this *HttpProxyServer) ServeHTTP(w http.ResponseWriter, request *http.Request) {	if strings.ToUpper(request.Method) == "CONNECT" {		host, port, err := net.SplitHostPort(request.URL.Host)		if err != nil {			if strings.Contains(err.(*net.AddrError).Err, "missing port") {				host = request.URL.Host				port = "80"			} else {				http.Error(w, "Bad Request", 400)				return			}		}		_ = host + port	} else {	}}func (this *HttpProxyServer) handleConnect(response http.ResponseWriter, request *http.Request) {}
 |