[PATCH] mncc-python[master]: mncc: Make it possible to build a MNCC server for testing

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Holger Freyther gerrit-no-reply at lists.osmocom.org
Sat Apr 29 12:20:43 UTC 2017


Review at  https://gerrit.osmocom.org/2451

mncc: Make it possible to build a MNCC server for testing

For manual testing the osmo-sip-connector it is nice to run a custom
MNCC server to mock certain behavior. Refactor the socket class to
share code between client/server.

Change-Id: I8387fe1687557c6a1a26ff1e0cc9dbff3087aa82
---
M mncc_sock.py
1 file changed, 32 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/mncc-python refs/changes/51/2451/1

diff --git a/mncc_sock.py b/mncc_sock.py
index 48da514..3d29691 100644
--- a/mncc_sock.py
+++ b/mncc_sock.py
@@ -52,21 +52,13 @@
                                 plan = num_plan, present = num_present,
                                 screen = num_screen)
 
-class MnccSocket(object):
-    def __init__(self, address = '/tmp/bsc_mncc'):
-        self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET)
-        print 'connecting to %s' % address
-        try:
-            self.sock.connect(address)
-        except socket.error, errmsg:
-            print >>sys.stderr, errmsg
-            sys.exit(1)
-
-        # FIXME: parse the HELLO message
-        msg = self.recv()
-
+class MnccSocketBase(object):
     def send(self, msg):
         return self.sock.sendall(msg.send())
+
+    def send_msg(self, msg):
+        data = buffer(msg)[:]
+        return self.sock.sendall(data)
 
     def recv(self):
         data = self.sock.recv(1500)
@@ -76,3 +68,30 @@
                ms = mncc_rtp_msg()
                ms.receive(data)
         return ms
+
+class MnccSocket(MnccSocketBase):
+    def __init__(self, address = '/tmp/bsc_mncc'):
+        super(MnccSocketBase, self).__init__()
+        self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET)
+        print('connecting to %s' % address)
+        try:
+            self.sock.connect(address)
+        except socket.error as errmsg:
+            sys.stderr.write("%s\n" % errmsg)
+            sys.exit(1)
+
+        # FIXME: parse the HELLO message
+        msg = self.recv()
+
+class MnccSocketServer(object):
+    def __init__(self, address = '/tmp/bsc_mncc'):
+        os.unlink(address)
+        self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET)
+        self.sock.bind(address)
+        self.sock.listen(5)
+
+    def accept(self):
+        (fd,_) = self.sock.accept()
+        sock = MnccSocketBase()
+        sock.sock = fd
+        return sock

-- 
To view, visit https://gerrit.osmocom.org/2451
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8387fe1687557c6a1a26ff1e0cc9dbff3087aa82
Gerrit-PatchSet: 1
Gerrit-Project: mncc-python
Gerrit-Branch: master
Gerrit-Owner: Holger Freyther <holger at freyther.de>



More information about the gerrit-log mailing list