Changeset 642

Show
Ignore:
Timestamp:
07/25/05 21:37:17 (3 years ago)
Author:
jajcus
Message:

- registration/unregistration fixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/register.c

    r641 r642  
    454454xmlnode query; 
    455455xmlnode instr; 
    456 User *u
     456User *user
    457457 
    458458        node=xmlnode_get_firstchild(q); 
     
    462462                return; 
    463463        } 
     464 
     465        user=user_get_by_jid(from); 
     466        if (user && user->deleted) { 
     467                jabber_iq_send_error(s,from,to,id,503,_("User still in use, try later.")); 
     468                return; 
     469        } 
     470         
    464471        iq=xmlnode_new_tag("iq"); 
    465472        xmlnode_put_attrib(iq,"type","result"); 
     
    489496        xmlnode_insert_cdata(instr,register_instructions,-1); 
    490497 
    491         u=user_get_by_jid(from); 
    492         if (u==NULL) 
    493                 register_form(query,u); 
     498        if (user==NULL) 
     499                register_form(query,user); 
    494500        else 
    495                 register_change_form(query,u); 
     501                register_change_form(query,user); 
    496502 
    497503        stream_write(s,iq); 
     
    528534                        ujid=jid_build(c->uin); 
    529535                        presence_send_unsubscribed(s,ujid,u->jid); 
     536                        presence_send_unsubscribe(s,ujid,u->jid); 
    530537                        g_free(ujid); 
    531538                } 
     
    561568 
    562569        user=user_get_by_jid(from); 
     570        if (user && user->deleted) { 
     571                jabber_iq_send_error(s,from,to,id,503,_("User still in use, try later.")); 
     572                return; 
     573        } 
    563574 
    564575        node=xmlnode_get_firstchild(q); 
  • trunk/src/sessions.c

    r635 r642  
    789789 
    790790        g_assert(user!=NULL); 
     791 
     792        if (user->deleted){ 
     793                g_message(L_("User deleted: '%s'"),user->jid); 
     794                return NULL; 
     795        } 
     796         
    791797        s=g_new0(Session,1); 
    792798        s->user=user; 
  • trunk/src/users.c

    r640 r642  
    496496        u->invisible=0; 
    497497        u->friends_only=1; 
    498         g_assert(users_jid!=NULL); 
    499498        g_hash_table_insert(users_jid,(gpointer)njid,(gpointer)u); 
    500499        u->refcount=0; 
     500        u->deleted=FALSE; 
    501501        return u; 
    502502} 
     
    660660        g_free(njid); 
    661661 
     662        u->deleted=TRUE; 
     663 
    662664        users_gc(); 
    663665 
  • trunk/src/users.h

    r631 r642  
    6565        int confirmed; 
    6666        int refcount; 
     67        gboolean deleted; 
    6768        GList *contacts; 
    6869}User;