diff --git a/api.go b/api.go index ebea568..b8df713 100644 --- a/api.go +++ b/api.go @@ -36,6 +36,12 @@ func main() { } r := mux.NewRouter() + + // Reverse proxy (needs to be the first route, to make sure it is the first thing we check) + proxyHandler := handlers.NewMultipleHostReverseProxy() + r.Host(`{node:ip[0-9]{1,3}_[0-9]{1,3}_[0-9]{1,3}_[0-9]{1,3}}-{port:[0-9]*}.{tld:.*}`).Handler(proxyHandler) + r.Host(`{node:ip[0-9]{1,3}_[0-9]{1,3}_[0-9]{1,3}_[0-9]{1,3}}.{tld:.*}`).Handler(proxyHandler) + r.StrictSlash(false) r.HandleFunc("/ping", http.HandlerFunc(handlers.Ping)).Methods("GET") @@ -59,11 +65,6 @@ func main() { r.Handle("/sessions/{sessionId}/ws/", server) - // Reverse proxy - proxyHandler := handlers.NewMultipleHostReverseProxy() - r.Host(`{node}-{port:[0-9]*}.play-with-docker.com`).Handler(proxyHandler) - r.Host(`{node}.play-with-docker.com`).Handler(proxyHandler) - n := negroni.Classic() n.UseHandler(r) diff --git a/services/session.go b/services/session.go index 010c94f..5ac2dbd 100644 --- a/services/session.go +++ b/services/session.go @@ -108,12 +108,14 @@ func NewSession() (*Session, error) { log.Println("ERROR NETWORKING") return nil, err } + log.Printf("Network [%s] created for session [%s]\n", s.Id, s.Id) // Connect PWD daemon to the new network if err := ConnectNetwork("pwd", s.Id); err != nil { log.Println("ERROR NETWORKING") return nil, err } + log.Printf("Connected pwd to network [%s]\n", s.Id) // We store sessions as soon as we create one so we don't delete new sessions on an api restart if err := saveSessionsToDisk(); err != nil {