Changeset e374dee for libfaim/snac.c
- Timestamp:
- Oct 10, 2003, 5:12:30 PM (19 years ago)
- Branches:
- master, barnowl_perlaim, debian, owl, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- fe6f1d3
- Parents:
- f4d0975
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfaim/snac.c
r862371b re374dee 91 91 *prev = cur->next; 92 92 if (cur->flags & AIM_SNACFLAGS_DESTRUCTOR) { 93 struct aim_snac_destructor *asd = cur->data; 94 cur->data = asd->data; 95 free(asd); 93 free(cur->data); 94 cur->data = NULL; 96 95 } 97 96 return cur; … … 103 102 } 104 103 105 /* Free a SNAC, and call the appropriate destructor if necessary.106 */107 faim_internal faim_shortfunc void aim_cleansnac(aim_session_t *sess, aim_snac_t *snac)108 {109 aim_module_t *cur;110 111 if (snac->flags & AIM_SNACFLAGS_DESTRUCTOR) {112 struct aim_snac_destructor *d = snac->data;113 aim_modsnac_t modsnac;114 115 modsnac.id = snac->id;116 modsnac.subtype = snac->type;117 modsnac.family = snac->family;118 modsnac.flags = snac->flags;119 120 for (cur = (aim_module_t *)sess->modlistv; cur; cur = cur->next)121 {122 if (!cur->snacdestructor)123 continue;124 if (!(cur->flags & AIM_MODFLAG_MULTIFAMILY) &&125 (cur->family != modsnac.family))126 continue;127 if (cur->snacdestructor(sess, d->conn, &modsnac,128 d->data))129 break;130 }131 free(d->data);132 }133 134 free(snac->data);135 free(snac);136 }137 138 139 104 /* 140 105 * This is for cleaning up old SNACs that either don't get replies or … … 144 109 * 145 110 */ 146 faim_ internalvoid aim_cleansnacs(aim_session_t *sess, int maxage)111 faim_export void aim_cleansnacs(aim_session_t *sess, int maxage) 147 112 { 148 113 int i; … … 162 127 *prev = cur->next; 163 128 164 aim_cleansnac(sess, cur); 129 free(cur->data); 130 free(cur); 165 131 } else 166 132 prev = &cur->next;
Note: See TracChangeset
for help on using the changeset viewer.