From: Andrew Tridgell Date: Wed, 23 May 2007 04:50:41 +0000 (+1000) Subject: merge from ronnie X-Git-Tag: tevent-0.9.20~348^2~2699 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=74bf76ca100dd7beb43f992742bc01f022f2cd1f;p=thirdparty%2Fsamba.git merge from ronnie (This used to be ctdb commit 267481b67152bc5885884d223085aa9ef5fe73bd) --- 74bf76ca100dd7beb43f992742bc01f022f2cd1f diff --cc ctdb/common/ctdb.c index 6878cd7aa0c,f71e85da096..91b0bfe3b54 --- a/ctdb/common/ctdb.c +++ b/ctdb/common/ctdb.c @@@ -551,7 -548,6 +551,8 @@@ struct ctdb_context *ctdb_init(struct e ctdb->idr = idr_init(ctdb); ctdb->max_lacount = CTDB_DEFAULT_MAX_LACOUNT; ctdb->seqnum_frequency = CTDB_DEFAULT_SEQNUM_FREQUENCY; + ctdb->node_list_fd = -1; ++ ctdb->monitoring_mode = CTDB_MONITORING_ACTIVE; return ctdb; } diff --cc ctdb/common/ctdb_client.c index 2bc005cfebf,0a02ac20693..d8262e864ee --- a/ctdb/common/ctdb_client.c +++ b/ctdb/common/ctdb_client.c @@@ -1723,22 -1723,49 +1723,67 @@@ int ctdb_ctrl_thaw(struct ctdb_context return 0; } - +/* + get vnn of a node, or -1 + */ +int ctdb_ctrl_getvnn(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode) +{ + int ret; + int32_t res; + + ret = ctdb_control(ctdb, destnode, 0, + CTDB_CONTROL_GET_VNN, 0, tdb_null, + NULL, NULL, &res, &timeout, NULL); + if (ret != 0) { + DEBUG(0,(__location__ " ctdb_control for getvnn failed\n")); + return -1; + } + + return res; +} ++ + /* + set the monitoring mode of a remote node + */ + int ctdb_ctrl_setmonmode(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, uint32_t monmode) + { + int ret; + TDB_DATA data, outdata; + int32_t res; + + data.dsize = sizeof(uint32_t); + data.dptr = (unsigned char *)&monmode; + + ret = ctdb_control(ctdb, destnode, 0, + CTDB_CONTROL_SET_MONMODE, 0, data, + ctdb, &outdata, &res, &timeout, NULL); + if (ret != 0 || res != 0) { + DEBUG(0,(__location__ " ctdb_control for setmonmode failed\n")); + return -1; + } + + return 0; + } + + /* + get the monitoring mode of a remote node + */ + int ctdb_ctrl_getmonmode(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, uint32_t *monmode) + { + int ret; + TDB_DATA data, outdata; + int32_t res; + + ZERO_STRUCT(data); + ret = ctdb_control(ctdb, destnode, 0, + CTDB_CONTROL_GET_MONMODE, 0, data, + ctdb, &outdata, &res, &timeout, NULL); + if (ret != 0) { + DEBUG(0,(__location__ " ctdb_control for getrecmode failed\n")); + return -1; + } + + *monmode = res; + + return 0; + } -