92 #define HEADER_OPTS_SIZE (sizeof(header_opts) / sizeof(header_opts[0]))
94 static HTABLE *header_hash;
99 static void header_opts_init(
void)
112 for (cp = hp->
name; *cp; cp++)
121 static void header_drop_init(
void)
139 for (cpp = hdr_drop_list->
argv; *cpp; cpp++) {
160 if (header_hash == 0) {
169 for (cp =
string; *cp !=
':'; cp++) {
171 msg_panic(
"header_opts_find: no colon in header: %.30s",
string);
HTABLE_INFO * htable_locate(HTABLE *table, const char *key)
ARGV * argv_free(ARGV *argvp)
NORETURN msg_panic(const char *fmt,...)
VSTRING * vstring_truncate(VSTRING *vp, ssize_t len)
#define VSTRING_TERMINATE(vp)
HTABLE * htable_create(ssize_t size)
#define VSTRING_ADDCH(vp, ch)
#define VSTRING_RESET(vp)
VSTRING * vstring_alloc(ssize_t len)
void * htable_find(HTABLE *table, const char *key)
char * lowercase(char *string)
char * trimblanks(char *, ssize_t)
ARGV * argv_split(const char *, const char *)
void * mymalloc(ssize_t len)
HTABLE_INFO * htable_enter(HTABLE *table, const char *key, void *value)