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
+5 -6
View File
@@ -67,7 +67,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()
@@ -94,6 +94,7 @@ func (s *Server) authenticate(user, password string) (_rule *Rule, flag, flagGro
}
func (s *Server) getPasvAddressFromCache(ip, pasvAddressTpl string) (pasvAddress string) {
pasvAddress = pasvAddressTpl
if strings.Contains(pasvAddressTpl, ",") {
values, ok := rebindingCache.Get(ip)
if !ok {
@@ -202,8 +203,8 @@ loop:
if pasvAddress = s.getPasvAddressFromCache(ip, _rule.PasvAddress); pasvAddress == "" {
pasvAddress = fmt.Sprintf("%s:%d", s.pasvIP, s.PasvPort)
}
isRedirect = rule.CompileTpl(pasvAddress, vars) != fmt.Sprintf("%s:%d", s.pasvIP, s.PasvPort)
pasvAddress = rule.CompileTpl(pasvAddress, vars)
isRedirect = pasvAddress != fmt.Sprintf("%s:%d", s.pasvIP, s.PasvPort)
case "SIZE":
path += strings.TrimLeft(args, "/")
if _rule == nil || isRedirect || len(_rule.Data) == 0 {
@@ -217,8 +218,6 @@ loop:
case "PASV":
//Just so that ide does not prompt that there may be a nil value
if _rule != nil {
// return rule's pasv_address or default pasv address
pasvAddress := rule.CompileTpl(pasvAddress, vars)
pasvIP, pasvPort, err := net.SplitHostPort(pasvAddress)
if err != nil {
log.Warn("FTP failed to split rule[id:%d] pasv_address(%s) :%s", _rule.ID, pasvAddress, err)
@@ -365,7 +364,7 @@ func (s *Server) Run() {
s.livingLock.Unlock()
}()
if err := s.updateRules(); err != nil {
if err := s.UpdateRules(); err != nil {
log.Error(err.Error())
return
}
+2 -2
View File
@@ -54,7 +54,7 @@ func (r *Rule) CreateOrUpdate() (err error) {
return
}
return GetServer().updateRules()
return GetServer().UpdateRules()
}
// Delete deletes the ftp rule in database and ruleSet
@@ -65,7 +65,7 @@ func (r *Rule) Delete() (err error) {
return
}
return GetServer().updateRules()
return GetServer().UpdateRules()
}
// ListRules lists all ftp rules those satisfy the filter