Commit 79cf4ff7 authored by Youness Alaoui's avatar Youness Alaoui

Fix username padding for MSN compatibility

parent 5353c8e3
...@@ -994,12 +994,19 @@ size_t priv_gen_username (NiceAgent *agent, guint component_id, ...@@ -994,12 +994,19 @@ size_t priv_gen_username (NiceAgent *agent, guint component_id,
guchar *remote_decoded = NULL; guchar *remote_decoded = NULL;
gsize local_decoded_len; gsize local_decoded_len;
gsize remote_decoded_len; gsize remote_decoded_len;
gsize total_len;
int padding;
local_decoded = g_base64_decode (local, &local_decoded_len); local_decoded = g_base64_decode (local, &local_decoded_len);
remote_decoded = g_base64_decode (remote, &remote_decoded_len); remote_decoded = g_base64_decode (remote, &remote_decoded_len);
if (dest_len >= remote_decoded_len + local_decoded_len + total_len = remote_decoded_len + local_decoded_len + 3 + 2*strlen (component_str);
3 + 2*strlen (component_str)) { padding = 4 - (total_len % 4);
if (dest_len >= total_len + padding) {
guchar pad_char[1] = {0};
int i;
memcpy (dest, remote_decoded, remote_decoded_len); memcpy (dest, remote_decoded, remote_decoded_len);
len += remote_decoded_len; len += remote_decoded_len;
memcpy (dest + len, ":", 1); memcpy (dest + len, ":", 1);
...@@ -1016,6 +1023,12 @@ size_t priv_gen_username (NiceAgent *agent, guint component_id, ...@@ -1016,6 +1023,12 @@ size_t priv_gen_username (NiceAgent *agent, guint component_id,
len++; len++;
memcpy (dest + len, component_str, strlen (component_str));; memcpy (dest + len, component_str, strlen (component_str));;
len += strlen (component_str); len += strlen (component_str);
for (i = 0; i < padding; i++) {
memcpy (dest + len, pad_char, 1);
len++;
}
} }
g_free (local_decoded); g_free (local_decoded);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment