aboutsummaryrefslogtreecommitdiff
path: root/lib/imap.h
AgeCommit message (Collapse)Author
2013-08-26imap: added basic SASL XOAUTH2 supportKyle L. Huff
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>".
2013-04-13imap: Added support for ;auth=<mech> in the URLSteve Holme
Added support for specifying the preferred authentication mechanism in the URL as per RFC-5092.
2013-03-09imap: Removed the need for separate custom request functionsSteve Holme
Moved the custom request processing into the LIST command as the logic is the same.
2013-03-05imap: Introduced IMAP_LIST stateSteve Holme
2013-03-03imap: Introduced custom request parametersJiri Hruska
Added custom request parameters to the per-request structure.
2013-03-03imap: Introduced IMAP_CUSTOM stateJiri Hruska
2013-03-02imap: Introduced IMAP_APPEND and IMAP_APPEND_FINAL statesJiri Hruska
2013-02-28imap: Introduced FETCH_FINAL state for processing final fetch responsesJiri Hruska
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.
2013-02-27imap: Re-factored final IMAP_AUTHENTICATE constantSteve Holme
Changed the final IMAP_AUTHENTICATE constant to IMAP_AUTHENTICATE_FINAL for consistency with the response function.
2013-02-27imap: Introduced the mailbox variableJiri Hruska
Added the mailbox variable to the per-connection structure in preparation for checking for an already selected mailbox.
2013-02-26email: Slight reordering of connection based variablesSteve Holme
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.
2013-02-26imap: Tidied up comments for connection based variablesSteve Holme
2013-02-26imap: Introduced the mailbox_uidvalidity variableJiri Hruska
Added the mailbox_uidvalidity variable to the per-connection structure in preparation for checking the UIDVALIDITY mailbox attribute.
2013-02-25imap: Removed bytecountp from the per-request structureJiri Hruska
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.
2013-02-23imap: Introduced new per-request veriablesJiri Hruska
Added uidvalidity, uid and section variables to the per-request IMAP structure in preparation for upcoming URL parsing.
2013-02-23pingpong: Renamed curl_ftptransfer to curl_pp_transferSteve Holme
2013-02-23pingpong: Moved curl_ftptransfer definition to pingpong.hSteve Holme
Moved the ftp transfer structure into pingpong.h so other protocols that require it don't have to include ftp.h.
2013-02-23imap: Removed some FTP heritage leftoversJiri Hruska
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.
2013-02-23imap: Introduced a custom IMAP structure for per-request dataJiri Hruska
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.
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-10imap: Added support for the STARTTLS capability (Part One)Steve Holme
Introduced detection of the STARTTLS capability, in order to add support for TLS upgrades without unconditionally sending the STARTTLS command.
2013-02-07imap: Added support for SASL-IR extension (Part 1)Steve Holme
Introduced detection of the SASL-IR capability, in order to add support for sending the initial response with the AUTHENTICATE command, as per RFC4959.
2013-02-07imap: Changed response tag generation to be completely uniqueSteve Holme
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.
2013-02-06imap: Small variable rename in preparation for upcoming changeSteve Holme
Renamed a couple of variables and updated some comments in preparation for upcoming command id / response tag change.
2013-02-05imap.h: Corrected incorrect comment clarificationSteve Holme
Corrected comment clarification made in commit 167717b8069a.
2013-02-03imap: 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 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
2013-01-26email: Updated comment regarding ssldone usageSteve Holme
Updated the ssldone comment as multi mode is always used internally now.
2013-01-07imap: Added support for sasl digest-md5 authenticationSteve Holme
2013-01-07imap: Added support for sasl cram-md5 authenticationSteve Holme
2013-01-07imap: Added support for sasl ntlm authenticationSteve Holme
2013-01-06imap: Added support for sasl login authenticationSteve Holme
2013-01-06imap: Added support for sasl plain text authenticationSteve Holme
2013-01-06imap: Added support for SASL based authentication mechanism detectionSteve Holme
Added support for detecting the supported SASL authentication mechanisms via the CAPABILITY command.
2013-01-06Revert changes relative to lib/*.[ch] recent renamingYang Tse
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
2012-12-28build: rename 76 lib/*.h filesYang Tse
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 ----------------------------------------
2012-12-28build: make use of 76 lib/*.h renamed filesYang Tse
76 private header files renamed to use our standard naming scheme. This change affects 322 files in libcurl's source tree.
2012-12-28lib/*.h: use our standard naming scheme for header inclusion guardsYang Tse
2011-04-27source cleanup: unify look, style and indent levelsDaniel Stenberg
By the use of a the new lib/checksrc.pl script that checks that our basic source style rules are followed.
2011-02-20IMAP in multi mode: use Curl_ssl_connect_nonblocking() when upgrading the ↵Ben Noordhuis
connection to TLS/SSL.
2011-02-20IMAP in multi mode: use Curl_ssl_connect_nonblocking() when connecting.Ben Noordhuis
2010-03-24remove the CVSish $Id$ linesDaniel Stenberg
2009-12-12introducing IMAP, POP3 and SMTP support (still lots of polish left to do)Daniel Stenberg