/* Disconnect client when it sends too many bad commands */
#define CLIENT_MAX_BAD_COMMANDS 10
-const char *login_protocol = "imap";
-const char *login_process_name = "imap-login";
-unsigned int login_default_port = 143, login_default_ssl_port = 993;
+const struct login_binary login_binary = {
+ .protocol = "imap",
+ .process_name = "imap-login",
+ .default_port = 143,
+ .default_ssl_port = 993
+};
void login_process_preinit(void)
{
else if (strcmp(key, "ssl") == 0) {
if (strcmp(value, "yes") == 0) {
reply_r->ssl_flags |= PROXY_SSL_FLAG_YES;
- if (reply_r->port == 0)
- reply_r->port = login_default_ssl_port;
+ if (reply_r->port == 0) {
+ reply_r->port =
+ login_binary.default_ssl_port;
+ }
} else if (strcmp(value, "any-cert") == 0) {
reply_r->ssl_flags |= PROXY_SSL_FLAG_YES |
PROXY_SSL_FLAG_ANY_CERT;
i_debug("Ignoring unknown passdb extra field: %s", key);
}
if (reply_r->port == 0)
- reply_r->port = login_default_port;
+ reply_r->port = login_binary.default_port;
if (reply_r->destuser == NULL)
reply_r->destuser = client->virtual_user;
client_ref(client);
client->auth_initializing = TRUE;
- sasl_server_auth_begin(client, login_protocol, mech_name,
+ sasl_server_auth_begin(client, login_binary.protocol, mech_name,
init_resp, sasl_callback);
client->auth_initializing = FALSE;
if (!client->authenticating)
for (i = 0; i < 3; i++)
tab[i].value = str_sanitize(tab[i].value, 80);
}
- tab[3].value = login_protocol;
+ tab[3].value = login_binary.protocol;
tab[4].value = getenv("HOME");
tab[5].value = net_ip2addr(&client->local_ip);
tab[6].value = net_ip2addr(&client->ip);
#define AUTH_PLAINTEXT_DISABLED_MSG \
"Plaintext authentication disallowed on non-secure (SSL/TLS) connections."
-extern const char *login_protocol, *login_process_name;
-extern unsigned int login_default_port, login_default_ssl_port;
-
+struct login_binary {
+ /* e.g. imap, pop3 */
+ const char *protocol;
+ /* e.g. imap-login, pop3-login */
+ const char *process_name;
+
+ /* e.g. 143, 110 */
+ unsigned int default_port;
+ /* e.g. 993, 995. if there is no ssl port, use 0. */
+ unsigned int default_ssl_port;
+};
+
+extern const struct login_binary login_binary;
extern struct auth_client *auth_client;
extern struct master_auth *master_auth;
extern bool closing_down;
memset(&input, 0, sizeof(input));
input.roots = login_set_roots;
- input.module = login_process_name;
- input.service = login_protocol;
+ input.module = login_binary.process_name;
+ input.service = login_binary.protocol;
input.local_host = local_host;
if (local_ip != NULL)
return;
}
lookup->access = access_lookup(*lookup->next_socket, lookup->conn.fd,
- login_protocol, login_access_callback,
- lookup);
+ login_binary.protocol,
+ login_access_callback, lookup);
if (lookup->access == NULL)
login_access_lookup_free(lookup);
}
auth_client = auth_client_init("auth", (unsigned int)getpid(), FALSE);
auth_client_set_connect_notify(auth_client, auth_connect_notify, NULL);
- master_auth = master_auth_init(master_service, login_protocol);
+ master_auth = master_auth_init(master_service, login_binary.protocol);
clients_init();
login_proxy_init();
bool allow_core_dumps = FALSE;
int c;
- master_service = master_service_init(login_process_name, service_flags,
- &argc, &argv, "DS");
+ master_service = master_service_init(login_binary.process_name,
+ service_flags, &argc, &argv, "DS");
master_service_init_log(master_service, t_strconcat(
- login_process_name, ": ", NULL));
+ login_binary.process_name, ": ", NULL));
while ((c = master_getopt(master_service)) > 0) {
switch (c) {
return;
}
- query = t_strconcat("LOOKUP\t", login_protocol, "/",
+ query = t_strconcat("LOOKUP\t", login_binary.protocol, "/",
net_ip2addr(&client->ip), "/",
str_tabescape(client->virtual_user), NULL);
anvil_client_query(anvil, query, anvil_lookup_callback, req);
/* Disconnect client when it sends too many bad commands */
#define CLIENT_MAX_BAD_COMMANDS 10
-const char *login_protocol = "pop3";
-const char *login_process_name = "pop3-login";
-unsigned int login_default_port = 110, login_default_ssl_port = 995;
+const struct login_binary login_binary = {
+ .protocol = "pop3",
+ .process_name = "pop3-login",
+ .default_port = 110,
+ .default_ssl_port = 995
+};
void login_process_preinit(void)
{