diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2020-01-09 04:44:41 +0100 |
---|---|---|
committer | Oliver Smith <osmith@sysmocom.de> | 2020-01-30 12:24:08 +0100 |
commit | 177215e5663c8b506e02f33cff835e84519839da (patch) | |
tree | d39504ef58ef0a4b60eff987fb702d97aeeb3872 | |
parent | 757ce9ce3cbcd0148370887da6ffa73c01dd8a37 (diff) |
esme_dgsm.py: add --always-fail option for debugging SMPPosmith/dgsm
Change-Id: Ibacf2676cae40712c89b57ced34085311d9a416d
-rwxr-xr-x | contrib/dgsm/esme_dgsm.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/contrib/dgsm/esme_dgsm.py b/contrib/dgsm/esme_dgsm.py index 75cf93d..9d7e040 100755 --- a/contrib/dgsm/esme_dgsm.py +++ b/contrib/dgsm/esme_dgsm.py @@ -100,6 +100,9 @@ def rx_deliver_sm(pdu): time.sleep(args.sleep) logging.info("Sleep done") + if args.always_fail is not None: + return args.always_fail + result = query_mslookup("smpp.sms", msisdn) if 'v4' not in result or not result['v4']: logging.info('No IPv4 result from mslookup! This example only' @@ -147,12 +150,35 @@ def main(): parser.add_argument('--sleep', default=0, type=float, help='sleep time in seconds before forwarding an SMS,' ' to test multithreading (default: 0)') + parser.add_argument('--always-fail', default=None, metavar='SMPP_ESME_ERRCODE', + help='test delivery failure: always return an error code on Deliver-SM,' + ' pass an smpplib error code name like RDELIVERYFAILURE (see smpplib/consts.py),' + ' or an SMPP error code in hex digits') args = parser.parse_args() logging.basicConfig(level=logging.INFO, format='[%(asctime)s]' ' (%(threadName)s) %(message)s', datefmt="%H:%M:%S") + + if args.always_fail: + resolved = None + name = 'SMPP_ESME_' + args.always_fail + if hasattr(smpplib.consts, name): + resolved = getattr(smpplib.consts, name) + if resolved is None: + try: + resolved = int(args.always_fail, 16) + except ValueError: + resolved = None + if resolved is None: + print('Invalid argument for --always-fail: %r' % args.always_fail) + exit(1) + args.always_fail = resolved + logging.info('--always-fail: returning error code %s to all Deliver-SM' % hex(args.always_fail)) + smpp_bind() if __name__ == "__main__": main() + +# vim: expandtab tabstop=4 shiftwidth=4 |