aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog4
-rw-r--r--camel/camel-sasl-cram-md5.c12
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: