|
From: xevuz <xe...@us...> - 2007-12-29 09:40:35
|
Update of /cvsroot/chix/chix/src/lib In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv6654/src/lib Modified Files: chix.c chix_buddy.c chix_credit.c chix_info.c chix_mesg.c Log Message: this should be safer Index: chix.c =================================================================== RCS file: /cvsroot/chix/chix/src/lib/chix.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- chix.c 29 Dec 2007 09:08:10 -0000 1.29 +++ chix.c 29 Dec 2007 09:40:26 -0000 1.30 @@ -391,28 +391,8 @@ { Chix_Event *ev; Chix_Packet *ack; - int evid; - - switch (chix_packet_get_int(pkt, KEY_LIST_TYPE)) - { - case VAL_BLIST: - evid = BLIST_TYPE; - break; - case VAL_INBOX: - case VAL_OUTBOX: - evid = MESG_BOX_TYPE; - break; - case VAL_SEARCH: - evid = INFO_RESULT_TYPE; - break; - case VAL_CREDITS: - evid = CLIST_TYPE; - break; - default: - break; - } - ev = chix_event_get(cl, evid); + ev = chix_event_get(cl, pkt->seqn - 2); if (!ev) return 0; chix_event_thaw(ev); Index: chix_info.c =================================================================== RCS file: /cvsroot/chix/chix/src/lib/chix_info.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- chix_info.c 29 Dec 2007 09:21:29 -0000 1.16 +++ chix_info.c 29 Dec 2007 09:40:26 -0000 1.17 @@ -143,15 +143,18 @@ { Chix_Info_Result *res; Chix_Info *info; + Chix_Event *ev; - res = chix_event_data_get(cl, INFO_RESULT_TYPE); - if (!res) return 0; + ev = chix_event_data_get(cl, pkt->seqn - 2); + if (!ev) return 0; + ev->id = pkt->seqn; info = _chix_info_new(pkt); if (!info) return 0; info->id = chix_packet_get_str(pkt, KEY_BUDDY_ID); - + + res = ev->data; chix_list_add(&res->list, info); return 1; } @@ -165,7 +168,7 @@ res = malloc(sizeof(Chix_Info_Result)); if (!res) return 0; - ev = chix_event_set(cl, res, EVENT_SEARCH_RESULT, INFO_RESULT_TYPE, + ev = chix_event_set(cl, res, EVENT_SEARCH_RESULT, pkt->seqn, CHIX_FUNC_FREE(_chix_info_result_free)); if (!ev) return 0; chix_event_freeze(ev); Index: chix_buddy.c =================================================================== RCS file: /cvsroot/chix/chix/src/lib/chix_buddy.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- chix_buddy.c 29 Dec 2007 09:08:10 -0000 1.25 +++ chix_buddy.c 29 Dec 2007 09:40:26 -0000 1.26 @@ -400,7 +400,7 @@ cl->blist = bl; SET_TYPE(bl, BLIST_TYPE); - ev = chix_event_set(cl, bl, EVENT_BUDDY_LIST, BLIST_TYPE, NULL); + ev = chix_event_set(cl, bl, EVENT_BUDDY_LIST, pkt->seqn, NULL); if (!ev) return 0; chix_event_freeze(ev); return 1; @@ -423,9 +423,14 @@ chix_blist_client(Chix_Client *cl, Chix_Packet *pkt) { Chix_Buddy *bud; + Chix_Event *ev; bud = _chix_buddy_new(pkt); if (!bud) return 0; + + ev = chix_event_get(cl, pkt->seqn - 2); + if (!ev) return 0; + ev->id = pkt->seqn; chix_list_add(&cl->blist->list, bud); return _chix_blist_hash_add(cl->blist, bud); Index: chix_credit.c =================================================================== RCS file: /cvsroot/chix/chix/src/lib/chix_credit.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- chix_credit.c 29 Dec 2007 09:21:29 -0000 1.10 +++ chix_credit.c 29 Dec 2007 09:40:26 -0000 1.11 @@ -50,11 +50,13 @@ { Chix_Credit_List *clist; Chix_Credit *cr; + Chix_Event *ev; char buf[32]; int alloted, used; - clist = chix_event_data_get(cl, CLIST_TYPE); - if (!clist) return 0; + ev = chix_event_get(cl, pkt->seqn - 2); + if (!ev) return 0; + ev->id = pkt->seqn; cr = calloc(1, sizeof(Chix_Credit)); if (!cr) return 0; @@ -69,6 +71,7 @@ cr->left = strdup(buf); SET_TYPE(cr, CREDIT_TYPE); + clist = ev->data; chix_list_add(&clist->list, cr); return 1; } @@ -84,7 +87,7 @@ SET_TYPE(clist, CLIST_TYPE); - ev = chix_event_set(cl, clist, EVENT_CREDIT_LIST, CLIST_TYPE, + ev = chix_event_set(cl, clist, EVENT_CREDIT_LIST, pkt->seqn, CHIX_FUNC_FREE(_chix_clist_free)); chix_event_freeze(ev); return 1; Index: chix_mesg.c =================================================================== RCS file: /cvsroot/chix/chix/src/lib/chix_mesg.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- chix_mesg.c 29 Dec 2007 09:08:10 -0000 1.17 +++ chix_mesg.c 29 Dec 2007 09:40:26 -0000 1.18 @@ -143,14 +143,16 @@ Chix_Mesg_Box *box; Chix_Mesg *msg; Chix_Buddy *bud; + Chix_Event *ev; char *id; id = chix_packet_get_ptr(pkt, KEY_MESG_FROM); bud = chix_blist_search(cl->blist, id); if (!bud) return 1; - box = chix_event_data_get(cl, MESG_BOX_TYPE); - if (!box) return 0; + ev = chix_event_get(cl, pkt->seqn - 2); + if (!ev) return 0; + ev->id = pkt->seqn; msg = calloc(1, sizeof(Chix_Mesg)); if (!msg) return 0; @@ -160,6 +162,7 @@ msg->time = _chix_mesg_time(chix_packet_get_ptr(pkt, KEY_MESG_TIME)); SET_TYPE(msg, MESG_TYPE); + box = ev->data; chix_list_add(&box->list, msg); return 1; } @@ -170,14 +173,16 @@ Chix_Mesg_Box *box; Chix_Mesg *msg; Chix_Buddy *bud; + Chix_Event *ev; char *id; id = chix_packet_get_ptr(pkt, KEY_MESG_TO); bud = chix_blist_search(cl->blist, id); if (!bud) return 1; - box = chix_event_data_get(cl, MESG_BOX_TYPE); - if (!box) return 0; + ev = chix_event_get(cl, pkt->seqn - 2); + if (!ev) return 0; + ev->id = pkt->seqn; msg = calloc(1, sizeof(Chix_Mesg)); if (!msg) return 0; @@ -187,6 +192,7 @@ msg->time = _chix_mesg_time(chix_packet_get_ptr(pkt, KEY_MESG_TIME)); SET_TYPE(msg, MESG_TYPE); + box = ev->data; chix_list_add(&box->list, msg); return 1; } @@ -207,7 +213,7 @@ else ev_type = EVENT_OUTBOX; - ev = chix_event_set(cl, box, ev_type, MESG_BOX_TYPE, + ev = chix_event_set(cl, box, ev_type, pkt->seqn, CHIX_FUNC_FREE(_chix_mesg_box_free)); if (!ev) return 0; chix_event_freeze(ev); |