Skip to content

Commit 99eb601

Browse files
committed
Update Event module + add destroy method for sockets
1 parent 5e22996 commit 99eb601

4 files changed

Lines changed: 20 additions & 5 deletions

File tree

opensips/event/datagram.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
##
1919

2020
import socket
21-
from .generic import GenericSocket
21+
from .generic_socket import GenericSocket
2222

2323
class Datagram(GenericSocket):
2424
def __init__(self, **kwargs):
@@ -50,3 +50,7 @@ def handle(self, callback, stop):
5050
callback(data)
5151
except BlockingIOError:
5252
pass
53+
54+
def destroy(self):
55+
self.sock.close()
56+
self.sock = None
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,7 @@ def create(self):
3131
@abstractmethod
3232
def handle(self, callback, stop):
3333
pass
34+
35+
@abstractmethod
36+
def destroy(self):
37+
pass

opensips/event/stream.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
##
1919

2020
import socket
21-
from .generic import GenericSocket
21+
from .generic_socket import GenericSocket
2222

2323
class Stream(GenericSocket):
2424
def __init__(self, **kwargs):
@@ -49,3 +49,7 @@ def handle(self, callback, stop):
4949
callback(data)
5050
except BlockingIOError:
5151
pass
52+
53+
def destroy(self):
54+
self.sock.close()
55+
self.sock = None

opensips/event/subscriber.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
## along with this program. If not, see <http://www.gnu.org/licenses/>.
1818
##
1919

20-
from ..mi import MI, OpenSIPSMIException
20+
from ..mi import OpenSIPSMI, OpenSIPSMIException
2121
from .datagram import Datagram
2222
from .stream import Stream
2323
from threading import Thread, Event
@@ -26,7 +26,7 @@ class OpenSIPSEventException(Exception):
2626
pass
2727

2828
class OpenSIPSEvent():
29-
def __init__(self, mi: MI, type: str, **kwargs):
29+
def __init__(self, mi: OpenSIPSMI, type: str, **kwargs):
3030
self.mi = mi
3131
self.kwargs = kwargs
3232

@@ -65,9 +65,12 @@ def unsubscribe(self, event: str):
6565
if ret_val != "OK":
6666
raise OpenSIPSEventException("Failed to unsubscribe from event")
6767

68+
self.stop()
69+
6870
except OpenSIPSMIException as e:
6971
raise e
70-
72+
7173
def stop(self):
7274
self.thread_stop.set()
7375
self.thread.join()
76+
self.socket.destroy()

0 commit comments

Comments
 (0)