if (e->id != HDR_OTHER)
delById(e->id);
else
- delByName(e->name.unsafeBuf());
+ delByName(e->name.termedBuf());
}
pos = HttpHeaderInitPos;
}
if (e->id == HDR_CONTENT_LENGTH && (e2 = findEntry(e->id)) != NULL) {
- if (e->value.cmp(e2->value.unsafeBuf()) != 0) {
+// if (e->value.cmp(e2->value.termedBuf()) != 0) {
+ if (e->value != e2->value) {
int64_t l1, l2;
debugs(55, Config.onoff.relaxed_header_parser <= 0 ? 1 : 2,
"WARNING: found two conflicting content-length headers in {" << getStringPrefix(header_start, header_end) << "}");
goto reset;
}
- if (!httpHeaderParseOffset(e->value.unsafeBuf(), &l1)) {
- debugs(55, 1, "WARNING: Unparseable content-length '" << e->value.unsafeBuf() << "'");
+ if (!httpHeaderParseOffset(e->value.termedBuf(), &l1)) {
+ debugs(55, 1, "WARNING: Unparseable content-length '" << e->value << "'");
delete e;
continue;
- } else if (!httpHeaderParseOffset(e2->value.unsafeBuf(), &l2)) {
- debugs(55, 1, "WARNING: Unparseable content-length '" << e2->value.unsafeBuf() << "'");
+ } else if (!httpHeaderParseOffset(e2->value.termedBuf(), &l2)) {
+ debugs(55, 1, "WARNING: Unparseable content-length '" << e2->value << "'");
delById(e2->id);
} else if (l1 > l2) {
delById(e2->id);
}
}
- if (e->id == HDR_OTHER && stringHasWhitespace(e->name.unsafeBuf())) {
+ if (e->id == HDR_OTHER && stringHasWhitespace(e->name.termedBuf())) {
debugs(55, Config.onoff.relaxed_header_parser <= 0 ? 1 : 2,
"WARNING: found whitespace in HTTP header name {" <<
getStringPrefix(field_start, field_end) << "}");
while ((e = getEntry(&pos))) {
if (e->id == id)
- strListAdd(s, e->value.unsafeBuf(), ',');
+ strListAdd(s, e->value.termedBuf(), ',');
}
/*
while ((e = getEntry(&pos))) {
if (e->id == id)
- strListAdd(&s, e->value.unsafeBuf(), ',');
+ strListAdd(&s, e->value.termedBuf(), ',');
}
/*
/* Sorry, an unknown header name. Do linear search */
while ((e = getEntry(&pos))) {
if (e->id == HDR_OTHER && e->name.caseCmp(name) == 0) {
- strListAdd(&result, e->value.unsafeBuf(), ',');
+ strListAdd(&result, e->value.termedBuf(), ',');
}
}
assert(Headers[id].type == ftDate_1123); /* must be of an appropriate type */
if ((e = findEntry(id))) {
- value = parse_rfc1123(e->value.unsafeBuf());
+ value = parse_rfc1123(e->value.termedBuf());
httpHeaderNoteParsedEntry(e->id, e->value, value < 0);
}
if ((e = findEntry(id))) {
httpHeaderNoteParsedEntry(e->id, e->value, 0); /* no errors are possible */
- return e->value.unsafeBuf();
+ return e->value.termedBuf();
}
return NULL;
if ((e = findLastEntry(id))) {
httpHeaderNoteParsedEntry(e->id, e->value, 0); /* no errors are possible */
- return e->value.unsafeBuf();
+ return e->value.termedBuf();
}
return NULL;
HttpHeaderEntry *e;
if ((e = findEntry(HDR_CONTENT_RANGE))) {
- cr = httpHdrContRangeParseCreate(e->value.unsafeBuf());
+ cr = httpHdrContRangeParseCreate(e->value.termedBuf());
httpHeaderNoteParsedEntry(e->id, e->value, !cr);
}
assert(Headers[id].type == ftETag); /* must be of an appropriate type */
if ((e = findEntry(id)))
- etagParseInit(&etag, e->value.unsafeBuf());
+ etagParseInit(&etag, e->value.termedBuf());
return etag;
}
memset(&tot, 0, sizeof(tot));
if ((e = findEntry(id))) {
- const char *str = e->value.unsafeBuf();
+ const char *str = e->value.termedBuf();
/* try as an ETag */
if (etagParseInit(&tot.tag, str)) {
Headers[id].stat.aliveCount++;
- debugs(55, 9, "created HttpHeaderEntry " << this << ": '" << name.unsafeBuf() << " : " << value.unsafeBuf());
+ debugs(55, 9, "created HttpHeaderEntry " << this << ": '" << name << " : " << value );
}
HttpHeaderEntry::~HttpHeaderEntry()
{
assert_eid(id);
- debugs(55, 9, "destroying entry " << this << ": '" << name.unsafeBuf() << ": " << value.unsafeBuf() << "'");
+ debugs(55, 9, "destroying entry " << this << ": '" << name << ": " << value << "'");
/* clean name if needed */
if (id == HDR_OTHER)
if (field_end - value_start > 65534) {
/* String must be LESS THAN 64K and it adds a terminating NULL */
- debugs(55, 1, "WARNING: ignoring '" << name.unsafeBuf() << "' header of " << (field_end - value_start) << " bytes");
+ debugs(55, 1, "WARNING: ignoring '" << name << "' header of " << (field_end - value_start) << " bytes");
if (id == HDR_OTHER)
name.clean();
Headers[id].stat.aliveCount++;
- debugs(55, 9, "parsed HttpHeaderEntry: '" << name.unsafeBuf() << ": " << value.unsafeBuf() << "'");
+ debugs(55, 9, "parsed HttpHeaderEntry: '" << name << ": " << value << "'");
- return new HttpHeaderEntry(id, name.unsafeBuf(), value.unsafeBuf());
+ return new HttpHeaderEntry(id, name.termedBuf(), value.termedBuf());
}
HttpHeaderEntry *
HttpHeaderEntry::clone() const
{
- return new HttpHeaderEntry(id, name.unsafeBuf(), value.unsafeBuf());
+ return new HttpHeaderEntry(id, name.termedBuf(), value.termedBuf());
}
void
HttpHeaderEntry::packInto(Packer * p) const
{
assert(p);
- packerAppend(p, name.unsafeBuf(), name.size());
+ packerAppend(p, name.rawBuf(), name.size());
packerAppend(p, ": ", 2);
- packerAppend(p, value.unsafeBuf(), value.size());
+ packerAppend(p, value.rawBuf(), value.size());
packerAppend(p, "\r\n", 2);
}
assert_eid (id);
assert (Headers[id].type == ftInt);
int val = -1;
- int ok = httpHeaderParseInt(value.unsafeBuf(), &val);
+ int ok = httpHeaderParseInt(value.termedBuf(), &val);
httpHeaderNoteParsedEntry(id, value, !ok);
/* XXX: Should we check ok - ie
* return ok ? -1 : value;
assert_eid (id);
assert (Headers[id].type == ftInt64);
int64_t val = -1;
- int ok = httpHeaderParseOffset(value.unsafeBuf(), &val);
+ int ok = httpHeaderParseOffset(value.termedBuf(), &val);
httpHeaderNoteParsedEntry(id, value, !ok);
/* XXX: Should we check ok - ie
* return ok ? -1 : value;
if (error) {
Headers[id].stat.errCount++;
- debugs(55, 2, "cannot parse hdr field: '" << Headers[id].name.unsafeBuf() << ": " << context.unsafeBuf() << "'");
+ debugs(55, 2, "cannot parse hdr field: '" << Headers[id].name << ": " << context << "'");
}
}
{
const int id = (int) val;
const int valid_id = id >= 0 && id < HDR_ENUM_END;
- const char *name = valid_id ? Headers[id].name.unsafeBuf() : "INVALID";
+ const char *name = valid_id ? Headers[id].name.termedBuf() : "INVALID";
int visible = count > 0;
/* for entries with zero count, list only those that belong to current type of message */
for (ht = (http_hdr_type)0; ht < HDR_ENUM_END; ++ht) {
HttpHeaderFieldInfo *f = Headers + ht;
storeAppendPrintf(e, "%2d\t %-25s\t %5d\t %6.3f\t %6.3f\n",
- f->id, f->name.unsafeBuf(), f->stat.aliveCount,
+ f->id, f->name.termedBuf(), f->stat.aliveCount,
xpercent(f->stat.errCount, f->stat.parsCount),
xpercent(f->stat.repCount, f->stat.seenCount));
}
if (name_len >= 0 && name_len != info[i].name.size())
continue;
- if (!strncasecmp(name, info[i].name.unsafeBuf(),
+ if (!strncasecmp(name, info[i].name.termedBuf(),
name_len < 0 ? info[i].name.size() + 1 : name_len))
return info[i].id;
}
assert(id >= 0 && id < HDR_ENUM_END);
- return Headers[id].name.unsafeBuf();
+ return Headers[id].name.termedBuf();
}
int
int headers_deleted = 0;
while ((e = getEntry(&pos))) {
- if (strListIsMember(&strConnection, e->name.unsafeBuf(), ','))
+ if (strListIsMember(&strConnection, e->name.termedBuf(), ','))
delAt(pos, headers_deleted);
}
if (headers_deleted)