Neels Hofmeyr | cb50855 | 2019-11-20 12:37:41 +0100 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
| 2 | # vim: shiftwidth=4 tabstop=4 expandtab |
| 3 | import socket |
| 4 | import time |
| 5 | |
| 6 | MSLOOKUP_SOCKET_PATH = '/tmp/mslookup' |
| 7 | |
| 8 | def query_mslookup_socket(query_str, socket_path=MSLOOKUP_SOCKET_PATH): |
| 9 | mslookup_socket = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET) |
| 10 | mslookup_socket.setblocking(True) |
| 11 | mslookup_socket.connect(socket_path) |
| 12 | result = {'result': 'not-found'} |
| 13 | column_names = mslookup_socket.recv(1024).decode('ascii') |
| 14 | if not column_names: |
| 15 | return result |
| 16 | column_names = column_names.split('\t') |
| 17 | mslookup_socket.sendall(query_str.encode('ascii')) |
| 18 | while True: |
| 19 | csv = mslookup_socket.recv(1024).decode('ascii') |
| 20 | if not csv: |
| 21 | break |
| 22 | response = dict(zip(column_names, csv.split('\t'))) |
| 23 | if response.get('result') == 'result': |
| 24 | result = response |
| 25 | print('Response: %r' % response) |
| 26 | return result |
| 27 | |
| 28 | if __name__ == '__main__': |
| 29 | import sys |
| 30 | print( |
| 31 | '\nPlease run separately: osmo-mslookup-client --socket /tmp/mslookup -d\n') |
| 32 | query_str = '1000-5000@sip.voice.12345.msisdn' |
| 33 | if len(sys.argv) > 1: |
| 34 | query_str = sys.argv[1] |
| 35 | print('Final result: %r' % query_mslookup_socket(query_str)) |