Changeset 5ebff60 for protocols/oscar/msgcookie.c
- Timestamp:
- 2015-02-20T22:50:54Z (9 years ago)
- Branches:
- master
- Children:
- 0b9daac, 3d45471, 7733b8c
- Parents:
- af359b4
- git-author:
- Indent <please@…> (19-02-15 05:47:20)
- git-committer:
- dequis <dx@…> (20-02-15 22:50:54)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/oscar/msgcookie.c
raf359b4 r5ebff60 2 2 * Cookie Caching stuff. Adam wrote this, apparently just some 3 3 * derivatives of n's SNAC work. I cleaned it up, added comments. 4 * 4 * 5 5 */ 6 6 … … 26 26 * returns -1 on error, 0 on append, 1 on update. the cookie you pass 27 27 * in may be free'd, so don't count on its value after calling this! 28 * 28 * 29 29 */ 30 30 int aim_cachecookie(aim_session_t *sess, aim_msgcookie_t *cookie) … … 32 32 aim_msgcookie_t *newcook; 33 33 34 if (!sess || !cookie) 34 if (!sess || !cookie) { 35 35 return -EINVAL; 36 } 36 37 37 38 newcook = aim_checkcookie(sess, cookie->cookie, cookie->type); 38 39 39 40 if (newcook == cookie) { 40 41 newcook->addtime = time(NULL); 41 42 return 1; 42 } else if (newcook) 43 } else if (newcook) { 43 44 aim_cookie_free(sess, newcook); 45 } 44 46 45 cookie->addtime = time(NULL); 47 cookie->addtime = time(NULL); 46 48 47 49 cookie->next = sess->msgcookies; … … 65 67 aim_msgcookie_t *cur, **prev; 66 68 67 if (!cookie || !sess->msgcookies) 69 if (!cookie || !sess->msgcookies) { 68 70 return NULL; 71 } 69 72 70 73 for (prev = &sess->msgcookies; (cur = *prev); ) { 71 if ((cur->type == type) && 72 74 if ((cur->type == type) && 75 (memcmp(cur->cookie, cookie, 8) == 0)) { 73 76 *prev = cur->next; 74 77 return cur; … … 90 93 * 91 94 */ 92 aim_msgcookie_t *aim_mkcookie(guint8 *c, int type, void *data) 95 aim_msgcookie_t *aim_mkcookie(guint8 *c, int type, void *data) 93 96 { 94 97 aim_msgcookie_t *cookie; 95 98 96 if (!c) 99 if (!c) { 97 100 return NULL; 101 } 98 102 99 if (!(cookie = g_new0(aim_msgcookie_t, 1)))103 if (!(cookie = g_new0(aim_msgcookie_t, 1))) { 100 104 return NULL; 105 } 101 106 102 107 cookie->data = data; … … 123 128 124 129 for (cur = sess->msgcookies; cur; cur = cur->next) { 125 if ((cur->type == type) && 126 (memcmp(cur->cookie, cookie, 8) == 0)) 127 return cur; 130 if ((cur->type == type) && 131 (memcmp(cur->cookie, cookie, 8) == 0)) { 132 return cur; 133 } 128 134 } 129 135 … … 144 150 * 145 151 */ 146 int aim_cookie_free(aim_session_t *sess, aim_msgcookie_t *cookie) 152 int aim_cookie_free(aim_session_t *sess, aim_msgcookie_t *cookie) 147 153 { 148 154 aim_msgcookie_t *cur, **prev; 149 155 150 if (!sess || !cookie) 156 if (!sess || !cookie) { 151 157 return -EINVAL; 158 } 152 159 153 160 for (prev = &sess->msgcookies; (cur = *prev); ) { 154 if (cur == cookie) 161 if (cur == cookie) { 155 162 *prev = cur->next; 156 else163 } else { 157 164 prev = &cur->next; 165 } 158 166 } 159 167 … … 162 170 163 171 return 0; 164 } 172 }
Note: See TracChangeset
for help on using the changeset viewer.