new: implemented request.Header and response.Header methods for HTTP proxy modules (closes #174)

This commit is contained in:
evilsocket 2018-03-16 12:12:13 +01:00
parent 9ffef99811
commit 9d0c7bc405
No known key found for this signature in database
GPG key ID: 1564D7F30393A456
2 changed files with 21 additions and 0 deletions

View file

@ -88,6 +88,16 @@ func (j *JSRequest) WasModified() bool {
return false
}
func (j *JSRequest) Header(name, deflt string) string {
name = strings.ToLower(name)
for _, h := range j.Headers {
if name == strings.ToLower(h.Name) {
return h.Value
}
}
return deflt
}
func (j *JSRequest) ReadBody() string {
raw, err := ioutil.ReadAll(j.req.Body)
if err != nil {

View file

@ -73,6 +73,17 @@ func (j *JSResponse) WasModified() bool {
return false
}
func (j *JSResponse) Header(name, deflt string) string {
name = strings.ToLower(name)
for _, header := range strings.Split(j.Headers, "\n") {
parts := strings.SplitN(core.Trim(header), ":", 2)
if len(parts) == 2 && strings.ToLower(parts[0]) == name {
return parts[1]
}
}
return deflt
}
func (j *JSResponse) ToResponse(req *http.Request) (resp *http.Response) {
resp = goproxy.NewResponse(req, j.ContentType, j.Status, j.Body)
if j.Headers != "" {