added multiple listener, socket and tcp
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -160,9 +160,9 @@ $RECYCLE.BIN/
|
|||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
# OPENCSGO
|
### CSGOWTF ###
|
||||||
.login_key
|
.login_key
|
||||||
.sentry
|
.sentry
|
||||||
.server.json
|
.server.json
|
||||||
opencsgo.db
|
csgowtfd.db
|
||||||
|
config.yaml
|
||||||
|
13
config.yaml
13
config.yaml
@@ -1,13 +0,0 @@
|
|||||||
logging:
|
|
||||||
level: DEBUG
|
|
||||||
|
|
||||||
parser:
|
|
||||||
worker: 6
|
|
||||||
|
|
||||||
steam:
|
|
||||||
username: steamusername
|
|
||||||
api_key: apikey
|
|
||||||
rate_per_sec: 1
|
|
||||||
|
|
||||||
httpd:
|
|
||||||
cors_allow_domains: '*'
|
|
17
config_example.yaml
Normal file
17
config_example.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
logging:
|
||||||
|
level: DEBUG
|
||||||
|
|
||||||
|
parser:
|
||||||
|
worker: 6
|
||||||
|
|
||||||
|
steam:
|
||||||
|
username: steamuser
|
||||||
|
api_key: apikey
|
||||||
|
rate_per_sec: 1
|
||||||
|
|
||||||
|
httpd:
|
||||||
|
cors_allow_domains: '*'
|
||||||
|
listen:
|
||||||
|
- host: localhost
|
||||||
|
port: 8000
|
||||||
|
- socket: /tmp/csgowtf.sock
|
22
main.go
22
main.go
@@ -10,12 +10,14 @@ import (
|
|||||||
"csgowtfd/ent/stats"
|
"csgowtfd/ent/stats"
|
||||||
"csgowtfd/utils"
|
"csgowtfd/utils"
|
||||||
"flag"
|
"flag"
|
||||||
|
"fmt"
|
||||||
"github.com/gorilla/handlers"
|
"github.com/gorilla/handlers"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
"go.uber.org/ratelimit"
|
"go.uber.org/ratelimit"
|
||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -397,11 +399,29 @@ func main() {
|
|||||||
go utils.GCInfoParser(sendGC, demoLoader, demoParser, db, conf.Steam.APIKey, rL)
|
go utils.GCInfoParser(sendGC, demoLoader, demoParser, db, conf.Steam.APIKey, rL)
|
||||||
go housekeeping()
|
go housekeeping()
|
||||||
|
|
||||||
|
// Define routes
|
||||||
router = mux.NewRouter().StrictSlash(true)
|
router = mux.NewRouter().StrictSlash(true)
|
||||||
router.HandleFunc("/player/{id}", getPlayer).Methods("GET")
|
router.HandleFunc("/player/{id}", getPlayer).Methods("GET")
|
||||||
router.HandleFunc("/player/trackme", postPlayerTrackMe).Methods("POST")
|
router.HandleFunc("/player/trackme", postPlayerTrackMe).Methods("POST")
|
||||||
router.HandleFunc("/match/parse/{sharecode}", getMatchParse).Methods("GET")
|
router.HandleFunc("/match/parse/{sharecode}", getMatchParse).Methods("GET")
|
||||||
router.HandleFunc("/match/{id:[0-9]{19}}", getMatch).Methods("GET")
|
router.HandleFunc("/match/{id:[0-9]{19}}", getMatch).Methods("GET")
|
||||||
loggedRouter := handlers.LoggingHandler(os.Stdout, router)
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -36,6 +36,11 @@ type Conf struct {
|
|||||||
}
|
}
|
||||||
Httpd struct {
|
Httpd struct {
|
||||||
CORSAllowDomains string `yaml:"cors_allow_domains"`
|
CORSAllowDomains string `yaml:"cors_allow_domains"`
|
||||||
|
Listen []struct {
|
||||||
|
Socket string
|
||||||
|
Host string
|
||||||
|
Port int
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user