]> diplodocus.org Git - nmh/blobdiff - uip/popsbr.c
Patch for mhical to support "BYDAY=-1SU"-type RRULEs.
[nmh] / uip / popsbr.c
index 237e80cc4b562ec6d2641e4485ca05780a294989..3df93bd969ed0c018ded013429175745d9fc05a4 100644 (file)
@@ -121,7 +121,7 @@ pop_start_tls(void)
      */
 
     if (command("STLS") == NOTOK)
-       return NOTOK;
+       return NOTOK;
 
     if (netsec_negotiate_tls(nsc, &errstr) != OK) {
        snprintf(response, sizeof(response), "%s", errstr);
@@ -304,7 +304,7 @@ pop_init (char *host, char *port, char *user, char *proxy, int snoop,
                    if (check_mech(server_mechs, sizeof(server_mechs)) != OK)
                        return NOTOK;
                    if (netsec_negotiate_sasl(nsc, server_mechs,
-                                             &errstr) != OK) {
+                                             &errstr) != OK) {
                        strncpy(response, errstr, sizeof(response));
                        response[sizeof(response) - 1] = '\0';
                        free(errstr);
@@ -445,7 +445,21 @@ pop_sasl_callback(enum sasl_message_type mtype, unsigned const char *indata,
 
        if (line == NULL)
            return NOTOK;
-       if (len < 2 || (len == 2 && strcmp(line, "+ ") != 0)) {
+
+       /*
+        * If we get an -ERR reply, bubble that back up
+        */
+
+       if (has_prefix(line, "-ERR")) {
+           netsec_err(errstr, "%s", line);
+           return NOTOK;
+       }
+
+       /*
+        * Make sure we get someting back a valid response
+        */
+
+       if (!has_prefix(line, "+ ")) {
            netsec_err(errstr, "Invalid format for SASL response");
            return NOTOK;
        }
@@ -454,7 +468,7 @@ pop_sasl_callback(enum sasl_message_type mtype, unsigned const char *indata,
            *outdata = NULL;
            *outdatalen = 0;
        } else {
-           rc = decodeBase64(line + 2, outdata, &len, 0, NULL);
+           rc = decodeBase64(line + 2, outdata, &len, 0);
            *outdatalen = len;
            if (rc != OK) {
                netsec_err(errstr, "Unable to decode base64 response");