diff --git a/sippy/Udp_server.py b/sippy/Udp_server.py index e487e9b71..cb14529ce 100755 --- a/sippy/Udp_server.py +++ b/sippy/Udp_server.py @@ -126,7 +126,10 @@ def run(self): continue if self.userv.uopts.family == socket.AF_INET6: address = ('[%s]' % address[0], address[1]) - ED2.callFromThread(self.userv.handle_read, data, address, rtime) + if not self.userv.uopts.direct_dispatch: + ED2.callFromThread(self.userv.handle_read, data, address, rtime) + else: + self.userv.handle_read(data, address, rtime) self.userv = None _DEFAULT_FLAGS = socket.SO_REUSEADDR @@ -137,6 +140,7 @@ def run(self): class Udp_server_opts(object): laddress = None data_callback = None + direct_dispatch = False family = None flags = _DEFAULT_FLAGS nworkers = _DEFAULT_NWORKERS