Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/curl/lib/smtp.h @ 3:2c135c81b16c
MERGE: upstream PyMuPDF 1.26.4 with MuPDF 1.26.7
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:44:09 +0200 |
| parents | b50eed0cc0ef |
| children |
comparison
equal
deleted
inserted
replaced
| 0:6015a75abc2d | 3:2c135c81b16c |
|---|---|
| 1 #ifndef HEADER_CURL_SMTP_H | |
| 2 #define HEADER_CURL_SMTP_H | |
| 3 /*************************************************************************** | |
| 4 * _ _ ____ _ | |
| 5 * Project ___| | | | _ \| | | |
| 6 * / __| | | | |_) | | | |
| 7 * | (__| |_| | _ <| |___ | |
| 8 * \___|\___/|_| \_\_____| | |
| 9 * | |
| 10 * Copyright (C) 2009 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. | |
| 11 * | |
| 12 * This software is licensed as described in the file COPYING, which | |
| 13 * you should have received as part of this distribution. The terms | |
| 14 * are also available at https://curl.haxx.se/docs/copyright.html. | |
| 15 * | |
| 16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell | |
| 17 * copies of the Software, and permit persons to whom the Software is | |
| 18 * furnished to do so, under the terms of the COPYING file. | |
| 19 * | |
| 20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |
| 21 * KIND, either express or implied. | |
| 22 * | |
| 23 ***************************************************************************/ | |
| 24 | |
| 25 #include "pingpong.h" | |
| 26 #include "curl_sasl.h" | |
| 27 | |
| 28 /**************************************************************************** | |
| 29 * SMTP unique setup | |
| 30 ***************************************************************************/ | |
| 31 typedef enum { | |
| 32 SMTP_STOP, /* do nothing state, stops the state machine */ | |
| 33 SMTP_SERVERGREET, /* waiting for the initial greeting immediately after | |
| 34 a connect */ | |
| 35 SMTP_EHLO, | |
| 36 SMTP_HELO, | |
| 37 SMTP_STARTTLS, | |
| 38 SMTP_UPGRADETLS, /* asynchronously upgrade the connection to SSL/TLS | |
| 39 (multi mode only) */ | |
| 40 SMTP_AUTH, | |
| 41 SMTP_COMMAND, /* VRFY, EXPN, NOOP, RSET and HELP */ | |
| 42 SMTP_MAIL, /* MAIL FROM */ | |
| 43 SMTP_RCPT, /* RCPT TO */ | |
| 44 SMTP_DATA, | |
| 45 SMTP_POSTDATA, | |
| 46 SMTP_QUIT, | |
| 47 SMTP_LAST /* never used */ | |
| 48 } smtpstate; | |
| 49 | |
| 50 /* This SMTP struct is used in the Curl_easy. All SMTP data that is | |
| 51 connection-oriented must be in smtp_conn to properly deal with the fact that | |
| 52 perhaps the Curl_easy is changed between the times the connection is | |
| 53 used. */ | |
| 54 struct SMTP { | |
| 55 curl_pp_transfer transfer; | |
| 56 char *custom; /* Custom Request */ | |
| 57 struct curl_slist *rcpt; /* Recipient list */ | |
| 58 size_t eob; /* Number of bytes of the EOB (End Of Body) that | |
| 59 have been received so far */ | |
| 60 bool trailing_crlf; /* Specifies if the tailing CRLF is present */ | |
| 61 }; | |
| 62 | |
| 63 /* smtp_conn is used for struct connection-oriented data in the connectdata | |
| 64 struct */ | |
| 65 struct smtp_conn { | |
| 66 struct pingpong pp; | |
| 67 smtpstate state; /* Always use smtp.c:state() to change state! */ | |
| 68 bool ssldone; /* Is connect() over SSL done? */ | |
| 69 char *domain; /* Client address/name to send in the EHLO */ | |
| 70 struct SASL sasl; /* SASL-related storage */ | |
| 71 bool tls_supported; /* StartTLS capability supported by server */ | |
| 72 bool size_supported; /* If server supports SIZE extension according to | |
| 73 RFC 1870 */ | |
| 74 bool auth_supported; /* AUTH capability supported by server */ | |
| 75 }; | |
| 76 | |
| 77 extern const struct Curl_handler Curl_handler_smtp; | |
| 78 extern const struct Curl_handler Curl_handler_smtps; | |
| 79 | |
| 80 /* this is the 5-bytes End-Of-Body marker for SMTP */ | |
| 81 #define SMTP_EOB "\x0d\x0a\x2e\x0d\x0a" | |
| 82 #define SMTP_EOB_LEN 5 | |
| 83 #define SMTP_EOB_FIND_LEN 3 | |
| 84 | |
| 85 /* if found in data, replace it with this string instead */ | |
| 86 #define SMTP_EOB_REPL "\x0d\x0a\x2e\x2e" | |
| 87 #define SMTP_EOB_REPL_LEN 4 | |
| 88 | |
| 89 CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread); | |
| 90 | |
| 91 #endif /* HEADER_CURL_SMTP_H */ |
