Server header
This commit is contained in:
parent
5b5b02b5fd
commit
daabec4941
5 changed files with 29 additions and 6 deletions
|
@ -29,8 +29,14 @@ var (
|
||||||
username = flag.String("user", "", "username")
|
username = flag.String("user", "", "username")
|
||||||
password = flag.String("password", "", "password")
|
password = flag.String("password", "", "password")
|
||||||
secure = flag.Bool("s", false, "secure (https/wss)")
|
secure = flag.Bool("s", false, "secure (https/wss)")
|
||||||
|
|
||||||
|
uaString = version.HttpString(AppName)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func userAgent(h http.Header) {
|
||||||
|
h.Set("User-Agent", uaString)
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
log.SetFlags(0)
|
log.SetFlags(0)
|
||||||
|
@ -56,7 +62,7 @@ func main() {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
loginReq.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
loginReq.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||||
version.UserAgent(loginReq.Header, AppName)
|
userAgent(loginReq.Header)
|
||||||
|
|
||||||
jar, err := cookiejar.New(nil)
|
jar, err := cookiejar.New(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -90,7 +96,7 @@ func main() {
|
||||||
Jar: jar,
|
Jar: jar,
|
||||||
}
|
}
|
||||||
wsHdr := make(http.Header)
|
wsHdr := make(http.Header)
|
||||||
version.UserAgent(wsHdr, AppName)
|
userAgent(wsHdr)
|
||||||
c, _, err := dialer.Dial(u.String(), wsHdr)
|
c, _, err := dialer.Dial(u.String(), wsHdr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("dial:", err)
|
log.Fatal("dial:", err)
|
||||||
|
|
|
@ -2,7 +2,6 @@ package version
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
|
||||||
"runtime"
|
"runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -17,6 +16,6 @@ func String() string {
|
||||||
Version, Built, runtime.GOOS, runtime.GOARCH)
|
Version, Built, runtime.GOOS, runtime.GOARCH)
|
||||||
}
|
}
|
||||||
|
|
||||||
func UserAgent(hdr http.Header, app string) {
|
func HttpString(app string) string {
|
||||||
hdr.Set("User-Agent", fmt.Sprintf("stillbox %s/%s (%s/%s)", app, Version, runtime.GOOS, runtime.GOARCH))
|
return fmt.Sprintf("stillbox %s/%s (%s/%s)", app, Version, runtime.GOOS, runtime.GOARCH)
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"dynatron.me/x/stillbox/client"
|
"dynatron.me/x/stillbox/client"
|
||||||
|
"dynatron.me/x/stillbox/internal/version"
|
||||||
"dynatron.me/x/stillbox/pkg/gordio/config"
|
"dynatron.me/x/stillbox/pkg/gordio/config"
|
||||||
"dynatron.me/x/stillbox/pkg/gordio/database"
|
"dynatron.me/x/stillbox/pkg/gordio/database"
|
||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
|
@ -14,6 +15,10 @@ import (
|
||||||
"github.com/go-chi/render"
|
"github.com/go-chi/render"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
serverHeader = "Server"
|
||||||
|
)
|
||||||
|
|
||||||
func (s *Server) setupRoutes() {
|
func (s *Server) setupRoutes() {
|
||||||
clientRoot, err := fs.Sub(client.Calls, "calls")
|
clientRoot, err := fs.Sub(client.Calls, "calls")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -65,3 +70,12 @@ func (s *Server) clientRoute(r chi.Router, clientRoot fs.FS) {
|
||||||
fs.ServeHTTP(w, r)
|
fs.ServeHTTP(w, r)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ServerHeaderAdd(next http.Handler) http.Handler {
|
||||||
|
serverString := version.HttpString("gordio")
|
||||||
|
hfn := func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Server", serverString)
|
||||||
|
next.ServeHTTP(w, r)
|
||||||
|
}
|
||||||
|
return http.HandlerFunc(hfn)
|
||||||
|
}
|
||||||
|
|
|
@ -61,6 +61,7 @@ func New(ctx context.Context, cfg *config.Config) (*Server, error) {
|
||||||
r.Use(middleware.RequestID)
|
r.Use(middleware.RequestID)
|
||||||
r.Use(middleware.RealIP)
|
r.Use(middleware.RealIP)
|
||||||
r.Use(RequestLogger())
|
r.Use(RequestLogger())
|
||||||
|
r.Use(ServerHeaderAdd)
|
||||||
r.Use(cors.Handler(cors.Options{
|
r.Use(cors.Handler(cors.Options{
|
||||||
AllowedOrigins: srv.conf.CORS.AllowedOrigins,
|
AllowedOrigins: srv.conf.CORS.AllowedOrigins,
|
||||||
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
|
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
|
||||||
|
|
|
@ -136,7 +136,10 @@ func (h *RdioHTTP) routeCallUpload(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
log.Info().Int("system", cur.System).Int("tgid", cur.Talkgroup).Msg("ingested")
|
log.Info().Int("system", cur.System).Int("tgid", cur.Talkgroup).Msg("ingested")
|
||||||
|
|
||||||
_, _ = w.Write([]byte("Call imported successfully."))
|
written, err := w.Write([]byte("Call imported successfully."))
|
||||||
|
if err != nil {
|
||||||
|
log.Error().Err(err).Int("written", written).Msg("upload response failed")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (car *callUploadRequest) fill(r *http.Request) error {
|
func (car *callUploadRequest) fill(r *http.Request) error {
|
||||||
|
|
Loading…
Reference in a new issue