/* * Returns true if HTTP allows us to pass this header on. Does not * check anonymizer (aka header_access) configuration. */ int httpRequestHdrAllowed(const HttpHeaderEntry * e, String * strConn) { assert(e); /* check connection header */ if (strConn && strListIsMember(strConn, strBuf(e->name), ',')) return 0; return 1; }
/* returns true if header is allowed to be passed on */ int httpRequestHdrAllowed(const HttpHeaderEntry * e, String * strConn) { assert(e); /* check with anonymizer tables */ if (CBIT_TEST(Config.anonymize_headers, e->id)) return 0; /* check connection header */ if (strConn && strListIsMember(strConn, strBuf(e->name), ',')) return 0; return 1; }
/* * return true if a given directive is found in at least one of * the "connection" header-fields note: if HDR_PROXY_CONNECTION is * present we ignore HDR_CONNECTION. */ int httpHeaderHasConnDir(const HttpHeader * hdr, const char *directive) { String list; http_hdr_type ht; int res; /* what type of header do we have? */ if (httpHeaderHas(hdr, HDR_PROXY_CONNECTION)) ht = HDR_PROXY_CONNECTION; else if (httpHeaderHas(hdr, HDR_CONNECTION)) ht = HDR_CONNECTION; else return 0; list = httpHeaderGetList(hdr, ht); res = strListIsMember(&list, directive, ','); stringClean(&list); return res; }
/* appends an item to the list if not already there */ void strListAddUnique(String * str, const char *item, char del) { if (!strListIsMember(str, item, del)) strListAdd(str, item, del); }