void prot_group_download_labels_reply( struct qqclient* qq, qqpacket* p ) { bytebuffer *buf = p->buf; uchar cmd = get_byte( buf ); if( cmd == 0x1F ){ //download uint next_pos = get_int( buf ); if( next_pos == 0x1000000 ){ //no group labels info ?? return; } if( next_pos != 0x00 ){ DBG("next_pos == 0x%x", next_pos ); } get_byte( buf ); //unknown get_word( buf ); uchar len; while( buf->pos < buf->len ){ uchar number = get_byte( buf ); get_byte( buf ); len = get_byte( buf ); //temp seems to be utf8 code qqgroup *g = group_get( qq, number, 1 ); if( g == NULL ) continue; memset( g->name, 0, NICKNAME_LEN ); get_data( buf, (uchar*)g->name, len ); // DBG("group id: %u name: %s", g->number, g->name ); } group_put_event( qq ); buddy_put_event( qq ); }else{ DBG("unknown cmd=%x", cmd ); } }
EXPORT uint libqq_refresh( qqclient* qq ) { char event[16]; qqclient_set_process( qq, qq->process ); sprintf( event, "status^$%d", qq->mode ); qqclient_put_event( qq, event ); buddy_put_event( qq ); group_put_event( qq ); qun_put_event( qq ); qqclient_set_process( qq, qq->process ); return qq->number; }
EXPORT uint webqq_get_number( user* u ) { qqclient* qq = (qqclient*)u->qq; char event[16]; qqclient_set_process( qq, qq->process ); sprintf( event, "status^$%d", qq->mode ); qqclient_put_event( qq, event ); buddy_put_event( qq ); group_put_event( qq ); qun_put_event( qq ); qqclient_set_process( qq, qq->process ); return qq->number; }