mirror of
https://github.com/zigzap/zap.git
synced 2025-10-20 15:14:08 +00:00
added fio-typecheck of mimetype field when parsing binfiles
This commit is contained in:
parent
66a7967aca
commit
d9739599ec
2 changed files with 25 additions and 2 deletions
|
@ -132,8 +132,14 @@ fn parseBinfilesFrom(a: Allocator, o: fio.FIOBJ) !HttpParam {
|
||||||
|
|
||||||
var mimetype: []const u8 = undefined;
|
var mimetype: []const u8 = undefined;
|
||||||
if (fio.fiobj_hash_haskey(o, key_type) == 1) {
|
if (fio.fiobj_hash_haskey(o, key_type) == 1) {
|
||||||
const mt = fio.fiobj_obj2cstr(fio.fiobj_hash_get(o, key_type));
|
const mt_fiobj = fio.fiobj_hash_get(o, key_type);
|
||||||
mimetype = mt.data[0..mt.len];
|
// for some reason, mimetype can be an array
|
||||||
|
if (fio.fiobj_type_is(mt_fiobj, fio.FIOBJ_T_STRING) == 1) {
|
||||||
|
const mt = fio.fiobj_obj2cstr(mt_fiobj);
|
||||||
|
mimetype = mt.data[0..mt.len];
|
||||||
|
} else {
|
||||||
|
mimetype = &"application/octet-stream".*;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mimetype = &"application/octet-stream".*;
|
mimetype = &"application/octet-stream".*;
|
||||||
}
|
}
|
||||||
|
|
17
src/util.zig
17
src/util.zig
|
@ -17,6 +17,23 @@ pub fn fio2str(o: fio.FIOBJ) ?[]const u8 {
|
||||||
return x.data[0..x.len];
|
return x.data[0..x.len];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn fiobj_type_as_string(o: zap.fio.FIOBJ) []const u8 {
|
||||||
|
const value_type = switch (zap.fio.fiobj_type(o)) {
|
||||||
|
zap.fio.FIOBJ_T_NULL => "null",
|
||||||
|
zap.fio.FIOBJ_T_TRUE => "true",
|
||||||
|
zap.fio.FIOBJ_T_FALSE => "false",
|
||||||
|
zap.fio.FIOBJ_T_NUMBER => "number",
|
||||||
|
zap.fio.FIOBJ_T_FLOAT => "float",
|
||||||
|
zap.fio.FIOBJ_T_STRING => "string",
|
||||||
|
zap.fio.FIOBJ_T_ARRAY => "array",
|
||||||
|
zap.fio.FIOBJ_T_HASH => "hash",
|
||||||
|
zap.fio.FIOBJ_T_DATA => "data",
|
||||||
|
zap.fio.FIOBJ_T_UNKNOWN => "unknown",
|
||||||
|
else => "unreachable",
|
||||||
|
};
|
||||||
|
return value_type;
|
||||||
|
}
|
||||||
|
|
||||||
/// Used internally: convert a FIO object into its string representation.
|
/// Used internally: convert a FIO object into its string representation.
|
||||||
/// This always allocates, so choose your allocator wisely.
|
/// This always allocates, so choose your allocator wisely.
|
||||||
/// Let's never use that
|
/// Let's never use that
|
||||||
|
|
Loading…
Add table
Reference in a new issue