From: Daniel Kral <d.kral@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH cluster 04/12] pmxcfs: server: simplify ipc message response logic
Date: Mon, 24 Aug 2026 10:56:03 +0200 [thread overview]
Message-ID: <20260824085610.111211-6-d.kral@proxmox.com> (raw)
In-Reply-To: <20260824085610.111211-2-d.kral@proxmox.com>
The response should always be empty for negative results. Simplify the
logic here to truncate the response string to remove the unnecessary
`resp` and `resp_data_len` variables.
This is done in preparation of the following patch, which reports and
discards the response data if the response data exceeds the maximum
message size allowed by the client's buffer.
No functional changes intended.
Signed-off-by: Daniel Kral <d.kral@proxmox.com>
---
src/pmxcfs/server.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/pmxcfs/server.c b/src/pmxcfs/server.c
index 22e812c..abe1bee 100644
--- a/src/pmxcfs/server.c
+++ b/src/pmxcfs/server.c
@@ -171,8 +171,6 @@ static int32_t s1_msg_process_fn(qb_ipcs_connection_t *c, void *data, size_t siz
int32_t request_size __attribute__((aligned(8))) = req_pt->size;
cfs_debug("process msg:%d, size:%d", request_id, request_size);
- char *resp = NULL;
-
g_string_truncate(outbuf, 0);
int32_t result = -ECHRNG;
@@ -451,24 +449,23 @@ static int32_t s1_msg_process_fn(qb_ipcs_connection_t *c, void *data, size_t siz
cfs_debug("process result %d", result);
- if (result >= 0) {
- resp = outbuf->str;
+ /* Do not send the response body in case of an error */
+ if (result < 0) {
+ g_string_truncate(outbuf, 0);
}
int iov_len = 2;
struct iovec iov[iov_len];
struct qb_ipc_response_header res_header;
- int resp_data_len = resp ? outbuf->len : 0;
-
res_header.id = request_id;
- res_header.size = sizeof(res_header) + resp_data_len;
+ res_header.size = sizeof(res_header) + outbuf->len;
res_header.error = result;
iov[0].iov_base = (char *)&res_header;
iov[0].iov_len = sizeof(res_header);
- iov[1].iov_base = resp;
- iov[1].iov_len = resp_data_len;
+ iov[1].iov_base = outbuf->str;
+ iov[1].iov_len = outbuf->len;
ssize_t res = qb_ipcs_response_sendv(c, iov, iov_len);
if (res < 0) {
--
2.47.3
next prev parent reply other threads:[~2026-08-24 8:58 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 8:55 [PATCH-SERIES cluster 00/12] addressing large ipc message responses Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 01/12] buildsys: include pmxcfs tidy target in top-level tidy target Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 02/12] run make tidy Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 03/12] pmxcfs: server: simplify non-negative ipc message result responses Daniel Kral
2026-08-24 8:56 ` Daniel Kral [this message]
2026-08-24 8:56 ` [PATCH cluster 05/12] pmxcfs: server: report responses exceeding the maximum message size Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 06/12] pmxcfs: server: remove unnecessary local variable alignment attributes Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 07/12] pmxcfs: server: move message handling to separate function Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 08/12] pmxcfs: server: move message response sending " Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 09/12] pmxcfs: server: simplify message response size calculation Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 10/12] ipcc: move the data pointer initialization up Daniel Kral
2026-08-24 8:56 ` [PATCH cluster 11/12] pmxcfs: server: do not forward qb_ipc_request_header to s1_msg_handle_request Daniel Kral
2026-08-24 8:56 ` [RFC PATCH cluster 12/12] allow large ipc responses by sending the response message in chunks Daniel Kral
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260824085610.111211-6-d.kral@proxmox.com \
--to=d.kral@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox