Age | Commit message (Collapse) | Author |
|
|
|
Only responses that contain "CAPABILITY" and "FETCH", respectively,
will be sent to their response handler.
|
|
RFC 3501 states that "the client MUST be prepared to accept any response
at all times" yet we assume anything received with "* " at the beginning
is the untagged response we want.
Introduced a helper function that checks whether the input looks like a
response to specified command, so that we may filter the ones we are
interested in according to the current state.
|
|
Introduced similar handling to the FETCH responses, where even the
untagged data responses are handled by the response handler of the
individual state.
|
|
|
|
Removed this pointer to a downloaded bytes counter because it was set in
imap_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.
|
|
Moved imap_select() and imap_fetch() to be grouped with the other
perform functions.
|
|
Exchanged the position of these states in the switch statements to
match the state enum, execution and function order.
|
|
Tidy up of comments before next round of imap changes.
|
|
Corrected the comparison type in addition to commit 1dac29fa83a9.
|
|
|
|
From a maintenance point of view the code reads better to view tagged
responses, then untagged followed by continuation responses.
Additionally, this matches the order of responses in POP3.
|
|
Enhanced the parsing to only allow continuation responses in some
states.
|
|
|
|
|
|
|
|
Enhanced the parsing of tagged responses which must start with "OK",
"NO" or "BAD"
|
|
|
|
|
|
Updated the FETCH command to send the UID and SECTION parsed from the
URL. By default the BODY specifier doesn't include a section, BODY[] is
now sent whereas BODY[TEXT] was previously sent. In my opinion
retrieving just the message text is rarely useful when dealing with
emails, as the headers are required for example, so that functionality
is not retained. In can however be simulated by adding SECTION=TEXT to
the URL.
Also updated test801 and test1321 due to the BODY change.
|
|
|
|
|
|
Updated the imap_parse_url_path() function to parse uidvalidity, uid and
section parameters based on RFC-5092.
|
|
Added imap_is_bchar() for testing if a given character is a valid bchar
or not.
|
|
Added uidvalidity, uid and section variables to the per-request IMAP
structure in preparation for upcoming URL parsing.
|
|
Used imap_atom() to escape mailbox names in imap_select().
|
|
|
|
Changed some variables and comments still using FTP terminology.
|
|
Removed user and passwd from the IMAP struct as these cannot be set on
a per-request basis and are leftover from legacy FTP code.
|
|
Created a new IMAP structure and changed the type of the imap proto
variable in connectdata from FTP* to the new IMAP*.
Moved the mailbox variable from the per-connection struct imap_conn to
the new per-request struct and fixed references accordingly.
|
|
Moved the clean-up of the mailbox variable from imap_disconnect() to
imap_done() as this variable is allocated in the do phase, yet would
have only been freed only once if multiple selects where preformed
on a single connection.
|
|
Fixed an incorrect variable reference which was introduced in commit
a1701eea289f as a result of a copy and paste from SMTP/POP3.
|
|
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.
|
|
Replaced two explicit comparisons of CURLE_OK with boolean alternatives.
General tidy up of comments.
|
|
Fixed a small whitespace issue that crept in there in commit
508cdf4da4d7.
|
|
|
|
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.
|
|
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.
|
|
Corrected the order of the CAPA / CAPABILITY state machine constants to
match the execution order.
|
|
|
|
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.
|
|
Added sending of initial CAPABILITY command before STARTTLS is sent.
This allows for the detection of the capability before trying to
upgrade the connection.
|
|
Introduced detection of the STARTTLS capability, in order to add support
for TLS upgrades without unconditionally sending the STARTTLS command.
|
|
|
|
Renamed the authstate1 and authstate2 variables in imap_authenticate()
as the old name was a left over from when there was only one state
variable which was named due to a clash with the state() function.
Additionally this provides consistency with the smtp module.
|