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
NTSTATUS ctdbd_messaging_connection ( TALLOC_CTX * mem_ctx ,
struct ctdbd_connection * * pconn ) ;
2012-07-30 17:31:59 +04:00
uint32_t ctdbd_vnn ( const struct ctdbd_connection * conn ) ;
2013-10-08 15:33:49 +04:00
const char * lp_ctdbd_socket ( void ) ;
2007-06-10 21:02:09 +04:00
NTSTATUS 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 ) ;
2007-06-10 21:02:09 +04:00
NTSTATUS ctdbd_messaging_send ( struct ctdbd_connection * conn ,
2012-07-30 17:31:59 +04:00
uint32_t dst_vnn , uint64_t dst_srvid ,
2007-06-10 21:02:09 +04:00
struct messaging_rec * msg ) ;
2012-03-30 13:10:47 +04:00
NTSTATUS ctdbd_messaging_send_blob ( struct ctdbd_connection * conn ,
2012-07-30 17:31:59 +04:00
uint32_t dst_vnn , uint64_t dst_srvid ,
2012-03-30 13:10:47 +04:00
const uint8_t * buf , size_t buflen ) ;
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 ) ;
2013-10-08 17:30:16 +04:00
bool ctdb_serverids_exist_supported ( struct ctdbd_connection * conn ) ;
2011-10-31 19:30:38 +04:00
bool ctdb_serverids_exist ( struct ctdbd_connection * conn ,
const struct server_id * pids , unsigned 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 ) ;
NTSTATUS ctdbd_db_attach ( struct ctdbd_connection * conn , const char * name ,
uint32_t * db_id , int tdb_flags ) ;
2012-07-30 17:31:59 +04:00
NTSTATUS ctdbd_migrate ( struct ctdbd_connection * conn , uint32_t db_id ,
2007-06-10 21:02:09 +04:00
TDB_DATA key ) ;
2012-11-23 20:54:57 +04:00
NTSTATUS 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
2012-07-30 17:31:59 +04:00
NTSTATUS ctdbd_traverse ( uint32_t db_id ,
2007-06-10 21:02:09 +04:00
void ( * fn ) ( TDB_DATA key , TDB_DATA data ,
void * private_data ) ,
void * private_data ) ;
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 ,
2014-02-17 14:57:52 +04:00
bool ( * release_ip_handler ) ( const char * ip_addr ,
2007-06-10 21:02:09 +04:00
void * private_data ) ,
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 ;
NTSTATUS register_with_ctdbd ( struct ctdbd_connection * conn , uint64_t srvid ,
void ( * cb ) ( struct ctdb_req_message * msg ,
void * private_data ) ,
void * private_data ) ;
2013-01-31 14:15:09 +04:00
NTSTATUS ctdbd_probe ( void ) ;
2008-08-07 10:20:05 +04:00
2008-01-16 12:09:48 +03:00
# endif /* _CTDBD_CONN_H */