void *private_data),
void *private_data);
-NTSTATUS ctdbd_register_ips(struct ctdbd_connection *conn,
- const struct sockaddr_storage *server,
- const struct sockaddr_storage *client,
- 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);
+int ctdbd_register_ips(struct ctdbd_connection *conn,
+ const struct sockaddr_storage *server,
+ const struct sockaddr_storage *client,
+ 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);
NTSTATUS ctdbd_control_local(struct ctdbd_connection *conn, uint32_t opcode,
uint64_t srvid, uint32_t flags, TDB_DATA data,
return ENOSYS;
}
-NTSTATUS ctdbd_register_ips(struct ctdbd_connection *conn,
- const struct sockaddr_storage *_server,
- const struct sockaddr_storage *_client,
- 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)
+int ctdbd_register_ips(struct ctdbd_connection *conn,
+ const struct sockaddr_storage *_server,
+ const struct sockaddr_storage *_client,
+ 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)
{
- return NT_STATUS_NOT_IMPLEMENTED;
+ return ENOSYS;
}
bool ctdb_processes_exist(struct ctdbd_connection *conn,
* Register us as a server for a particular tcp connection
*/
-NTSTATUS ctdbd_register_ips(struct ctdbd_connection *conn,
- const struct sockaddr_storage *_server,
- const struct sockaddr_storage *_client,
- 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)
+int ctdbd_register_ips(struct ctdbd_connection *conn,
+ const struct sockaddr_storage *_server,
+ const struct sockaddr_storage *_client,
+ 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)
{
struct ctdb_control_tcp_addr p;
TDB_DATA data = { .dptr = (uint8_t *)&p, .dsize = sizeof(p) };
memcpy(&p.src.ip6, &client, sizeof(p.src.ip6));
break;
default:
- return NT_STATUS_INTERNAL_ERROR;
+ return EIO;
}
/*
ret = register_with_ctdbd(conn, CTDB_SRVID_RELEASE_IP,
cb, private_data);
if (ret != 0) {
- return map_nt_error_from_unix(ret);
+ return ret;
}
/*
CTDB_CTRL_FLAG_NOREPLY, data, NULL, NULL,
NULL);
if (ret != 0) {
- return map_nt_error_from_unix(ret);
+ return ret;
}
- return NT_STATUS_OK;
+ return 0;
}
/*
{
struct smbd_release_ip_state *state;
struct ctdbd_connection *cconn;
+ int ret;
cconn = messaging_ctdbd_connection();
if (cconn == NULL) {
return NT_STATUS_NO_MEMORY;
}
- return ctdbd_register_ips(cconn, srv, clnt, release_ip, state);
+ ret = ctdbd_register_ips(cconn, srv, clnt, release_ip, state);
+ if (ret != 0) {
+ return map_nt_error_from_unix(ret);
+ }
+ return NT_STATUS_OK;
}
static void msg_kill_client_ip(struct messaging_context *msg_ctx,