aboutsummaryrefslogtreecommitdiff
path: root/lib/pop3.c
AgeCommit message (Collapse)Author
2013-03-03pop3: Updated the coding style for state changes after a send operationSteve Holme
Some state changes would be performed after a failure test that performed a hard return, whilst others would be performed within a test for success. Updated the code, for consistency, so all instances are performed within a success test.
2013-03-03pop3: Fixed unnecessary parent structure referenceSteve Holme
Updated pop3 code following recent imap changes.
2013-02-28pop3 / smtp: Small comment tidy upSteve Holme
Small tidy up to keep some comments consistant across each of the email protocols.
2013-02-28pop3: Small tidy up of function argumentsSteve Holme
2013-02-28pop3: Corrected debug message for POP3_AUTH_FINAL constantSteve Holme
Following commit afad1ce753a1 corrected the debug message in state() from AUTH to AUTH_FINAL.
2013-02-27pop3: Re-factored the final POP3_AUTH constantSteve Holme
Changed the final POP3_AUTH constant to POP3_AUTH_FINAL for consistency with the response function.
2013-02-25email: Small tidy up following recent changesSteve Holme
2013-02-25pop3: Removed bytecountp from the per-request structureSteve Holme
Removed this pointer to a downloaded bytes counter because it was set in pop3_init() to point to the same variable the transfer functions keep the count in (k->bytecount), effectively making the code in transfer.c "*k->bytecountp = k->bytecount" a no-op.
2013-02-23pop3: Refactored the mailbox variable as it didn't reflect it's purposeSteve Holme
Updated the mailbox variable to correctly reflect it's purpose. The name mailbox was a leftover from when IMAP and POP3 support was initially added to curl.
2013-02-23email: Additional tidy up of comments following recent changesSteve Holme
2013-02-23pop3: fix compiler warningDaniel Stenberg
error: declaration of 'pop3' shadows a previous local
2013-02-23pop3: Removed some FTP heritage leftoversSteve Holme
Removed user and passwd from the POP3 struct as these cannot be set on a per-request basis and are leftover from legacy FTP code. Changed some comments still using FTP terminology.
2013-02-23pop3: Moved the per-request variables to the per-request data structureSteve Holme
Moved the mailbox and custom request variables from the per-connection struct pop3_conn to the new per-request struct and fixed references accordingly.
2013-02-23pop3: Introduced a custom POP3 structure for per-request dataSteve Holme
Created a new POP3 structure and changed the type of the pop3 proto variable in connectdata from FTP* to POP*.
2013-02-23email: Minor tidy up following IMAP changesSteve Holme
2013-02-22pop3: Updated do phrase clean-up commentSteve Holme
Following commit 65644b833532 for the IMAP module updated the clean-up comment in POP3.
2013-02-16email: Tidied up result code variablesSteve Holme
Tidied up result variables to be consistent in name, declaration order and default values.
2013-02-16email: Removed unnecessary forward declarationSteve Holme
Due to the reordering of functions in commit 586f5d361474 the forward declaration to state_upgrade_tls() are no longer required.
2013-02-16pop3.c: Added reference to RFC-5034Steve Holme
2013-02-15pop3: Removed unnecessary state changes on failureSteve Holme
2013-02-15rename "easy" statemachines: call them block insteadDaniel Stenberg
... since they're not used by the easy interface really, I wanted to remove the association. Also, I unified the pingpong statemachine driver into a single function with a 'wait' argument: Curl_pp_statemach.
2013-02-14pop3: Fixed blocking SSL connect when connecting via POP3SSteve Holme
A call to Curl_ssl_connect() was accidentally left in when the SSL/TLS connection layer was reworked in 7.29. Not only would this cause the connection to block but had the additional overhead of calling the non-blocking connect a little bit later.
2013-02-13email: Tidy up before additional IMAP workSteve Holme
Replaced two explicit comparisons of CURLE_OK with boolean alternatives. General tidy up of comments.
2013-02-12email: Another post optimisation of endofresp() tidy upSteve Holme
2013-02-12email: Post optimisation of endofresp() tidy upSteve Holme
Removed unnecessary end of line check and return.
2013-02-12pingpong: Optimised the endofresp() functionSteve Holme
Reworked the pp->endofresp() function so that the conndata, line and line length are passed down to it just as with Curl_client_write() rather than each implementation of the function having to query these values. Additionally changed the int return type to bool as this is more representative of the function's usage.
2013-02-11email: Post STARTLS capability code tidy up (Part Three)Steve Holme
Corrected the order of the upgrade_tls() functions and moved the handler upgrade and getsock() functions out from the middle of the state related functions.
2013-02-11email: Post STARTLS capability code tidy up (Part Two)Steve Holme
Corrected the order of the pop3_state_capa() / imap_state_capability() and the pop3_state_capa_resp() / imap_state_capability_resp() functions to match the execution order.
2013-02-10email: Post STARTLS capability code tidy up (Part One)Steve Holme
Corrected the order of the CAPA / CAPABILITY state machine constants to match the execution order.
2013-02-10pop3: Added support for the STLS capability (Part Three)Steve Holme
Added honoring of the tls_supported flag when starting a TLS upgrade rather than unconditionally attempting it. If the use_ssl flag is set to CURLUSESSL_TRY and the server doesn't support TLS upgrades then the connection will continue to authenticate. If this flag is set to CURLUSESSL_ALL then the connection will complete with a failure as it did previously.
2013-02-10pop3: Added support for the STLS capability (Part Two)Steve Holme
Added sending of initial CAPA command before STLS is sent. This allows for the detection of the capability before trying to upgrade the connection.
2013-02-10pop3: Added support for the STLS capability (Part One)Steve Holme
Introduced detection of the STLS capability, in order to add support for TLS upgrades without unconditionally sending the STLS command.
2013-02-09pop3: Fixed SASL authentication capability detectionSteve Holme
Fixed the SASL capability detection to include the space character before the authentication mechanism list. Otherwise a capability such as SASLSOMETHING would be interpreted as enabling SASL and potentially trying to identify SOMETHING as a mechanism.
2013-02-09pop3: Fixed incorrect return value from pop3_endofresp()Steve Holme
Corrected an incorrect return value when -ERR is received from the server - introduced in commit b5bb61ee697b (June 2012).
2013-02-08pop3: Reworked pop3_endofresp() to simplify it littleSteve Holme
Reworked pop3_endofresp() to simplify it and provide consistency between imap and smtp.
2013-02-06email: Moved starttls code in separate functionsSteve Holme
To help maintain the readability of the code in imap.c, pop3.c and smtp.c moved the starttls code into state_starttls() functions.
2013-02-05email: Reworked comments in the endofresp() functionsSteve Holme
Tidied up the comments in the endofresp() functions to be more meaningful prior to release.
2013-02-04email: Provided extra comments following recent pop3/imap fixesSteve Holme
Provided additional clarification about the logic of the authenticate() functions following commit 6b6bdc83bd36 and b4270a9af1d0.
2013-02-04pop3.c: Updated variable names to use shorter / more readable variantSteve Holme
Tidied up code from commit 6b6bdc83bdUpdated where a few instances of the pop3c struct variable used the longer conndata struct rather than matching what other code in pop3_authenticate() used.
2013-02-03pop3: Fixed no known authentication mechanism when fallback is requiredSteve Holme
Fixed an issue where (lib)curl is compiled without support for a supported challenge-response based SASL authentication mechanism, such as CRAM-MD5 or NTLM, the server doesn't support the LOGIN or PLAIN mechanisms and (lib)curl doesn't fallback to APOP or Clear Text authentication. Bug: http://curl.haxx.se/mail/lib-2013-02/0004.html Reported by: Stanislav Ivochkin
2013-01-27pop3.c: Fixed unnecessary state change if starttls failsSteve Holme
The state machine should only be changed to POP3_STARTTLS when the STLS command has been successfully sent to the server.
2013-01-24pop3.c: Fixed failure detection during TLS upgradeSteve Holme
pop3_state_upgrade_tls() would attempt to incorrectly complete the upgrade to pop3s and start the CAPA command if Curl_ssl_connect_nonblocking() returned a failure code and if ssldone was set to TRUE. This would only happen when a non-blocking API hadn't been provided by the SSL implementation and curlssl_connect() was called underneath.
2013-01-23email: Removed unnecessary return statementsSteve Holme
Small tidy up to remove unnecessary return statements prior to the next fix.
2013-01-22email: Corrected references to SASL RFCSteve Holme
The most recent version of the SASL RFC is RFC4422 and not RFC2222 as previously documented.
2013-01-20pop3.c: Fixed conditional compilation of the apop response functionSteve Holme
Extended the fix from commit 8b15c84ea91e to additionally exclude pop3_state_apop_resp() if the CURL_DISABLE_CRYPTO_AUTH flag is defined.
2013-01-19email: General code tidy upSteve Holme
Corrected some function argument definitions to maximize the 80 character line length limit and be in keeping with the curl coding style.
2013-01-18pop3.c: Fixed a problem with pop3s connections not connecting properlySteve Holme
Fixed an issue where Curl_ssl_connect_nonblocking() wouldn't complete correctly and the ssldone flag wouldn't be set to true for pop3s based connections. Bug introduced in commit: 4ffb8a6398ed.
2013-01-17always-multi: always use non-blocking internalsDaniel Stenberg
Remove internal separated behavior of the easy vs multi intercace. curl_easy_perform() is now using the multi interface itself. Several minor multi interface quirks and bugs have been fixed in the process. Much help with debugging this has been provided by: Yang Tse
2013-01-09build: fix circular header inclusion with other packagesYang Tse
This commit renames lib/setup.h to lib/curl_setup.h and renames lib/setup_once.h to lib/curl_setup_once.h. Removes the need and usage of a header inclusion guard foreign to libcurl. [1] Removes the need and presence of an alarming notice we carried in old setup_once.h [2] ---------------------------------------- 1 - lib/setup_once.h used __SETUP_ONCE_H macro as header inclusion guard up to commit ec691ca3 which changed this to HEADER_CURL_SETUP_ONCE_H, this single inclusion guard is enough to ensure that inclusion of lib/setup_once.h done from lib/setup.h is only done once. Additionally lib/setup.h has always used __SETUP_ONCE_H macro to protect inclusion of setup_once.h even after commit ec691ca3, this was to avoid a circular header inclusion triggered when building a c-ares enabled version with c-ares sources available which also has a setup_once.h header. Commit ec691ca3 exposes the real nature of __SETUP_ONCE_H usage in lib/setup.h, it is a header inclusion guard foreign to libcurl belonging to c-ares's setup_once.h The renaming this commit does, fixes the circular header inclusion, and as such removes the need and usage of a header inclusion guard foreign to libcurl. Macro __SETUP_ONCE_H no longer used in libcurl. 2 - Due to the circular interdependency of old lib/setup_once.h and the c-ares setup_once.h header, old file lib/setup_once.h has carried back from 2006 up to now days an alarming and prominent notice about the need of keeping libcurl's and c-ares's setup_once.h in sync. Given that this commit fixes the circular interdependency, the need and presence of mentioned notice is removed. All mentioned interdependencies come back from now old days when the c-ares project lived inside a curl subdirectory. This commit removes last traces of such fact.
2013-01-08pop3: Added support for non-blocking SSL upgradeSteve Holme
Added support for asynchronous SSL upgrade when using the multi-interface.