Re: bug in smsc_smpp.c login failure
Alexander Malysh <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Organization | Centrium GmbH |
| Message-ID | <[email protected]> |
Hi, what about attached patch ? Am Donnerstag, 27. Februar 2003 10:30 schrieb Stipe Tolj: > Alan McNatty wrote: > > On Thu, 2003-02-27 at 18:54, Nisan Bloch wrote: > > > Hi > > > > > > At 03:46 PM 2/27/03 +1300, Alan McNatty wrote: > > > >Hello, > > > > > > > >found that if I type in the smpp password incorrectly kannel loops > > > >forever trying to reconnect. ie: > > > > > > -1 from me > > > In the current form this path will not allow any retries for any sort > > > of bind error. eg what happens if there is a temporary connectivity > > > issue, or the SMPP server is down for a short while/ > > > > What I'm trying highlight is that there is a gap in logic .. > > Currently regardless of the type of error we continually retry to bind. > > If we specifically receive an error indicating the password is invalid > > the SMSC is obviously up but we may as well kill the thread. > > yep, that's true in some sense. Trying to reconnect forever while we > get the error information from the SMSC that we can't login with that > credentials *could* be considered as login abuse :) > > At least I would consider this if our SMPP clients would hammer our > SMPP server with invalid credentials. > > Stipe > > [email protected] > ------------------------------------------------------------------- > Wapme Systems AG > > Vogelsanger Weg 80 > 40470 Düsseldorf > > Tel: +49-211-74845-0 > Fax: +49-211-74845-299 > > E-Mail: [email protected] > Internet: http://www.wapme-systems.de > ------------------------------------------------------------------- > wapme.net - wherever you are -- Best regards / Mit besten Grüßen aus Köln Dipl.-Ing. Alexander Malysh ___________________________________________ Centrium GmbH Ehrenstraße 2 50672 Köln Fon: +49 (0221) 277 49 240 Fax: +49 (0221) 277 49 109 email: [email protected] web: www.centrium.de msn: [email protected] icq: 98063111
smsc_smpp.c.diff
(text/x-diff, 2.1 KB)
Index: gw/smsc/smsc_smpp.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsc/smsc_smpp.c,v
retrieving revision 1.25
diff -a -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 10:25:35 -0000
@@ -62,6 +62,8 @@
*/
enum {
+ SMPP_ESME_RINVPASWD = 0x0000000E,
+ SMPP_ESME_RINVSYSID = 0x0000000F,
SMPP_ESME_RMSGQFUL = 0x00000014,
SMPP_ESME_RTHROTTLED = 0x00000058,
SMPP_ESME_RX_T_APPN = 0x00000064,
@@ -958,6 +960,9 @@
"code 0x%08lx.",
octstr_get_cstr(smpp->conn->id),
pdu->u.bind_transmitter_resp.command_status);
+ if (pdu->u.bind_transmitter_resp.command_status == SMPP_ESME_RINVSYSID ||
+ pdu->u.bind_transmitter_resp.command_status == SMPP_ESME_RINVPASWD)
+ smpp->quitting = 1;
} else {
*pending_submits = 0;
smpp->conn->status = SMSCCONN_ACTIVE;
@@ -972,6 +977,9 @@
"code 0x%08lx.",
octstr_get_cstr(smpp->conn->id),
pdu->u.bind_transceiver_resp.command_status);
+ if (pdu->u.bind_transceiver_resp.command_status == SMPP_ESME_RINVSYSID ||
+ pdu->u.bind_transceiver_resp.command_status == SMPP_ESME_RINVPASWD)
+ smpp->quitting = 1;
} else {
*pending_submits = 0;
smpp->conn->status = SMSCCONN_ACTIVE;
@@ -986,6 +994,9 @@
"code 0x%08lx.",
octstr_get_cstr(smpp->conn->id),
pdu->u.bind_receiver_resp.command_status);
+ if (pdu->u.bind_receiver_resp.command_status == SMPP_ESME_RINVSYSID ||
+ pdu->u.bind_receiver_resp.command_status == SMPP_ESME_RINVPASWD)
+ smpp->quitting = 1;
} else {
/* set only resceive status if no transmitt is bind */
if (smpp->conn->status != SMSCCONN_ACTIVE) {