release 0.1.3-beta (#19)

Co-authored-by: E99p1ant <[email protected]>
This commit is contained in:
Li4n0
2021-05-25 20:41:37 +08:00
committed by GitHub
co-authored by E99p1ant
parent 1144f67d37
commit cbbf3ba0ba
68 changed files with 640 additions and 197 deletions
+7 -8
View File
@@ -83,7 +83,7 @@ func (s *Server) getRules() []*Rule {
return s.rules
}
func (s *Server) updateRules() error {
func (s *Server) UpdateRules() error {
db := database.DB.Model(new(Rule))
defer s.rulesLock.Unlock()
s.rulesLock.Lock()
@@ -116,7 +116,7 @@ func (s *Server) Restart() {
}
func (s *Server) Run() {
if err := s.updateRules(); err != nil {
if err := s.UpdateRules(); err != nil {
log.Warn(err.Error())
}
for {
@@ -156,8 +156,12 @@ func compileTpl(c *gin.Context, tpl string, vars map[string]string) (compiled st
func (s *Server) Receive(c *gin.Context) {
u := c.Request.URL.String()
raw, err := getRawRequest(c.Request)
if err != nil {
log.Warn(err.Error())
}
for _, _rule := range s.getRules() {
flag, flagGroup, vars := _rule.Match(u)
flag, flagGroup, vars := _rule.Match(string(raw))
if flag == "" {
continue
}
@@ -172,11 +176,6 @@ func (s *Server) Receive(c *gin.Context) {
delete(c.Request.Header, s.IpHeader)
}
raw, err := getRawRequest(c.Request)
if err != nil {
log.Warn(err.Error())
}
// create new record
r, err := NewRecord(_rule, flag, c.Request.Method, u, ip, area, string(raw))
if err != nil {
+4 -4
View File
@@ -14,7 +14,7 @@ var _ record.Record = (*Record)(nil)
type Record struct {
Method string `gorm:"index" form:"method" json:"method"`
Path string `form:"path" json:"path"`
URI string `form:"uri" json:"uri"`
record.BaseRecord
RawRequest string `json:"raw_request" notice:"-"`
Rule Rule `gorm:"foreignKey:RuleName;references:Name;constraint:OnUpdate:CASCADE,OnDelete:SET NULL;" form:"-" json:"-" notice:"-"`
@@ -37,7 +37,7 @@ func NewRecord(rule *Rule, flag, method, url, ip, area, raw string) (r *Record,
RequestTime: time.Now(),
},
Method: method,
Path: url,
URI: url,
RawRequest: raw,
Rule: *rule,
}
@@ -78,8 +78,8 @@ func ListRecords(c *gin.Context) {
if httpRecord.Method != "" {
db.Where("method = ?", httpRecord.Method)
}
if httpRecord.Path != "" {
db.Where("path like ?", "%"+httpRecord.Path+"%")
if httpRecord.URI != "" {
db.Where("path like ?", "%"+httpRecord.URI+"%")
}
if httpRecord.RemoteIP != "" {
db.Where("remote_ip = ?", httpRecord.RemoteIP)
+2 -2
View File
@@ -58,7 +58,7 @@ func (r *Rule) CreateOrUpdate() (err error) {
return
}
err = GetServer().updateRules()
err = GetServer().UpdateRules()
return err
}
@@ -70,7 +70,7 @@ func (r *Rule) Delete() (err error) {
return
}
err = GetServer().updateRules()
err = GetServer().UpdateRules()
return err
}