From 9a10768710e7f5b53af1d61ba23436c027623ecc Mon Sep 17 00:00:00 2001 From: SunBK201 Date: Sun, 3 Dec 2023 22:07:59 +0800 Subject: [PATCH] feat: log host --- http.go | 11 +++++++++++ main.go | 25 ++++++++++++++----------- ua3f.service | 4 ++-- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/http.go b/http.go index 2cfbd4f..06d85bd 100644 --- a/http.go +++ b/http.go @@ -275,3 +275,14 @@ func (hp *HTTPParser) ContentLength() int64 { hp.contentLengthRead = true return hp.contentLength } + +// Return the value of the Host header +func (hp *HTTPParser) Host() []byte { + if hp.hostRead { + return hp.host + } + + hp.hostRead = true + hp.host, _, _ = hp.FindHeader([]byte("Host")) + return hp.host +} diff --git a/main.go b/main.go index 1954be4..24ad3f7 100644 --- a/main.go +++ b/main.go @@ -197,7 +197,7 @@ func MyCopyBuffer(dst io.Writer, src io.Reader, parser *HTTPParser) { } value, start, end := parser.FindHeader([]byte("User-Agent")) if value != nil && end > start { - printAndLog(fmt.Sprintf("Hit User-Agent: %s", string(value)), logger, syslog.LOG_INFO) + printAndLog(fmt.Sprintf("[%s] Hit User-Agent: %s", string(parser.Host()), string(value)), logger, syslog.LOG_INFO) for i := start; i < end; i++ { buf[i] = 32 } @@ -208,7 +208,7 @@ func MyCopyBuffer(dst io.Writer, src io.Reader, parser *HTTPParser) { buf[start+i] = payloadByte[i] } } else { - printAndLog("not found User-Agent", logger, syslog.LOG_INFO) + printAndLog(fmt.Sprintf("[%s] Not found User-Agent", string(parser.Host())), logger, syslog.LOG_INFO) } bodyLen := int(parser.ContentLength()) if bodyLen == -1 { @@ -257,23 +257,26 @@ func MyCopyBuffer(dst io.Writer, src io.Reader, parser *HTTPParser) { func printAndLog(mes string, logger *syslog.Writer, level syslog.Priority) { fmt.Println(mes) - return + var err error switch level { case syslog.LOG_INFO: - logger.Info(mes) + err = logger.Info(mes) case syslog.LOG_ERR: - logger.Err(mes) + err = logger.Err(mes) case syslog.LOG_DEBUG: - logger.Debug(mes) + err = logger.Debug(mes) case syslog.LOG_WARNING: - logger.Warning(mes) + err = logger.Warning(mes) case syslog.LOG_CRIT: - logger.Crit(mes) + err = logger.Crit(mes) case syslog.LOG_ALERT: - logger.Alert(mes) + err = logger.Alert(mes) case syslog.LOG_EMERG: - logger.Emerg(mes) + err = logger.Emerg(mes) case syslog.LOG_NOTICE: - logger.Notice(mes) + err = logger.Notice(mes) + } + if err != nil { + fmt.Println("syslog error:", err) } } diff --git a/ua3f.service b/ua3f.service index 3cfe3f3..cbd8487 100644 --- a/ua3f.service +++ b/ua3f.service @@ -2,13 +2,13 @@ START=99 start(){ + echo "ua3f is starting" /root/ua3f & - echo "ua3f is start" } stop(){ + echo "ua3f is stopping" killall ua3f - echo "ua3f is stop" } restart(){