added multiple listener, socket and tcp

This commit is contained in:
2021-10-05 17:15:36 +02:00
parent c0b8de24f7
commit a692a3417f
6 changed files with 49 additions and 18 deletions

22
main.go
View File

@@ -10,12 +10,14 @@ import (
"csgowtfd/ent/stats"
"csgowtfd/utils"
"flag"
"fmt"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
_ "github.com/mattn/go-sqlite3"
log "github.com/sirupsen/logrus"
"go.uber.org/ratelimit"
"gopkg.in/yaml.v3"
"net"
"net/http"
"os"
"strconv"
@@ -397,11 +399,29 @@ func main() {
go utils.GCInfoParser(sendGC, demoLoader, demoParser, db, conf.Steam.APIKey, rL)
go housekeeping()
// Define routes
router = mux.NewRouter().StrictSlash(true)
router.HandleFunc("/player/{id}", getPlayer).Methods("GET")
router.HandleFunc("/player/trackme", postPlayerTrackMe).Methods("POST")
router.HandleFunc("/match/parse/{sharecode}", getMatchParse).Methods("GET")
router.HandleFunc("/match/{id:[0-9]{19}}", getMatch).Methods("GET")
loggedRouter := handlers.LoggingHandler(os.Stdout, router)
utils.Check(http.ListenAndServe(":8000", loggedRouter))
for _, l := range conf.Httpd.Listen {
if l.Socket != "" {
sL, err := net.Listen("unix", l.Socket)
if err != nil {
log.Fatalf("Failure listing on socket %s: %v", l.Socket, err)
}
err = http.Serve(sL, loggedRouter)
if err != nil {
log.Fatalf("Failure serving on socket %s: %v", l.Socket, err)
}
} else {
err = http.ListenAndServe(fmt.Sprintf("%s:%d", l.Host, l.Port), loggedRouter)
if err != nil {
log.Fatalf("Failure listing on %s:%d: %v", l.Host, l.Port, err)
}
}
}
}