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
2011-06-20 13:10:25 +04:00
# include "tdb_compat.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 ) ;
uint32 ctdbd_vnn ( const struct ctdbd_connection * conn ) ;
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 ,
uint32 dst_vnn , uint64 dst_srvid ,
struct messaging_rec * msg ) ;
2007-10-19 04:40:25 +04:00
bool ctdbd_process_exists ( struct ctdbd_connection * conn , uint32 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 ) ;
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 ) ;
NTSTATUS ctdbd_migrate ( struct ctdbd_connection * conn , uint32 db_id ,
TDB_DATA key ) ;
NTSTATUS ctdbd_fetch ( struct ctdbd_connection * conn , uint32 db_id ,
2012-02-03 04:00:54 +04:00
TDB_DATA key , TALLOC_CTX * mem_ctx , TDB_DATA * data ,
bool local_copy ) ;
2007-06-10 21:02:09 +04:00
NTSTATUS ctdbd_traverse ( uint32 db_id ,
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 ,
2007-06-10 21:02:09 +04:00
void ( * release_ip_handler ) ( const char * ip_addr ,
void * private_data ) ,
void * private_data ) ;
NTSTATUS ctdbd_register_reconfigure ( struct ctdbd_connection * conn ) ;
2008-08-07 10:20:05 +04:00
NTSTATUS ctdbd_control_local ( struct ctdbd_connection * conn , uint32 opcode ,
uint64_t srvid , uint32_t flags , TDB_DATA data ,
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 ) ;
2011-10-31 19:30:38 +04:00
NTSTATUS register_with_ctdbd ( struct ctdbd_connection * conn , uint64_t srvid ) ;
2008-08-07 10:20:05 +04:00
2008-01-16 12:09:48 +03:00
# endif /* _CTDBD_CONN_H */