X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Futils%2Fproto.c;h=51c2ed8c45361f4625c4e7dc6d956594d7a96a7e;hp=56ef745ff0d5f6b06336174f55538b40fd042013;hb=57331451a2eb8cbcd812e7428ab1ded6d312365f;hpb=8dd1618e1dc92bd9bc60d78401e879caf919e37e diff --git a/src/utils/proto.c b/src/utils/proto.c index 56ef745..51c2ed8 100644 --- a/src/utils/proto.c +++ b/src/utils/proto.c @@ -202,8 +202,26 @@ sdb_proto_marshal_data(char *buf, size_t buf_len, sdb_data_t *datum) char **v = datum->data.array.values; n = marshal_string(buf, buf_len, v[i]); } + else if (type == SDB_TYPE_DATETIME) { + sdb_time_t *v = datum->data.array.values; + n = marshal_datetime(buf, buf_len, v[i]); + } + else if (type == SDB_TYPE_BINARY) { + struct { + size_t length; + unsigned char *datum; + } *v = datum->data.array.values; + n = marshal_binary(buf, buf_len, v[i].length, v[i].datum); + } + else if (type == SDB_TYPE_REGEX) { + struct { + char *raw; + regex_t regex; + } *v = datum->data.array.values; + n = marshal_string(buf, buf_len, v[i].raw); + } else { - errno = ENOTSUP; + errno = EINVAL; return -1; }