server cleanup

This commit is contained in:
Philipp Mieden 2019-05-21 15:01:13 +02:00
parent 18897d2e32
commit 1449d6902c
4 changed files with 20 additions and 28 deletions

View File

@ -9,12 +9,9 @@ import (
"github.com/foomo/contentserver/requests"
"github.com/foomo/contentserver/responses"
"github.com/foomo/contentserver/status"
jsoniter "github.com/json-iterator/go"
"github.com/prometheus/client_golang/prometheus"
)
var json = jsoniter.ConfigCompatibleWithStandardLibrary
func handleRequest(r *repo.Repo, handler Handler, jsonBytes []byte, metrics *status.Metrics) (replyBytes []byte, err error) {
var (

View File

@ -8,11 +8,14 @@ import (
"github.com/foomo/contentserver/log"
"github.com/foomo/contentserver/repo"
jsoniter "github.com/json-iterator/go"
// profiling
_ "net/http/pprof"
)
var json = jsoniter.ConfigCompatibleWithStandardLibrary
// Handler type
type Handler string
@ -64,12 +67,7 @@ func runWebserver(
path string,
chanErr chan error,
) {
s, errNew := NewWebServer(path, r)
if errNew != nil {
chanErr <- errNew
return
}
chanErr <- http.ListenAndServe(address, s)
chanErr <- http.ListenAndServe(address, NewWebServer(path, r))
}
func runSocketServer(
@ -78,12 +76,7 @@ func runSocketServer(
chanErr chan error,
) {
// create socket server
s, errSocketServer := newSocketServer(repo)
if errSocketServer != nil {
log.Error(errSocketServer)
chanErr <- errSocketServer
return
}
s := newSocketServer(repo)
// listen on socket
ln, errListen := net.Listen("tcp", address)

View File

@ -18,14 +18,12 @@ type socketServer struct {
metrics *status.Metrics
}
// @TODO: remove error ?
// newSocketServer returns a shiny new socket server
func newSocketServer(repo *repo.Repo) (s *socketServer, err error) {
s = &socketServer{
func newSocketServer(repo *repo.Repo) *socketServer {
return &socketServer{
repo: repo,
metrics: status.NewMetrics("socketserver"),
}
return
}
func extractHandlerAndJSONLentgh(header string) (handler Handler, jsonLength int, err error) {
@ -104,12 +102,17 @@ func (s *socketServer) handleConnection(conn net.Conn) {
}
log.Debug(fmt.Sprintf(" found json with %d bytes", jsonLength))
if jsonLength > 0 {
// let us try to read some json
jsonBytes := make([]byte, jsonLength)
var (
// let us try to read some json
jsonBytes = make([]byte, jsonLength)
jsonLengthCurrent = 1
readRound = 0
)
// that is "{"
jsonBytes[0] = 123
jsonLengthCurrent := 1
readRound := 0
for jsonLengthCurrent < jsonLength {
readRound++
readLength, jsonReadErr := conn.Read(jsonBytes[jsonLengthCurrent:jsonLength])

View File

@ -12,19 +12,18 @@ import (
)
type webServer struct {
r *repo.Repo
path string
r *repo.Repo
metrics *status.Metrics
}
// NewWebServer returns a shiny new web server
func NewWebServer(path string, r *repo.Repo) (s http.Handler, err error) {
s = &webServer{
r: r,
func NewWebServer(path string, r *repo.Repo) http.Handler {
return &webServer{
path: path,
r: r,
metrics: status.NewMetrics("webserver"),
}
return
}
func (s *webServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {