Age | Commit message (Collapse) | Author |
|
|
|
Updated the function description comments following commit 4838d196fdbf.
|
|
Moved the blocking state machine to the disconnect functions so that the
logout / quit functions are only responsible for sending the actual
command needed to logout or quit.
Additionally removed the hard return on failure.
|
|
Added comments and simplified convoluted dophase_done comparison.
|
|
|
|
Removed unwanted braces and added variable initialisation.
|
|
Optimised the result test in each of the block_statemach() functions.
|
|
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.
|
|
Small tidy up to keep some comments consistant across each of the email
protocols.
|
|
Following commit ad3177da24b8 corrected the debug message in state()
from AUTH to AUTH_FINAL.
|
|
Changed the final SMTP_AUTH constant to SMTP_AUTH_FINAL for consistency
with the response function.
|
|
|
|
|
|
Removed this pointer to a downloaded bytes counter because it was set in
smtp_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.
|
|
|
|
Removed user and passwd from the SMTP 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.
|
|
Moved the rcpt variable from the per-connection struct smtp_conn to the
new per-request struct and fixed references accordingly.
|
|
Created a new SMTP structure and changed the type of the smtp proto
variable in connectdata from FTP* to SMTP*.
|
|
|
|
|
|
Tidied up result variables to be consistent in name, declaration order
and default values.
|
|
Due to the reordering of functions in commit 586f5d361474 the forward
declaration to state_upgrade_tls() are no longer required.
|
|
... 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.
|
|
Remove tailing whitespace introduced in commit 7ed689d24a4e.
|
|
Renamed smtp_state_auth_resp() function to match the implementations in
IMAP and POP3.
|
|
Replaced two explicit comparisons of CURLE_OK with boolean alternatives.
General tidy up of comments.
|
|
The smtp_connect() function was setting the member variables of the
pingpong structure twice, once before calling Curl_pp_init() and once
after!
|
|
Removed unnecessary end of line check and return.
|
|
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.
|
|
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.
|
|
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.
|
|
Introduced detection of the STARTTLS capability, in order to add support
for TLS upgrades without unconditionally sending the STARTTLS command.
|
|
Follow up fix to commit 62bd21746443 to cater for servers that don't
respond with a 250 in their EHLO responses. Additionally updated the
SMTP tests to respond with a 250 response code as per RFC5321.
|
|
Follow up fix to commit 23d17190ee32 as EHLO capabilities can exist
within a positive response line.
|
|
Follow up to commit 40f9bb787f05 to fix missing capabilities after an
AUTH line.
|
|
Fixed a small issue where smtp_endofresp() would look for capabilities
in the description part of a failure response. In theory a server
shouldn't respond with SIZE or AUTH in an EHLO command's failure
response but if it did then capabilities would be unnecessarily set
before eventually failing.
|
|
|
|
Renamed the login password response function to better describe it's
purpose as well as for consistency with the imap and pop3 modules.
|
|
Changed the SMTP_AUTH_PASSWD state constant to SMTP_AUTH_LOGIN_PASSWD to
better describe the state as the second part of an AUTH LOGIN command,
as well as for consistency with the imap and pop3 modules.
|
|
To help maintain the readability of the code in imap.c, pop3.c and
smtp.c moved the starttls code into state_starttls() functions.
|
|
Tidied up the comments in the endofresp() functions to be more
meaningful prior to release.
|
|
Provided additional clarification about the logic of the authenticate()
functions following commit 6b6bdc83bd36 and b4270a9af1d0.
|
|
The state machine should only be changed to SMTP_STARTTLS when the
STARTTLS command has been successfully sent to the server.
|
|
Minor code tidy up to add comments similar to those used in the pop3
and imap end of resp functions, in order to assist anyone reading the
code and highlight the similarities between each of these protocols.
|
|
The most recent version of the SMTP RFC is RFC5321 and not RFC2821 as
previously documented.
Added RFC1870 and re-ordered list numerically.
|
|
smtp_state_upgrade_tls() would attempt to incorrectly complete the
upgrade to smtps and start the EHLO 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.
|
|
Small tidy up to remove unnecessary return statements prior to the next
fix.
|
|
The most recent version of the SASL RFC is RFC4422 and not RFC2222 as
previously documented.
|
|
Corrected some function argument definitions to maximize the 80
character line length limit and be in keeping with the curl
coding style.
|
|
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
|