libgaim/protocols/yahoo/yahoo_auth.h

Tue, 26 Sep 2006 17:38:09 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Tue, 26 Sep 2006 17:38:09 +0000
changeset 14686
f3d13f21350c
parent 14254
77edc7a6191a
child 20470
77693555855f
permissions
-rwxr-xr-x

[gaim-migrate @ 17356]
After the comments on gaim-devel about 'bad' code, I looked into the function referenced. It appears that yahoo_buddy_icon_upload_connected() is only called as a callback. It's registered from yahoo_buddy_icon_upload(). yahoo_buddy_icon_upload() is only called twice. In neither case can a NULL make it down to yahoo_buddy_icon_upload_connected(). As this is an exceptional case rather than a normal one, a g_return_if_fail() is more appropriate. That adds logging, makes the intent clearer, and will help the Coverity software detect violations of this assumption.

8350
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
1 /*
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
2 * yahoo_auth.h: Header for Yahoo Messenger authentication schemes. Eew.
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
3 *
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
4 * Copyright(c) 2003 Cerulean Studios
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
5 */
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
6
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 #ifndef _YAHOO_AUTH_H_
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 #define _YAHOO_AUTH_H_
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 #define NUM_TYPE_THREES 105
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 #define NUM_TYPE_FOURS 56
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 #define NUM_TYPE_FIVES 37
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 unsigned int yahoo_auth_finalCountdown(unsigned int challenge, int divisor, int inner_loop, int outer_loop);
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 /* We've defined the Yahoo authentication functions as having types 1-5; all take either 1 or 2 arguments.
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 */
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
19 typedef struct _auth {
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 int type;
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 int var1;
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22 int var2;
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23 } auth_function_t;
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
24
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
25 /* Type 3, 4 and 5 require lookups into ypager.exe's many static chunks of 256 bytes. Store them here.
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
26 */
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
27
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
28 struct buffer_t {
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
29 unsigned int buffer_start;
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
30 unsigned char buffer[257];
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
31 };
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
32
e691d75462c5 [gaim-migrate @ 9074]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
33 #endif /* _YAHOO_AUTH_H_ */

mercurial