Add https:// and http+insecure:// listeners
Same as wss:// and ws+insecure://, except we'll be able to add more endpoints for future features (e.g. file uploads).
This commit is contained in:
parent
ef8a9caff4
commit
4c818d28cc
|
@ -145,6 +145,9 @@ func main() {
|
||||||
srv.SetConfig(serverCfg)
|
srv.SetConfig(serverCfg)
|
||||||
srv.Logger = soju.NewLogger(log.Writer(), debug)
|
srv.Logger = soju.NewLogger(log.Writer(), debug)
|
||||||
|
|
||||||
|
httpMux := http.NewServeMux()
|
||||||
|
httpMux.Handle("/socket", srv)
|
||||||
|
|
||||||
for _, listen := range cfg.Listen {
|
for _, listen := range cfg.Listen {
|
||||||
listen := listen // copy
|
listen := listen // copy
|
||||||
listenURI := listen
|
listenURI := listen
|
||||||
|
@ -332,6 +335,38 @@ func main() {
|
||||||
log.Fatalf("serving %q: %v", listen, err)
|
log.Fatalf("serving %q: %v", listen, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
case "https":
|
||||||
|
if tlsCfg == nil {
|
||||||
|
log.Fatalf("failed to listen on %q: missing TLS configuration", listen)
|
||||||
|
}
|
||||||
|
addr := u.Host
|
||||||
|
if _, _, err := net.SplitHostPort(addr); err != nil {
|
||||||
|
addr = addr + ":https"
|
||||||
|
}
|
||||||
|
httpSrv := http.Server{
|
||||||
|
Addr: addr,
|
||||||
|
TLSConfig: tlsCfg,
|
||||||
|
Handler: httpMux,
|
||||||
|
}
|
||||||
|
go func() {
|
||||||
|
if err := httpSrv.ListenAndServeTLS("", ""); err != nil {
|
||||||
|
log.Fatalf("serving %q: %v", listen, err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
case "http+insecure":
|
||||||
|
addr := u.Host
|
||||||
|
if _, _, err := net.SplitHostPort(addr); err != nil {
|
||||||
|
addr = addr + ":http"
|
||||||
|
}
|
||||||
|
httpSrv := http.Server{
|
||||||
|
Addr: addr,
|
||||||
|
Handler: httpMux,
|
||||||
|
}
|
||||||
|
go func() {
|
||||||
|
if err := httpSrv.ListenAndServe(); err != nil {
|
||||||
|
log.Fatalf("serving %q: %v", listen, err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
default:
|
default:
|
||||||
log.Fatalf("failed to listen on %q: unsupported scheme", listen)
|
log.Fatalf("failed to listen on %q: unsupported scheme", listen)
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,6 +88,10 @@ The following directives are supported:
|
||||||
- _irc+insecure://[host][:port]_ listens with plain-text over TCP (default
|
- _irc+insecure://[host][:port]_ listens with plain-text over TCP (default
|
||||||
port if omitted: 6667)
|
port if omitted: 6667)
|
||||||
- _unix://<path>_ listens on a Unix domain socket
|
- _unix://<path>_ listens on a Unix domain socket
|
||||||
|
- _https://[host][:port]_ listens for HTTPS connections (default port: 443)
|
||||||
|
and handles WebSocket requests at endpoint _/socket_
|
||||||
|
- _http+insecure://[host][:port]_ listens for plain-text HTTP connections
|
||||||
|
(default port: 80) and handles WebSocket requests at endpoint _/socket_
|
||||||
- _wss://[host][:port]_ listens for WebSocket connections over TLS (default
|
- _wss://[host][:port]_ listens for WebSocket connections over TLS (default
|
||||||
port: 443)
|
port: 443)
|
||||||
- _ws+insecure://[host][:port]_ listens for plain-text WebSocket
|
- _ws+insecure://[host][:port]_ listens for plain-text WebSocket
|
||||||
|
|
Loading…
Reference in a new issue