void login_refresh_proctitle(void);
void login_client_destroyed(void);
+/* Call to guarantee that the "anvil" global variable is initialized. */
+void login_anvil_init(void);
+
int login_binary_run(const struct login_binary *binary,
int argc, char *argv[]);
return FALSE;
}
+void login_anvil_init(void)
+{
+ if (anvil != NULL)
+ return;
+
+ anvil = anvil_client_init("anvil", anvil_reconnect_callback, 0);
+ if (anvil_client_connect(anvil, TRUE) < 0)
+ i_fatal("Couldn't connect to anvil");
+}
+
static const struct ip_addr *
parse_login_source_ips(const char *ips_str, unsigned int *count_r)
{
i_assert(strcmp(global_ssl_settings->ssl, "no") == 0 ||
ssl_initialized);
- if (global_login_settings->mail_max_userip_connections > 0) {
- anvil = anvil_client_init("anvil", anvil_reconnect_callback, 0);
- if (anvil_client_connect(anvil, TRUE) < 0)
- i_fatal("Couldn't connect to anvil");
- }
+ if (global_login_settings->mail_max_userip_connections > 0)
+ login_anvil_init();
/* read the login_source_ips before chrooting so it can access
/etc/hosts */