[flashproxy/master] Factor out common code in returning logged errors.

commit b16cbe58788f56594b0da7a9c7d86fbbbf03adbc Author: David Fifield <david@bamsoftware.com> Date: Wed Oct 16 21:51:47 2013 -0700 Factor out common code in returning logged errors. Adapted from "report more detailed errors and show stacktraces when unsafe logging" https://github.com/infinity0/flashproxy/commit/c1af35b2e2d57cb8850b1cf345d29... --- facilitator/facilitator | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/facilitator/facilitator b/facilitator/facilitator index 27d0f02..dfa5660 100755 --- a/facilitator/facilitator +++ b/facilitator/facilitator @@ -199,9 +199,7 @@ class Handler(SocketServer.StreamRequestHandler): try: command, params = fac.parse_transaction(line[:-1]) except ValueError, e: - log("fac.parse_transaction: %s" % e) - self.send_error() - return False + return self.error("fac.parse_transaction: %s" % e) if command == "GET": return self.do_GET(params) @@ -217,25 +215,24 @@ class Handler(SocketServer.StreamRequestHandler): def send_error(self): print >> self.wfile, "ERROR" + def error(self, log_msg): + log(log_msg) + self.send_error() + return False + def do_GET(self, params): proxy_spec = fac.param_first("FROM", params) if proxy_spec is None: - log(u"GET missing FROM param") - self.send_error() - return False + return self.error(u"GET missing FROM param") try: proxy_addr = fac.parse_addr_spec(proxy_spec, defport=0) except ValueError, e: - log(u"syntax error in proxy address %s: %s" % (safe_str(repr(proxy_spec)), safe_str(repr(str(e))))) - self.send_error() - return False + return self.error(u"syntax error in proxy address %s: %s" % (safe_str(repr(proxy_spec)), safe_str(repr(str(e))))) try: reg = get_reg_for_proxy(proxy_addr) except Exception, e: - log(u"error getting reg for proxy address %s: %s" % (safe_str(repr(proxy_spec)), safe_str(repr(str(e))))) - self.send_error() - return False + return self.error(u"error getting reg for proxy address %s: %s" % (safe_str(repr(proxy_spec)), safe_str(repr(str(e))))) check_back_in = get_check_back_in_for_proxy(proxy_addr) if reg: log(u"proxy gets %s, relay %s (now %d)" % @@ -249,25 +246,19 @@ class Handler(SocketServer.StreamRequestHandler): def do_PUT(self, params): client_spec = fac.param_first("CLIENT", params) if client_spec is None: - log(u"PUT missing CLIENT param") - self.send_error() - return False + return self.error(u"PUT missing CLIENT param") # FROM try: reg = Reg.parse(client_spec) except ValueError, e: - log(u"syntax error in %s: %s" % (safe_str(repr(client_spec)), safe_str(repr(str(e))))) - self.send_error() - return False + return self.error(u"syntax error in %s: %s" % (safe_str(repr(client_spec)), safe_str(repr(str(e))))) try: ok = put_reg(reg) except Exception, e: - log(u"error putting reg %s: %s" % (safe_str(repr(client_spec)), safe_str(repr(str(e))))) - self.send_error() - return False + return self.error(u"error putting reg %s: %s" % (safe_str(repr(client_spec)), safe_str(repr(str(e))))) if ok: log(u"client %s (now %d)" % (safe_str(unicode(reg)), num_regs())) else:
participants (1)
-
dcf@torproject.org