Changeset 133

Show
Ignore:
Timestamp:
26/10/08 19:19:54 (3 months ago)
Author:
smoku
Message:

Minor fixes in session handling

Location:
jggtrans/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • jggtrans/src/sessions.c

    r129 r133  
    295295} 
    296296 
     297void session_broken(Session *s){ 
     298 
     299        if (s->req_id){ 
     300                jabber_iq_send_error(s->s,s->jid,NULL,s->req_id,502,_("Remote Server Error")); 
     301        } 
     302        else{ 
     303                GList *it; 
     304                presence_send(s->s,NULL,s->user->jid,0,NULL,"Connection broken",0); 
     305                for(it=s->user->contacts;it;it=it->next){ 
     306                        Contact *c=(Contact *)it->data; 
     307 
     308                        if (!GG_S_NA(c->status) && c->status!=-1){ 
     309                                char *ujid; 
     310                                ujid=jid_build_full(c->uin); 
     311                                presence_send(s->s,ujid,s->user->jid,0,NULL,"Transport disconnected",0); 
     312                                g_free(ujid); 
     313                        } 
     314                } 
     315        } 
     316        s->connected=0; 
     317        session_schedule_reconnect(s); 
     318        session_remove(s); 
     319} 
     320 
    297321gboolean session_error(Session *s){ 
    298322GgServer *serv; 
     
    327351                        return FALSE; 
    328352 
    329         s->timeout_func=0; 
    330         g_warning(N_("Session timeout for %s"),s->jid); 
    331  
    332353        session_broken(s); 
    333354        return FALSE; 
     
    342363        serv=(GgServer*)s->current_server->data; 
    343364        user_load_locale(s->user); 
     365 
     366        s->timeout_func=0; 
     367        g_warning(N_("Session timeout for %s"),s->jid); 
    344368 
    345369        if(serv->port!=1){ 
     
    354378        return session_error(s); 
    355379} 
    356  
    357 void session_broken(Session *s){ 
    358  
    359         if (s->req_id){ 
    360                 jabber_iq_send_error(s->s,s->jid,NULL,s->req_id,502,_("Remote Server Error")); 
    361         } 
    362         else{ 
    363                 GList *it; 
    364                 presence_send(s->s,NULL,s->user->jid,0,NULL,"Connection broken",0); 
    365                 for(it=s->user->contacts;it;it=it->next){ 
    366                         Contact *c=(Contact *)it->data; 
    367  
    368                         if (!GG_S_NA(c->status) && c->status!=-1){ 
    369                                 char *ujid; 
    370                                 ujid=jid_build_full(c->uin); 
    371                                 presence_send(s->s,ujid,s->user->jid,0,NULL,"Transport disconnected",0); 
    372                                 g_free(ujid); 
    373                         } 
    374                 } 
    375         } 
    376         s->connected=0; 
    377         session_schedule_reconnect(s); 
    378         session_remove(s); 
    379 } 
    380  
    381380 
    382381gboolean session_ping(gpointer data){ 
  • jggtrans/src/users.c

    r120 r133  
    214214 
    215215                userlist=xmlnode_insert_tag(xml,"userlist"); 
    216                 for(it=g_list_first(u->contacts);it;it=it->next){ 
     216                for(it=g_list_first(u->contacts);it;it=g_list_next(it)){ 
    217217                        c=(Contact *)it->data; 
    218218                        ctag=xmlnode_insert_tag(userlist,"contact"); 
     
    536536 
    537537        g_assert(u!=NULL); 
    538         for(it=g_list_first(u->contacts);it;it=it->next){ 
     538        for(it=g_list_first(u->contacts);it;it=g_list_next(it)){ 
    539539                c=(Contact *)it->data; 
    540540                if (c->uin==uin) return c; 
     
    640640                        u=user_get_by_jid(de->d_name); 
    641641                        if(u){ 
    642                                 if(u->subscribe==SUB_FROM || u->subscribe==SUB_BOTH) 
     642                                if(u->subscribe==SUB_FROM || u->subscribe==SUB_BOTH){ 
    643643                                        presence_send_probe(s,NULL,de->d_name); 
     644                                } 
    644645                                user_free(u); 
    645646                        } 
     
    647648        } 
    648649        closedir(dir); 
    649  
    650         g_message(L_("Done probing all registered users")); 
    651650 
    652651        return 0; 
     
    723722        g_message(L_("%sConfirmed: %i"),space,u->confirmed); 
    724723        g_message(L_("%sContacts:"),space); 
    725         for(it=g_list_first(u->contacts);it;it=it->next){ 
     724        for(it=g_list_first(u->contacts);it;it=g_list_next(it)){ 
    726725                c=(Contact *)it->data; 
    727726                g_message(L_("%sContact: %p"),space1,c);