ZOOM_connection link;
struct host *host;
struct client *client;
- char *ibuf;
- int ibufsize;
char *zproxy;
enum {
Conn_Resolving,
struct connection *next; // next for same host or next in free list
};
-static struct connection *connection_freelist = 0;
+static struct connection *connection_freelist = 0; /* thread pr */
-static int connection_connect(struct connection *con);
+static int connection_connect(struct connection *con, iochan_man_t iochan_man);
static int connection_is_idle(struct connection *co)
{
// client's database
static struct connection *connection_create(struct client *cl,
int operation_timeout,
- int session_timeout)
+ int session_timeout,
+ iochan_man_t iochan_man)
{
struct connection *new;
struct host *host = client_get_host(cl);
else
{
new = xmalloc(sizeof (struct connection));
- new->ibuf = 0;
- new->ibufsize = 0;
}
new->host = host;
new->next = new->host->connections;
new->operation_timeout = operation_timeout;
new->session_timeout = session_timeout;
if (host->ipport)
- connection_connect(new);
+ connection_connect(new, iochan_man);
return new;
}
co->client = 0;
}
-void connect_resolver_host(struct host *host)
+void connect_resolver_host(struct host *host, iochan_man_t iochan_man)
{
struct connection *con = host->connections;
while (con)
}
else
{
- connection_connect(con);
+ connection_connect(con, iochan_man);
client_start_search(con->client);
}
}
return ZOOM_connection_get_mask(co->link);
}
-static int connection_connect(struct connection *con)
+static int connection_connect(struct connection *con, iochan_man_t iochan_man)
{
ZOOM_connection link = 0;
struct host *host = connection_get_host(con);
iochan_setdata(con->iochan, con);
iochan_setsocketfun(con->iochan, socketfun);
iochan_setmaskfun(con->iochan, maskfun);
- pazpar2_add_channel(con->iochan);
+ iochan_add(iochan_man, con->iochan);
/* this fragment is bad DRY: from client_prep_connection */
client_set_state(con->client, Client_Connecting);
// Ensure that client has a connection associated
int client_prep_connection(struct client *cl,
- int operation_timeout, int session_timeout)
+ int operation_timeout, int session_timeout,
+ iochan_man_t iochan_man)
{
struct connection *co;
struct session *se = client_get_session(cl);
}
else
{
- co = connection_create(cl, operation_timeout, session_timeout);
+ co = connection_create(cl, operation_timeout, session_timeout,
+ iochan_man);
}
}