Shut mitmdump down gracefully on SIGTERM.

This is a hack at the moment, but needs must.
This commit is contained in:
Aldo Cortesi 2012-04-15 10:35:19 +12:00
parent e5c076ab4e
commit 2162ce1ae3
2 changed files with 12 additions and 1 deletions

View File

@ -214,6 +214,11 @@ class DumpMaster(flow.FlowMaster):
self._process_flow(f)
return f
def shutdown(self):
if self.o.wfile:
self.wfile.fo.close()
return flow.FlowMaster.shutdown(self)
# begin nocover
def run(self):
if self.o.rfile and not self.o.keepserving:

View File

@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import sys, signal
from libmproxy import proxy, dump, cmdline
from libmproxy.version import VERSION
from optparse import OptionParser
@ -62,9 +62,15 @@ if __name__ == '__main__':
try:
m = dump.DumpMaster(server, dumpopts, filt)
def cleankill(*args, **kwargs):
m.shutdown()
signal.signal(signal.SIGTERM, cleankill)
m.run()
except dump.DumpError, e:
print >> sys.stderr, "mitmdump:", e
sys.exit(1)
except KeyboardInterrupt:
pass