@@ -2,14 +2,14 @@ package main
22
33import (
44 "context"
5- "fmt"
5+ // "fmt"
66 "net"
7- "net/http"
7+ // "net/http"
88 "os"
99 "strconv"
10- "strings"
10+ // "strings"
1111 "syscall"
12- "time"
12+ // "time"
1313
1414 "github.com/docopt/docopt-go"
1515 // "github.com/prometheus/client_golang/prometheus"
@@ -19,7 +19,7 @@ import (
1919
2020 "github.com/urnetwork/connect"
2121 "github.com/urnetwork/server"
22- "github.com/urnetwork/server/model"
22+ // "github.com/urnetwork/server/model"
2323 "github.com/urnetwork/server/router"
2424)
2525
@@ -58,30 +58,6 @@ Options:
5858 exchange := NewExchangeFromEnvWithDefaults (ctx )
5959 defer exchange .Close ()
6060
61- handlerId := model .CreateNetworkClientHandler (ctx )
62-
63- connectHandler := NewConnectHandlerWithDefaults (ctx , handlerId , exchange )
64- proxyConnectHandler := NewProxyConnectHandlerWithDefaults (ctx , handlerId , exchange )
65- // update the heartbeat
66- go server .HandleError (func () {
67- defer cancel ()
68- for {
69- select {
70- case <- ctx .Done ():
71- return
72- case <- time .After (model .NetworkClientHandlerHeartbeatTimeout ):
73- }
74- // try again after unhandled errors. these signal a transient issue such as db load
75- server .HandleError (func () {
76- err := model .HeartbeatNetworkClientHandler (ctx , handlerId )
77- if err != nil {
78- // shut down
79- cancel ()
80- }
81- })
82- }
83- })
84-
8561 // drain on sigterm
8662 go server .HandleError (func () {
8763 defer cancel ()
@@ -92,30 +68,12 @@ Options:
9268 }
9369 })
9470
95- service := strings .ToLower (server .RequireService ())
96- envService := strings .ToLower (fmt .Sprintf ("%s-%s" , server .RequireEnv (), server .RequireService ()))
97-
98- connectRouter := func (w http.ResponseWriter , r * http.Request ) {
99- host := r .Header .Get ("X-Forwarded-Host" )
100- if host == "" {
101- host = r .Header .Get ("Host" )
102- }
103-
104- sub := strings .ToLower (strings .SplitN (host , "." , 2 )[0 ])
105- switch sub {
106- case service , envService :
107- // the host is connect.<domain> or <env>-connect.<domain>
108- connectHandler .Connect (w , r )
109- default :
110- // the host is <auth>.connect.<domain>
111- proxyConnectHandler .Connect (w , r )
112- }
113- }
71+ connectRouter := NewConnectRouterWithDefaults (ctx , cancel , exchange )
11472
115- // FIXME multiplex connectHandler.Connect and proxyConnectHandler.Connect
11673 routes := []* router.Route {
11774 router .NewRoute ("GET" , "/status" , router .WarpStatus ),
118- router .NewRoute ("*" , "/" , connectRouter ),
75+ router .NewRoute ("GET" , "/" , connectRouter .Connect ),
76+ router .NewRoute ("CONNECT" , "" , connectRouter .ProxyConnect ),
11977 }
12078
12179 port , _ := opts .Int ("--port" )
0 commit comments