Example #1
0
int http_client_init_ssl_ctx(struct http_client *client, const char **error_r)
{
	struct ssl_iostream_settings ssl_set;
	const char *error;

	if (client->ssl_ctx != NULL)
		return 0;

	memset(&ssl_set, 0, sizeof(ssl_set));
	ssl_set.ca_dir = client->set.ssl_ca_dir;
	ssl_set.ca_file = client->set.ssl_ca_file;
	ssl_set.ca = client->set.ssl_ca;
	ssl_set.verify_remote_cert = TRUE;
	ssl_set.crypto_device = client->set.ssl_crypto_device;
	ssl_set.cert = client->set.ssl_cert;
	ssl_set.key = client->set.ssl_key;
	ssl_set.key_password = client->set.ssl_key_password;
	ssl_set.verbose = client->set.debug;
	ssl_set.verbose_invalid_cert = client->set.debug;

	if (ssl_iostream_context_init_client(&ssl_set, &client->ssl_ctx, &error) < 0) {
		*error_r = t_strdup_printf("Couldn't initialize SSL context: %s",
					   error);
		return -1;
	}
	return 0;
}
struct pop3c_client *
pop3c_client_init(const struct pop3c_client_settings *set)
{
	struct pop3c_client *client;
	struct ssl_iostream_settings ssl_set;
	const char *error;
	pool_t pool;

	// CLEANUP: Remove Warning
	i_warning("pop3c_client_init called");

	pool = pool_alloconly_create("pop3c client", 1024);
	client = p_new(pool, struct pop3c_client, 1);
	client->pool = pool;
	client->fd = -1;

	client->set.debug = set->debug;
	client->set.host = p_strdup(pool, set->host);
	client->set.port = set->port;
	client->set.master_user = p_strdup_empty(pool, set->master_user);
	client->set.username = p_strdup(pool, set->username);

	// CLEANUP: remove warning
	i_warning("pop3c_client_init: username %s", client->set.username);
	env_put(t_strconcat("POP3C_USERNAME="******"pop3c(%s:%u): Couldn't initialize SSL context: %s",
				set->host, set->port, error);
		}
	}
	return client;
}
Example #3
0
static int dsync_init_ssl_ctx(struct dsync_cmd_context *ctx,
			      const struct mail_storage_settings *mail_set,
			      const char **error_r)
{
	struct ssl_iostream_settings ssl_set;

	if (ctx->ssl_ctx != NULL)
		return 0;

	memset(&ssl_set, 0, sizeof(ssl_set));
	ssl_set.ca_dir = mail_set->ssl_client_ca_dir;
	ssl_set.ca_file = mail_set->ssl_client_ca_file;
	ssl_set.verify_remote_cert = TRUE;
	ssl_set.crypto_device = mail_set->ssl_crypto_device;

	return ssl_iostream_context_init_client(&ssl_set, &ctx->ssl_ctx, error_r);
}
Example #4
0
int http_client_init_ssl_ctx(struct http_client *client, const char **error_r)
{
	const char *error;

	if (client->ssl_ctx != NULL)
		return 0;

	if (client->set.ssl == NULL) {
		*error_r = "Requested https connection, but no SSL settings given";
		return -1;
	}
	if (ssl_iostream_context_init_client(client->set.ssl, &client->ssl_ctx, &error) < 0) {
		*error_r = t_strdup_printf("Couldn't initialize SSL context: %s",
					   error);
		return -1;
	}
	return 0;
}