Displaying 20 results from an estimated 26 matches for "socket_ops".
2019 Jun 06
1
[libnbd PATCH] tls: Check for pending bytes in gnutls buffers
...1,12 @@ tls_send (struct nbd_handle *h,
return r;
}
+static bool
+tls_pending (struct socket *sock)
+{
+ return gnutls_record_check_pending (sock->u.tls.session) > 0;
+}
+
static int
tls_get_fd (struct socket *sock)
{
@@ -209,6 +215,7 @@ tls_close (struct socket *sock)
static struct socket_ops crypto_ops = {
.recv = tls_recv,
.send = tls_send,
+ .pending = tls_pending,
.get_fd = tls_get_fd,
.close = tls_close,
};
diff --git a/lib/internal.h b/lib/internal.h
index 5b6152b..61ddbde 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -192,6 +192,7 @@ struct socket_ops {...
2020 Mar 30
4
[libnbd PATCH 0/2] fix hangs against nbdkit 1.2
nbdkit 1.2 as a server waits for read() to see EOF, even after the
client has sent NBD_CMD_DISC. That was fixed in mbdkit 1.4; and most
modern NBD servers are smarter than this (they close() the write end
of their traffic soon after NBD_CMD_DISC). But it's easy enough to
revert nbdkit commit c70616f8 to get back to a server with the same
behavior as the older nbdkit, at which point both
2019 Jun 08
0
[PATCH libnbd 1/3] lib: socket: Add .send flags parameter.
...*h,
- struct socket *sock, const void *buf, size_t len)
+ struct socket *sock, const void *buf, size_t len, int flags)
{
ssize_t r;
diff --git a/lib/internal.h b/lib/internal.h
index 503bf34..1ffb5b7 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -201,7 +201,7 @@ struct socket_ops {
ssize_t (*recv) (struct nbd_handle *h,
struct socket *sock, void *buf, size_t len);
ssize_t (*send) (struct nbd_handle *h,
- struct socket *sock, const void *buf, size_t len);
+ struct socket *sock, const void *buf, size_t len, int fla...
2019 Jul 25
0
[PATCH libnbd v3 2/2] lib: Remove nbd_add_close_callback.
...222,6 @@ struct meta_context {
uint32_t context_id; /* Context ID negotiated with the server. */
};
-struct close_callback {
- struct close_callback *next; /* Linked list. */
- nbd_close_callback cb; /* Function. */
- void *user_data; /* Data. */
-};
-
struct socket_ops {
ssize_t (*recv) (struct nbd_handle *h,
struct socket *sock, void *buf, size_t len);
--
2.22.0
2019 Jun 18
0
[libnbd PATCH 4/8] states: Prepare for read callback
...&h->bs_entries[1], (length-4) / 4) == -1)
cmd->error = errno ? errno : EPROTO;
}
else
diff --git a/lib/internal.h b/lib/internal.h
index 1f8f789..cb0e170 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -231,7 +231,16 @@ struct socket {
const struct socket_ops *ops;
};
-typedef int (*extent_fn) (void *data, const char *metacontext, uint64_t offset, uint32_t *entries, size_t nr_entries);
+typedef int (*extent_fn) (void *data, const char *metacontext, uint64_t offset,
+ uint32_t *entries, size_t nr_entries);
+
+struct command_cb...
2019 Jun 03
0
[PATCH libnbd discussion only 3/5] lib: Pass handle to socket recv and send calls.
...ize_t len)
+tls_send (struct nbd_handle *h,
+ struct socket *sock, const void *buf, size_t len)
{
ssize_t r;
diff --git a/lib/internal.h b/lib/internal.h
index 73cb3f9..c8e5094 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -188,8 +188,10 @@ struct close_callback {
};
struct socket_ops {
- ssize_t (*recv) (struct socket *sock, void *buf, size_t len);
- ssize_t (*send) (struct socket *sock, const void *buf, size_t len);
+ ssize_t (*recv) (struct nbd_handle *h,
+ struct socket *sock, void *buf, size_t len);
+ ssize_t (*send) (struct nbd_handle *h,
+...
2019 Jul 16
1
Re: [PATCH libnbd v2] generator: Define new Closure type instead of callbacks.
...12,7 @@ struct meta_context {
> struct close_callback {
> struct close_callback *next; /* Linked list. */
> nbd_close_callback cb; /* Function. */
> - void *data; /* Data. */
> + void *user_data; /* Data. */
> };
>
> struct socket_ops {
> @@ -241,14 +241,15 @@ struct socket {
> const struct socket_ops *ops;
> };
>
> -typedef int (*extent_fn) (void *data, const char *metacontext, uint64_t offset,
> +typedef int (*extent_fn) (void *user_data,
> + const char *metacontext, uint64_t...
2019 Jun 04
0
[PATCH libnbd v2 2/4] generator: Callback returns int instead of void.
...ugging. */
bool debug;
void *debug_data;
- void (*debug_fn) (void *, const char *, const char *);
+ int (*debug_fn) (void *, const char *, const char *);
/* Linked list of close callbacks. */
struct close_callback *close_callbacks;
@@ -212,7 +212,7 @@ struct socket {
const struct socket_ops *ops;
};
-typedef void (*extent_fn) (void *data, const char *metacontext, uint64_t offset, uint32_t *entries, size_t nr_entries);
+typedef int (*extent_fn) (void *data, const char *metacontext, uint64_t offset, uint32_t *entries, size_t nr_entries);
struct command_in_flight {
struct comman...
2019 Jul 16
2
[PATCH libnbd] generator: Define new Closure type
** INCOMPLETE **
This is the generator change as discussed on the list already.
The Python and OCaml bindings are not yet done.
It passes all [C only] tests and valgrind.
Note that nbd_add_close_callback is inconsistent with other closure
types because it passes the user_data parameter after the function.
(This is not caused by the current patch, it was already
inconsistent). We decided that
2019 Jul 16
2
[PATCH libnbd v2] generator: Define new Closure type
As before, but this one has working Python bindings. OCaml still TBD.
Rich.
2019 Jun 08
6
[PATCH libnbd 0/3] states: Use MSG_MORE to coalesce messages.
Appears to have a measurable benefit, see 3/3 for test results.
Rich.
2019 Jul 16
0
[PATCH libnbd v2] generator: Define new Closure type instead of callbacks.
...rnal.h
+++ b/lib/internal.h
@@ -212,7 +212,7 @@ struct meta_context {
struct close_callback {
struct close_callback *next; /* Linked list. */
nbd_close_callback cb; /* Function. */
- void *data; /* Data. */
+ void *user_data; /* Data. */
};
struct socket_ops {
@@ -241,14 +241,15 @@ struct socket {
const struct socket_ops *ops;
};
-typedef int (*extent_fn) (void *data, const char *metacontext, uint64_t offset,
+typedef int (*extent_fn) (void *user_data,
+ const char *metacontext, uint64_t offset,...
2019 Aug 03
1
[PATCH libnbd] generator: Generate typedefs automatically for Closure arguments.
...le {
/* Lock protecting concurrent access to the handle. */
@@ -80,7 +79,7 @@ struct nbd_handle {
/* For debugging. */
bool debug;
- debug_fn debug_fn;
+ nbd_debug_callback debug_callback;
void *debug_data;
/* State machine.
@@ -248,23 +247,14 @@ struct socket {
const struct socket_ops *ops;
};
-typedef int (*extent_fn) (unsigned valid_flag, void *user_data,
- const char *metacontext, uint64_t offset,
- uint32_t *entries, size_t nr_entries, int *error);
-typedef int (*read_fn) (unsigned valid_flag, void *user_data,
-...
2019 Jul 25
4
[PATCH libnbd v3 0/2] lib: Implement closure lifetimes.
I think I've addressed everything that was raised in review.
Some of the highlights:
- Callbacks should be freed reliably along all exit paths.
- There's a simple test of closure lifetimes.
- I've tried to use VALID|FREE in all the places where I'm confident
that it's safe and correct to do. There may be more places. Note
this is an optimization and shouldn't
2020 Aug 14
0
[libnbd PATCH v2 11/13] api: Add nbd_aio_opt_list
...char str[NBD_MAX_STRING * 2 + 1]; /* name, description, NUL */
} __attribute__((packed)) server;
struct nbd_fixed_new_option_reply_info_export export;
struct nbd_fixed_new_option_reply_info_block_size block_size;
@@ -324,14 +330,6 @@ struct socket {
const struct socket_ops *ops;
};
-struct command_cb {
- union {
- nbd_extent_callback extent;
- nbd_chunk_callback chunk;
- } fn;
- nbd_completion_callback completion;
-};
-
struct command {
struct command *next;
uint16_t flags;
@@ -420,6 +418,9 @@ extern bool nbd_internal_is_state_processing (enum state...
2019 Jul 24
0
[PATCH libnbd 2/3] lib: Implement closure lifetimes.
...@ struct nbd_handle {
/* For debugging. */
bool debug;
- int (*debug_fn) (void *, const char *, const char *);
+ int (*debug_fn) (int, void *, const char *, const char *);
void *debug_data;
/* Linked list of close callbacks. */
@@ -257,12 +257,14 @@ struct socket {
const struct socket_ops *ops;
};
-typedef int (*extent_fn) (void *user_data,
+typedef int (*extent_fn) (int valid_flag, void *user_data,
const char *metacontext, uint64_t offset,
uint32_t *entries, size_t nr_entries, int *error);
-typedef int (*read_fn) (void *user_...
2019 Jul 24
0
[PATCH libnbd v2 2/5] lib: Implement closure lifetimes.
...ccess to the handle. */
@@ -80,7 +81,7 @@ struct nbd_handle {
/* For debugging. */
bool debug;
- int (*debug_fn) (void *, const char *, const char *);
+ debug_fn debug_fn;
void *debug_data;
/* Linked list of close callbacks. */
@@ -257,12 +258,14 @@ struct socket {
const struct socket_ops *ops;
};
-typedef int (*extent_fn) (void *user_data,
+typedef int (*extent_fn) (unsigned valid_flag, void *user_data,
const char *metacontext, uint64_t offset,
uint32_t *entries, size_t nr_entries, int *error);
-typedef int (*read_fn) (void *...
2020 Aug 18
0
[libnbd PATCH v3 2/2] api: Add nbd_aio_opt_list
...char str[NBD_MAX_STRING * 2 + 1]; /* name, description, NUL */
} __attribute__((packed)) server;
struct nbd_fixed_new_option_reply_info_export export;
struct nbd_fixed_new_option_reply_info_block_size block_size;
@@ -324,14 +330,6 @@ struct socket {
const struct socket_ops *ops;
};
-struct command_cb {
- union {
- nbd_extent_callback extent;
- nbd_chunk_callback chunk;
- } fn;
- nbd_completion_callback completion;
-};
-
struct command {
struct command *next;
uint16_t flags;
@@ -420,6 +418,9 @@ extern bool nbd_internal_is_state_processing (enum state...
2019 Jul 25
0
[PATCH libnbd v3 1/2] lib: Implement closure lifetimes.
...ccess to the handle. */
@@ -80,7 +81,7 @@ struct nbd_handle {
/* For debugging. */
bool debug;
- int (*debug_fn) (void *, const char *, const char *);
+ debug_fn debug_fn;
void *debug_data;
/* Linked list of close callbacks. */
@@ -257,12 +258,14 @@ struct socket {
const struct socket_ops *ops;
};
-typedef int (*extent_fn) (void *user_data,
+typedef int (*extent_fn) (unsigned valid_flag, void *user_data,
const char *metacontext, uint64_t offset,
uint32_t *entries, size_t nr_entries, int *error);
-typedef int (*read_fn) (void *...
2019 Jul 24
8
[PATCH libnbd v2 0/5] lib: Implement closure lifetimes.
v1 was here:
https://www.redhat.com/archives/libguestfs/2019-July/thread.html#00231
The changes address everything that Eric picked up in his review of
the first two patches. I have also added two more patches (4 and 5)
which respectively fix docs and change int status -> unsigned status,
as discussed.
Passes make, check, check-valgrind.
Rich.