summaryrefslogtreecommitdiff
path: root/lib/imap.h
Commit message (Collapse)AuthorAgeFilesLines
* imap: support PREAUTHDaniel Stenberg2017-08-231-1/+2
| | | | | | | | | | | It is a defined possible greeting at server startup that means the connection is already authenticated. See https://tools.ietf.org/html/rfc3501#section-7.1.4 Test 846 added to verify. Fixes #1818 Closes #1820
* internals: rename the SessionHandle struct to Curl_easyDaniel Stenberg2016-06-221-2/+2
|
* URLs: change all http:// URLs to https://Daniel Stenberg2016-02-031-1/+1
|
* SASL: common state engine for imap/pop3/smtpPatrick Monnerat2015-01-201-14/+1
|
* SASL: common URL option and auth capabilities decoders for all protocolsPatrick Monnerat2015-01-201-1/+1
|
* IMAP/POP3/SMTP: use a per-connection sub-structure for SASL parameters.Patrick Monnerat2015-01-201-4/+2
|
* email: Added mutual authentication flagSteve Holme2014-08-151-0/+1
|
* email: Introduced the GSSAPI statesSteve Holme2014-08-141-0/+3
|
* imap: Extended FETCH support to include PARTIAL URL specifierSteve Holme2014-04-181-0/+1
|
* imap: Added support for parsing URL query stringsSteve Holme2014-04-181-0/+1
| | | | | Added support for parsing query strings from the URL as defined by RFC-5092.
* imap: Introduced the SEARCH stateSteve Holme2014-04-181-1/+2
|
* imap: Fixed incorrect fallback to clear text authenticationSteve Holme2013-12-131-0/+9
| | | | | | | | If a specific SASL authentication mechanism was requested by the user as part of the login options but wasn't supported by the server then curl would fallback to clear text, when it shouldn't, rather than reporting "No known authentication mechanisms supported" as the POP3 and SMTP protocols do.
* email: Added initial support for cancelling authenticationSteve Holme2013-10-271-0/+1
| | | | | | | | | | | | | | | | Should a client application fail to decode an authentication message received from a server, or not support any of the parameters given by the server in the message, then the authentication phrase should be cancelled gracefully by the client rather than simply terminating the connection. The authentication phrase should be cancelled by simply sending a '*' to the server, in response to erroneous data being received, as per RFC-3501, RFC-4954 and RFC-5034. This patch adds the necessary state machine constants and appropriate response handlers in order to add this functionality for the CRAM-MD5, DIGEST-MD5 and NTLM authentication mechanisms.
* imap: added basic SASL XOAUTH2 supportKyle L. Huff2013-08-261-0/+1
| | | | | | | | | | | Added the ability to use an XOAUTH2 bearer token [RFC6750] with IMAP for authentication using RFC6749 "OAuth 2.0 Authorization Framework". The bearer token is expected to be valid for the user specified in conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connection has an advertised auth mechanism of "XOAUTH2", the user and access token are formatted as a base64 encoded string and sent to the server as "A001 AUTHENTICATE XOAUTH2 <bearer token>".
* imap: Added support for ;auth=<mech> in the URLSteve Holme2013-04-131-0/+1
| | | | | Added support for specifying the preferred authentication mechanism in the URL as per RFC-5092.
* imap: Removed the need for separate custom request functionsSteve Holme2013-03-091-1/+0
| | | | | Moved the custom request processing into the LIST command as the logic is the same.
* imap: Introduced IMAP_LIST stateSteve Holme2013-03-051-0/+1
|
* imap: Introduced custom request parametersJiri Hruska2013-03-031-0/+2
| | | | Added custom request parameters to the per-request structure.
* imap: Introduced IMAP_CUSTOM stateJiri Hruska2013-03-031-0/+1
|
* imap: Introduced IMAP_APPEND and IMAP_APPEND_FINAL statesJiri Hruska2013-03-021-0/+2
|
* imap: Introduced FETCH_FINAL state for processing final fetch responsesJiri Hruska2013-02-281-0/+1
| | | | | | | | | | | | A typical FETCH response can be broken down into four parts: 1) "* <uid> FETCH (<what> {<size>}\r\n", using continuation syntax 2) <size> bytes of the actual message 3) ")\r\n", finishing the untagged response 4) "<tag> OK ...", finishing the command Part 1 is read in imap_fetch_resp(), part 2 is consumed in the PERFORM phase by the transfer subsystem, parts 3 and 4 are currently ignored.
* imap: Re-factored final IMAP_AUTHENTICATE constantSteve Holme2013-02-271-1/+1
| | | | | Changed the final IMAP_AUTHENTICATE constant to IMAP_AUTHENTICATE_FINAL for consistency with the response function.
* imap: Introduced the mailbox variableJiri Hruska2013-02-271-0/+1
| | | | | Added the mailbox variable to the per-connection structure in preparation for checking for an already selected mailbox.
* email: Slight reordering of connection based variablesSteve Holme2013-02-261-2/+2
| | | | | | Reordered the state and ssl_done variables in order to provide more consistency between the email protocols as well as for for an upcoming change.
* imap: Tidied up comments for connection based variablesSteve Holme2013-02-261-10/+10
|
* imap: Introduced the mailbox_uidvalidity variableJiri Hruska2013-02-261-0/+1
| | | | | Added the mailbox_uidvalidity variable to the per-connection structure in preparation for checking the UIDVALIDITY mailbox attribute.
* imap: Removed bytecountp from the per-request structureJiri Hruska2013-02-251-1/+0
| | | | | | | 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.
* imap: Introduced new per-request veriablesJiri Hruska2013-02-231-0/+3
| | | | | Added uidvalidity, uid and section variables to the per-request IMAP structure in preparation for upcoming URL parsing.
* pingpong: Renamed curl_ftptransfer to curl_pp_transferSteve Holme2013-02-231-1/+1
|
* pingpong: Moved curl_ftptransfer definition to pingpong.hSteve Holme2013-02-231-1/+0
| | | | | Moved the ftp transfer structure into pingpong.h so other protocols that require it don't have to include ftp.h.
* imap: Removed some FTP heritage leftoversJiri Hruska2013-02-231-2/+0
| | | | | 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.
* imap: Introduced a custom IMAP structure for per-request dataJiri Hruska2013-02-231-1/+13
| | | | | | | | 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.
* email: Post STARTLS capability code tidy up (Part One)Steve Holme2013-02-101-1/+1
| | | | | Corrected the order of the CAPA / CAPABILITY state machine constants to match the execution order.
* imap: Added support for the STARTTLS capability (Part One)Steve Holme2013-02-101-0/+1
| | | | | Introduced detection of the STARTTLS capability, in order to add support for TLS upgrades without unconditionally sending the STARTTLS command.
* imap: Added support for SASL-IR extension (Part 1)Steve Holme2013-02-071-0/+1
| | | | | | Introduced detection of the SASL-IR capability, in order to add support for sending the initial response with the AUTHENTICATE command, as per RFC4959.
* imap: Changed response tag generation to be completely uniqueSteve Holme2013-02-071-1/+1
| | | | | | | | | | Updated the automatic response tag generation to follow the examples given in RC3501, which list a 4 character string such as A001, A002, etc. As a unique identifier should be generated for each command the string generation is based on the connection id and the incrementing command id.
* imap: Small variable rename in preparation for upcoming changeSteve Holme2013-02-061-2/+2
| | | | | Renamed a couple of variables and updated some comments in preparation for upcoming command id / response tag change.
* imap.h: Corrected incorrect comment clarificationSteve Holme2013-02-051-1/+1
| | | | Corrected comment clarification made in commit 167717b8069a.
* imap: Fixed no known authentication mechanism when fallback is requiredSteve Holme2013-02-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | 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 Clear Text authentication. Note: In order to fallback to Clear Text authentication properly this fix adds support for the LOGINDISABLED server capability. imap: Fixed no known authentication mechanism when fallback is required 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 Clear Text authentication. Note: In order to fallback to Clear Text authentication properly this fix adds support for the LOGINDISABLED server capability. Related bug: http://curl.haxx.se/mail/lib-2013-02/0004.html Reported by: Stanislav Ivochkin
* email: Updated comment regarding ssldone usageSteve Holme2013-01-261-2/+1
| | | | Updated the ssldone comment as multi mode is always used internally now.
* imap: Added support for sasl digest-md5 authenticationSteve Holme2013-01-071-0/+2
|
* imap: Added support for sasl cram-md5 authenticationSteve Holme2013-01-071-0/+1
|
* imap: Added support for sasl ntlm authenticationSteve Holme2013-01-071-0/+2
|
* imap: Added support for sasl login authenticationSteve Holme2013-01-061-0/+2
|
* imap: Added support for sasl plain text authenticationSteve Holme2013-01-061-0/+3
|
* imap: Added support for SASL based authentication mechanism detectionSteve Holme2013-01-061-7/+9
| | | | | Added support for detecting the supported SASL authentication mechanisms via the CAPABILITY command.
* Revert changes relative to lib/*.[ch] recent renamingYang Tse2013-01-061-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts renaming and usage of lib/*.h header files done 28-12-2012, reverting 2 commits: f871de0... build: make use of 76 lib/*.h renamed files ffd8e12... build: rename 76 lib/*.h files This also reverts removal of redundant include guard (redundant thanks to changes in above commits) done 2-12-2013, reverting 1 commit: c087374... curl_setup.h: remove redundant include guard This also reverts renaming and usage of lib/*.c source files done 3-12-2013, reverting 3 commits: 13606bb... build: make use of 93 lib/*.c renamed files 5b6e792... build: rename 93 lib/*.c files 7d83dff... build: commit 13606bbfde follow-up 1 Start of related discussion thread: http://curl.haxx.se/mail/lib-2013-01/0012.html Asking for confirmation on pushing this revertion commit: http://curl.haxx.se/mail/lib-2013-01/0048.html Confirmation summary: http://curl.haxx.se/mail/lib-2013-01/0079.html NOTICE: The list of 2 files that have been modified by other intermixed commits, while renamed, and also by at least one of the 6 commits this one reverts follows below. These 2 files will exhibit a hole in history unless git's '--follow' option is used when viewing logs. lib/curl_imap.h lib/curl_smtp.h
* build: rename 76 lib/*.h filesYang Tse2012-12-281-59/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 76 private header files renamed to use our standard naming scheme. This commit only does the file renaming. ---------------------------------------- renamed: amigaos.h -> curl_amigaos.h renamed: arpa_telnet.h -> curl_arpa_telnet.h renamed: asyn.h -> curl_asyn.h renamed: axtls.h -> curl_axtls.h renamed: bundles.h -> curl_bundles.h renamed: conncache.h -> curl_conncache.h renamed: connect.h -> curl_connect.h renamed: content_encoding.h -> curl_content_encoding.h renamed: cookie.h -> curl_cookie.h renamed: cyassl.h -> curl_cyassl.h renamed: dict.h -> curl_dict.h renamed: easyif.h -> curl_easyif.h renamed: escape.h -> curl_escape.h renamed: file.h -> curl_file.h renamed: fileinfo.h -> curl_fileinfo.h renamed: formdata.h -> curl_formdata.h renamed: ftp.h -> curl_ftp.h renamed: ftplistparser.h -> curl_ftplistparser.h renamed: getinfo.h -> curl_getinfo.h renamed: gopher.h -> curl_gopher.h renamed: gtls.h -> curl_gtls.h renamed: hash.h -> curl_hash.h renamed: hostcheck.h -> curl_hostcheck.h renamed: hostip.h -> curl_hostip.h renamed: http.h -> curl_http.h renamed: http_chunks.h -> curl_http_chunks.h renamed: http_digest.h -> curl_http_digest.h renamed: http_negotiate.h -> curl_http_negotiate.h renamed: http_proxy.h -> curl_http_proxy.h renamed: if2ip.h -> curl_if2ip.h renamed: imap.h -> curl_imap.h renamed: inet_ntop.h -> curl_inet_ntop.h renamed: inet_pton.h -> curl_inet_pton.h renamed: krb4.h -> curl_krb4.h renamed: llist.h -> curl_llist.h renamed: memdebug.h -> curl_memdebug.h renamed: multiif.h -> curl_multiif.h renamed: netrc.h -> curl_netrc.h renamed: non-ascii.h -> curl_non-ascii.h renamed: nonblock.h -> curl_nonblock.h renamed: nssg.h -> curl_nssg.h renamed: parsedate.h -> curl_parsedate.h renamed: pingpong.h -> curl_pingpong.h renamed: polarssl.h -> curl_polarssl.h renamed: pop3.h -> curl_pop3.h renamed: progress.h -> curl_progress.h renamed: qssl.h -> curl_qssl.h renamed: rawstr.h -> curl_rawstr.h renamed: rtsp.h -> curl_rtsp.h renamed: select.h -> curl_select.h renamed: sendf.h -> curl_sendf.h renamed: setup.h -> curl_setup.h renamed: setup_once.h -> curl_setup_once.h renamed: share.h -> curl_share.h renamed: slist.h -> curl_slist.h renamed: smtp.h -> curl_smtp.h renamed: sockaddr.h -> curl_sockaddr.h renamed: socks.h -> curl_socks.h renamed: speedcheck.h -> curl_speedcheck.h renamed: splay.h -> curl_splay.h renamed: ssh.h -> curl_ssh.h renamed: sslgen.h -> curl_sslgen.h renamed: ssluse.h -> curl_ssluse.h renamed: strdup.h -> curl_strdup.h renamed: strequal.h -> curl_strequal.h renamed: strerror.h -> curl_strerror.h renamed: strtok.h -> curl_strtok.h renamed: strtoofft.h -> curl_strtoofft.h renamed: telnet.h -> curl_telnet.h renamed: tftp.h -> curl_tftp.h renamed: timeval.h -> curl_timeval.h renamed: transfer.h -> curl_transfer.h renamed: url.h -> curl_url.h renamed: urldata.h -> curl_urldata.h renamed: warnless.h -> curl_warnless.h renamed: wildcard.h -> curl_wildcard.h ----------------------------------------
* build: make use of 76 lib/*.h renamed filesYang Tse2012-12-281-1/+1
| | | | | | 76 private header files renamed to use our standard naming scheme. This change affects 322 files in libcurl's source tree.
* lib/*.h: use our standard naming scheme for header inclusion guardsYang Tse2012-12-281-3/+4
|