Skip to content

Commit

Permalink
Added logger
Browse files Browse the repository at this point in the history
  • Loading branch information
SakiiR committed Oct 9, 2019
1 parent 3cb6686 commit be31cce
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 13 deletions.
9 changes: 9 additions & 0 deletions cmd/rrequest/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import (
"net/url"
"os"

"github.com/sirupsen/logrus"

"github.com/SakiiR/ReduceRequest/internal/pkg/config"
rparser "github.com/SakiiR/ReduceRequest/internal/pkg/parser"
"github.com/SakiiR/ReduceRequest/internal/pkg/reducer"
Expand All @@ -32,13 +34,19 @@ func main() {
proxyStr := parser.String("x", "http-proxy", &argparse.Options{Required: false, Help: "HTTP proxy to send the requests through"})
forceSSL := parser.Flag("s", "ssl", &argparse.Options{Required: false, Help: "Forces SSL"})
k := parser.Flag("k", "disable-check-cert", &argparse.Options{Required: false, Help: "Disable SSL cert checks"})
v := parser.Flag("v", "verbose", &argparse.Options{Required: false, Help: "Add debug output"})

err := parser.Parse(os.Args)
if err != nil {
fmt.Print(parser.Usage(err))
return
}

logrus.SetLevel(logrus.InfoLevel)
if *v {
logrus.SetLevel(logrus.DebugLevel)
}

// Configure HTTP Client Transport configuration
cfg := &config.Config{RequestFile: requestFile, ForceSSL: *forceSSL}
cfg.Transport = http.DefaultTransport.(*http.Transport)
Expand All @@ -54,6 +62,7 @@ func main() {

p := rparser.Parser{Config: cfg}

logrus.Debug("Initializing ...")
p.Init()

reducer.ReduceRequest(&p)
Expand Down
10 changes: 6 additions & 4 deletions internal/pkg/parser/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (
"net/http"
"net/http/httputil"

"github.com/sirupsen/logrus"

"github.com/SakiiR/ReduceRequest/internal/pkg/config"
)

Expand All @@ -26,13 +28,13 @@ func (parser *Parser) Init() error {

req, err := http.ReadRequest(buf)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to read request file: '%s'", err))
logrus.Warn("Failed to read request file: '%s'", err)
return err
}

body, err := ioutil.ReadAll(buf)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to read body: '%s'", err))
logrus.Warn("Failed to read body: '%s'", err)
return err
}

Expand Down Expand Up @@ -64,7 +66,7 @@ func (parser *Parser) Init() error {
func (parser *Parser) Do(request *http.Request) (*http.Response, error) {
resp, err := parser.Client.Do(request)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to communicate with the server: '%s'", err))
logrus.Warn("Failed to communicate with the server: '%s'", err)
return nil, err
}

Expand All @@ -77,7 +79,7 @@ func (parser *Parser) Do(request *http.Request) (*http.Response, error) {
func DumpRequestToStdout(request *http.Request) error {
data, err := httputil.DumpRequest(request, true)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to dump request: %s", err))
logrus.Warn("Failed to dump request: %s", err)
return err
}

Expand Down
24 changes: 15 additions & 9 deletions internal/pkg/reducer/reducer.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (
"net/http/httputil"
"strings"

"github.com/sirupsen/logrus"

"github.com/SakiiR/ReduceRequest/internal/pkg/parser"
)

Expand All @@ -19,9 +21,9 @@ func reduceURIParameters(request *http.Request, parser *parser.Parser) http.Requ

status, _ := validateResponse(parser.InitialResponse, request, parser)
if status == true {
fmt.Println(fmt.Sprintf("Ok, parameter %s hasn't impact on response", key))
logrus.Info(fmt.Sprintf("Ok, parameter %s hasn't impact on response", key))
} else {
fmt.Println(fmt.Sprintf("Ok, parameter %s has impact on response", key))
logrus.Info(fmt.Sprintf("Ok, parameter %s has impact on response", key))
for _, value := range values {
params.Add(key, value)
}
Expand All @@ -41,10 +43,10 @@ func reduceHeaders(request *http.Request, parser *parser.Parser) http.Request {

status, _ := validateResponse(parser.InitialResponse, request, parser)
if status == true {
fmt.Println(fmt.Sprintf("Ok, header %s hasn't impact on response", key))
logrus.Info(fmt.Sprintf("Ok, header %s hasn't impact on response", key))
} else {

fmt.Println(fmt.Sprintf("Ok, header %s has impact on response", key))
logrus.Info(fmt.Sprintf("Ok, header %s has impact on response", key))
for _, value := range values {
request.Header.Add(key, value)
}
Expand Down Expand Up @@ -81,9 +83,9 @@ func reduceCookies(request *http.Request, parser *parser.Parser) http.Request {

status, _ := validateResponse(parser.InitialResponse, request, parser)
if status == true {
fmt.Println(fmt.Sprintf("Ok, cookie %s hasn't impact on response", cookie.Name))
logrus.Info(fmt.Sprintf("Ok, cookie %s hasn't impact on response", cookie.Name))
} else {
fmt.Println(fmt.Sprintf("Ok, cookie %s has an impact on response", cookie.Name))
logrus.Info(fmt.Sprintf("Ok, cookie %s has an impact on response", cookie.Name))
cookie.Value = valueSave
request.Header.Set("Cookie", serializeCookies(cookies))
}
Expand All @@ -94,9 +96,13 @@ func reduceCookies(request *http.Request, parser *parser.Parser) http.Request {

// ReduceRequest reduces request
func ReduceRequest(parser *parser.Parser) (*http.Request, error) {
logrus.Info("Reducing request...")
r := *parser.Request
logrus.Debug("Reducing request URI parameters")
r = reduceURIParameters(&r, parser)
logrus.Debug("Reducing request Cookies")
r = reduceCookies(&r, parser)
logrus.Debug("Reducing request Headers")
r = reduceHeaders(&r, parser)
// TODO: iterate over form parameters if form
// TODO: iterate over json parameters if json
Expand All @@ -113,7 +119,7 @@ func DumpRequestToStdout(request *http.Request) error {

data, err := httputil.DumpRequest(request, true)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to dump request: %s", err))
logrus.Warn(fmt.Sprintf("Failed to dump request: %s", err))
return err
}

Expand All @@ -131,13 +137,13 @@ func validateResponse(initialResponse *http.Response, request *http.Request, par

data1, err := httputil.DumpResponse(initialResponse, true)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to dump response 1: %s", err))
logrus.Warn(fmt.Sprintf("Failed to dump response 1: %s", err))
return false, err
}

data2, err := httputil.DumpResponse(response, true)
if err != nil {
fmt.Println(fmt.Sprintf("Failed to dump response 2: %s", err))
logrus.Warn(fmt.Sprintf("Failed to dump response 2: %s", err))
return false, err
}

Expand Down

0 comments on commit be31cce

Please sign in to comment.