From 0d4ac12da962de110de050a33d1b3597bf57d19b Mon Sep 17 00:00:00 2001 From: "Heydorn, Olaf" Date: Tue, 6 Jan 2015 10:17:16 +0100 Subject: [PATCH 1/2] add ssl support --- main.go | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index f0969e8..15fed30 100644 --- a/main.go +++ b/main.go @@ -175,15 +175,37 @@ func NewHub() *Hub { func main() { sseString := os.Getenv("SSE_HOST") if sseString == "" { - log.Fatal("SSE_HOST is not set, example: SSE_HOST=localhost:3000") + log.Fatal("SSE_HOST is not set, example: SSE_HOST=localhost:3000 for non SSL or SSE_HOST=localhost:3001 for SSL. Please set SSL_KEY and SSL_CERT to full path of priv key and cert") } - log.Println("[Info] botbot-eventsource is listening on " + sseString) - - log.Println("[Info] Starting the eventsource Hub") - h := NewHub() - - // eventsource endpoints - http.HandleFunc(ssePath, h.EventSourceHandler) - - log.Fatalln(http.ListenAndServe(sseString, nil)) + if sseString ~= "3000" { + + log.Println("[Info] botbot-eventsource is listening on " + sseString) + + log.Println("[Info] Starting the eventsource Hub") + h := NewHub() + + // eventsource endpoints + http.HandleFunc(ssePath, h.EventSourceHandler) + + log.Fatalln(http.ListenAndServe(sseString, nil)) + } + else if sslKey == "" { + log.Fatal("SSL_KEY is not set, set it to full path to key file") + } + else if sslCert == "" { + log.Fatal("SSL_CERT is not set, set it to full path to cert file") + } + else { + sslKey := os.Getenv("SSL_KEY") + sslCert := os.Getenv("SSL_CERT") + + log.Println("[Info] botbot-eventsource is listening on " + sseString) + + log.Println("[Info] Starting the eventsource Hub") + h := NewHub() + + // eventsource endpoints + http.HandleFunc(ssePath, h.EventSourceHandler) + log.Fatalln(http.ListenAndServeTLS(SSE_HOST, SSL_CERT, SSL_KEY, nil)) + } } From d0b7dfd6296e3b10ccc2ab437d6dabf9ec1e59e4 Mon Sep 17 00:00:00 2001 From: "Heydorn, Olaf" Date: Tue, 6 Jan 2015 11:40:15 +0100 Subject: [PATCH 2/2] adding string compar for ssl --- main.go | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/main.go b/main.go index 15fed30..cbbcbbf 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( "net/http" nurl "net/url" "os" + "regexp" "strconv" "strings" @@ -174,38 +175,35 @@ func NewHub() *Hub { func main() { sseString := os.Getenv("SSE_HOST") + sslKey := os.Getenv("SSL_KEY") + sslCert := os.Getenv("SSL_CERT") if sseString == "" { log.Fatal("SSE_HOST is not set, example: SSE_HOST=localhost:3000 for non SSL or SSE_HOST=localhost:3001 for SSL. Please set SSL_KEY and SSL_CERT to full path of priv key and cert") } - if sseString ~= "3000" { - + if ok, _ := regexp.Match("3000", []byte(sseString)); ok { + log.Println("[Info] botbot-eventsource is listening on " + sseString) - + log.Println("[Info] Starting the eventsource Hub") h := NewHub() - - // eventsource endpoints + + // eventsource endpoints http.HandleFunc(ssePath, h.EventSourceHandler) - + log.Fatalln(http.ListenAndServe(sseString, nil)) - } - else if sslKey == "" { + + } else if sslKey == "" { log.Fatal("SSL_KEY is not set, set it to full path to key file") - } - else if sslCert == "" { + } else if sslCert == "" { log.Fatal("SSL_CERT is not set, set it to full path to cert file") - } - else { - sslKey := os.Getenv("SSL_KEY") - sslCert := os.Getenv("SSL_CERT") - + } else { log.Println("[Info] botbot-eventsource is listening on " + sseString) - + log.Println("[Info] Starting the eventsource Hub") h := NewHub() - + // eventsource endpoints http.HandleFunc(ssePath, h.EventSourceHandler) - log.Fatalln(http.ListenAndServeTLS(SSE_HOST, SSL_CERT, SSL_KEY, nil)) + log.Fatalln(http.ListenAndServeTLS(sseString, sslCert, sslKey, nil)) } }