diff options
-rw-r--r-- | protocols/msn/ns.c | 12 | ||||
-rw-r--r-- | protocols/msn/sb.c | 1 | ||||
-rw-r--r-- | protocols/msn/soap.c | 3 | ||||
-rw-r--r-- | protocols/msn/soap.h | 2 |
4 files changed, 13 insertions, 5 deletions
diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c index 40c4cdec..897650a6 100644 --- a/protocols/msn/ns.c +++ b/protocols/msn/ns.c @@ -72,7 +72,7 @@ gboolean msn_ns_connected( gpointer data, gint source, b_input_condition cond ) md->handler->fd = md->fd; md->handler->rxq = g_new0( char, 1 ); - g_snprintf( s, sizeof( s ), "VER %d MSNP8 CVR0\r\n", ++md->trId ); + g_snprintf( s, sizeof( s ), "VER %d MSNP14 CVR0\r\n", ++md->trId ); if( msn_write( ic, s, strlen( s ) ) ) { ic->inpa = b_input_add( md->fd, B_EV_IO_READ, msn_ns_callback, ic ); @@ -112,7 +112,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts ) if( strcmp( cmd[0], "VER" ) == 0 ) { - if( cmd[2] && strncmp( cmd[2], "MSNP8", 5 ) != 0 ) + if( cmd[2] && strncmp( cmd[2], "MSNP14", 5 ) != 0 ) { imcb_error( ic, "Unsupported protocol" ); imc_logout( ic, FALSE ); @@ -229,7 +229,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts ) return( 0 ); } } - else if( num_parts >= 7 && strcmp( cmd[2], "OK" ) == 0 ) + else if( strcmp( cmd[2], "OK" ) == 0 ) { if( num_parts == 7 ) msn_ns_got_display_name( ic, cmd[4] ); @@ -655,6 +655,12 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts ) } } } + else if( strcmp( cmd[0], "GCF" ) == 0 ) + { + /* Coming up is cmd[2] bytes of stuff we're supposed to + censore. Meh. */ + md->handler->msglen = atoi( cmd[2] ); + } else if( isdigit( cmd[0][0] ) ) { int num = atoi( cmd[0] ); diff --git a/protocols/msn/sb.c b/protocols/msn/sb.c index 10425708..1eb919e3 100644 --- a/protocols/msn/sb.c +++ b/protocols/msn/sb.c @@ -29,6 +29,7 @@ #include "passport.h" #include "md5.h" #include "soap.h" +#include "invitation.h" static gboolean msn_sb_callback( gpointer data, gint source, b_input_condition cond ); static int msn_sb_command( gpointer data, char **cmd, int num_parts ); diff --git a/protocols/msn/soap.c b/protocols/msn/soap.c index 82ecfea2..4d623a9d 100644 --- a/protocols/msn/soap.c +++ b/protocols/msn/soap.c @@ -154,7 +154,8 @@ static int msn_soap_oim_build_request( struct msn_soap_req_data *soap_req ) soap_req->action = g_strdup( SOAP_OIM_ACTION_URL ); soap_req->payload = g_markup_printf_escaped( SOAP_OIM_SEND_PAYLOAD, ic->acc->user, display_name_b64, oim->to, md->passport_token, - MSNP11_PROD_ID, md->lock_key ? : "", oim->number, oim->number, oim->msg ); + MSNP11_PROD_ID, md->lock_key ? md->lock_key : "", + oim->number, oim->number, oim->msg ); g_free( display_name_b64 ); diff --git a/protocols/msn/soap.h b/protocols/msn/soap.h index 3db2d59d..307ac1bc 100644 --- a/protocols/msn/soap.h +++ b/protocols/msn/soap.h @@ -73,7 +73,7 @@ "Content-Type: text/plain; charset=UTF-8\r\n" \ "Content-Transfer-Encoding: base64\r\n" \ "X-OIM-Message-Type: OfflineMessage\r\n" \ - "X-OIM-Run-Id: {89527393-8723-4F4F-8005-287532973298}\r\n" \ + "X-OIM-Run-Id: {F9A6C9DD-0D94-4E85-9CC6-F9D118CC1CAF}\r\n" \ "X-OIM-Sequence-Num: %d\r\n" \ "\r\n" \ "%s" \ |