diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fastopreply.patch')
-rw-r--r-- | import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fastopreply.patch | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fastopreply.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fastopreply.patch deleted file mode 100644 index 904c2d04e..000000000 --- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fastopreply.patch +++ /dev/null @@ -1,76 +0,0 @@ -Ensure FASTOP messages get an ACK reply so that the client can be sure the server -recieved them. This means if connections are terminated, data isn't lost. - -RP 2017/9/22 - -Upstream-Status: Submitted - -Index: pseudo-1.8.2/pseudo_client.c -=================================================================== ---- pseudo-1.8.2.orig/pseudo_client.c -+++ pseudo-1.8.2/pseudo_client.c -@@ -1331,21 +1331,19 @@ pseudo_client_request(pseudo_msg_t *msg, - * indicating a successful send. - */ - pseudo_debug(PDBGF_CLIENT | PDBGF_VERBOSE, "sent!\n"); -- if (msg->type != PSEUDO_MSG_FASTOP) { -- response = pseudo_msg_receive(connect_fd); -- if (!response) { -- pseudo_debug(PDBGF_CLIENT, "expected response did not occur; retrying\n"); -+ response = pseudo_msg_receive(connect_fd); -+ if (!response) { -+ pseudo_debug(PDBGF_CLIENT, "expected response did not occur; retrying\n"); -+ } else { -+ if (response->type != PSEUDO_MSG_ACK) { -+ pseudo_debug(PDBGF_CLIENT, "got non-ack response %d\n", response->type); -+ return 0; -+ } else if (msg->type != PSEUDO_MSG_FASTOP) { -+ pseudo_debug(PDBGF_CLIENT | PDBGF_VERBOSE, "got response type %d\n", response->type); -+ return response; - } else { -- if (response->type != PSEUDO_MSG_ACK) { -- pseudo_debug(PDBGF_CLIENT, "got non-ack response %d\n", response->type); -- return 0; -- } else { -- pseudo_debug(PDBGF_CLIENT | PDBGF_VERBOSE, "got response type %d\n", response->type); -- return response; -- } -+ return 0; - } -- } else { -- return 0; - } - } - pseudo_diag("pseudo: server connection persistently failed, aborting.\n"); -Index: pseudo-1.8.2/pseudo_server.c -=================================================================== ---- pseudo-1.8.2.orig/pseudo_server.c -+++ pseudo-1.8.2/pseudo_server.c -@@ -463,6 +463,11 @@ close_client(int client) { - --highest_client; - } - -+static pseudo_msg_t server_fastop_reply = { -+ .type = PSEUDO_MSG_ACK, -+ .op = OP_NONE, -+}; -+ - /* Actually process a request. - */ - static int -@@ -515,8 +520,14 @@ serve_client(int i) { - * pseudo_server_response. - */ - if (in->type != PSEUDO_MSG_SHUTDOWN) { -- if (in->type == PSEUDO_MSG_FASTOP) -+ if (in->type == PSEUDO_MSG_FASTOP) { - send_response = 0; -+ /* For fastops we reply now to say we got the data */ -+ if ((rc = pseudo_msg_send(clients[i].fd, &server_fastop_reply, 0, NULL)) != 0) { -+ pseudo_debug(PDBGF_SERVER, "failed to send fastop ack to client %d [%d]: %d (%s)\n", -+ i, (int) clients[i].pid, rc, strerror(errno)); -+ } -+ } - /* most messages don't need these, but xattr may */ - response_path = 0; - response_pathlen = -1; |