|
|
@@ -10,6 +10,7 @@ import (
|
|
|
"strings"
|
|
|
"sync"
|
|
|
|
|
|
+ "github.com/v2ray/v2ray-core/app"
|
|
|
"github.com/v2ray/v2ray-core/app/dispatcher"
|
|
|
"github.com/v2ray/v2ray-core/common/alloc"
|
|
|
v2io "github.com/v2ray/v2ray-core/common/io"
|
|
|
@@ -17,6 +18,7 @@ import (
|
|
|
v2net "github.com/v2ray/v2ray-core/common/net"
|
|
|
"github.com/v2ray/v2ray-core/common/serial"
|
|
|
"github.com/v2ray/v2ray-core/proxy"
|
|
|
+ "github.com/v2ray/v2ray-core/proxy/internal"
|
|
|
"github.com/v2ray/v2ray-core/transport/hub"
|
|
|
"github.com/v2ray/v2ray-core/transport/ray"
|
|
|
)
|
|
|
@@ -252,3 +254,15 @@ func (this *HttpProxyServer) handlePlainHTTP(request *http.Request, dest v2net.D
|
|
|
}()
|
|
|
wg.Wait()
|
|
|
}
|
|
|
+
|
|
|
+func init() {
|
|
|
+ internal.MustRegisterInboundHandlerCreator("http",
|
|
|
+ func(space app.Space, rawConfig interface{}) (proxy.InboundHandler, error) {
|
|
|
+ if !space.HasApp(dispatcher.APP_ID) {
|
|
|
+ return nil, internal.ErrorBadConfiguration
|
|
|
+ }
|
|
|
+ return NewHttpProxyServer(
|
|
|
+ rawConfig.(*Config),
|
|
|
+ space.GetApp(dispatcher.APP_ID).(dispatcher.PacketDispatcher)), nil
|
|
|
+ })
|
|
|
+}
|