feat: add value field to the dns log (#67)

record resolve value of dns log to facilitate the observation of dns rebinding.
This commit is contained in:
Li4n0
2023-05-23 23:27:50 +08:00
committed by GitHub
parent c53ec79ccd
commit 223c14ab33
6 changed files with 38 additions and 16 deletions
+6 -1
View File
@@ -17,6 +17,7 @@ var _ record.Record = (*Record)(nil)
type Record struct {
Domain string `gorm:"index" form:"domain" json:"domain"`
Value string `form:"value" json:"value"`
record.BaseRecord
Rule Rule `gorm:"foreignKey:RuleName;references:Name;constraint:OnUpdate:CASCADE,OnDelete:SET NULL;" form:"-" json:"-" notice:"-"`
@@ -30,7 +31,7 @@ func (r Record) Notice() {
notice.Notice(r)
}
func newRecord(rule *Rule, flag, domain, remoteIp, ipArea string) (r *Record, err error) {
func newRecord(rule *Rule, flag, domain, value, remoteIp, ipArea string) (r *Record, err error) {
r = &Record{
BaseRecord: record.BaseRecord{
Flag: flag,
@@ -39,6 +40,7 @@ func newRecord(rule *Rule, flag, domain, remoteIp, ipArea string) (r *Record, er
RequestTime: time.Now(),
},
Domain: domain,
Value: value,
Rule: *rule,
}
@@ -89,6 +91,9 @@ func Records(c *gin.Context) {
if dnsRecord.RuleName != "" {
db.Where("rule_name = ?", dnsRecord.RuleName)
}
if dnsRecord.Value != "" {
db.Where("address= ?", dnsRecord.Value)
}
//Delete records
if c.Request.Method == http.MethodDelete {