Commit ac8ab85b authored by Wojciech Panfil's avatar Wojciech Panfil Committed by Tomasz Zawadzki
Browse files

examples/hello_world: Add check for fcntl retval



fcntl() returns -1 on error and sets errno.

Change-Id: I959a4e0277ce80d53ec81ab57f963cb956c7f2fd
Signed-off-by: default avatarWojciech Panfil <wojciech.panfil@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18927


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent f619c3b1
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -281,19 +281,30 @@ hello_sock_connect(struct hello_context_t *ctx)
	rc = spdk_sock_getaddr(ctx->sock, saddr, sizeof(saddr), &sport, caddr, sizeof(caddr), &cport);
	if (rc < 0) {
		SPDK_ERRLOG("Cannot get connection addresses\n");
		spdk_sock_close(&ctx->sock);
		return -1;
		goto err;
	}

	SPDK_NOTICELOG("Connection accepted from (%s, %hu) to (%s, %hu)\n", caddr, cport, saddr, sport);

	fcntl(STDIN_FILENO, F_SETFL, fcntl(STDIN_FILENO, F_GETFL) | O_NONBLOCK);
	rc = fcntl(STDIN_FILENO, F_GETFL);
	if (rc == -1) {
		SPDK_ERRLOG("Getting file status flag failed: %s\n", strerror(errno));
		goto err;
	}

	if (fcntl(STDIN_FILENO, F_SETFL, rc | O_NONBLOCK) == -1) {
		SPDK_ERRLOG("Setting file status flag failed: %s\n", strerror(errno));
		goto err;
	}

	g_is_running = true;
	ctx->poller_in = SPDK_POLLER_REGISTER(hello_sock_recv_poll, ctx, 0);
	ctx->poller_out = SPDK_POLLER_REGISTER(hello_sock_writev_poll, ctx, 0);

	return 0;
err:
	spdk_sock_close(&ctx->sock);
	return -1;
}

static void