Beispiel #1
0
int connections_forall_read(int (*fn)(const struct connections_key *key,
				      const struct connections_data *data,
				      void *private_data),
			    void *private_data)
{
	struct db_context *ctx;
	struct conn_traverse_read_state state;
	NTSTATUS status;
	int count;

	ctx = connections_db_ctx(false);
	if (ctx == NULL) {
		return -1;
	}

	state.fn = fn;
	state.private_data = private_data;

	status = dbwrap_traverse_read(ctx, connections_forall_read_fn,
				      (void *)&state, &count);

	if (!NT_STATUS_IS_OK(status)) {
		return -1;
	}

	return count;
}
Beispiel #2
0
struct db_record *connections_fetch_record(TALLOC_CTX *mem_ctx,
					   TDB_DATA key)
{
	struct db_context *ctx = connections_db_ctx(True);

	if (ctx == NULL) {
		return NULL;
	}

	return ctx->fetch_locked(ctx, mem_ctx, key);
}
Beispiel #3
0
int connections_traverse(int (*fn)(struct db_record *rec,
				   void *private_data),
			 void *private_data)
{
	struct db_context *ctx = connections_db_ctx(False);

	if (ctx == NULL) {
		return -1;
	}

	return ctx->traverse(ctx, fn, private_data);
}
Beispiel #4
0
int connections_traverse(int (*fn)(struct db_record *rec,
				   void *private_data),
			 void *private_data)
{
	NTSTATUS status;
	int count;
	struct db_context *ctx = connections_db_ctx(False);

	if (ctx == NULL) {
		return -1;
	}

	status = dbwrap_traverse(ctx, fn, private_data, &count);
	if (!NT_STATUS_IS_OK(status)) {
		return -1;
	}

	return count;
}
Beispiel #5
0
int connections_forall_read(int (*fn)(const struct connections_key *key,
				      const struct connections_data *data,
				      void *private_data),
			    void *private_data)
{
	struct db_context *ctx;
	struct conn_traverse_read_state state;

	ctx = connections_db_ctx(false);
	if (ctx == NULL) {
		return -1;
	}

	state.fn = fn;
	state.private_data = private_data;

	return ctx->traverse_read(ctx, connections_forall_read_fn,
				  (void *)&state);
}
Beispiel #6
0
bool connections_init(bool rw)
{
	return (connections_db_ctx(rw) != NULL);
}