diff options
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/http_client.c | 5 | ||||
| -rw-r--r-- | protocols/msn/sb.c | 10 | ||||
| -rw-r--r-- | protocols/msn/tables.c | 2 | ||||
| -rw-r--r-- | protocols/oscar/chat.c | 2 | ||||
| -rw-r--r-- | protocols/oscar/im.c | 2 | ||||
| -rw-r--r-- | protocols/oscar/oscar.c | 8 | 
6 files changed, 19 insertions, 10 deletions
| diff --git a/protocols/http_client.c b/protocols/http_client.c index 5db31782..e181438c 100644 --- a/protocols/http_client.c +++ b/protocols/http_client.c @@ -239,6 +239,11 @@ static void http_incoming_data( gpointer data, int source, GaimInputCondition co  	return;  got_reply: +	/* Maybe if the webserver is overloaded, or when there's bad SSL +	   support... */ +	if( req->bytes_read == 0 ) +		goto cleanup; +	  	/* Zero termination is very convenient. */  	req->reply_headers[req->bytes_read] = 0; diff --git a/protocols/msn/sb.c b/protocols/msn/sb.c index 234be1d6..34b0a30a 100644 --- a/protocols/msn/sb.c +++ b/protocols/msn/sb.c @@ -522,14 +522,14 @@ static int msn_sb_command( gpointer data, char **cmd, int num_parts )  		if( err->flags & STATUS_SB_FATAL )  		{  			msn_sb_destroy( sb ); -			return( 0 ); +			return 0;  		} -		if( err->flags & STATUS_FATAL ) +		else if( err->flags & STATUS_FATAL )  		{  			signoff( gc ); -			return( 0 ); +			return 0;  		} -		if( err->flags & STATUS_SB_IM_SPARE ) +		else if( err->flags & STATUS_SB_IM_SPARE )  		{  			if( sb->who )  			{ @@ -552,6 +552,8 @@ static int msn_sb_command( gpointer data, char **cmd, int num_parts )  				g_slist_free( sb->msgq );  				sb->msgq = NULL;  			} +			 +			/* Do NOT return 0 here, we want to keep this sb. */  		}  	}  	else diff --git a/protocols/msn/tables.c b/protocols/msn/tables.c index f8e98350..5ba9ea73 100644 --- a/protocols/msn/tables.c +++ b/protocols/msn/tables.c @@ -126,7 +126,7 @@ const struct msn_status_code msn_status_code_list[] =  	{ 800, "Changing too rapidly",                                  0 },  	{ 910, "Server is busy",                                        STATUS_FATAL }, -	{ 911, "Authentication failed",                                 STATUS_FATAL }, +	{ 911, "Authentication failed",                                 STATUS_SB_FATAL | STATUS_FATAL },  	{ 912, "Server is busy",                                        STATUS_FATAL },  	{ 913, "Not allowed when hiding",                               0 },  	{ 914, "Server is unavailable",                                 STATUS_FATAL }, diff --git a/protocols/oscar/chat.c b/protocols/oscar/chat.c index 8843b499..df535c4f 100644 --- a/protocols/oscar/chat.c +++ b/protocols/oscar/chat.c @@ -162,6 +162,7 @@ int aim_chat_send_im(aim_session_t *sess, aim_conn_t *conn, guint16 flags, const  	/* [WvG] This wasn't there originally, but we really should send  	         the right charset flags, as we also do with normal  	         messages. Hope this will work. :-) */ +	/*  	if (flags & AIM_CHATFLAGS_UNICODE)  		aimbs_put16(&fr->data, 0x0002);  	else if (flags & AIM_CHATFLAGS_ISO_8859_1) @@ -170,6 +171,7 @@ int aim_chat_send_im(aim_session_t *sess, aim_conn_t *conn, guint16 flags, const  		aimbs_put16(&fr->data, 0x0000);  	aimbs_put16(&fr->data, 0x0000); +	*/  	/*  	 * SubTLV: Type 1: Message diff --git a/protocols/oscar/im.c b/protocols/oscar/im.c index c829d409..7cccabc7 100644 --- a/protocols/oscar/im.c +++ b/protocols/oscar/im.c @@ -1468,7 +1468,7 @@ static void incomingim_ch2_icqserverrelay(aim_session_t *sess, aim_module_t *mod              case AIM_MTYPE_AUTOFFC:  	    case 0x9c:	/* ICQ 5 seems to send this */                  aim_send_im_ch2_statusmessage(sess, userinfo->sn, args->cookie, -                        gc->away, sess->aim_icq_state, dc); +                        gc->away ? gc->away : "", sess->aim_icq_state, dc);                  break;          } diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index 5174f95c..c2716c6b 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -137,9 +137,9 @@ static char *extract_name(const char *name) {  	char *tmp;  	int i, j;  	char *x = strchr(name, '-'); -	if (!x) return NULL; +	if (!x) return g_strdup(name);  	x = strchr(++x, '-'); -	if (!x) return NULL; +	if (!x) return g_strdup(name);  	tmp = g_strdup(++x);  	for (i = 0, j = 0; x[i]; i++) { @@ -2606,9 +2606,9 @@ int oscar_chat_open(struct gaim_connection * gc, char *who)  	struct oscar_data * od = (struct oscar_data *)gc->proto_data;  	int ret;  	static int chat_id = 0; -	char * chatname = g_new0(char, strlen(gc->username)+4); +	char * chatname; -	g_snprintf(chatname, strlen(gc->username) + 4, "%s%d", gc->username, chat_id++); +	chatname = g_strdup_printf("%s%d", gc->username, chat_id++);  	ret = oscar_chat_join(gc, chatname); | 
