120 #ifdef STRCASECMP_IN_STRINGS_H
151 char *auth_mechanism;
152 char *initial_response;
178 else if (err[0] ==
'4') {
188 smtpd_chat_reply(state,
"504 5.5.4 Encryption required for requested authentication mechanism");
192 if (state->sasl_username) {
197 if (argc < 2 || argc > 3) {
203 #ifndef XSASL_TYPE_CYRUS
204 #define XSASL_TYPE_CYRUS "cyrus"
209 if (state->tls_context != 0)
225 auth_mechanism = argv[1].
strval;
226 initial_response = (argc == 3 ? argv[2].
strval : 0);
239 if (state->sasl_username == 0) {
241 return (
"503 5.5.4 Error: send AUTH command first");
244 if (state->sasl_sender != 0) {
246 return (
"503 5.5.4 Error: multiple AUTH= options");
248 if (strcmp(addr,
"<>") != 0) {
249 state->sasl_sender =
mystrdup(addr);
259 if (state->sasl_sender) {
260 myfree(state->sasl_sender);
261 state->sasl_sender = 0;
269 if (state->sasl_method &&
strcasecmp(state->sasl_method,
"anonymous"))
#define SMTPD_STAND_ALONE(state)
char * mystrdup(const char *str)
#define SMTPD_IN_MAIL_TRANSACTION(state)
int smtpd_sasl_auth_cmd(SMTPD_STATE *, int, SMTPD_TOKEN *)
const char * milter_other_event(MILTERS *milters)
char * var_smtpd_sasl_tls_opts
void smtpd_sasl_mail_reset(SMTPD_STATE *)
bool var_smtpd_tls_auth_only
char * var_smtpd_sasl_opts
#define MAIL_ERROR_POLICY
#define smtpd_sasl_is_active(s)
int permit_sasl_auth(SMTPD_STATE *, int, int)
#define VAR_SMTPD_SASL_TLS_OPTS
void smtpd_sasl_deactivate(SMTPD_STATE *)
int smtpd_sasl_authenticate(SMTPD_STATE *, const char *, const char *)
void smtpd_chat_reply(SMTPD_STATE *state, const char *format,...)
#define SMTPD_FLAG_AUTH_USED
int strcasecmp(const char *s1, const char *s2)
#define MAIL_ERROR_PROTOCOL
char * var_smtpd_sasl_type
char * printable(char *string, int replacement)
void smtpd_sasl_activate(SMTPD_STATE *, const char *, const char *)
#define VAR_SMTPD_SASL_OPTS
char * smtpd_sasl_mail_opt(SMTPD_STATE *, const char *)