Changeset 115

Show
Ignore:
Timestamp:
21/10/08 15:47:00 (3 months ago)
Author:
smoku
Message:

Fixed transport contact presence probe/subscribe handling

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • jggtrans/src/presence.c

    r104 r115  
    247247                } 
    248248                user_save(u); 
     249                s=session_get_by_jid(from,NULL,0); 
     250                if (s){ 
     251                        if (!s->connected){ 
     252                                presence_send(stream,NULL,s->user->jid,0,NULL,"Disconnected",0); 
     253                        } 
     254                        else{ 
     255                                Resource *r=session_get_cur_resource(s); 
     256                                if (r) presence_send(stream,NULL,s->user->jid,s->user->invisible?-1:r->available, 
     257                                                        r->show,r->status,0); 
     258                        } 
     259                        return 0; 
     260                } 
    249261                return 0; 
    250262        } 
     
    430442                        return 0; 
    431443                } 
    432                 else presence_send_unsubscribed(stream,to,from); 
     444                else{ 
     445                        u=user_get_by_jid(from); 
     446                        if(!u) 
     447                                presence_send_unsubscribed(stream,to,from); 
     448                        else 
     449                                /* treat as subscribe */ 
     450                                return presence_subscribe(stream,from,to); 
     451                } 
    433452                return -1; 
    434453        }