diff --git a/src/server.go b/src/server.go index eaa314c9..75af23ff 100644 --- a/src/server.go +++ b/src/server.go @@ -16,14 +16,14 @@ const ( httpBadRequest = "HTTP/1.1 400 Bad Request" + crlf ) -func startHttpServer(port int, channel chan []*action) { +func startHttpServer(port int, channel chan []*action) error { if port == 0 { - return + return nil } listener, err := net.Listen("tcp", fmt.Sprintf(":%d", port)) if err != nil { - return + return fmt.Errorf("port not available: %d", port) } go func() { @@ -41,6 +41,8 @@ func startHttpServer(port int, channel chan []*action) { } listener.Close() }() + + return nil } // Here we are writing a simplistic HTTP server without using net/http diff --git a/src/terminal.go b/src/terminal.go index 1ff40412..d0c0a9de 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -621,6 +621,10 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal { t.separator, t.separatorLen = t.ansiLabelPrinter(bar, &tui.ColSeparator, true) } + if err := startHttpServer(t.listenPort, t.serverChan); err != nil { + errorExit(err.Error()) + } + return &t } @@ -2500,7 +2504,6 @@ func (t *Terminal) Loop() { looping := true _, startEvent := t.keymap[tui.Start.AsEvent()] - startHttpServer(t.listenPort, t.serverChan) eventChan := make(chan tui.Event) needBarrier := true barrier := make(chan bool)