2007-06-10 21:02:09 +04:00
/*
Unix SMB / CIFS implementation .
Samba3 ctdb connection handling
Copyright ( C ) Volker Lendecke 2007
2011-10-23 22:56:08 +04:00
2007-06-10 21:02:09 +04:00
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
2007-07-09 23:25:36 +04:00
the Free Software Foundation ; either version 3 of the License , or
2007-06-10 21:02:09 +04:00
( at your option ) any later version .
2011-10-23 22:56:08 +04:00
2007-06-10 21:02:09 +04:00
This program 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 General Public License for more details .
2011-10-23 22:56:08 +04:00
2007-06-10 21:02:09 +04:00
You should have received a copy of the GNU General Public License
2007-07-10 04:52:41 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2007-06-10 21:02:09 +04:00
*/
2008-01-16 12:09:48 +03:00
# ifndef _CTDBD_CONN_H
# define _CTDBD_CONN_H
2015-03-12 17:40:16 +03:00
# include <tdb.h>
2011-05-05 13:25:29 +04:00
2007-06-10 21:02:09 +04:00
struct ctdbd_connection ;
2011-03-24 17:31:06 +03:00
struct messaging_context ;
struct messaging_rec ;
2007-06-10 21:02:09 +04:00
2015-10-03 06:42:05 +03:00
int ctdbd_messaging_connection ( TALLOC_CTX * mem_ctx ,
const char * sockname , int timeout ,
struct ctdbd_connection * * pconn ) ;
2007-06-10 21:02:09 +04:00
2012-07-30 17:31:59 +04:00
uint32_t ctdbd_vnn ( const struct ctdbd_connection * conn ) ;
2007-06-10 21:02:09 +04:00
2015-10-03 06:42:05 +03:00
int ctdbd_register_msg_ctx ( struct ctdbd_connection * conn ,
struct messaging_context * msg_ctx ) ;
2009-12-04 15:22:30 +03:00
struct messaging_context * ctdb_conn_msg_ctx ( struct ctdbd_connection * conn ) ;
2007-06-10 21:02:09 +04:00
2010-01-23 02:05:15 +03:00
int ctdbd_conn_get_fd ( struct ctdbd_connection * conn ) ;
2015-10-03 06:42:05 +03:00
int ctdbd_messaging_send_iov ( struct ctdbd_connection * conn ,
uint32_t dst_vnn , uint64_t dst_srvid ,
const struct iovec * iov , int iovlen ) ;
2007-06-10 21:02:09 +04:00
2012-07-30 17:31:59 +04:00
bool ctdbd_process_exists ( struct ctdbd_connection * conn , uint32_t vnn ,
2007-06-10 21:02:09 +04:00
pid_t pid ) ;
2011-10-23 23:38:54 +04:00
bool ctdb_processes_exist ( struct ctdbd_connection * conn ,
const struct server_id * pids , int num_pids ,
bool * results ) ;
2007-06-10 21:02:09 +04:00
char * ctdbd_dbpath ( struct ctdbd_connection * conn ,
TALLOC_CTX * mem_ctx , uint32_t db_id ) ;
2015-10-03 06:42:05 +03:00
int ctdbd_db_attach ( struct ctdbd_connection * conn , const char * name ,
uint32_t * db_id , int tdb_flags ) ;
2007-06-10 21:02:09 +04:00
2015-10-03 06:42:05 +03:00
int ctdbd_migrate ( struct ctdbd_connection * conn , uint32_t db_id , TDB_DATA key ) ;
2007-06-10 21:02:09 +04:00
2015-10-03 06:42:05 +03:00
int ctdbd_parse ( struct ctdbd_connection * conn , uint32_t db_id ,
TDB_DATA key , bool local_copy ,
void ( * parser ) ( TDB_DATA key , TDB_DATA data ,
void * private_data ) ,
void * private_data ) ;
2007-06-10 21:02:09 +04:00
2015-10-03 06:42:05 +03:00
int ctdbd_traverse ( struct ctdbd_connection * master , uint32_t db_id ,
void ( * fn ) ( TDB_DATA key , TDB_DATA data ,
void * private_data ) ,
void * private_data ) ;
2007-06-10 21:02:09 +04:00
NTSTATUS ctdbd_register_ips ( struct ctdbd_connection * conn ,
2009-01-14 14:09:46 +03:00
const struct sockaddr_storage * server ,
const struct sockaddr_storage * client ,
2015-06-23 20:07:44 +03:00
int ( * cb ) ( uint32_t src_vnn , uint32_t dst_vnn ,
uint64_t dst_srvid ,
const uint8_t * msg , size_t msglen ,
void * private_data ) ,
2007-06-10 21:02:09 +04:00
void * private_data ) ;
2012-07-30 17:31:59 +04:00
NTSTATUS ctdbd_control_local ( struct ctdbd_connection * conn , uint32_t opcode ,
uint64_t srvid , uint32_t flags , TDB_DATA data ,
2008-08-07 10:20:05 +04:00
TALLOC_CTX * mem_ctx , TDB_DATA * outdata ,
int * cstatus ) ;
2009-10-25 18:12:12 +03:00
NTSTATUS ctdb_watch_us ( struct ctdbd_connection * conn ) ;
NTSTATUS ctdb_unwatch ( struct ctdbd_connection * conn ) ;
2015-05-19 08:05:24 +03:00
struct ctdb_req_message ;
2015-10-03 06:42:05 +03:00
int register_with_ctdbd ( struct ctdbd_connection * conn , uint64_t srvid ,
int ( * cb ) ( uint32_t src_vnn , uint32_t dst_vnn ,
uint64_t dst_srvid ,
const uint8_t * msg , size_t msglen ,
void * private_data ) ,
void * private_data ) ;
2015-09-26 02:52:58 +03:00
NTSTATUS ctdbd_probe ( const char * sockname , int timeout ) ;
2008-08-07 10:20:05 +04:00
2008-01-16 12:09:48 +03:00
# endif /* _CTDBD_CONN_H */