static bool dict_connection_cmds_try_output_more(struct dict_connection *conn)
{
- struct dict_connection_cmd *const *cmdp, *cmd;
+ struct dict_connection_cmd *cmd;
/* only iterators may be returning a lot of data */
- array_foreach(&conn->cmds, cmdp) {
- cmd = *cmdp;
-
+ array_foreach_elem(&conn->cmds, cmd) {
if (cmd->iter == NULL) {
/* not an iterator */
} else if (cmd_iterate_flush(cmd) == 0) {
struct imap_login_command *imap_login_command_lookup(const char *name)
{
- struct imap_login_command *const *cmdp;
+ struct imap_login_command *cmd;
- array_foreach(&imap_login_commands, cmdp) {
- if (strcasecmp((*cmdp)->name, name) == 0)
- return *cmdp;
+ array_foreach_elem(&imap_login_commands, cmd) {
+ if (strcasecmp(cmd->name, name) == 0)
+ return cmd;
}
return NULL;
}
static void client_destroy(struct client *client)
{
- char **app;
+ char *app;
i_set_failure_prefix("imap-urlauth[%s](%s): ",
my_pid, client->access_user);
mail_storage_service_user_unref(&client->service_user);
i_free(client->access_user);
i_free(client->access_service);
- array_foreach_modifiable(&client->access_apps, app)
- i_free(*app);
+ array_foreach_elem(&client->access_apps, app)
+ i_free(app);
array_free(&client->access_apps);
i_free(client);
static struct ipc_connection_cmd *
ipc_connection_cmd_find(struct ipc_connection *conn, unsigned int tag)
{
- struct ipc_connection_cmd *const *cmdp;
+ struct ipc_connection_cmd *cmd;
- array_foreach(&conn->cmds, cmdp) {
- if ((*cmdp)->tag == tag)
- return *cmdp;
+ array_foreach_elem(&conn->cmds, cmd) {
+ if (cmd->tag == tag)
+ return cmd;
}
return NULL;
}
struct ipc_group *ipc_group_lookup_listen_fd(int listen_fd)
{
- struct ipc_group *const *groupp;
+ struct ipc_group *group;
- array_foreach(&ipc_groups, groupp) {
- if ((*groupp)->listen_fd == listen_fd)
- return *groupp;
+ array_foreach_elem(&ipc_groups, group) {
+ if (group->listen_fd == listen_fd)
+ return group;
}
return NULL;
}
struct ipc_group *ipc_group_lookup_name(const char *name)
{
- struct ipc_group *const *groupp;
+ struct ipc_group *group;
- array_foreach(&ipc_groups, groupp) {
- if ((*groupp)->name != NULL &&
- strcmp((*groupp)->name, name) == 0)
- return *groupp;
+ array_foreach_elem(&ipc_groups, group) {
+ if (group->name != NULL &&
+ strcmp(group->name, name) == 0)
+ return group;
}
return NULL;
}
static const struct fs *fs_class_find(const char *driver)
{
- const struct fs *const *classp;
+ const struct fs *class;
if (!array_is_created(&fs_classes))
fs_classes_init();
- array_foreach(&fs_classes, classp) {
- if (strcmp((*classp)->name, driver) == 0)
- return *classp;
+ array_foreach_elem(&fs_classes, class) {
+ if (strcmp(class->name, driver) == 0)
+ return class;
}
return NULL;
}
static void
istream_attachment_connector_free(struct istream_attachment_connector *conn)
{
- struct istream *const *streamp, *stream;
+ struct istream *stream;
- array_foreach(&conn->streams, streamp) {
- stream = *streamp;
+ array_foreach_elem(&conn->streams, stream)
i_stream_unref(&stream);
- }
i_stream_unref(&conn->base_input);
pool_unref(&conn->pool);
}
bool master_service_set_has_config_override(struct master_service *service,
const char *key)
{
- const char *const *override, *key_root;
+ const char *override, *key_root;
bool ret;
if (!array_is_created(&service->config_overrides))
if (key_root == NULL)
key_root = key;
- array_foreach(&service->config_overrides, override) {
+ array_foreach_elem(&service->config_overrides, override) {
T_BEGIN {
const char *okey, *okey_root;
- okey = t_strcut(*override, '=');
+ okey = t_strcut(override, '=');
okey_root = settings_parse_unalias(service->set_parser,
okey);
if (okey_root == NULL)
env_clean();
if (array_is_created(envs)) {
- const char *const *env;
+ const char *env;
- array_foreach(envs, env) {
- env_put(*env);
- }
+ array_foreach_elem(envs, env)
+ env_put(env);
}
/* Execute */
str = t_str_new(1024);
str_append(str, PROGRAM_CLIENT_VERSION_STRING);
if (array_is_created(&pclient->envs)) {
- const char *const *env;
- array_foreach(&pclient->envs, env) {
+ const char *env;
+ array_foreach_elem(&pclient->envs, env) {
str_append(str, "env_");
- str_append_tabescaped(str, *env);
+ str_append_tabescaped(str, env);
str_append_c(str, '\n');
}
}
static void driver_cassandra_close(struct cassandra_db *db, const char *error)
{
- struct cassandra_sql_prepared_statement *const *prep_stmtp;
+ struct cassandra_sql_prepared_statement *prep_stmt;
struct cassandra_result *const *resultp;
io_remove(&db->io_pipe);
}
driver_cassandra_set_state(db, SQL_DB_STATE_DISCONNECTED);
- array_foreach(&db->pending_prepares, prep_stmtp) {
- (*prep_stmtp)->pending = FALSE;
- (*prep_stmtp)->error = i_strdup(error);
- prepare_finish_pending_statements(*prep_stmtp);
+ array_foreach_elem(&db->pending_prepares, prep_stmt) {
+ prep_stmt->pending = FALSE;
+ prep_stmt->error = i_strdup(error);
+ prepare_finish_pending_statements(prep_stmt);
}
array_clear(&db->pending_prepares);
static void
prepare_finish_pending_statements(struct cassandra_sql_prepared_statement *prep_stmt)
{
- struct cassandra_sql_statement *const *stmtp;
+ struct cassandra_sql_statement *stmt;
- array_foreach(&prep_stmt->pending_statements, stmtp)
- prepare_finish_statement(*stmtp);
+ array_foreach_elem(&prep_stmt->pending_statements, stmt)
+ prepare_finish_statement(stmt);
array_clear(&prep_stmt->pending_statements);
}
static void driver_cassandra_prepare_pending(struct cassandra_db *db)
{
- struct cassandra_sql_prepared_statement *const *prep_stmtp;
+ struct cassandra_sql_prepared_statement *prep_stmt;
i_assert(SQL_DB_IS_READY(&db->api));
- array_foreach(&db->pending_prepares, prep_stmtp) {
- (*prep_stmtp)->pending = FALSE;
- prepare_start(*prep_stmtp);
+ array_foreach_elem(&db->pending_prepares, prep_stmt) {
+ prep_stmt->pending = FALSE;
+ prepare_start(prep_stmt);
}
array_clear(&db->pending_prepares);
}
driver_sqlpool_parse_hosts(struct sqlpool_db *db, const char *connect_string,
const char **error_r)
{
- const char *const *args, *key, *value, *const *hostnamep;
+ const char *const *args, *key, *value, *hostname;
struct sqlpool_host *host;
ARRAY_TYPE(const_string) hostnames, connect_args;
if (*connect_string == '\0')
connect_string = NULL;
- array_foreach(&hostnames, hostnamep) {
+ array_foreach_elem(&hostnames, hostname) {
host = array_append_space(&db->hosts);
host->connect_string =
- i_strconcat("host=", *hostnamep, " ",
+ i_strconcat("host=", hostname, " ",
connect_string, NULL);
}
}
static void test_subprocess_free_all(void)
{
- struct test_subprocess **subpp;
+ struct test_subprocess *subp;
- array_foreach_modifiable(&test_subprocesses, subpp)
- i_free(*subpp);
+ array_foreach_elem(&test_subprocesses, subp)
+ i_free(subp);
array_free(&test_subprocesses);
}
void lmtp_proxy_deinit(struct lmtp_proxy **_proxy)
{
struct lmtp_proxy *proxy = *_proxy;
- struct lmtp_proxy_connection *const *conns;
+ struct lmtp_proxy_connection *conn;
*_proxy = NULL;
- array_foreach(&proxy->connections, conns)
- lmtp_proxy_connection_deinit(*conns);
+ array_foreach_elem(&proxy->connections, conn)
+ lmtp_proxy_connection_deinit(conn);
smtp_client_deinit(&proxy->lmtp_client);
i_stream_unref(&proxy->data_input);
};
struct smtp_client_settings lmtp_set;
struct smtp_server_transaction *trans = proxy->trans;
- struct lmtp_proxy_connection *const *conns, *conn;
+ struct lmtp_proxy_connection *conn;
enum smtp_client_connection_ssl_mode ssl_mode;
struct ssl_iostream_settings ssl_set;
i_assert(set->timeout_msecs > 0);
- array_foreach(&proxy->connections, conns) {
- conn = *conns;
-
+ array_foreach_elem(&proxy->connections, conn) {
if (conn->set.protocol == set->protocol &&
conn->set.port == set->port &&
strcmp(conn->set.host, set->host) == 0 &&
struct istream *data_input)
{
struct lmtp_proxy *proxy = client->proxy;
- struct lmtp_proxy_connection *const *conns;
+ struct lmtp_proxy_connection *conn;
uoff_t size;
i_assert(data_input->seekable);
}
/* Create the data_input streams first */
- array_foreach(&proxy->connections, conns) {
- struct lmtp_proxy_connection *conn = *conns;
-
+ array_foreach_elem(&proxy->connections, conn) {
if (conn->finished) {
/* This connection had already failed */
continue;
/* Now that all the streams are created, start reading them
(reading them earlier could have caused the data_input parent's
offset to change) */
- array_foreach(&proxy->connections, conns) {
- struct lmtp_proxy_connection *conn = *conns;
-
+ array_foreach_elem(&proxy->connections, conn) {
if (conn->finished) {
/* This connection had already failed */
continue;
login_proxy_cmd_list(struct ipc_cmd *cmd, const char *const *args ATTR_UNUSED)
{
struct login_proxy *proxy;
- char *const *fieldp;
+ char *field;
string_t *str = t_str_new(64);
str_append(str, "username\t");
- array_foreach(&global_alt_usernames, fieldp) {
- str_append_tabescaped(str, *fieldp);
+ array_foreach_elem(&global_alt_usernames, field) {
+ str_append_tabescaped(str, field);
str_append_c(str, '\t');
}
str_append(str, "service\tsrc-ip\tdest-ip\tdest-port");
auth_client_deinit(&auth_client);
master_auth_deinit(&master_auth);
- char **strp;
- array_foreach_modifiable(&global_alt_usernames, strp)
- i_free(*strp);
+ char *str;
+ array_foreach_elem(&global_alt_usernames, str)
+ i_free(str);
array_free(&global_alt_usernames);
if (anvil != NULL)
{
string_t *str = t_str_new(256);
const ARRAY_TYPE(dsync_client) *clients;
- struct dsync_client *const *clientp;
+ struct dsync_client *dsync_client;
const char *username;
clients = replicator_brain_get_dsync_clients(client->brain);
- array_foreach(clients, clientp) {
- username = dsync_client_get_username(*clientp);
+ array_foreach_elem(clients, dsync_client) {
+ username = dsync_client_get_username(dsync_client);
if (username != NULL) {
str_append_tabescaped(str, username);
str_append_c(str, '\t');
- switch (dsync_client_get_type(*clientp)) {
+ switch (dsync_client_get_type(dsync_client)) {
case DSYNC_TYPE_FULL:
str_append(str, "full");
break;
str_append(str, "\t-");
}
str_append_c(str, '\t');
- str_append_tabescaped(str, dsync_client_get_state(*clientp));
+ str_append_tabescaped(str, dsync_client_get_state(dsync_client));
str_append_c(str, '\n');
}
void replicator_brain_deinit(struct replicator_brain **_brain)
{
struct replicator_brain *brain = *_brain;
- struct dsync_client **connp;
+ struct dsync_client *conn;
*_brain = NULL;
brain->deinitializing = TRUE;
- array_foreach_modifiable(&brain->dsync_clients, connp)
- dsync_client_deinit(connp);
+ array_foreach_elem(&brain->dsync_clients, conn)
+ dsync_client_deinit(&conn);
timeout_remove(&brain->to);
pool_unref(&brain->pool);
}
static struct dsync_client *
get_dsync_client(struct replicator_brain *brain)
{
- struct dsync_client *const *connp, *conn = NULL;
+ struct dsync_client *conn;
- array_foreach(&brain->dsync_clients, connp) {
- if (!dsync_client_is_busy(*connp))
- return *connp;
+ array_foreach_elem(&brain->dsync_clients, conn) {
+ if (!dsync_client_is_busy(conn))
+ return conn;
}
if (array_count(&brain->dsync_clients) ==
brain->set->replication_max_conns)