Re: [PATCH] Race between boxc_sender and smsbox identification

Stipe Tolj <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization Wapme Systems AG
Message-ID <[email protected]>
Hi Robert, 

Robert Galach wrote:
> 
> I found a problem in Kannel gateway (CVS version).
> Let's check scenario. Consider bearerbox and 1 smsbox named "some_box_id".
> 
> 1) Start bearerbox, it is waiting for smsboxes.
> 2) Start smsbox with smsbox_id = "some_box_id", connect to bearerbox.
> 3) In bearerbox struct Boxc is created and made connection to smsbox.
> Default shared list for incoming_sms is set for this smsbox connection.
> 4) Bearebox starts boxc_sender thread for connected smsbox and sender waits
> for incoming_sms in shared list until some msg will arrive.
> 5) Smsbox identify itself as "some_box_id" and new private list for
> incoming_sms is created, but previous cannot be destroyed because it is
> shared.
> 
> But sender is still waiting on shared list!!! And it will wait forever. No
> sms can be sent by smsbox "some_box_id".
> 
> I have patched this bug in local version by adding mutex to struct boxc and
> forcing boxc_sender to wait on this mutex until smsbox will identify itself.
> Then sender starts his real job.
> Changed also smsbox.c to send cmd_identify even if boxc_id is NULL.
> 
> The patch is attached. I hope it removes problem.

+1 from me, patch commited to cvs. 

Thanks a lot! You're mentioned in the ChangeLog hall-of-fame ;)

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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.