Lines Matching defs:server
13 #include "server-connection.h"
16 #include "doveadm-server.h"
41 struct doveadm_server *server;
49 server = hash_table_lookup(servers, name);
50 if (server == NULL) {
51 server = p_new(server_pool, struct doveadm_server, 1);
52 server->name = dup_name = p_strdup(server_pool, name);
53 p = strrchr(server->name, ':');
54 server->hostname = p == NULL ? server->name :
55 p_strdup_until(server_pool, server->name, p);
57 p_array_init(&server->connections, server_pool,
59 p_array_init(&server->queue, server_pool,
61 hash_table_insert(servers, dup_name, server);
63 return server;
67 doveadm_server_find_unused_conn(struct doveadm_server *server)
71 array_foreach(&server->connections, connp) {
78 static bool doveadm_server_have_used_connections(struct doveadm_server *server)
82 array_foreach(&server->connections, connp) {
93 struct doveadm_server *server =
105 server->name, cmd_ctx->cmd->name, username, error);
110 i_error("%s: No such user: %s", server->name, username);
120 if (array_count(&server->queue) > 0) {
122 char *const *usernamep = array_idx(&server->queue, 0);
125 conn = doveadm_server_find_unused_conn(server);
127 array_delete(&server->queue, 0, 1);
167 static void doveadm_server_flush_one(struct doveadm_server *server)
169 unsigned int count = array_count(&server->queue);
173 } while (array_count(&server->queue) == count &&
174 doveadm_server_have_used_connections(server) &&
268 struct doveadm_server *server;
286 /* server sends the sticky headers for each row as well,
290 server = doveadm_server_get(ctx, host);
291 conn = doveadm_server_find_unused_conn(server);
294 else if (array_count(&server->connections) <
296 if (server_connection_create(server, &conn) < 0)
301 if (array_count(&server->queue) >= DOVEADM_SERVER_QUEUE_MAX)
302 doveadm_server_flush_one(server);
305 array_append(&server->queue, &username_dup, 1);
307 *error_r = "doveadm server failure";
316 struct doveadm_server *server;
319 while (hash_table_iterate(iter, servers, &key, &server)) {
320 if (doveadm_server_have_used_connections(server)) {
321 ret = server;
333 struct doveadm_server *server;
336 while (hash_table_iterate(iter, servers, &key, &server)) {
337 while (array_count(&server->connections) > 0) {
340 connp = array_idx(&server->connections, 0);
350 struct doveadm_server *server;
357 while ((server = doveadm_server_find_used()) != NULL &&
359 doveadm_server_flush_one(server);