}
sasl_set.password = input->password;
+ /* Translate to SASL/GSSAPI/Kerberos service name (IANA-registered) */
+ if (strcasecmp(input->info.protocol, "POP3") == 0)
+ sasl_set.protocol = "pop";
+ else if (strcasecmp(input->info.protocol, "Submission") == 0 ||
+ strcasecmp(input->info.protocol, "LMTP") == 0)
+ sasl_set.protocol = "smtp";
+ else
+ sasl_set.protocol = input->info.protocol;
+
+ if (input->info.local_name != NULL)
+ sasl_set.host = input->info.local_name;
+ else if (input->info.local_ip.family != 0)
+ sasl_set.host = net_ip2addr(&input->info.local_ip);
+ else
+ sasl_set.host = "localhost";
+ sasl_set.port = input->info.local_port;
+
input->sasl_client = dsasl_client_new(input->sasl_mech, &sasl_set);
dsasl_client_enable_channel_binding(
input->sasl_client, SSL_IOSTREAM_PROTOCOL_VERSION_TLS1_3,
client->common.proxy_master_user : client->common.proxy_user;
sasl_set.authzid = client->common.proxy_user;
sasl_set.password = client->common.proxy_password;
+ sasl_set.protocol = "imap";
+ sasl_set.host = login_proxy_get_host(client->common.login_proxy);
+ sasl_set.port = login_proxy_get_port(client->common.login_proxy);
client->common.proxy_sasl_client =
dsasl_client_new(client->common.proxy_mech, &sasl_set);
mech_name = dsasl_client_mech_get_name(client->common.proxy_mech);
sasl_set.authzid = set->imapc_user;
}
sasl_set.password = conn->client->password;
+ sasl_set.protocol = "imap";
+ sasl_set.host = conn->client->set->imapc_host;
+ sasl_set.port = conn->client->set->imapc_port;
if (sasl_mech == NULL)
sasl_mech = &dsasl_client_mech_plain;
sasl_set.authzid = set->username;
}
sasl_set.password = set->password;
+ sasl_set.protocol = "smtp";
+ sasl_set.host = conn->host;
+ sasl_set.port = conn->port;
conn->sasl_client = dsasl_client_new(sasl_mech, &sasl_set);
client->common.proxy_master_user : client->common.proxy_user;
sasl_set.authzid = client->common.proxy_user;
sasl_set.password = client->common.proxy_password;
+ sasl_set.protocol = "pop";
+ sasl_set.host = login_proxy_get_host(client->common.login_proxy);
+ sasl_set.port = login_proxy_get_port(client->common.login_proxy);
client->common.proxy_sasl_client =
dsasl_client_new(client->common.proxy_mech, &sasl_set);
mech_name = dsasl_client_mech_get_name(client->common.proxy_mech);