summaryrefslogtreecommitdiffstats
path: root/src/server/server.h
diff options
context:
space:
mode:
authorsr2012-09-04 19:22:57 +0200
committersr2012-09-04 19:22:57 +0200
commitbc4e381484024237df0b04bb667f742fe4846b35 (patch)
treea28ee79b9999eb9c1436f0f7f6e7042537b413d2 /src/server/server.h
parent[SERVER] Check which dnbd3 devices are idle and ready to use for proxy mode (diff)
downloaddnbd3-bc4e381484024237df0b04bb667f742fe4846b35.tar.gz
dnbd3-bc4e381484024237df0b04bb667f742fe4846b35.tar.xz
dnbd3-bc4e381484024237df0b04bb667f742fe4846b35.zip
[SERVER] More work towards automatic server discovery and querying
Diffstat (limited to 'src/server/server.h')
-rw-r--r--src/server/server.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/server/server.h b/src/server/server.h
index 93f219e..c23f80f 100644
--- a/src/server/server.h
+++ b/src/server/server.h
@@ -48,18 +48,30 @@ typedef struct
typedef struct
{
+ uint16_t len;
+ uint8_t data[65535];
+} dnbd3_binstring_t;
+// Do not always allocate as much memory as required to hold the entire binstring struct, but only as much as is required to hold the actual data
+#define NEW_BINSTRING(_name, _len) \
+ dnbd3_binstring_t *_name = malloc(sizeof(uint16_t) + _len); \
+ _name->len = _len
+
+typedef struct
+{
int sock;
dnbd3_host_t host;
uint8_t is_server; // TRUE if a server in proxy mode, FALSE if real client
pthread_t thread;
dnbd3_image_t *image;
+ GSList *sendqueue; // list of dnbd3_binstring_t*
} dnbd3_client_t;
typedef struct
{
- dnbd3_host_t host;
gchar *comment;
GSList *namespaces; // List of dnbd3_namespace_t
+ dnbd3_host_t host;
+ uint8_t unreachable;
} dnbd3_trusted_server_t;
typedef struct
@@ -81,6 +93,7 @@ extern int _fake_delay;
#endif
void dnbd3_cleanup();
+void dnbd3_free_client(dnbd3_client_t *client);
#if !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
#error Please set _FILE_OFFSET_BITS to 64 in your makefile/configuration