From bc4e381484024237df0b04bb667f742fe4846b35 Mon Sep 17 00:00:00 2001 From: sr Date: Tue, 4 Sep 2012 19:22:57 +0200 Subject: [SERVER] More work towards automatic server discovery and querying --- src/server/server.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/server/server.h') 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 @@ -46,6 +46,16 @@ typedef struct uint8_t relayed; // TRUE if relayed from other server (needs dnbd3 client module loaded) } dnbd3_image_t; +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; @@ -53,13 +63,15 @@ typedef struct 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 -- cgit v1.2.3-55-g7522