Change system for hanayo requests

This commit is contained in:
Howl 2016-08-09 23:06:23 +02:00
parent 4f217781cc
commit af691bee1c
3 changed files with 8 additions and 2 deletions

View File

@ -69,7 +69,7 @@ func initialCaretaker(c *gin.Context, f func(md common.MethodData) common.CodeMe
} }
// requests from hanayo should not be rate limited. // requests from hanayo should not be rate limited.
if ip != "127.0.0.1" || c.Request.UserAgent() != "hanayo" { if !(c.Request.Header.Get("H-Key") == cf.HanayoKey && c.Request.UserAgent() == "hanayo") {
perUserRequestLimiter(md.ID(), c.ClientIP()) perUserRequestLimiter(md.ID(), c.ClientIP())
} }

View File

@ -13,11 +13,15 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
var db *sql.DB var (
db *sql.DB
cf common.Conf
)
// Start begins taking HTTP connections. // Start begins taking HTTP connections.
func Start(conf common.Conf, dbO *sql.DB) *gin.Engine { func Start(conf common.Conf, dbO *sql.DB) *gin.Engine {
db = dbO db = dbO
cf = conf
setUpLimiter() setUpLimiter()

View File

@ -18,6 +18,7 @@ type Conf struct {
ListenTo string `description:"The IP/Port combination from which to take connections, e.g. :8080"` ListenTo string `description:"The IP/Port combination from which to take connections, e.g. :8080"`
Unix bool `description:"Bool indicating whether ListenTo is a UNIX socket or an address."` Unix bool `description:"Bool indicating whether ListenTo is a UNIX socket or an address."`
SentryDSN string `description:"thing for sentry whatever"` SentryDSN string `description:"thing for sentry whatever"`
HanayoKey string
} }
var cachedConf *Conf var cachedConf *Conf
@ -36,6 +37,7 @@ func Load() (c Conf, halt bool) {
DSN: "root@/ripple", DSN: "root@/ripple",
ListenTo: ":40001", ListenTo: ":40001",
Unix: false, Unix: false,
HanayoKey: "Potato",
}, "api.conf") }, "api.conf")
fmt.Println("Please compile the configuration file (api.conf).") fmt.Println("Please compile the configuration file (api.conf).")
} }