diff options
author | sr | 2012-09-04 19:22:57 +0200 |
---|---|---|
committer | sr | 2012-09-04 19:22:57 +0200 |
commit | bc4e381484024237df0b04bb667f742fe4846b35 (patch) | |
tree | a28ee79b9999eb9c1436f0f7f6e7042537b413d2 /src/server/server.h | |
parent | [SERVER] Check which dnbd3 devices are idle and ready to use for proxy mode (diff) | |
download | dnbd3-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.h | 15 |
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 |