diff options
| author | Jeff Carr <[email protected]> | 2025-09-09 18:02:31 -0500 | 
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-09 18:02:31 -0500 | 
| commit | 3306e3cbbc48eea6eb2666c8f3d5a2f250db46a3 (patch) | |
| tree | d5579bb5269cf72f7733a608ec6f555180c20abd | |
| parent | cd656f489e14ae47f8c2fb4304a58a85037556a2 (diff) | |
| -rw-r--r-- | httpRequest.dump.go | 83 | ||||
| -rw-r--r-- | httpRequest.proto | 3 | ||||
| -rw-r--r-- | reqToPB.go | 10 | 
3 files changed, 96 insertions, 0 deletions
diff --git a/httpRequest.dump.go b/httpRequest.dump.go new file mode 100644 index 0000000..07ac38e --- /dev/null +++ b/httpRequest.dump.go @@ -0,0 +1,83 @@ +package httppb + +import ( +	"fmt" +) + +func (pb *HttpRequest) DumpRemoteAddr() string { +	return pb.RemoteAddr +} + +func (pb *HttpRequest) DumpUserAgent() string { +	var all string +	for param, values := range pb.Query { +		for _, value := range values { +			all += fmt.Sprint(" Query:", param, value) +		} +	} +	// hostname := r.URL.Query().Get("hostname") +	return pb.GetUserAgent() + all +} + +// todo: convert this code +func (pb *HttpRequest) DumpClient() { +	/* +		var host, url, proto, addr, agent string + +		host = r.Host +		url = r.URL.String() +		proto = r.Proto +		addr = r.RemoteAddr +		agent = r.UserAgent() + +		log.Warn(host, proto, addr, url, agent) + +		fmt.Fprintln(accessf, time.Now(), host, proto, addr, url, agent) +		// return + +		fmt.Fprintln(clientf) +		fmt.Fprintln(clientf, time.Now()) +		// Basic request information +		fmt.Fprintln(clientf, "Method:", r.Method) +		fmt.Fprintln(clientf, "URL:", r.URL) +		fmt.Fprintln(clientf, "Protocol:", r.Proto) +		fmt.Fprintln(clientf, "Host:", r.Host) +		fmt.Fprintln(clientf, "Remote Address:", r.RemoteAddr) + +		// Headers +		fmt.Fprintln(clientf, "Headers:") +		for name, values := range r.Header { +			for _, value := range values { +				fmt.Fprintln(clientf, "Headers:", name, value) +			} +		} + +		// Query parameters +		fmt.Fprintln(clientf, "Query Parameters:") +		for param, values := range r.URL.Query() { +			for _, value := range values { +				fmt.Fprintln(clientf, "Query:", param, value) +			} +		} + +		// User-Agent +		fmt.Fprintln(clientf, "User-Agent:", r.UserAgent()) + +		// Content Length +		fmt.Fprintln(clientf, "Content Length:", r.ContentLength) + +		// Cookies +		fmt.Fprintln(clientf, "Cookies:") +		for _, cookie := range r.Cookies() { +			fmt.Fprintln(clientf, cookie.Name, cookie.Value) +		} + +		// Request Body (if applicable) +		if r.Body != nil { +			body, err := ioutil.ReadAll(r.Body) +			if err == nil { +				fmt.Fprintln(clientf, "Body:", string(body)) +			} +		} +	*/ +} diff --git a/httpRequest.proto b/httpRequest.proto index f165c9b..82c04a0 100644 --- a/httpRequest.proto +++ b/httpRequest.proto @@ -25,6 +25,9 @@ message HttpRequest {                                       // HttpRequest repre          bytes                       serverData        = 13; // the server response          int64                       serverDataLen     = 14; // len(data)          repeated string             logs              = 15; // use this to store whatever you want while the whole POST happens +        string                      userAgent         = 16; // client user-agent +        map<string, string>         query             = 17; // r.URL.Query() +        string                      remoteAddr        = 18; // r.RemoteAddr  }  message HttpRequests {                                      // `autogenpb:marshal` `autogenpb:mutex` @@ -53,6 +53,13 @@ func ReqToPB(r *http.Request) (*HttpRequest, error) {  		}  	} +	query := make(map[string]string) +	for param, values := range r.URL.Query() { +		if len(values) > 0 { +			query[param] = strings.Join(values, "\n") +		} +	} +  	msg, err := ioutil.ReadAll(r.Body) // Read the body as []byte  	r.Body.Close()  	// log.Info("TRYING TO MARSHAL bytes:", len(msg), err) @@ -67,6 +74,9 @@ func ReqToPB(r *http.Request) (*HttpRequest, error) {  		ClientData:    msg,  		ClientDataLen: int64(len(msg)),  		Hostname:      r.Header.Get("hostname"), +		UserAgent:     r.UserAgent(), +		Query:         query, +		RemoteAddr:    r.RemoteAddr,  	}  	pb.Route = cleanURL(r.URL.Path)  | 
