photoprism/pkg/header/request.go
Michael Mayer 02a1b12edb Config: Update CORS header defaults and add /api/v1/echo endpoint #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 14:36:08 +01:00

38 lines
786 B
Go

package header
import (
"github.com/gin-gonic/gin"
)
const (
UnknownIP = "0.0.0.0"
)
// ClientIP returns the client IP address from the request context or a placeholder if it is unknown.
func ClientIP(c *gin.Context) (ip string) {
if c == nil {
// Should never happen.
return UnknownIP
} else if c.Request == nil {
return UnknownIP
} else if ip = c.ClientIP(); ip != "" {
return ip
} else if ip = c.RemoteIP(); ip != "" {
return ip
}
// Tests may not specify an IP address.
return UnknownIP
}
// UserAgent returns the user agent from the request context or an empty string if it is unknown.
func UserAgent(c *gin.Context) string {
if c == nil {
// Should never happen.
return ""
} else if c.Request == nil {
return ""
}
return c.Request.UserAgent()
}