]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
pop3: Changed response code from O and E to + and -
authorSteve Holme <steve_holme@hotmail.com>
Mon, 28 May 2012 19:59:10 +0000 (20:59 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Mon, 28 May 2012 19:59:10 +0000 (20:59 +0100)
The POP3 protocol doesn't really have the concept of error codes and
uses +, +OK and -ERR in response to commands to indicate continue,
success and error.

The AUTH command is one of those commands that requires multiple pieces
of data to be sent to the server where the server will respond with + as
part of the handshaking. This meant changing the values before
continuing with the next stage of adding authentication support.

lib/pop3.c

index a9898e2182d9c93cf1754814123787bfb2410848..782da92165dcdf5d7506e52e3261d7278c67b5e1 100644 (file)
@@ -223,7 +223,7 @@ static int pop3_endofresp(struct pingpong *pp, int *resp)
      (len < 4 || memcmp("-ERR", line, 4)))
   return FALSE; /* Nothing for us */
 
-  *resp = line[1]; /* O or E */
+  *resp = line[0]; /* + or - */
 
   if(pop3c->state == POP3_AUTH && len >= 3 && !memcmp(line, "+OK", 3)) {
     line += 3;
@@ -355,7 +355,7 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
 
   (void)instate; /* no use for this yet */
 
-  if(pop3code != 'O') {
+  if(pop3code != '+') {
     failf(data, "Got unexpected pop3-server response");
     return CURLE_FTP_WEIRD_SERVER_REPLY;
   }
@@ -382,7 +382,7 @@ static CURLcode pop3_state_starttls_resp(struct connectdata *conn,
 
   (void)instate; /* no use for this yet */
 
-  if(pop3code != 'O') {
+  if(pop3code != '+') {
     if(data->set.use_ssl != CURLUSESSL_TRY) {
       failf(data, "STARTTLS denied. %c", pop3code);
       result = CURLE_USE_SSL_FAILED;
@@ -428,7 +428,7 @@ static CURLcode pop3_state_user_resp(struct connectdata *conn,
 
   (void)instate; /* no use for this yet */
 
-  if(pop3code != 'O') {
+  if(pop3code != '+') {
     failf(data, "Access denied. %c", pop3code);
     result = CURLE_LOGIN_DENIED;
   }
@@ -454,7 +454,7 @@ static CURLcode pop3_state_pass_resp(struct connectdata *conn,
 
   (void)instate; /* no use for this yet */
 
-  if(pop3code != 'O') {
+  if(pop3code != '+') {
     failf(data, "Access denied. %c", pop3code);
     result = CURLE_LOGIN_DENIED;
   }
@@ -477,7 +477,7 @@ static CURLcode pop3_state_command_resp(struct connectdata *conn,
 
   (void)instate; /* no use for this yet */
 
-  if('O' != pop3code) {
+  if(pop3code != '+') {
     state(conn, POP3_STOP);
     return CURLE_RECV_ERROR;
   }