From: Konstantin Sobolev <kos@supportwizard.com>
[apps/madmutt.git] / pop / pop_auth.c
index 1fa17ec..75fe93c 100644 (file)
 #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
 
@@ -47,10 +41,8 @@ static pop_auth_res_t pop_auth_sasl (POP_DATA * pop_data, const char *method)
   char inbuf[LONG_STRING];
   const char *mech;
 
-#ifdef USE_SASL2
+#ifdef USE_SASL
   const char *pc = NULL;
-#else
-  char *pc = NULL;
 #endif
   unsigned int len, olen;
   unsigned char client_start;
@@ -64,12 +56,9 @@ static pop_auth_res_t pop_auth_sasl (POP_DATA * pop_data, const char *method)
     method = pop_data->auth_list;
 
   FOREVER {
-#ifdef USE_SASL2
+#ifdef USE_SASL
     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;
@@ -103,13 +92,10 @@ static pop_auth_res_t pop_auth_sasl (POP_DATA * pop_data, const char *method)
     if (rc != SASL_CONTINUE)
       break;
 
-#ifdef USE_SASL2
+#ifdef USE_SASL
     if (!str_ncmp (inbuf, "+ ", 2)
         && sasl_decode64 (inbuf, strlen (inbuf), buf, LONG_STRING - 1,
                           &len) != SASL_OK)
-#else
-    if (!str_ncmp (inbuf, "+ ", 2)
-        && sasl_decode64 (inbuf, strlen (inbuf), buf, &len) != SASL_OK)
 #endif
     {
       debug_print (1, ("error base64-decoding server response.\n"));
@@ -138,7 +124,7 @@ static pop_auth_res_t pop_auth_sasl (POP_DATA * pop_data, const char *method)
 
       /* sasl_client_st(art|ep) allocate pc with malloc, expect me to 
        * free it */
-#ifndef USE_SASL2
+#ifndef USE_SASL
       mem_free (&pc);
 #endif
     }
@@ -217,10 +203,13 @@ static pop_auth_res_t pop_auth_apop (POP_DATA * pop_data, const char *method)
     return POP_A_SUCCESS;
   case PQ_NOT_CONNECTED:
     return POP_A_SOCKET;
+  case PFD_FUNCT_ERROR:
+  case PQ_ERR:
+  default:
+    break;
   }
 
-  mutt_error _("APOP authentication failed.");
-
+  mutt_error ("%s %s", _("APOP authentication failed."), pop_data->err_msg);
   mutt_sleep (2);
 
   return POP_A_FAILURE;
@@ -271,6 +260,10 @@ static pop_auth_res_t pop_auth_user (POP_DATA * pop_data, const char *method)
     return POP_A_SUCCESS;
   case PQ_NOT_CONNECTED:
     return POP_A_SOCKET;
+  case PFD_FUNCT_ERROR:
+  case PQ_ERR:
+  default:
+    break;
   }
 
   mutt_error ("%s %s", _("Login failed."), pop_data->err_msg);