Ejemplo n.º 1
0
int MIME_add_type(const char *ext, const char *type)
{
    if(!MAX_EXT_LEN) {
        MAX_EXT_LEN = Setting_get_int("limits.mime_ext_len", 128);
        log_info("MAX limits.mime_ext_len=%d", MAX_EXT_LEN);
    }

    bstring ext_rev = bfromcstr(ext);
    bReverse(ext_rev);
    bstring type_str = bfromcstr(type);

    check(blength(ext_rev) > 0, "No zero length MIME extensions allowed: %s:%s", ext, type);
    check(blength(type_str) > 0, "No zero length MIME types allowed: %s:%s", ext, type);
    check(ext[0] == '.', "Extensions must start with a . '%s:%s'", ext, type);

    check(blength(ext_rev) < MAX_EXT_LEN, "MIME extension %s:%s is longer than %d MAX (it's %d)", ext, type, MAX_EXT_LEN, blength(ext_rev));

    check(!tst_search(MIME_MAP, bdata(ext_rev), blength(ext_rev)), 
            "MIME extension %s already exists, can't add %s:%s",
            ext, ext, type);

    MIME_MAP = tst_insert(MIME_MAP, bdata(ext_rev), blength(ext_rev), type_str);

    bdestroy(ext_rev);

    return 0;
error:
    bdestroy(ext_rev);
    bdestroy(type_str);
    return -1;
}
Ejemplo n.º 2
0
int test5 (void) {
struct tagbstring t = bsStatic ("Hello world");
bstring b;
int ret = 0;

	printf ("TEST: bReverse function.\n");
	ret += 0 <= bReverse (&t);
	ret += 0 >  bReverse (b = bstrcpy (&t));
	ret += 0 >= biseqcstr (b, "dlrow olleH");
	b->slen = 0;
	ret += 0 >  bReverse (b);
	ret += 0 >= biseqcstr (b, "");
	bdestroy (b);

	printf ("\t# failures: %d\n", ret);

	return ret;
}
Ejemplo n.º 3
0
END_TEST

START_TEST(core_005)
{
	struct tagbstring t = bsStatic("Hello world");
	int ret = 0;
	bstring b;
	ret = bReverse(&t);
	ck_assert(ret < 0);
	b = bstrcpy(&t);
	ck_assert(b != NULL);
	ret = bReverse(b);
	ck_assert_int_eq(ret, 0);
	ret = biseqcstr(b, "dlrow olleH");
	ck_assert_int_eq(ret, 1);
	b->slen = 0;
	ret = bReverse(b);
	ck_assert_int_eq(ret, 0);
	ret = biseqcstr(b, "");
	ck_assert_int_eq(ret, 1);
	ret = bdestroy(b);
	ck_assert_int_eq(ret, BSTR_OK);
}