X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Futils%2Fproto.c;h=35b19862b12e5ea1fe8258cf519713cfc9e8c7dc;hp=16007f2e5bd48d1ebe9a6d2958cdf8624c52f4fb;hb=90064393a1c5c27ef0ae05652e6672814772fdce;hpb=e2258e6ee3c933351f81490bac576438ff973ae4 diff --git a/src/utils/proto.c b/src/utils/proto.c index 16007f2..35b1986 100644 --- a/src/utils/proto.c +++ b/src/utils/proto.c @@ -64,6 +64,24 @@ sdb_proto_marshal(char *buf, size_t buf_len, uint32_t code, return len; } /* sdb_proto_marshal */ +int +sdb_proto_unmarshal_header(sdb_strbuf_t *buf, + uint32_t *code, uint32_t *msg_len) +{ + uint32_t tmp; + + if (sdb_strbuf_len(buf) < 2 * sizeof(uint32_t)) + return -1; + + tmp = sdb_proto_get_int(buf, 0); + if (code) + *code = tmp; + tmp = sdb_proto_get_int(buf, sizeof(uint32_t)); + if (msg_len) + *msg_len = tmp; + return 0; +} /* sdb_proto_unmarshal_header */ + uint32_t sdb_proto_get_int(sdb_strbuf_t *buf, size_t offset) {