[sr-dev] git:master: modules_k/presence Fixed refresh_watcher function

Peter Dunkley peter.dunkley at crocodile-rcs.com
Fri May 4 11:12:54 CEST 2012


Hi Anca,

I noticed this myself when working on the notify stuff last week.  I
have no idea what this function does.  It appears to be completely
unused.

Peter

On Fri, 2012-05-04 at 12:05 +0300, Anca Vamanu wrote:

> Hi Peter,
> 
> 
> I noticed a synchronization bug in refresh_watcher() function and I
> fixed it. But then I saw that actually this function is not used
> inside presence module anymore and does not seem to be exported
> either. Do you know of any reason why this function is useful?
> Otherwise I will remove it.
> 
> 
> Regards,
> Anca
> 
> 
> On 05/04/2012 11:59 AM, Anca Vamanu wrote: 
> 
> > Module: sip-router
> > Branch: master
> > Commit: ca7f45d98faea9479b86e9206c4e2923a009782a
> > URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ca7f45d98faea9479b86e9206c4e2923a009782a
> > 
> > Author: Anca Vamanu <anca.vamanu at 1and1.ro>
> > Committer: Anca Vamanu <anca.vamanu at 1and1.ro>
> > Date:   Fri May  4 11:57:27 2012 +0300
> > 
> > modules_k/presence Fixed refresh_watcher function
> > 
> > ---
> > 
> >  modules_k/presence/subscribe.c |   40 ++++++++++++++++++++++++++++------------
> >  1 files changed, 28 insertions(+), 12 deletions(-)
> > 
> > diff --git a/modules_k/presence/subscribe.c b/modules_k/presence/subscribe.c
> > index add1581..ae9e442 100644
> > --- a/modules_k/presence/subscribe.c
> > +++ b/modules_k/presence/subscribe.c
> > @@ -2225,9 +2225,10 @@ int refresh_watcher(str* pres_uri, str* watcher_uri, str* event,
> >  {
> >  	unsigned int hash_code;
> >  	subs_t* s, *s_copy;
> > -	pres_ev_t* ev;		
> > +	pres_ev_t* ev;
> >  	struct sip_uri uri;
> >  	str user, domain;
> > +	subs_t *s_array = NULL;
> >  	/* refresh status in subs_htable and send notify */
> >  
> >  	ev=	contains_event(event, NULL);
> > @@ -2262,28 +2263,43 @@ int refresh_watcher(str* pres_uri, str* watcher_uri, str* event,
> >  			s->status= status;
> >  			if(reason)
> >  				s->reason= *reason;
> > -			
> > +
> >  			s_copy= mem_copy_subs(s, PKG_MEM_TYPE);
> >  			if(s_copy== NULL)
> >  			{
> >  				LM_ERR("copying subs_t\n");
> >  				lock_release(&subs_htable[hash_code].lock);
> > -				return -1;
> > +				goto error;
> >  			}
> > -			lock_release(&subs_htable[hash_code].lock);
> > +
> >  			s_copy->local_cseq++;
> > -			if(notify(s_copy, NULL, NULL, 0)< 0)
> > -			{
> > -				LM_ERR("in notify function\n");
> > -				pkg_free(s_copy);
> > -				return -1;
> > -			}
> > -			pkg_free(s_copy);
> > -			lock_get(&subs_htable[hash_code].lock);
> > +			s_copy->next= s_array;
> > +			s_array= s_copy;
> >  		}
> >  		s= s->next;
> >  	}
> > +	lock_release(&subs_htable[hash_code].lock);
> > +
> > +	s = s_array;
> > +	while (s) {
> > +		if(notify(s, NULL, NULL, 0)< 0) {
> > +			LM_ERR("Failed to send Notify\n");
> > +		}
> > +		s_copy = s;
> > +		s = s->next;
> > +		pkg_free(s_copy);
> > +	}
> > +
> >  	return 0;
> > +
> > +error:
> > +	s = s_array;
> > +	while (s) {
> > +		s_copy = s;
> > +		s = s->next;
> > +		pkg_free(s_copy);
> > +	}
> > +	return -1;
> >  }
> >  
> >  int get_db_subs_auth(subs_t* subs, int* found)
> > 
> > 
> > _______________________________________________
> > sr-dev mailing list
> > sr-dev at lists.sip-router.org
> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
> > 
> 
> 


-- 
Peter Dunkley
Technical Director
Crocodile RCS Ltd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20120504/e60595b7/attachment-0001.htm>


More information about the sr-dev mailing list