Displaying 19 results from an estimated 19 matches for "connection_send_funct".
2019 Jun 06
0
[nbdkit PATCH 1/2] server: Add support for corking
...rypto.c | 19 +++++++++++++++++++
3 files changed, 47 insertions(+)
diff --git a/server/internal.h b/server/internal.h
index 2ee5e23..cb34323 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -145,6 +145,8 @@ typedef int (*connection_recv_function) (struct connection *,
typedef int (*connection_send_function) (struct connection *,
const void *buf, size_t len)
__attribute__((__nonnull__ (1, 2)));
+typedef int (*connection_cork_function) (struct connection *, bool)
+ __attribute__((__nonnull__ (1)));
typedef void (*connection_close_function) (struct conne...
2019 Jan 02
0
[PATCH nbdkit v2 1/2] Annotate internal function parameters with attribute((nonnull)).
....h
index 68c9636..a89b41c 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -125,24 +125,44 @@ extern void cleanup_unlock (pthread_mutex_t **ptr);
/* connections.c */
struct connection;
-typedef int (*connection_recv_function) (struct connection *, void *buf, size_t len);
-typedef int (*connection_send_function) (struct connection *, const void *buf, size_t len);
-typedef void (*connection_close_function) (struct connection *);
+typedef int (*connection_recv_function) (struct connection *,
+ void *buf, size_t len)
+ __attribute__((__nonnull__ (1, 2)));
+typedef...
2019 Jun 06
4
[nbdkit PATCH 0/2] Reduce network overhead with corking
Slightly RFC, as I need more time to investigate why Unix sockets
appeared to degrade with this patch. But as TCP sockets (over loopback
to localhost) and TLS sessions (regardless of underlying Unix or TCP)
both showed improvements, this looks like a worthwhile series.
Eric Blake (2):
server: Add support for corking
server: Cork around grouped transmission send()s
server/internal.h | 3
2019 Jan 02
4
[PATCH nbdkit v2 0/2] Use of attribute(()).
v1 was here:
https://www.redhat.com/archives/libguestfs/2019-January/msg00008.html
In v2 I have provided two patches:
The first patch extends attribute((nonnull)) to most internal
functions, but not to the external API.
The second patch uses a macro so that attribute((format)) is only used
in the public API on GCC or Clang. At least in theory these headers
could be used by a C compiler which
2019 Oct 07
0
[nbdkit PATCH 5/5] server: Ensure .finalize and .close are called as needed
...ferent export name, for example); while an error
+in C<.finalize> forces the client to disconnect.
=head2 C<.get_size>
diff --git a/server/internal.h b/server/internal.h
index eb0e30c1..167da59a 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -153,9 +153,17 @@ typedef int (*connection_send_function) (struct connection *,
typedef void (*connection_close_function) (struct connection *)
__attribute__((__nonnull__ (1)));
+enum {
+ HANDLE_OPEN = 1, /* Set if .open passed, so .close is needed */
+ HANDLE_CONNECTED = 2, /* Set if .prepare passed, so .finalize is needed */
+ HANDLE_FA...
2018 Jan 17
0
[PATCH 5/9] connections: Allow multiple handles to be stored in the connection object.
...nn->handles[0])
backend->close (backend, conn);
}
diff --git a/src/internal.h b/src/internal.h
index dc26665..5a68d59 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -131,8 +131,8 @@ typedef int (*connection_recv_function) (struct connection *, void *buf, size_t
typedef int (*connection_send_function) (struct connection *, const void *buf, size_t len);
typedef void (*connection_close_function) (struct connection *);
extern int handle_single_connection (int sockin, int sockout);
-extern void connection_set_handle (struct connection *conn, void *handle);
-extern void *connection_get_handle (...
2020 Feb 12
0
[PATCH nbdkit 2/3] server: Rename ‘struct b_conn_handle’ to plain ‘struct handle’.
...+++++++++++++++++++----------------------
server/connections.c | 11 +---------
3 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/server/internal.h b/server/internal.h
index c3622671..9d314bf8 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -170,16 +170,24 @@ typedef int (*connection_send_function) (const void *buf, size_t len,
__attribute__((__nonnull__ (1)));
typedef void (*connection_close_function) (void);
+/* struct handle stores data per connection and backend. Primarily
+ * this is the filter or plugin handle, but other state is also stored
+ * here.
+ *
+ * Use get_handle (...
2018 Jan 19
0
[nbdkit PATCH v2 08/13] connections: Allow multiple handles to be stored in the connection object.
...onn->handles[0])
backend->close (backend, conn);
}
diff --git a/src/internal.h b/src/internal.h
index 9d01c2b..28b1aaf 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -134,8 +134,8 @@ typedef int (*connection_recv_function) (struct connection *, void *buf, size_t
typedef int (*connection_send_function) (struct connection *, const void *buf, size_t len);
typedef void (*connection_close_function) (struct connection *);
extern int handle_single_connection (int sockin, int sockout);
-extern void connection_set_handle (struct connection *conn, void *handle);
-extern void *connection_get_handle (...
2019 Mar 18
3
[PATCH nbdkit 0/2] server: Split out NBD protocol code from connections code.
These are a couple of patches in preparation for the Block Status
implementation. While the patches (especially the second one) are
very large they are really just elementary code motion.
Rich.
2019 Jun 07
4
[nbdkit PATCH v2 0/2] Reduce network overhead with MSG_MORE/corking
This time around, the numbers are indeed looking better than in v1;
and I like the interface better.
Eric Blake (2):
server: Prefer send() over write()
server: Group related transmission send()s
server/internal.h | 7 +++-
server/connections.c | 51 +++++++++++++++++++++++++---
server/crypto.c | 11 ++++--
2019 Oct 07
6
[nbdkit PATCH 0/5] More retry fixes
I think this is my last round of patches for issues I identified with
the retry filter. With this in place, it should be safe to interject
another filter in between retry and the plugin.
Eric Blake (5):
retry: Don't call into closed plugin
tests: Refactor test-retry-reopen-fail.sh
tests: Enhance retry test to cover failed reopen
server: Move prepare/finalize/close recursion to
2020 Feb 12
5
[PATCH nbdkit 1/3] server: Rename global backend pointer to "top".
It's confusing to use the same terminology for a single backend as for
the linked list of backends. In particular it's often not clear if
we're calling the next backend or the whole chain of backends.
---
server/internal.h | 14 ++++++++++--
server/connections.c | 20 ++++++++---------
server/locks.c | 2 +-
server/main.c
2020 Jul 21
4
[PATCH nbdkit] server: Pass the export name through filter .open calls.
...uint32_t cflags;
uint16_t eflags;
bool handshake_complete;
@@ -255,6 +253,9 @@ struct connection {
bool structured_replies;
bool meta_context_base_allocation;
+ char *exportname_from_set_meta_context;
+ char *exportname;
+
int sockin, sockout;
connection_recv_function recv;
connection_send_function send;
@@ -273,8 +274,9 @@ extern int connection_set_status (int value);
/* protocol-handshake.c */
extern int protocol_handshake (void);
-extern int protocol_common_open (uint64_t *exportsize, uint16_t *flags)
- __attribute__((__nonnull__ (1, 2)));
+extern int protocol_common_open (uint64_t...
2020 Feb 11
0
[PATCH nbdkit 3/3] server: Remove explicit connection parameter, use TLS instead.
.../internal.h
@@ -154,15 +154,12 @@ enum {
SEND_MORE = 1, /* Hint to use MSG_MORE/corking to group send()s */
};
-typedef int (*connection_recv_function) (struct connection *,
- void *buf, size_t len)
- __attribute__((__nonnull__ (1, 2)));
-typedef int (*connection_send_function) (struct connection *,
- const void *buf, size_t len,
+typedef int (*connection_recv_function) (void *buf, size_t len)
+ __attribute__((__nonnull__ (1)));
+typedef int (*connection_send_function) (const void *buf, size_t len,...
2020 Feb 11
4
[PATCH nbdkit v2 0/3] server: Remove explicit connection parameter.
v1 was here:
https://www.redhat.com/archives/libguestfs/2020-February/msg00081.html
v2 replaces
struct connection *conn = GET_CONN;
with
GET_CONN;
which sets conn implicitly and asserts that it is non-NULL.
If we actually want to test if conn is non-NULL or behave
differently, then you must use threadlocal_get_conn() instead,
and some existing uses do that.
Rich.
2020 Feb 11
5
[PATCH nbdkit 0/3] server: Remove explicit connection parameter.
The third patch is a large but mechanical change which gets rid of
passing around struct connection * entirely within the server,
preferring instead to reference the connection through thread-local
storage.
I hope this is a gateway to simplifying other parts of the code.
Rich.
2019 Aug 30
15
[nbdkit PATCH 0/9] can_FOO caching, more filter validation
It's easy to use the sh script to demonstrate that nbdkit is
inefficiently calling into .get_size, .can_fua, and friends more than
necessary. We've also commented on the list in the past that it would
be nice to ensure that when filters call into next_ops, they are not
violating constraints (as we've have to fix several bugs in the past
where we did not have such checking to protect
2018 Jan 17
14
[PATCH 0/9] Add filters to nbdkit.
The first three patches are identical to:
https://www.redhat.com/archives/libguestfs/2018-January/msg00079.html
"[PATCH nbdkit v2 0/3] Refactor plugin_* functions into a backend"
The rest of the patches add filters using the new filter API
previously described here:
https://www.redhat.com/archives/libguestfs/2018-January/msg00073.html
This needs a lot more testing -- and tests --
2018 Jan 19
16
[nbdkit PATCH v2 00/13] Add filters + FUA support to nbdkit
A combination of the work that both Rich and I have been doing
lately, where filters use only the new API with flags on every
command that the client can send over the wire (we can then
add support for more flags in nbdkit without having to add new
callbacks, as NBD adds more flags upstream).
Eric Blake (4):
protocol: Split flags from cmd field in requests
backend: Pass flags argument through