summaryrefslogtreecommitdiff
path: root/simple-ipc.h
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhost@microsoft.com>2021-09-20 15:36:13 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-09-20 15:57:58 (GMT)
commita3e2033e04ae06ac4f1cda582ac83944df29830d (patch)
tree39f5235ded09296fda28bf705eaa2b905033d264 /simple-ipc.h
parent64bc75244b5bdc26112cf7b8533a832b692a5fda (diff)
downloadgit-a3e2033e04ae06ac4f1cda582ac83944df29830d.zip
git-a3e2033e04ae06ac4f1cda582ac83944df29830d.tar.gz
git-a3e2033e04ae06ac4f1cda582ac83944df29830d.tar.bz2
simple-ipc: preparations for supporting binary messages.
Add `command_len` argument to the Simple IPC API. In my original Simple IPC API, I assumed that the request would always be a null-terminated string of text characters. The `command` argument was just a `const char *`. I found a caller that would like to pass a binary command to the daemon, so I am amending the Simple IPC API to receive `const char *command, size_t command_len` arguments. I considered changing the `command` argument to be a `void *`, but the IPC layer simply passes it to the pkt-line layer which takes a `const char *`, so to avoid confusion I left it as is. Note, the response side has always been a `struct strbuf` which includes the buffer and length, so we already support returning a binary answer. (Yes, it feels a little weird returning a binary buffer in a `strbuf`, but it works.) Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'simple-ipc.h')
-rw-r--r--simple-ipc.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/simple-ipc.h b/simple-ipc.h
index 2c48a5e..9c7330f 100644
--- a/simple-ipc.h
+++ b/simple-ipc.h
@@ -107,7 +107,8 @@ void ipc_client_close_connection(struct ipc_client_connection *connection);
*/
int ipc_client_send_command_to_connection(
struct ipc_client_connection *connection,
- const char *message, struct strbuf *answer);
+ const char *message, size_t message_len,
+ struct strbuf *answer);
/*
* Used by the client to synchronously connect and send and receive a
@@ -119,7 +120,8 @@ int ipc_client_send_command_to_connection(
*/
int ipc_client_send_command(const char *path,
const struct ipc_client_connect_options *options,
- const char *message, struct strbuf *answer);
+ const char *message, size_t message_len,
+ struct strbuf *answer);
/*
* Simple IPC Server Side API.
@@ -144,6 +146,7 @@ typedef int (ipc_server_reply_cb)(struct ipc_server_reply_data *,
*/
typedef int (ipc_server_application_cb)(void *application_data,
const char *request,
+ size_t request_len,
ipc_server_reply_cb *reply_cb,
struct ipc_server_reply_data *reply_data);