148
bool cache_state= drizzle->options.is_allocated;
149
drizzle->options= source->options;
150
drizzle->options.is_allocated= cache_state;
152
147
for (drizzle_con_st* con= source->con_list; con != NULL; con= con->next)
154
if (drizzle_con_clone(drizzle, NULL, con) == NULL)
149
if (drizzle_con_clone(drizzle, con) == NULL)
156
151
drizzle_free(drizzle);
283
275
drizzle->event_watch_context= context;
286
drizzle_con_st *drizzle_con_create(drizzle_st *drizzle, drizzle_con_st *con)
278
drizzle_con_st *drizzle_con_create(drizzle_st *drizzle)
285
drizzle_con_st *con= new (std::nothrow) drizzle_con_st;
290
con= new (std::nothrow) drizzle_con_st;
291
con->_options.is_allocated= true;
298
292
if (drizzle->con_list != NULL)
299
294
drizzle->con_list->prev= con;
301
297
con->next= drizzle->con_list;
354
drizzle_con_st *drizzle_con_clone(drizzle_st *drizzle, drizzle_con_st *con,
355
const drizzle_con_st *from)
350
drizzle_con_st *drizzle_con_clone(drizzle_st *drizzle, drizzle_con_st *source)
357
con= drizzle_con_create(drizzle, con);
352
drizzle_con_st *con= drizzle_con_create(drizzle);
363
358
/* Clear "operational" options such as IO status. */
364
con->options|= (from->options & ~(DRIZZLE_CON_ALLOCATED|DRIZZLE_CON_READY|
359
con->options|= (source->options & ~(DRIZZLE_CON_ALLOCATED|DRIZZLE_CON_READY|
365
360
DRIZZLE_CON_NO_RESULT_READ|DRIZZLE_CON_IO_READY|
366
361
DRIZZLE_CON_LISTEN));
367
con->backlog= from->backlog;
368
strcpy(con->schema, from->schema);
369
strcpy(con->password, from->password);
370
strcpy(con->user, from->user);
362
con->backlog= source->backlog;
363
strcpy(con->schema, source->schema);
364
strcpy(con->password, source->password);
365
strcpy(con->user, source->user);
372
switch (from->socket_type)
367
switch (source->socket_type)
374
369
case DRIZZLE_CON_SOCKET_TCP:
375
drizzle_con_set_tcp(con, from->socket.tcp.host, from->socket.tcp.port);
370
drizzle_con_set_tcp(con, source->socket.tcp.host, source->socket.tcp.port);
378
373
case DRIZZLE_CON_SOCKET_UDS:
379
drizzle_con_set_uds(con, from->socket.uds.sockaddr.sun_path);
374
drizzle_con_set_uds(con, source->socket.uds.sockaddr.sun_path);
557
549
* Client Definitions
560
drizzle_con_st *drizzle_con_add_tcp(drizzle_st *drizzle, drizzle_con_st *con,
552
drizzle_con_st *drizzle_con_add_tcp(drizzle_st *drizzle,
561
553
const char *host, in_port_t port,
562
554
const char *user, const char *password,
564
556
drizzle_con_options_t options)
566
con= drizzle_con_create(drizzle, con);
558
drizzle_con_st *con= drizzle_con_create(drizzle);
580
drizzle_con_st *drizzle_con_add_uds(drizzle_st *drizzle, drizzle_con_st *con,
572
drizzle_con_st *drizzle_con_add_uds(drizzle_st *drizzle,
581
573
const char *uds, const char *user,
582
574
const char *password, const char *db,
583
575
drizzle_con_options_t options)
585
con= drizzle_con_create(drizzle, con);
577
drizzle_con_st *con= drizzle_con_create(drizzle);
603
595
drizzle_con_st *drizzle_con_add_tcp_listen(drizzle_st *drizzle,
605
596
const char *host, in_port_t port,
607
598
drizzle_con_options_t options)
609
con= drizzle_con_create(drizzle, con);
600
drizzle_con_st *con= drizzle_con_create(drizzle);
622
613
drizzle_con_st *drizzle_con_add_uds_listen(drizzle_st *drizzle,
624
614
const char *uds, int backlog,
625
615
drizzle_con_options_t options)
627
con= drizzle_con_create(drizzle, con);
617
drizzle_con_st *con= drizzle_con_create(drizzle);
640
drizzle_con_st *drizzle_con_accept(drizzle_st *drizzle, drizzle_con_st *con,
630
drizzle_con_st *drizzle_con_accept(drizzle_st *drizzle,
641
631
drizzle_return_t *ret_ptr)
633
drizzle_return_t unused;
645
641
if (drizzle_con_st* ready= drizzle_con_ready_listen(drizzle))
647
643
int fd= accept(ready->fd, NULL, NULL);
649
con= drizzle_con_create(drizzle, con);
645
drizzle_con_st *con= drizzle_con_create(drizzle);
652
648
(void)closesocket(fd);
677
673
for (drizzle_con_st* ready= drizzle->con_list; ready != NULL; ready= ready->next)
679
675
if (ready->options & DRIZZLE_CON_LISTEN)
680
677
drizzle_con_set_events(ready, POLLIN);
683
681
*ret_ptr= drizzle_con_wait(drizzle);
684
682
if (*ret_ptr != DRIZZLE_RETURN_OK)