Commit 9759e5ba authored by Jim Harris's avatar Jim Harris Committed by Tomasz Zawadzki
Browse files

rpc: remove deprecated functions



Signed-off-by: default avatarJim Harris <jim.harris@nvidia.com>
Change-Id: I44dc63b0480c9a172fb4cb17c3b0228d6190a5f5
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25940


Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
parent 59e7d68a
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -34,13 +34,6 @@ See GitHub issue [2801](https://github.com/spdk/spdk/issues/2801) for additional
New SPDK partition types should use GUID `6527994e-2c5a-4eec-9613-8f5944074e8b` which will create
a bdev of the correct size.

### rpc

#### `spdk_rpc_listen` `spdk_rpc_accept` `spdk_rpc_close`

These functions are deprecated and will be removed in 24.09 release. Please use
`spdk_rpc_server_listen`, `spdk_rpc_server_accept` and `spdk_rpc_server_close` instead.

### env

#### `spdk_env_get_socket_id`, `spdk_pci_device_get_socket_id`
+9 −6
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include "spdk/rpc.h"

static const char *g_rpc_addr = "/var/tmp/spdk.sock";
static struct spdk_rpc_server *g_rpc_server;

struct dev_ctx {
	TAILQ_ENTRY(dev_ctx)	tailq;
@@ -541,15 +542,15 @@ wait_for_rpc_call(void)
{
	fprintf(stderr,
		"Listening for perform_tests to start the application...\n");
	spdk_rpc_listen(g_rpc_addr);
	g_rpc_server = spdk_rpc_server_listen(g_rpc_addr);
	spdk_rpc_set_state(SPDK_RPC_RUNTIME);

	while (!g_rpc_received) {
		spdk_rpc_accept();
		spdk_rpc_server_accept(g_rpc_server);
	}
	/* Run spdk_rpc_accept() one more time to trigger
	 * spdk_jsonrpv_server_poll() and send the RPC response. */
	spdk_rpc_accept();
	/* Run spdk_rpc_server_accept() one more time to trigger
	 * spdk_jsonrpc_server_poll() and send the RPC response. */
	spdk_rpc_server_accept(g_rpc_server);
}

int
@@ -607,7 +608,9 @@ main(int argc, char **argv)
	}

cleanup:
	spdk_rpc_close();
	if (g_rpc_server != NULL) {
		spdk_rpc_server_close(g_rpc_server);
	}
	spdk_env_fini();
	return rc;
}
+0 −25
Original line number Diff line number Diff line
@@ -29,31 +29,6 @@ struct spdk_rpc_server;
 */
bool spdk_rpc_verify_methods(void);

/**
 * Start listening for RPC connections.
 *
 * Deprecated, will be removed in 24.09 release.
 *
 * \param listen_addr Listening address.
 *
 * \return 0 on success, -1 on failure.
 */
int spdk_rpc_listen(const char *listen_addr);

/**
 * Poll the RPC server.
 *
 * Deprecated, will be removed in 24.09 release.
 */
void spdk_rpc_accept(void);

/**
 * Stop listening for RPC connections.
 *
 * Deprecated, will be removed in 24.09 release.
 */
void spdk_rpc_close(void);

