aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-01-09 04:44:41 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-01-09 04:44:41 +0100
commit6726cdd91c697b81432f751b3098e689f17bec82 (patch)
tree593a0cdaa18ac952773fc165443a05152131d26c
parent66ea0e5003364d4c1687e7053b8912fed569600d (diff)
esme_dgsm.py: add --always-fail option for debugging SMPPneels/os4351
-rwxr-xr-xcontrib/dgsm/esme_dgsm.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/contrib/dgsm/esme_dgsm.py b/contrib/dgsm/esme_dgsm.py
index 9e8d6ae..ad9cab8 100755
--- a/contrib/dgsm/esme_dgsm.py
+++ b/contrib/dgsm/esme_dgsm.py
@@ -105,6 +105,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'
@@ -151,12 +154,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