diff --git a/src/common/protocol.h b/src/common/protocol.h --- a/src/common/protocol.h +++ b/src/common/protocol.h @@ -20,6 +20,7 @@ #ifndef DISTREN_PROTOCOL_H #define DISTREN_PROTOCOL_H +#include #include /** @@ -84,16 +85,22 @@ struct distren_request { uint32_t magic; uint32_t len; - uint8_t enumsize; - enum distren_request_type type; + /** treat type as an enum distren_request_type using casting */ + uint32_t /* enum distren_request_type */ type; }; /** - initializes request + initializes and allocates request */ int distren_request_new(struct distren_request **req, uint32_t len, enum distren_request_type type); /** + initializes and allocates request based on raw input data + which includes the headers of the request. + */ +int distren_request_new_fromdata(struct distren_request **req, void *data, size_t len); + +/** frees request */ int distren_request_free(struct distren_request *req);