Hello, found that if I type in the smpp password incorrectly kannel loops forever trying to reconnect. ie:
[6] DEBUG: SMPP PDU 0x80f3a18 dump: [6] DEBUG: type_name: bind_receiver_resp [6] DEBUG: command_id: 2147483649 = 0x80000001 [6] DEBUG: command_status: 14 = 0x0000000e [6] DEBUG: sequence_number: 732 = 0x000002dc [6] DEBUG: system_id: NULL [6] DEBUG: SMPP PDU dump ends. [6] ERROR: SMPP[xxx]: SMSC rejected login to receive, code 0x0000000e. [6] ERROR: SMPP[xxx]: I/O error or other error. Re-connecting. And so on .. The smsc_smpp.c handle_pdu notices the error (and indeed reports on it) but it's not noticed at the io_thread level so keeps trying. I worked around it by setting smpp->quitting = 1 after the error message in handle_pdu (see patch) which has the effect of shutting down the failing threads (so they don't keep trying). Crude - provided as example only - will look at improving this. Also, in the instance you only have 1 smpp connection which when fails in this way, the bearerbox sits without actually shutting down (ie: doesn't realise there are no active threads and clean up, etc). Should the bearerbox shutdown in this instance? Cheers, Alan -- Alan McNatty <[EMAIL PROTECTED]>
Index: gw/smsc/smsc_smpp.c =================================================================== RCS file: /home/cvs/gateway/gw/smsc/smsc_smpp.c,v retrieving revision 1.25 diff -u -r1.25 smsc_smpp.c --- gw/smsc/smsc_smpp.c 23 Feb 2003 11:35:34 -0000 1.25 +++ gw/smsc/smsc_smpp.c 27 Feb 2003 02:29:38 -0000 @@ -958,6 +958,11 @@ "code 0x%08lx.", octstr_get_cstr(smpp->conn->id), pdu->u.bind_transmitter_resp.command_status); + + /* Need to die here, well just don't keep trying this connection + * if the password doesn't work it never will */ + smpp->quitting = 1; + } else { *pending_submits = 0; smpp->conn->status = SMSCCONN_ACTIVE;