Hi, I have attached a patch that addresses the two issues that I mentioned in my previous mail. Could someone test this patch with the current Kannel code base as I have been unable to :-(
The race condition is fixed by locking the SMSCConn flow_mutex when the status of the connection is changed. The issue of the driver not accepting messages occurs when the receiver thread disconnects, the connection status goes from SMSCCONN_ACTIVE to SMSCCONN_RECONNECTING. The status is changed to SMSCCONN_ACTIVE_RECV when the receiver is back online. What should the smscconn status be when the receiver is offline and the transmitter is online or vice versa? If it is SMSCCONN_RECONNECTING then no messages can be sent, if it is SMSCCONN_ACTIVE then messages can be sent but the status page shows no problem with the receiver connection being down. The approach I have taken is to set the status to be SMSCCONN_RECONNECTING when either the transmitter or receiver go down. This allows an administrator to see the problem immediately. Plus I did not want to make changes to the SMSCConn module for just the SMPP driver. Any comments or suggestions? Michael. ANAM Wireless Internet Solutions http://www.anam.com mailto:[EMAIL PROTECTED] +353 1 284 7555 Castle Yard, Saint Patrick's Road, Dalkey, County Dublin, Ireland > -----Original Message----- > From: Indrek Mandre [mailto:[EMAIL PROTECTED]] > Sent: 21 January 2003 17:40 > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: Re: Notice of issue in SMPP Driver > > > Is there a patch for this? What is the status of this bug? > And the race > condition? > I've had cases of similar behaviour where the driver fails to send > messages out > and nothing else but a restart helps. > > I understood from the following messages that this is a > fundamental problem > with the smpp driver. How to fix this? > > Regards, > Indrek > > > Michael Mulcahy wrote: > > >Hi All, > > > >There is a bug in the current SMPP driver that stops the driver from > >accepting messages to be submitted to the SMSC. > > > >Scenario: > >SMPP SMSC configured as receiver and transmitter, transmitter and > >receiver connected and bound successfully. > >1) Receiver SMPP connection disconnects > >2) SMPP SMSC status changed to SMSCCONN_RECONNECTING > >3) Receiver SMPP connection reconnects to SMSC after reconnect delay > > and sends bind_receiver pdu > >4) In handling of bind_receiver_resp the status is incorrectly set to > > SMSCCONN_ACTIVE_RECV as the previous status was > SMSCCONN_RECONNECTING > > (This does not take into account that the transmitter is still > >successfully > > connected) > >5) Now the driver cannot receive any messages for submission to SMSC > > as status is not SMSCCONN_ACTIVE. > > > >There also appears to be a potential race condition in the > >handling of the bind_transmitter_resp and the > bind_receiver_resp pdus, > >the status variable is modified in both places and is not protected. > > > >Regards, > >Michael Mulcahy. > > > >ANAM Wireless Internet Solutions > >http://www.anam.com mailto:[EMAIL PROTECTED] > >+353 1 284 7555 > >Castle Yard, Saint Patrick's Road, Dalkey, County Dublin, Ireland > > > > > > > >
smpp_patch
Description: Binary data
