#include <unistd.h>
#ifdef USE_SASL
+#ifdef USE_SASL2
+#include <sasl/sasl.h>
+#include <sasl/saslutil.h>
+#else
#include <sasl.h>
#include <saslutil.h>
+#endif
#include "mutt_sasl.h"
#endif
char buf[LONG_STRING];
char inbuf[LONG_STRING];
const char* mech;
+#ifdef USE_SASL2
+ const char *pc = NULL;
+#else
char* pc = NULL;
+#endif
unsigned int len, olen;
unsigned char client_start;
FOREVER
{
+#ifdef USE_SASL2
+ rc = sasl_client_start(saslconn, method, &interaction, &pc, &olen, &mech);
+#else
rc = sasl_client_start (saslconn, method, NULL,
&interaction, &pc, &olen, &mech);
+#endif
if (rc != SASL_INTERACT)
break;
mutt_sasl_interact (interaction);
if (mutt_strncmp (inbuf, "+ ", 2))
goto bail;
+#ifdef USE_SASL2
+ if (sasl_decode64 (inbuf, strlen (inbuf), buf, LONG_STRING-1, &len) != SASL_OK)
+#else
if (sasl_decode64 (inbuf, strlen (inbuf), buf, &len) != SASL_OK)
+#endif
{
dprint (1, (debugfile, "pop_auth_sasl: error base64-decoding server response.\n"));
goto bail;
/* sasl_client_st(art|ep) allocate pc with malloc, expect me to
* free it */
+#ifndef USE_SASL2
FREE (&pc);
+#endif
}
}