/**
 * Start listening for RPC connections on given address.
 *
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk

SO_VER := 6
SO_VER := 7
SO_MINOR := 0

C_SRCS = rpc.c
+20 −79
Original line number Diff line number Diff line
@@ -27,8 +27,6 @@ struct spdk_rpc_server {
	struct spdk_jsonrpc_server *jsonrpc_server;
};

static struct spdk_rpc_server g_rpc_server;

struct spdk_rpc_method {
	const char *name;
	spdk_rpc_method_handler func;
@@ -145,11 +143,19 @@ jsonrpc_handler(struct spdk_jsonrpc_request *request,
	}
}

static int
_spdk_rpc_listen(const char *listen_addr, struct spdk_rpc_server *server)
struct spdk_rpc_server *
spdk_rpc_server_listen(const char *listen_addr)
{
	struct spdk_rpc_server *server;
	int rc;

	server = calloc(1, sizeof(struct spdk_rpc_server));
	if (!server) {
		SPDK_ERRLOG("Could not allocate new RPC server\n");
		return NULL;
	}


	assert(listen_addr != NULL);

	server->listen_addr_unix.sun_family = AF_UNIX;
@@ -158,28 +164,28 @@ _spdk_rpc_listen(const char *listen_addr, struct spdk_rpc_server *server)
		      "%s", listen_addr);
	if (rc < 0 || (size_t)rc >= sizeof(server->listen_addr_unix.sun_path)) {
		SPDK_ERRLOG("RPC Listen address Unix socket path too long\n");
		return -1;
		goto ret;
	}

	rc = snprintf(server->lock_path, sizeof(server->lock_path), "%s.lock",
		      server->listen_addr_unix.sun_path);
	if (rc < 0 || (size_t)rc >= sizeof(server->lock_path)) {
		SPDK_ERRLOG("RPC lock path too long\n");
		return -1;
		goto ret;
	}

	server->lock_fd = open(server->lock_path, O_RDWR | O_CREAT, 0600);
	if (server->lock_fd == -1) {
		SPDK_ERRLOG("Cannot open lock file %s: %s\n",
			    server->lock_path, spdk_strerror(errno));
		return -1;
		goto ret;
	}

	rc = flock(server->lock_fd, LOCK_EX | LOCK_NB);
	if (rc != 0) {
		SPDK_ERRLOG("RPC Unix domain socket path %s in use. Specify another.\n",
			    server->listen_addr_unix.sun_path);
		return -1;
		goto ret;
	}

	/*
@@ -196,61 +202,16 @@ _spdk_rpc_listen(const char *listen_addr, struct spdk_rpc_server *server)
		SPDK_ERRLOG("spdk_jsonrpc_server_listen() failed\n");
		close(server->lock_fd);
		unlink(server->lock_path);
		return -1;
	}

	return 0;
}

SPDK_LOG_DEPRECATION_REGISTER(spdk_rpc_listen, "spdk_rpc_listen is deprecated", "v24.09", 0);

int
spdk_rpc_listen(const char *listen_addr)
{
	struct spdk_rpc_server *server;
	int rc;

	SPDK_LOG_DEPRECATED(spdk_rpc_listen);

	memset(&g_rpc_server.listen_addr_unix, 0, sizeof(g_rpc_server.listen_addr_unix));
	server = &g_rpc_server;

	rc = _spdk_rpc_listen(listen_addr, server);
	if (rc) {
		server->listen_addr_unix.sun_path[0] = '\0';
		server->lock_path[0] = '\0';
	}

	return rc;
		goto ret;
	}

struct spdk_rpc_server *
spdk_rpc_server_listen(const char *listen_addr)
{
	struct spdk_rpc_server *server;
	int rc;

	server = calloc(1, sizeof(struct spdk_rpc_server));
	if (!server) {
		SPDK_ERRLOG("Could not allocate new RPC server\n");
		return NULL;
	}
	return server;

	rc = _spdk_rpc_listen(listen_addr, server);
	if (rc) {
ret:
	free(server);
	return NULL;
}

	return server;
}

void
spdk_rpc_accept(void)
{
	spdk_jsonrpc_server_poll(g_rpc_server.jsonrpc_server);
}

void
spdk_rpc_server_accept(struct spdk_rpc_server *server)
{
@@ -375,8 +336,8 @@ spdk_rpc_set_allowlist(const char **rpc_allowlist)
	assert(g_rpcs_allowlist != NULL);
}

static void
_spdk_rpc_close(struct spdk_rpc_server *server)
void
spdk_rpc_server_close(struct spdk_rpc_server *server)
{
	assert(server != NULL);
	assert(server->jsonrpc_server != NULL);
@@ -399,26 +360,6 @@ _spdk_rpc_close(struct spdk_rpc_server *server)
		unlink(server->lock_path);
		server->lock_path[0] = '\0';
	}
}

SPDK_LOG_DEPRECATION_REGISTER(spdk_rpc_close, "spdk_rpc_close is deprecated", "v24.09", 0);

void
spdk_rpc_close(void)
{
	SPDK_LOG_DEPRECATED(spdk_rpc_close);

	if (g_rpc_server.jsonrpc_server) {
		_spdk_rpc_close(&g_rpc_server);
	}
}

void
spdk_rpc_server_close(struct spdk_rpc_server *server)
{
	assert(server != NULL);

	_spdk_rpc_close(server);

	free(server);
}
Loading