#ifdef HAVE_CTDB_PROTOCOL_H
_LINE_DEF(HAVE_CTDB_PROTOCOL_H)
#endif
-#ifdef HAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL
- _LINE_DEF(HAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL)
-#endif
-#ifdef HAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL
- _LINE_DEF(HAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL)
-#endif
-#ifdef HAVE_CTDB_WANT_READONLY_DECL
- _LINE_DEF(HAVE_CTDB_WANT_READONLY_DECL)
-#endif
-#ifdef HAVE_STRUCT_CTDB_CONTROL_TCP
- _LINE_DEF(HAVE_STRUCT_CTDB_CONTROL_TCP)
-#endif
-#ifdef HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR
- _LINE_DEF(HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR)
-#endif
-#ifdef HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL
- _LINE_DEF(HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL)
-#endif
#ifdef CTDB_PATH
_LINE_STR(CTDB_PATH)
#endif
bool ctdb_serverids_exist_supported(struct ctdbd_connection *conn)
{
-#ifndef HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL
- return false;
-#else /* HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL */
return true;
-#endif /* HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL */
}
bool ctdb_serverids_exist(struct ctdbd_connection *conn,
const struct server_id *pids, unsigned num_pids,
bool *results)
{
-#ifndef HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL
- return false;
-#else /* HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL */
unsigned i, num_received;
NTSTATUS status;
struct ctdb_vnn_list *vnns = NULL;
fail:
cluster_fatal("serverids_exist failed");
return false;
-#endif /* HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL */
}
/*
NTSTATUS status;
uint32_t flags;
-#ifdef HAVE_CTDB_WANT_READONLY_DECL
flags = local_copy ? CTDB_WANT_READONLY : 0;
-#else
- flags = 0;
-#endif
ZERO_STRUCT(req);
* versions at runtime
*/
struct ctdb_control_tcp p4;
-#ifdef HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR
struct ctdb_control_tcp_addr p;
-#endif
TDB_DATA data;
NTSTATUS status;
struct sockaddr_storage client;
data.dptr = (uint8_t *)&p4;
data.dsize = sizeof(p4);
break;
-#ifdef HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR
case AF_INET6:
memcpy(&p.dest.ip6, &server, sizeof(p.dest.ip6));
memcpy(&p.src.ip6, &client, sizeof(p.src.ip6));
data.dptr = (uint8_t *)&p;
data.dsize = sizeof(p);
break;
-#endif
default:
return NT_STATUS_INTERNAL_ERROR;
}
-#ifdef HAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL
static NTSTATUS db_ctdb_send_schedule_for_deletion(struct db_record *rec)
{
NTSTATUS status;
return status;
}
-#endif
static NTSTATUS db_ctdb_delete(struct db_record *rec)
{
return status;
}
-#ifdef HAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL
status = db_ctdb_send_schedule_for_deletion(rec);
-#endif
-
return status;
}
static bool db_ctdb_can_use_local_hdr(const struct ctdb_ltdb_header *hdr,
bool read_only)
{
-#ifdef HAVE_CTDB_WANT_READONLY_DECL
if (hdr->dmaster != get_my_vnn()) {
/* If we're not dmaster, it must be r/o copy. */
return read_only && (hdr->flags & CTDB_REC_RO_HAVE_READONLY);
* If we want write access, no one may have r/o copies.
*/
return read_only || !(hdr->flags & CTDB_REC_RO_HAVE_DELEGATIONS);
-#else
- return (hdr->dmaster == get_my_vnn());
-#endif
}
static bool db_ctdb_can_use_local_copy(TDB_DATA ctdb_data, bool read_only)
return NULL;
}
-#ifdef HAVE_CTDB_WANT_READONLY_DECL
if (!result->persistent &&
(dbwrap_flags & DBWRAP_FLAG_OPTIMIZE_READONLY_ACCESS))
{
return NULL;
}
}
-#endif
lp_ctx = loadparm_init_s3(db_path, loadparm_s3_helpers());
if ok:
CTDB_CFLAGS += ' -DHAVE_CTDB_PROTOCOL_H=1'
- conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
- if have_cluster_support:
- ok = conf.CHECK_CODE('''
- #define NO_CONFIG_H
- #include "replace.h"
- #include "system/wait.h"
- #include "system/network.h"
- #include <talloc.h>
- #include <tdb.h>
- #include <ctdb.h>
- #include <ctdb_private.h>
-
- int main(void)
- {
- int i = (int)CTDB_CONTROL_TRANS3_COMMIT;
- return 0;
- }
- ''',
- 'HAVE_CTDB_CHECK_CODE',
- addmain=False,
- includes=includes,
- msg='Checking for transaction support (TRANS3_COMMIT control)')
- if ok:
- CTDB_CFLAGS += ' -DHAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL=1'
- else:
- have_cluster_support = False
- ctdb_broken = "ctdb transaction support missing or too old"
-
- conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
- if have_cluster_support:
- ok = conf.CHECK_CODE('''
- #define NO_CONFIG_H
- #include "replace.h"
- #include "system/wait.h"
- #include "system/network.h"
- #include <talloc.h>
- #include <tdb.h>
- #include <ctdb.h>
- #include <ctdb_private.h>
-
- int main(void)
- {
- int i = (int)CTDB_CONTROL_SCHEDULE_FOR_DELETION;
- return 0;
- }
- ''',
- 'HAVE_CTDB_CHECK_CODE',
- addmain=False,
- includes=includes,
- msg='Checking for SCHEDULE_FOR_DELETION control')
- if ok:
- CTDB_CFLAGS += ' -DHAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL=1'
- else:
- have_cluster_support = False
- ctdb_broken = "SCHEDULE_FOR_DELETION control missing"
-
- conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
- if have_cluster_support:
- ok = conf.CHECK_CODE('''
- #define NO_CONFIG_H
- #include "replace.h"
- #include "system/wait.h"
- #include "system/network.h"
- #include <talloc.h>
- #include <tdb.h>
- #include <ctdb.h>
-
- int main(void)
- {
- int i = (int)CTDB_WANT_READONLY;
- return 0;
- }
- ''',
- 'HAVE_CTDB_CHECK_CODE',
- addmain=False,
- includes=includes,
- msg='Checking for CTDB readonly records support')
- if ok:
- CTDB_CFLAGS += ' -DHAVE_CTDB_WANT_READONLY_DECL=1'
- else:
- have_cluster_support = False
- ctdb_broken = "support for CTDB readonly records missing"
-
- conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
- if have_cluster_support:
- ok = conf.CHECK_CODE('''
- #define NO_CONFIG_H
- #include "replace.h"
- #include "system/wait.h"
- #include "system/network.h"
- #include <talloc.h>
- #include <tdb.h>
- #include <ctdb.h>
- #include <ctdb_private.h>
-
- int main(void)
- {
- struct ctdb_control_tcp _x;
- return 0;
- }
- ''',
- 'HAVE_CTDB_CHECK_CODE',
- addmain=False,
- includes=includes,
- msg='Checking for ctdb ipv4 support')
- if ok:
- CTDB_CFLAGS += ' -DHAVE_STRUCT_CTDB_CONTROL_TCP=1'
- else:
- have_cluster_support = False
- ctdb_broken = "missing struct ctdb_control_tcp"
-
- conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
- if have_cluster_support:
- ok = conf.CHECK_CODE('''
- #define NO_CONFIG_H
- #include "replace.h"
- #include "system/wait.h"
- #include "system/network.h"
- #include <talloc.h>
- #include <tdb.h>
- #include <ctdb.h>
- #include <ctdb_private.h>
-
- int main(void)
- {
- struct ctdb_control_tcp_addr _x;
- return 0;
- }
- ''',
- 'HAVE_CTDB_CHECK_CODE',
- addmain=False,
- includes=includes,
- msg='Checking for ctdb ipv6 support')
- if ok:
- CTDB_CFLAGS += ' -DHAVE_STRUCT_CTDB_CONTROL_TCP_ADDR=1'
-
- conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
- if have_cluster_support:
- ok = conf.CHECK_CODE('''
- #define NO_CONFIG_H
- #include "replace.h"
- #include "system/wait.h"
- #include "system/network.h"
- #include <talloc.h>
- #include <tdb.h>
- #include <ctdb.h>
- #include <ctdb_private.h>
-
- int main(void)
- {
- int i = (int)CTDB_CONTROL_CHECK_SRVIDS;
- return 0;
- }
- ''',
- 'HAVE_CTDB_CHECK_CODE',
- addmain=False,
- includes=includes,
- msg='Checking for CHECK_SRVIDS control')
- if ok:
- CTDB_CFLAGS += ' -DHAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL=1'
- else:
- have_cluster_support = False
- ctdb_broken = "CHECK_SRVIDS control missing"
-
conf.CONFIG_RESET('HAVE_CTDB_CHECK_CODE')
conf.undefine('HAVE_CTDB_CHECK_CODE')
if have_cluster_support: