print traceback for js errors

This commit is contained in:
yungtravla 2018-05-10 01:11:32 +10:00 committed by GitHub
parent 58daec15ba
commit 46f3d09612
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -71,13 +71,13 @@ func LoadHttpProxyScript(path string, sess *session.Session) (err error, s *Http
func (s *HttpProxyScript) doRequestDefines(req *http.Request) (err error, jsreq *JSRequest, jsres *JSResponse) { func (s *HttpProxyScript) doRequestDefines(req *http.Request) (err error, jsreq *JSRequest, jsres *JSResponse) {
jsreq = NewJSRequest(req) jsreq = NewJSRequest(req)
if err = s.VM.Set("req", jsreq); err != nil { if err = s.VM.Set("req", jsreq); err != nil {
log.Error("Error while defining request: %s", err) log.Error( "Error while defining request: %s", err.(*otto.Error).String() )
return return
} }
jsres = NewJSResponse(nil) jsres = NewJSResponse(nil)
if err = s.VM.Set("res", jsres); err != nil { if err = s.VM.Set("res", jsres); err != nil {
log.Error("Error while defining response: %s", err) log.Error( "Error while defining response: %s", err.(*otto.Error).String() )
return return
} }
return return
@ -86,13 +86,13 @@ func (s *HttpProxyScript) doRequestDefines(req *http.Request) (err error, jsreq
func (s *HttpProxyScript) doResponseDefines(res *http.Response) (err error, jsreq *JSRequest, jsres *JSResponse) { func (s *HttpProxyScript) doResponseDefines(res *http.Response) (err error, jsreq *JSRequest, jsres *JSResponse) {
jsreq = NewJSRequest(res.Request) jsreq = NewJSRequest(res.Request)
if err = s.VM.Set("req", jsreq); err != nil { if err = s.VM.Set("req", jsreq); err != nil {
log.Error("Error while defining request: %s", err) log.Error( "Error while defining request: %s", err.(*otto.Error).String() )
return return
} }
jsres = NewJSResponse(res) jsres = NewJSResponse(res)
if err = s.VM.Set("res", jsres); err != nil { if err = s.VM.Set("res", jsres); err != nil {
log.Error("Error while defining response: %s", err) log.Error( "Error while defining response: %s", err.(*otto.Error).String() )
return return
} }
@ -101,7 +101,7 @@ func (s *HttpProxyScript) doResponseDefines(res *http.Response) (err error, jsre
func (s *HttpProxyScript) doCommandDefines(cmd string) (err error) { func (s *HttpProxyScript) doCommandDefines(cmd string) (err error) {
if err = s.VM.Set("cmd", cmd); err != nil { if err = s.VM.Set("cmd", cmd); err != nil {
log.Error("Error while defining cmd: %s", err) log.Error( "Error while defining cmd: %s", err.(*otto.Error).String() )
} }
return return
} }
@ -114,12 +114,12 @@ func (s *HttpProxyScript) OnRequest(original *http.Request) (jsreq *JSRequest, j
defer s.Unlock() defer s.Unlock()
if err, jsreq, jsres = s.doRequestDefines(original); err != nil { if err, jsreq, jsres = s.doRequestDefines(original); err != nil {
log.Error("Error while running bootstrap definitions: %s", err) log.Error( "Error while running bootstrap definitions: %s", err.(*otto.Error).String() )
return nil, nil return nil, nil
} }
if _, err = s.VM.Run(s.onRequestScript); err != nil { if _, err = s.VM.Run(s.onRequestScript); err != nil {
log.Error("Error while executing onRequest callback: %s", err) log.Error( "Error while executing onRequest callback: %s", err.(*otto.Error).String() )
return nil, nil return nil, nil
} }
@ -143,12 +143,12 @@ func (s *HttpProxyScript) OnResponse(res *http.Response) (jsreq *JSRequest, jsre
defer s.Unlock() defer s.Unlock()
if err, jsreq, jsres = s.doResponseDefines(res); err != nil { if err, jsreq, jsres = s.doResponseDefines(res); err != nil {
log.Error("Error while running bootstrap definitions: %s", err) log.Error( "Error while running bootstrap definitions: %s", err.(*otto.Error).String() )
return nil, nil return nil, nil
} }
if _, err = s.VM.Run(s.onResponseScript); err != nil { if _, err = s.VM.Run(s.onResponseScript); err != nil {
log.Error("Error while executing onRequest callback: %s", err) log.Error( "Error while executing onRequest callback: %s", err.(*otto.Error).String() )
return nil, nil return nil, nil
} }
@ -167,12 +167,12 @@ func (s *HttpProxyScript) OnCommand(cmd string) bool {
defer s.Unlock() defer s.Unlock()
if err := s.doCommandDefines(cmd); err != nil { if err := s.doCommandDefines(cmd); err != nil {
log.Error("Error while running bootstrap onCommand definitions: %s", err) log.Error( "Error while running bootstrap onCommand definitions: %s", err.(*otto.Error).String() )
return false return false
} }
if ret, err := s.VM.Run(s.onCommandScript); err != nil { if ret, err := s.VM.Run(s.onCommandScript); err != nil {
log.Error("Error while executing onCommand callback: %s", err) log.Error( "Error while executing onCommand callback: %s", err.(*otto.Error).String() )
return false return false
} else if v, err := ret.ToBoolean(); err == nil { } else if v, err := ret.ToBoolean(); err == nil {
return v return v