mirror of https://github.com/n1nj4sec/pupy.git
Handle cleanups in try/except blocks
This commit is contained in:
parent
10e4c62453
commit
ac3bcc1675
|
@ -17,12 +17,14 @@
|
||||||
import rpyc.core.service
|
import rpyc.core.service
|
||||||
import rpyc
|
import rpyc
|
||||||
import sys
|
import sys
|
||||||
import logging
|
|
||||||
import traceback
|
import traceback
|
||||||
import json
|
import json
|
||||||
import zlib
|
import zlib
|
||||||
import msgpack
|
import msgpack
|
||||||
|
|
||||||
|
from . import getLogger
|
||||||
|
logger = getLogger('service')
|
||||||
|
|
||||||
from pupylib.PupyCredentials import Credentials
|
from pupylib.PupyCredentials import Credentials
|
||||||
|
|
||||||
class PupyService(rpyc.Service):
|
class PupyService(rpyc.Service):
|
||||||
|
@ -105,7 +107,10 @@ class PupyService(rpyc.Service):
|
||||||
def on_disconnect(self):
|
def on_disconnect(self):
|
||||||
self.pupy_srv.remove_client(self)
|
self.pupy_srv.remove_client(self)
|
||||||
for cleanup in self._local_cleanups:
|
for cleanup in self._local_cleanups:
|
||||||
|
try:
|
||||||
cleanup()
|
cleanup()
|
||||||
|
except Exception, e:
|
||||||
|
logger.exception(e)
|
||||||
|
|
||||||
# Compatibility call
|
# Compatibility call
|
||||||
def exposed_set_modules(self, modules):
|
def exposed_set_modules(self, modules):
|
||||||
|
@ -116,11 +121,8 @@ class PupyService(rpyc.Service):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.namespace = self._conn.root.namespace
|
self.namespace = self._conn.root.namespace
|
||||||
except Exception:
|
except Exception, e:
|
||||||
if logging.getLogger().getEffectiveLevel()==logging.DEBUG:
|
logger.exception(e)
|
||||||
raise
|
|
||||||
else:
|
|
||||||
return
|
|
||||||
|
|
||||||
self.execute = self._conn.root.execute
|
self.execute = self._conn.root.execute
|
||||||
try:
|
try:
|
||||||
|
@ -146,7 +148,7 @@ class PupyService(rpyc.Service):
|
||||||
self.pupy_srv.add_client(self)
|
self.pupy_srv.add_client(self)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
logging.error(traceback.format_exc())
|
logger.error(traceback.format_exc())
|
||||||
try:
|
try:
|
||||||
self._conn.close()
|
self._conn.close()
|
||||||
except:
|
except:
|
||||||
|
|
Loading…
Reference in New Issue