[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Ayttm-commits] CVS: ayttm/modules/msn2/libmsn2 msn_bittybits.C,1.12,1.1
From: |
Colin Leroy <address@hidden> |
Subject: |
[Ayttm-commits] CVS: ayttm/modules/msn2/libmsn2 msn_bittybits.C,1.12,1.13 msn_core.C,1.46,1.47 |
Date: |
Wed, 26 Mar 2003 03:03:26 -0500 |
Update of /cvsroot/ayttm/ayttm/modules/msn2/libmsn2
In directory subversions:/tmp/cvs-serv7515/modules/msn2/libmsn2
Modified Files:
msn_bittybits.C msn_core.C
Log Message:
longer timeout, check numargs
Index: msn_bittybits.C
===================================================================
RCS file: /cvsroot/ayttm/ayttm/modules/msn2/libmsn2/msn_bittybits.C,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- msn_bittybits.C 25 Mar 2003 22:39:50 -0000 1.12
+++ msn_bittybits.C 26 Mar 2003 08:03:24 -0000 1.13
@@ -45,7 +45,7 @@
j=i;
#else
int res=0;
- if((res=poll(&pfd,1,1000))==0) {
+ if((res=poll(&pfd,1,5000))==0) {
should_terminate = 1;
break;
} else if (res > 0) {
@@ -70,11 +70,13 @@
#ifndef __MINGW32__
{
int res = 0;
- if((res=poll(&pfd,1,0))==0) {
+ if((res=poll(&pfd,1,5000))==0) {
should_terminate=1;
- res=poll(&pfd,1,1000);
+ break;
}
- if (res < 0) {
+ else if (res > 0) {
+ continue;
+ } else {
printf("uh, msnconn closed\n");
return NULL;
}
Index: msn_core.C
===================================================================
RCS file: /cvsroot/ayttm/ayttm/modules/msn2/libmsn2/msn_core.C,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- msn_core.C 25 Mar 2003 22:39:50 -0000 1.46
+++ msn_core.C 26 Mar 2003 08:03:24 -0000 1.47
@@ -292,7 +292,7 @@
if(!strcmp(args[0], "SYN"))
{
- if(info->serial==atoi(args[2]))
+ if(numargs >=3 && info->serial==atoi(args[2]))
{
/* delete info;
info=NULL;*/
@@ -308,9 +308,9 @@
if(!strcmp(args[0], "LST"))
{
- if(!strcmp(args[2], "FL"))
+ if(numargs >=3 && !strcmp(args[2], "FL"))
{
- if(!strcmp(args[5], "0"))
+ if(numargs >=7 && !strcmp(args[5], "0"))
{
info->fl=NULL; info->complete|=LST_FL;
} else {
@@ -324,9 +324,9 @@
{ info->complete|=LST_FL; }
}
}
- if(!strcmp(args[2], "RL"))
+ if(numargs >=3 && !strcmp(args[2], "RL"))
{
- if(!strcmp(args[5], "0"))
+ if(numargs >=7 && !strcmp(args[5], "0"))
{
info->rl=NULL; info->complete|=LST_RL; // no mates! :-)
} else {
@@ -338,9 +338,9 @@
{ info->complete|=LST_RL; }
}
}
- if(!strcmp(args[2], "AL"))
+ if(numargs >=3 && !strcmp(args[2], "AL"))
{
- if(!strcmp(args[5], "0"))
+ if(numargs >=7 && !strcmp(args[5], "0"))
{
info->al=NULL; info->complete|=LST_AL;
} else {
@@ -352,9 +352,9 @@
{ info->complete|=LST_AL; }
}
}
- if(!strcmp(args[2], "BL"))
+ if(numargs >=3 && !strcmp(args[2], "BL"))
{
- if(!strcmp(args[5], "0"))
+ if(numargs >=7 && !strcmp(args[5], "0"))
{
info->bl=NULL; info->complete|=LST_BL;
} else {
@@ -368,18 +368,18 @@
}
}
- if(!strcmp(args[0], "LSG"))
+ if(numargs >=7 && !strcmp(args[0], "LSG"))
{
ext_got_group(args[5], msn_decode_URL(args[6]));
}
- if(!strcmp(args[0], "GTC"))
+ if(numargs >=4 && !strcmp(args[0], "GTC"))
{
info->gtc=args[3][0];
info->complete|=COMPLETE_GTC;
ext_got_GTC(conn, args[3][0]);
}
- if(!strcmp(args[0], "BLP"))
+ if(numargs >=4 && !strcmp(args[0], "BLP"))
{
info->blp=args[3][0];
info->complete|=COMPLETE_BLP;
@@ -515,6 +515,7 @@
return;
}
+ if (numargs < 6) return;
info->auth->cookie=msn_permstring(args[5]);
info->auth->sessionID=NULL;
@@ -547,6 +548,7 @@
msn_del_callback(conn, trid);
+ if (numargs < 3) return;
if(strcmp(args[2], "OK"))
{
msn_show_verbose_error(conn, atoi(args[0]));
@@ -610,7 +612,7 @@
if(args==NULL)
{ msn_clean_up(conn); return; }
- if(!strcmp(args[0], "XFR") && !strcmp(args[2], "NS"))
+ if(numargs >=3 && !strcmp(args[0], "XFR") && !strcmp(args[2], "NS"))
{
delete conn->callbacks; // delete the callback data
conn->callbacks=NULL;
@@ -621,7 +623,7 @@
char * c;
int port=1863;
- if((c=strstr(args[3], ":"))!=NULL)
+ if(numargs >=4 && (c=strstr(args[3], ":"))!=NULL)
{
*c='\0';
c++;
@@ -639,8 +641,9 @@
delete [] args;
return;
}
-
- trid=atoi(args[1]);
+
+ if(numargs >=2)
+ trid=atoi(args[1]);
list=conn->callbacks;
@@ -727,7 +730,7 @@
return;
}
- if(!strcmp(args[0], "CHG"))
+ if(numargs >=3 && !strcmp(args[0], "CHG"))
{
ext_changed_state(conn, args[2]);
return;
@@ -775,13 +778,13 @@
return;
}
- if(!strcmp(args[0], "ADG"))
+ if(numargs >=5 && !strcmp(args[0], "ADG"))
{
ext_got_group(args[4], msn_decode_URL(args[3]));
return;
}
- if(isdigit(args[0][0]))
+ if(isdigit(args[0][0]) && strlen(args[0])>2)
{
msn_show_verbose_error(conn, atoi(args[0]));
if(conn->type==CONN_SB)
@@ -812,6 +815,9 @@
char * body;
char * tmp;
+ if (numargs < 4)
+ return;
+
msglen=atoi(args[3]);
msg=(char *)malloc(msglen+1);
@@ -1339,7 +1345,7 @@
if(!strcmp(args[0], "USR"))
{
- if(strcmp(args[2], auth->cookie)) // if they DIFFER
+ if(numargs >=3 && strcmp(args[2], auth->cookie)) // if they DIFFER
{
ext_filetrans_failed(auth->inv, errno, strerror(errno));
msn_del_from_llist(auth->inv->conn->invitations_out, auth->inv);
@@ -1529,6 +1535,7 @@
auth=(authdata_SB *)conn->auth;
+ if (numargs < 3) return;
if(!strcmp(args[1], auth->username)) { return; }
msn_add_to_llist(conn->users, new char_data(msn_permstring(args[1])));
@@ -1547,6 +1554,7 @@
msnconn * newSBconn=new msnconn;
authdata_SB * auth=new authdata_SB;
+ if (numargs < 5) return;
newSBconn->type=CONN_SB;
newSBconn->auth=auth;
@@ -1576,6 +1584,7 @@
list=conn->users;
+ if (numargs < 2) return;
ext_user_left(conn, args[1]);
while(list!=NULL)
@@ -1607,17 +1616,20 @@
char * buddy;
char * state;
char * friendlyname;
-
+
if(!strcmp(args[0], "ILN"))
{
+ if (numargs < 5) return;
friendlyname=args[4];
buddy=args[3];
state=args[2];
} else if(!strcmp(args[0], "FLN")) {
+ if (numargs < 2) return;
buddy=args[1];
ext_buddy_offline(conn, buddy);
return;
} else {
+ if (numargs < 4) return;
friendlyname=args[3];
buddy=args[2];
state=args[1];
@@ -1628,12 +1640,13 @@
void msn_handle_ADD(msnconn * conn, char ** args, int numargs)
{
- if (numargs == 7) return; /* group add */
+ if (numargs == 7) return; /* group add */
+ if (numargs < 5) return;
if(!strcmp(args[2], "RL"))
{
if(DEBUG)
printf("Via ADD:\n");
-
+ if (numargs < 6) return;
ext_new_RL_entry(conn, args[4], msn_decode_URL(args[5]));
}
@@ -1644,6 +1657,7 @@
void msn_handle_REM(msnconn * conn, char ** args, int numargs)
{
if (numargs == 6) return; /* group change */
+ if (numargs < 5) return;
ext_del_list_entry(conn, args[2], args[4]);
ext_latest_serial(conn, atoi(args[3]));
}
@@ -1651,18 +1665,21 @@
void msn_handle_BLP(msnconn * conn, char ** args, int numargs)
{
+ if (numargs < 4) return;
ext_got_BLP(conn, args[3][0]);
ext_latest_serial(conn, atoi(args[3]));
}
void msn_handle_GTC(msnconn * conn, char ** args, int numargs)
{
+ if (numargs < 4) return;
ext_got_GTC(conn, args[3][0]);
ext_latest_serial(conn, atoi(args[3]));
}
void msn_handle_REA(msnconn * conn, char ** args, int numargs)
{
+ if (numargs < 5) return;
ext_latest_serial(conn, atoi(args[2]));
ext_got_friendlyname(conn, msn_decode_URL(args[4]));
}
@@ -1673,6 +1690,7 @@
md5_byte_t digest[16];
int a;
+ if (numargs < 3) return;
md5_init(&state);
md5_append(&state, (md5_byte_t *)(args[2]), strlen(args[2]));
md5_append(&state, (md5_byte_t *)"Q1P7W2E4J9R8U3S5", 16);
@@ -1690,7 +1708,7 @@
void msn_handle_OUT(msnconn * conn, char ** args, int numargs)
{
- if(numargs!=1)
+ if(numargs>1)
{
if(!strcmp(args[1], "OTH"))
{
@@ -1954,6 +1972,7 @@
info=(connectinfo *)data;
msn_del_callback(conn, trid);
+ if (numargs < 3) return;
if(strcmp(args[0], "VER") || strcmp(args[2], "MSNP7")) // if either
*differs*...
{
ext_show_error(NULL, "MSN Protocol negotiation failed.");
@@ -1982,6 +2001,7 @@
info=(connectinfo *)data;
msn_del_callback(conn, trid);
+ if (numargs < 5) return;
if(isdigit(args[0][0]))
{
msn_show_verbose_error(conn, atoi(args[0]));
@@ -2018,7 +2038,7 @@
info=(connectinfo *)data;
msn_del_callback(conn, trid);
-
+
if(isdigit(args[0][0]))
{
msn_show_verbose_error(conn, atoi(args[0]));
@@ -2027,6 +2047,7 @@
return;
}
+ if (numargs < 5) return;
ext_got_friendlyname(conn, msn_decode_URL(args[4]));
delete info;
@@ -2039,6 +2060,7 @@
void msn_SB_ans(msnconn * conn, int trid, char ** args, int numargs,
callback_data * data)
{
+ if (numargs < 3) return;
if(!strcmp(args[0], "ANS") && !strcmp(args[2], "OK"))
{ return; }
@@ -2052,6 +2074,7 @@
if(!strcmp(args[0], "IRO"))
{
+ if (numargs < 6) return;
if(!strcmp(args[4], ((authdata_SB *)conn->auth)->username)) { return; }
msn_add_to_llist(conn->users, new char_data(msn_permstring(args[4])));
ext_user_joined(conn, args[4], msn_decode_URL(args[5]), 1);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Ayttm-commits] CVS: ayttm/modules/msn2/libmsn2 msn_bittybits.C,1.12,1.13 msn_core.C,1.46,1.47,
Colin Leroy <address@hidden> <=
- Prev by Date:
[Ayttm-commits] CVS: ayttm ChangeLog,1.436,1.437 configure.in,1.433,1.434
- Next by Date:
[Ayttm-commits] CVS: ayttm ChangeLog,1.437,1.438 configure.in,1.434,1.435
- Previous by thread:
[Ayttm-commits] CVS: ayttm ChangeLog,1.436,1.437 configure.in,1.433,1.434
- Next by thread:
[Ayttm-commits] CVS: ayttm ChangeLog,1.437,1.438 configure.in,1.434,1.435
- Index(es):