2006-11-18 02:41:20 +03:00
/*
ctdb database library
Copyright ( C ) Andrew Tridgell 2006
This library is free software ; you can redistribute it and / or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation ; either
version 2 of the License , or ( at your option ) any later version .
This library is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
Lesser General Public License for more details .
You should have received a copy of the GNU Lesser General Public
License along with this library ; if not , write to the Free Software
Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
2006-11-27 13:38:13 +03:00
/* ctdb_tcp main state */
struct ctdb_tcp {
int listen_fd ;
2006-11-18 03:21:40 +03:00
} ;
2006-11-18 02:41:20 +03:00
/*
2006-11-27 13:38:13 +03:00
state associated with an incoming connection
2006-11-18 02:41:20 +03:00
*/
2006-11-27 13:38:13 +03:00
struct ctdb_incoming {
2006-11-18 02:41:20 +03:00
struct ctdb_context * ctdb ;
int fd ;
2007-04-10 13:33:21 +04:00
struct ctdb_queue * queue ;
2006-11-28 06:15:46 +03:00
} ;
2006-11-18 05:45:04 +03:00
/*
2006-11-27 13:38:13 +03:00
state associated with one tcp node
2006-11-18 05:45:04 +03:00
*/
2006-11-27 13:38:13 +03:00
struct ctdb_tcp_node {
2006-11-18 05:45:04 +03:00
int fd ;
2007-04-10 13:33:21 +04:00
struct ctdb_queue * queue ;
2006-11-18 05:45:04 +03:00
} ;
2006-11-28 03:51:33 +03:00
/* prototypes internal to tcp transport */
2006-11-28 06:15:46 +03:00
int ctdb_tcp_queue_pkt ( struct ctdb_node * node , uint8_t * data , uint32_t length ) ;
2006-11-28 03:51:33 +03:00
int ctdb_tcp_listen ( struct ctdb_context * ctdb ) ;
void ctdb_tcp_node_connect ( struct event_context * ev , struct timed_event * te ,
struct timeval t , void * private ) ;
2007-04-10 13:33:21 +04:00
void ctdb_tcp_read_cb ( uint8_t * data , size_t cnt , void * args ) ;
2007-04-10 14:48:31 +04:00
void ctdb_tcp_tnode_cb ( uint8_t * data , size_t cnt , void * private ) ;
2006-12-19 04:07:07 +03:00
# define CTDB_TCP_ALIGNMENT 8