From 88b69cf358d979642d2aca53c77042bd51749456 Mon Sep 17 00:00:00 2001 From: kongr45gpen Date: Thu, 17 Mar 2016 20:37:11 +0200 Subject: Don't stop handling a request if the connection is broken --- local/handler/GithubHandler.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/local/handler/GithubHandler.py b/local/handler/GithubHandler.py index e1e6394..07665fa 100644 --- a/local/handler/GithubHandler.py +++ b/local/handler/GithubHandler.py @@ -4,6 +4,7 @@ import hmac import json import time import random +import socket import urllib import urllib2 import hashlib @@ -90,11 +91,14 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler): i+=1 - s.send_response(200) - s.send_header('Content-type', 'text/html') - s.end_headers() - s.wfile.write("Thanks, you're awesome.\n") - s.wfile.write(s.path.split('/')) + try: + s.send_response(200) + s.send_header('Content-type', 'text/html') + s.end_headers() + s.wfile.write("Thanks, you're awesome.\n") + s.wfile.write(s.path.split('/')) + except socket.error: + pass if requireCode and receivedcode != configValue('passcode'): # The password is wrong @@ -175,5 +179,16 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler): for irc in world.ircs: irc.queueMsg(ircmsgs.privmsg(channel, msg)) + def finish(self): + try: + if not self.wfile.closed: + self.wfile.flush() + self.wfile.close() + self.rfile.close() + except socket.error: + # An final socket error may have occurred here, such as a broken + # pipe + pass + def log_message(self, format, *args): log.info(format % args) -- cgit v1.2.3