mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-09 19:41:21 +00:00
Pass http.ServeTLS() errors back to the caller (#2461)
Closes: #2460 * Pass http.ServeTLS() errors back to the caller * Update CHANGELOG * Amend StartHTTPServer() too for consistency's sake * Revert "Amend StartHTTPServer() too for consistency's sake" This reverts commit 23bfb4c2e917f581702291fe3ea69fce23f8c89d.
This commit is contained in:
parent
886a83dfb8
commit
f11db8c1b0
@ -33,3 +33,4 @@ IMPROVEMENTS:
|
|||||||
|
|
||||||
BUG FIXES:
|
BUG FIXES:
|
||||||
- [node] \#2294 Delay starting node until Genesis time
|
- [node] \#2294 Delay starting node until Genesis time
|
||||||
|
- [rpc] \#2460 StartHTTPAndTLSServer() now passes StartTLS() errors back to the caller rather than hanging forever.
|
||||||
|
@ -102,15 +102,16 @@ func StartHTTPAndTLSServer(
|
|||||||
listener = netutil.LimitListener(listener, config.MaxOpenConnections)
|
listener = netutil.LimitListener(listener, config.MaxOpenConnections)
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
err = http.ServeTLS(
|
||||||
err := http.ServeTLS(
|
|
||||||
listener,
|
listener,
|
||||||
RecoverAndLogHandler(maxBytesHandler{h: handler, n: maxBodyBytes}, logger),
|
RecoverAndLogHandler(maxBytesHandler{h: handler, n: maxBodyBytes}, logger),
|
||||||
certFile,
|
certFile,
|
||||||
keyFile,
|
keyFile,
|
||||||
)
|
)
|
||||||
|
if err != nil {
|
||||||
logger.Error("RPC HTTPS server stopped", "err", err)
|
logger.Error("RPC HTTPS server stopped", "err", err)
|
||||||
}()
|
return nil, err
|
||||||
|
}
|
||||||
return listener, nil
|
return listener, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,11 +5,14 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -60,3 +63,15 @@ func TestMaxOpenConnections(t *testing.T) {
|
|||||||
t.Errorf("%d requests failed within %d attempts", failed, attempts)
|
t.Errorf("%d requests failed within %d attempts", failed, attempts)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStartHTTPAndTLSServer(t *testing.T) {
|
||||||
|
// set up fixtures
|
||||||
|
listenerAddr := "tcp://0.0.0.0:0"
|
||||||
|
mux := http.NewServeMux()
|
||||||
|
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {})
|
||||||
|
|
||||||
|
// test failure
|
||||||
|
gotListener, err := StartHTTPAndTLSServer(listenerAddr, mux, "", "", log.TestingLogger(), Config{MaxOpenConnections: 1})
|
||||||
|
require.Nil(t, gotListener)
|
||||||
|
require.IsType(t, (*os.PathError)(nil), err)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user