diff options
-rw-r--r-- | camel/ChangeLog | 4 | ||||
-rw-r--r-- | camel/camel-sasl-cram-md5.c | 12 |
2 files changed, 8 insertions, 8 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index a4ee3f173b..c92aa7d66b 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -4,7 +4,9 @@ data, leave that up to the provider to do if it needs to. Also save on some memory allocations and stuff. - * camel-sasl-cram-md5.c (cram_md5_challenge): Same here. + * camel-sasl-cram-md5.c (cram_md5_challenge): Same here. Also get + rid of the need for the temp buf as we can just write it to the + GByteArray. 2001-03-02 Not Zed <NotZed@Ximian.com> diff --git a/camel/camel-sasl-cram-md5.c b/camel/camel-sasl-cram-md5.c index 4b3b3aabd6..464039b251 100644 --- a/camel/camel-sasl-cram-md5.c +++ b/camel/camel-sasl-cram-md5.c @@ -115,7 +115,7 @@ cram_md5_challenge (CamelSasl *sasl, const char *token, CamelException *ex) CamelSaslCramMd5 *sasl_cram = CAMEL_SASL_CRAM_MD5 (sasl); struct _CamelSaslCramMd5Private *priv = sasl_cram->priv; guchar digest[16], md5asc[33], *s, *p; - char *timestamp, *passwd, *buf; + char *timestamp, *passwd; GByteArray *ret = NULL; guchar ipad[64]; guchar opad[64]; @@ -124,8 +124,7 @@ cram_md5_challenge (CamelSasl *sasl, const char *token, CamelException *ex) switch (priv->state) { case STATE_AUTH: - timestamp = g_strdup (token); - base64_decode_simple (timestamp, strlen (timestamp)); + timestamp = (char *) token; passwd = sasl_cram->passwd; pw_len = strlen (sasl_cram->passwd); @@ -161,11 +160,10 @@ cram_md5_challenge (CamelSasl *sasl, const char *token, CamelException *ex) for (s = digest, p = md5asc; p < md5asc + 32; s++, p += 2) sprintf (p, "%.2x", *s); - buf = g_strdup_printf ("%s %s", sasl_cram->username, md5asc); - ret = g_byte_array_new (); - g_byte_array_append (ret, buf, strlen (buf)); - g_free (buf); + g_byte_array_append (ret, sasl_cram->username, strlen (sasl_cram->username)); + g_byte_array_append (ret, " ", 1); + g_byte_array_append (ret, md5asc, strlen (md5asc)); break; case STATE_FINAL: |