File 10834.patch of Package squid-beta
---------------------
PatchSet 10834
Date: 2007/05/29 13:31:36
Author: amosjeffries
Branch: HEAD
Tag: (none)
Log:
Rollback String API changes. Delayed to 3.1.
Members:
ChangeLog:1.555->1.556
src/ACLExtUser.cc:1.10->1.11
src/ACLHTTPHeaderData.cc:1.4->1.5
src/ACLHTTPHeaderData.h:1.3->1.4
src/ACLUrlPath.cc:1.3->1.4
src/AuthUser.cc:1.8->1.9
src/CommonPool.h:1.4->1.5
src/CompositePoolNode.h:1.7->1.8
src/ConfigParser.h:1.7->1.8
src/DelayBucket.cc:1.6->1.7
src/DelayTagged.cc:1.6->1.7
src/DelayTagged.h:1.5->1.6
src/ESI.cc:1.24->1.25
src/ESIAssign.cc:1.5->1.6
src/ESIAssign.h:1.4->1.5
src/ESICustomParser.cc:1.9->1.10
src/ESICustomParser.h:1.7->1.8
src/ESISegment.cc:1.5->1.6
src/ESIVarState.cc:1.9->1.10
src/ESIVarState.h:1.3->1.4
src/ExternalACLEntry.h:1.7->1.8
src/HttpHdrCc.cc:1.30->1.31
src/HttpHdrRange.cc:1.43->1.44
src/HttpHdrSc.cc:1.5->1.6
src/HttpHdrSc.h:1.2->1.3
src/HttpHdrScTarget.cc:1.3->1.4
src/HttpHdrScTarget.h:1.2->1.3
src/HttpHeader.cc:1.132->1.133
src/HttpHeader.h:1.20->1.21
src/HttpHeaderRange.h:1.9->1.10
src/HttpHeaderTools.cc:1.60->1.61
src/HttpReply.cc:1.94->1.95
src/HttpReply.h:1.19->1.20
src/HttpRequest.cc:1.75->1.76
src/HttpRequest.h:1.28->1.29
src/HttpStatusLine.cc:1.33->1.34
src/HttpStatusLine.h:1.3->1.4
src/Makefile.am:1.181->1.182
src/MemObject.cc:1.27->1.28
src/PeerDigest.h:1.2->1.3
src/SqString.cc:1.7->1.8(DEAD)
src/SqString.cci:1.2->1.3(DEAD)
src/SqString.h:1.3->1.4(DEAD)
src/SquidString.h:1.9->1.10
src/Store.h:1.34->1.35
src/StoreHashIndex.h:1.3->1.4
src/String.cc:1.25->1.26
src/String.cci:1.8->1.9
src/SwapDir.cc:1.12->1.13
src/SwapDir.h:1.12->1.13
src/access_log.cc:1.125->1.126
src/cache_cf.cc:1.511->1.512
src/client_db.cc:1.69->1.70
src/client_side.cc:1.755->1.756
src/client_side_reply.cc:1.128->1.129
src/client_side_request.cc:1.88->1.89
src/client_side_request.h:1.29->1.30
src/dns_internal.cc:1.99->1.100
src/errorpage.cc:1.226->1.227
src/external_acl.cc:1.79->1.80
src/fqdncache.cc:1.172->1.173
src/ftp.cc:1.423->1.424
src/gopher.cc:1.208->1.209
src/http.cc:1.522->1.523
src/ident.cc:1.76->1.77
src/internal.cc:1.46->1.47
src/ipcache.cc:1.260->1.261
src/net_db.cc:1.195->1.196
src/pconn.cc:1.52->1.53
src/peer_digest.cc:1.124->1.125
src/protos.h:1.546->1.547
src/redirect.cc:1.119->1.120
src/stat.cc:1.406->1.407
src/store.cc:1.614->1.615
src/store_dir.cc:1.160->1.161
src/store_log.cc:1.33->1.34
src/structs.h:1.557->1.558
src/url.cc:1.161->1.162
src/urn.cc:1.106->1.107
src/whois.cc:1.44->1.45
src/DiskIO/AIO/AIODiskFile.cc:1.5->1.6
src/DiskIO/AIO/AIODiskFile.h:1.3->1.4
src/ICAP/ICAPConfig.cc:1.15->1.16
src/ICAP/ICAPConfig.h:1.12->1.13
src/ICAP/ICAPModXact.cc:1.32->1.33
src/ICAP/ICAPOptXact.cc:1.7->1.8
src/ICAP/ICAPOptions.cc:1.11->1.12
src/ICAP/ICAPOptions.h:1.10->1.11
src/ICAP/ICAPServiceRep.cc:1.13->1.14
src/ICAP/ICAPServiceRep.h:1.8->1.9
src/ICAP/ICAPXaction.cc:1.18->1.19
src/auth/digest/auth_digest.cc:1.56->1.57
src/auth/negotiate/auth_negotiate.cc:1.19->1.20
src/auth/ntlm/auth_ntlm.cc:1.69->1.70
src/fs/coss/CossSwapDir.h:1.7->1.8
src/fs/coss/store_dir_coss.cc:1.74->1.75
src/fs/null/store_null.cc:1.13->1.14
src/fs/null/store_null.h:1.4->1.5
src/fs/ufs/store_dir_ufs.cc:1.83->1.84
src/fs/ufs/ufscommon.h:1.10->1.11
src/tests/CapturingStoreEntry.h:1.2->1.3
src/tests/TestSwapDir.cc:1.4->1.5
src/tests/TestSwapDir.h:1.5->1.6
src/tests/testCacheManager.cc:1.3->1.4
src/tests/testEvent.cc:1.5->1.6
src/tests/testHttpRequest.cc:1.3->1.4
src/tests/testHttpRequestMethod.cc:1.3->1.4
src/tests/testStore.cc:1.5->1.6
src/tests/testStore.h:1.3->1.4
src/tests/testStoreController.cc:1.6->1.7
src/tests/testStoreEntryStream.cc:1.4->1.5
src/tests/testStoreHashIndex.cc:1.5->1.6
src/tests/testString.cc:1.5->1.6
src/tests/testString.h:1.4->1.5
src/tests/testURLScheme.cc:1.3->1.4
src/tests/test_http_range.cc:1.2->1.3
Index: squid3/ChangeLog
===================================================================
RCS file: /cvsroot/squid/squid3/ChangeLog,v
retrieving revision 1.555
retrieving revision 1.556
diff -u -r1.555 -r1.556
--- squid3/ChangeLog 18 May 2007 06:41:21 -0000 1.555
+++ squid3/ChangeLog 29 May 2007 13:31:36 -0000 1.556
@@ -28,7 +28,6 @@
- Improved high-resolution profiling
- Windows overlapped-IO and thread support added to the Async IO disk code
- Improvements for handling large DNS replies
- - Adds standard API for string handling
Changes to squid-2.5 ():
Index: squid3/src/ACLExtUser.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ACLExtUser.cc,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- squid3/src/ACLExtUser.cc 18 May 2007 06:41:21 -0000 1.10
+++ squid3/src/ACLExtUser.cc 29 May 2007 13:31:36 -0000 1.11
@@ -1,5 +1,5 @@
/*
- * $Id: ACLExtUser.cc,v 1.10 2007/05/18 06:41:21 amosjeffries Exp $
+ * $Id: ACLExtUser.cc,v 1.11 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
@@ -79,7 +79,7 @@
ACLExtUser::match(ACLChecklist *checklist)
{
if (checklist->request->extacl_user.size()) {
- return data->match(checklist->request->extacl_user.c_str());
+ return data->match(checklist->request->extacl_user.buf());
} else {
return -1;
}
Index: squid3/src/ACLHTTPHeaderData.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ACLHTTPHeaderData.cc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/ACLHTTPHeaderData.cc 18 May 2007 06:41:21 -0000 1.4
+++ squid3/src/ACLHTTPHeaderData.cc 29 May 2007 13:31:36 -0000 1.5
@@ -1,5 +1,5 @@
/*
- * $Id: ACLHTTPHeaderData.cc,v 1.4 2007/05/18 06:41:21 amosjeffries Exp $
+ * $Id: ACLHTTPHeaderData.cc,v 1.5 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
@@ -63,18 +63,18 @@
if (hdr == NULL)
return false;
- debugs(28, 3, "aclHeaderData::match: checking '" << hdrName << "'");
+ debugs(28, 3, "aclHeaderData::match: checking '" << hdrName.buf() << "'");
- string value = hdrId != HDR_BAD_HDR ? hdr->getStrOrList(hdrId) : hdr->getByName(hdrName.c_str());
+ String value = hdrId != HDR_BAD_HDR ? hdr->getStrOrList(hdrId) : hdr->getByName(hdrName.buf());
- return regex_rule->match(value.c_str());
+ return regex_rule->match(value.buf());
}
wordlist *
ACLHTTPHeaderData::dump()
{
wordlist *W = NULL;
- wordlistAdd(&W, hdrName.c_str());
+ wordlistAdd(&W, hdrName.buf());
wordlist * regex_dump = regex_rule->dump();
wordlistAddWl(&W, regex_dump);
wordlistDestroy(®ex_dump);
@@ -87,14 +87,14 @@
char* t = strtokFile();
assert (t != NULL);
hdrName = t;
- hdrId = httpHeaderIdByNameDef(hdrName.c_str(), hdrName.size());
+ hdrId = httpHeaderIdByNameDef(hdrName.buf(), strlen(hdrName.buf()));
regex_rule->parse();
}
bool
ACLHTTPHeaderData::empty() const
{
- return (hdrId == HDR_BAD_HDR && !hdrName.c_str()) || regex_rule->empty();
+ return (hdrId == HDR_BAD_HDR && !hdrName.buf()) || regex_rule->empty();
}
ACLData<HttpHeader*> *
Index: squid3/src/ACLHTTPHeaderData.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ACLHTTPHeaderData.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/ACLHTTPHeaderData.h 18 May 2007 06:41:21 -0000 1.3
+++ squid3/src/ACLHTTPHeaderData.h 29 May 2007 13:31:36 -0000 1.4
@@ -1,6 +1,6 @@
/*
- * $Id: ACLHTTPHeaderData.h,v 1.3 2007/05/18 06:41:21 amosjeffries Exp $
+ * $Id: ACLHTTPHeaderData.h,v 1.4 2007/05/29 13:31:36 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -53,7 +53,7 @@
private:
http_hdr_type hdrId; // set if header is known
- string hdrName; // always set
+ String hdrName; // always set
ACLData<char const *> * regex_rule;
};
Index: squid3/src/ACLUrlPath.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ACLUrlPath.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/ACLUrlPath.cc 18 May 2007 06:41:21 -0000 1.3
+++ squid3/src/ACLUrlPath.cc 29 May 2007 13:31:36 -0000 1.4
@@ -1,5 +1,5 @@
/*
- * $Id: ACLUrlPath.cc,v 1.3 2007/05/18 06:41:21 amosjeffries Exp $
+ * $Id: ACLUrlPath.cc,v 1.4 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
@@ -47,7 +47,7 @@
int
ACLUrlPathStrategy::match (ACLData<char const *> * &data, ACLChecklist *checklist)
{
- char *esc_buf = xstrdup(checklist->request->urlpath.c_str());
+ char *esc_buf = xstrdup(checklist->request->urlpath.buf());
rfc1738_unescape(esc_buf);
int result = data->match(esc_buf);
safe_free(esc_buf);
Index: squid3/src/AuthUser.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/AuthUser.cc,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- squid3/src/AuthUser.cc 18 May 2007 06:41:21 -0000 1.8
+++ squid3/src/AuthUser.cc 29 May 2007 13:31:36 -0000 1.9
@@ -1,6 +1,6 @@
/*
- * $Id: AuthUser.cc,v 1.8 2007/05/18 06:41:21 amosjeffries Exp $
+ * $Id: AuthUser.cc,v 1.9 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 29 Authenticator
* AUTHOR: Robert Collins
@@ -143,7 +143,7 @@
if (!proxy_auth_username_cache) {
/* First time around, 7921 should be big enough */
proxy_auth_username_cache =
- hash_create((HASHCMP *) std::strcmp, 7921, hash_string);
+ hash_create((HASHCMP *) strcmp, 7921, hash_string);
assert(proxy_auth_username_cache);
eventAdd("User Cache Maintenance", cacheCleanup, NULL, Config.authenticateGCInterval, 1);
}
Index: squid3/src/CommonPool.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/CommonPool.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/CommonPool.h 18 May 2007 06:41:22 -0000 1.4
+++ squid3/src/CommonPool.h 29 May 2007 13:31:36 -0000 1.5
@@ -1,6 +1,6 @@
/*
- * $Id: CommonPool.h,v 1.4 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: CommonPool.h,v 1.5 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 77 Delay Pools
* AUTHOR: Robert Collins <robertc@squid-cache.org>
@@ -58,11 +58,11 @@
void *operator new(size_t);
void operator delete (void *);
static CommonPool *Factory (unsigned char _class, CompositePoolNode::Pointer&);
- char const* theClassTypeLabel() const { return typeLabel.c_str(); }
+ char const* theClassTypeLabel() const {return typeLabel.buf();}
protected:
CommonPool();
- string typeLabel;
+ String typeLabel;
};
#endif
Index: squid3/src/CompositePoolNode.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/CompositePoolNode.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- squid3/src/CompositePoolNode.h 18 May 2007 06:41:22 -0000 1.7
+++ squid3/src/CompositePoolNode.h 29 May 2007 13:31:36 -0000 1.8
@@ -1,6 +1,6 @@
/*
- * $Id: CompositePoolNode.h,v 1.7 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: CompositePoolNode.h,v 1.8 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 77 Delay Pools
* AUTHOR: Robert Collins <robertc@squid-cache.org>
@@ -78,7 +78,7 @@
struct IN_ADDR src_addr;
AuthUserRequest *user;
- string tag;
+ String tag;
};
protected:
Index: squid3/src/ConfigParser.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ConfigParser.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- squid3/src/ConfigParser.h 18 May 2007 06:41:22 -0000 1.7
+++ squid3/src/ConfigParser.h 29 May 2007 13:31:36 -0000 1.8
@@ -1,6 +1,6 @@
/*
- * $Id: ConfigParser.h,v 1.7 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ConfigParser.h,v 1.8 2007/05/29 13:31:36 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -61,7 +61,7 @@
static void ParseUShort(u_short *var);
static void ParseBool(bool *var);
static void ParseString(char **var);
- static void ParseString(string &var);
+ static void ParseString(String *var);
static void ParseWordList(wordlist **list);
static char * strtokFile();
};
Index: squid3/src/DelayBucket.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/DelayBucket.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- squid3/src/DelayBucket.cc 18 May 2007 06:41:22 -0000 1.6
+++ squid3/src/DelayBucket.cc 29 May 2007 13:31:36 -0000 1.7
@@ -1,6 +1,6 @@
/*
- * $Id: DelayBucket.cc,v 1.6 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: DelayBucket.cc,v 1.7 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 77 Delay Pools
* AUTHOR: Robert Collins <robertc@squid-cache.org>
@@ -54,7 +54,7 @@
#include "ConfigParser.h"
#include "DelayId.h"
#include "Array.h"
-#include "SquidString.h"
+#include "String.h"
#include "CommonPool.h"
#include "CompositePoolNode.h"
#include "DelayPool.h"
Index: squid3/src/DelayTagged.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/DelayTagged.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- squid3/src/DelayTagged.cc 18 May 2007 06:41:22 -0000 1.6
+++ squid3/src/DelayTagged.cc 29 May 2007 13:31:36 -0000 1.7
@@ -1,6 +1,6 @@
/*
- * $Id: DelayTagged.cc,v 1.6 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: DelayTagged.cc,v 1.7 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 77 Delay Pools
* AUTHOR: Robert Collins <robertc@squid-cache.org>
@@ -77,7 +77,7 @@
DelayTaggedCmp(DelayTaggedBucket::Pointer const &left, DelayTaggedBucket::Pointer const &right)
{
/* for rate limiting, case insensitive */
- return strcasecmp(left->tag, right->tag);
+ return left->tag.caseCmp(right->tag.buf());
}
void
@@ -183,7 +183,7 @@
::operator delete (address);
}
-DelayTaggedBucket::DelayTaggedBucket(string &aTag) : tag (aTag)
+DelayTaggedBucket::DelayTaggedBucket(String &aTag) : tag (aTag)
{
debugs(77, 3, "DelayTaggedBucket::DelayTaggedBucket");
}
@@ -196,11 +196,11 @@
void
DelayTaggedBucket::stats (StoreEntry *entry) const
{
- storeAppendPrintf(entry, " %s:", tag.c_str());
+ storeAppendPrintf(entry, " %s:", tag.buf());
theBucket.stats (entry);
}
-DelayTagged::Id::Id(DelayTagged::Pointer aDelayTagged, string &aTag) : theTagged(aDelayTagged)
+DelayTagged::Id::Id(DelayTagged::Pointer aDelayTagged, String &aTag) : theTagged(aDelayTagged)
{
theBucket = new DelayTaggedBucket(aTag);
DelayTaggedBucket::Pointer const *existing = theTagged->buckets.find(theBucket, DelayTaggedCmp);
Index: squid3/src/DelayTagged.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/DelayTagged.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/DelayTagged.h 18 May 2007 06:41:22 -0000 1.5
+++ squid3/src/DelayTagged.h 29 May 2007 13:31:36 -0000 1.6
@@ -1,6 +1,6 @@
/*
- * $Id: DelayTagged.h,v 1.5 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: DelayTagged.h,v 1.6 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 77 Delay Pools
* AUTHOR: Robert Collins <robertc@squid-cache.org>
@@ -58,10 +58,10 @@
void operator delete (void *);
void stats(StoreEntry *)const;
- DelayTaggedBucket(string &aTag);
+ DelayTaggedBucket(String &aTag);
~DelayTaggedBucket();
DelayBucket theBucket;
- string tag;
+ String tag;
};
class DelayTagged : public CompositePoolNode
@@ -88,7 +88,7 @@
public:
void *operator new(size_t);
void operator delete (void *);
- Id (RefCount<DelayTagged>, string &);
+ Id (RefCount<DelayTagged>, String &);
~Id();
virtual int bytesWanted (int min, int max) const;
virtual void bytesIn(int qty);
Index: squid3/src/ESI.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESI.cc,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- squid3/src/ESI.cc 18 May 2007 06:41:22 -0000 1.24
+++ squid3/src/ESI.cc 29 May 2007 13:31:36 -0000 1.25
@@ -1,6 +1,6 @@
/*
- * $Id: ESI.cc,v 1.24 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESI.cc,v 1.25 2007/05/29 13:31:36 amosjeffries Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
@@ -2450,7 +2450,7 @@
*/
return 0;
- if (strstr (sctusable->content, "ESI/1.0"))
+ if (strstr (sctusable->content.buf(), "ESI/1.0"))
rv = 1;
httpHdrScTargetDestroy (sctusable);
Index: squid3/src/ESIAssign.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESIAssign.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/ESIAssign.cc 18 May 2007 06:41:22 -0000 1.5
+++ squid3/src/ESIAssign.cc 29 May 2007 13:31:37 -0000 1.6
@@ -1,6 +1,6 @@
/*
- * $Id: ESIAssign.cc,v 1.5 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESIAssign.cc,v 1.6 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
@@ -83,7 +83,7 @@
variable = NULL;
if (unevaluatedVariable.size()) {
- varState->feedData(unevaluatedVariable.c_str(), unevaluatedVariable.size());
+ varState->feedData(unevaluatedVariable.buf(), unevaluatedVariable.size());
char const *result = varState->extractChar ();
/* Consider activating this, when we want to evaluate variables to a
@@ -117,7 +117,7 @@
if (!value)
return ESI_PROCESS_COMPLETE;
- varState->addVariable (name.c_str(), name.size(), value);
+ varState->addVariable (name.buf(), name.size(), value);
value = NULL;
@@ -181,12 +181,12 @@
ESIVariableExpression::~ESIVariableExpression()
{}
-ESIVariableExpression::ESIVariableExpression (string const &aString) : expression (aString)
+ESIVariableExpression::ESIVariableExpression (String const &aString) : expression (aString)
{}
void
ESIVariableExpression::eval (ESIVarState &state, char const *subref, char const *defaultOnEmpty) const
{
/* XXX: Implement evaluation of the expression */
- ESISegment::ListAppend (state.getOutput(), expression.c_str(), expression.size());
+ ESISegment::ListAppend (state.getOutput(), expression.buf(), expression.size());
}
Index: squid3/src/ESIAssign.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESIAssign.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/ESIAssign.h 18 May 2007 06:41:22 -0000 1.4
+++ squid3/src/ESIAssign.h 29 May 2007 13:31:37 -0000 1.5
@@ -1,5 +1,5 @@
/*
- * $Id: ESIAssign.h,v 1.4 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESIAssign.h,v 1.5 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
@@ -49,11 +49,11 @@
public:
~ESIVariableExpression();
- ESIVariableExpression (string const &value);
+ ESIVariableExpression (String const &value);
virtual void eval (ESIVarState &state, char const *, char const *) const;
private:
- string expression;
+ String expression;
};
/* ESIAssign */
@@ -81,10 +81,10 @@
void evaluateVariable();
esiTreeParentPtr parent;
ESIVarState *varState;
- string name;
+ String name;
ESIVariableExpression * value;
ESIElement::Pointer variable;
- string unevaluatedVariable;
+ String unevaluatedVariable;
};
MEMPROXY_CLASS_INLINE(ESIAssign)
Index: squid3/src/ESICustomParser.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESICustomParser.cc,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- squid3/src/ESICustomParser.cc 18 May 2007 06:41:22 -0000 1.9
+++ squid3/src/ESICustomParser.cc 29 May 2007 13:31:37 -0000 1.10
@@ -1,6 +1,6 @@
/*
- * $Id: ESICustomParser.cc,v 1.9 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESICustomParser.cc,v 1.10 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
@@ -109,7 +109,7 @@
}
size_t openESITags (0);
- char const *currentPos = content.c_str();
+ char const *currentPos = content.buf();
size_t remainingCount = content.size();
char const *tag = NULL;
@@ -302,7 +302,7 @@
ESICustomParser::errorString() const
{
if (error.size())
- return error.c_str();
+ return error.buf();
else
return "Parsing error strings not implemented";
}
Index: squid3/src/ESICustomParser.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESICustomParser.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- squid3/src/ESICustomParser.h 18 May 2007 06:41:22 -0000 1.7
+++ squid3/src/ESICustomParser.h 29 May 2007 13:31:37 -0000 1.8
@@ -1,5 +1,5 @@
/*
- * $Id: ESICustomParser.h,v 1.7 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESICustomParser.h,v 1.8 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -60,9 +60,9 @@
char const *findTag(char const *a, size_t b);
ESIParserClient *theClient;
- string error;
+ String error;
/* cheap n dirty - buffer it all */
- string content;
+ String content;
/* TODO: make a class of this type code */
ESITAG_t lastTag;
};
Index: squid3/src/ESISegment.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESISegment.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/ESISegment.cc 18 May 2007 06:41:22 -0000 1.5
+++ squid3/src/ESISegment.cc 29 May 2007 13:31:37 -0000 1.6
@@ -1,6 +1,6 @@
/*
- * $Id: ESISegment.cc,v 1.5 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESISegment.cc,v 1.6 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
@@ -234,7 +234,7 @@
void
ESISegment::dumpOne() const
{
- string temp;
+ String temp;
temp.limitInit(buf, len);
- debugs(86, 9, "ESISegment::dumpOne: \"" << temp << "\"");
+ debugs(86, 9, "ESISegment::dumpOne: \"" << temp.buf() << "\"");
}
Index: squid3/src/ESIVarState.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESIVarState.cc,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- squid3/src/ESIVarState.cc 18 May 2007 06:41:22 -0000 1.9
+++ squid3/src/ESIVarState.cc 29 May 2007 13:31:37 -0000 1.10
@@ -1,6 +1,6 @@
/*
- * $Id: ESIVarState.cc,v 1.9 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESIVarState.cc,v 1.10 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
@@ -318,9 +318,9 @@
}
void
-ESIVarState::removeVariable (string const &name)
+ESIVarState::removeVariable (String const &name)
{
- Variable *candidate = static_cast <Variable *>(variables.find (name.c_str(), name.size()));
+ Variable *candidate = static_cast <Variable *>(variables.find (name.buf(), name.size()));
if (candidate) {
/* XXX: remove me */
@@ -335,7 +335,7 @@
void
ESIVarState::addVariable(char const *name, size_t len, Variable *aVariable)
{
- string temp;
+ String temp;
temp.limitInit (name, len);
removeVariable (temp);
variables.add(name, len, aVariable);
@@ -434,10 +434,10 @@
if (!subref)
s = state.header().getStr (HDR_COOKIE);
else {
- string S = state.header().getListMember (HDR_COOKIE, subref, ';');
+ String S = state.header().getListMember (HDR_COOKIE, subref, ';');
if (S.size())
- ESISegment::ListAppend (state.getOutput(), S.c_str(), S.size());
+ ESISegment::ListAppend (state.getOutput(), S.buf(), S.size());
else if (found_default)
ESISegment::ListAppend (state.getOutput(), found_default, strlen (found_default));
}
@@ -470,8 +470,8 @@
if (state.header().has(HDR_ACCEPT_LANGUAGE)) {
if (!subref) {
- string S (state.header().getList (HDR_ACCEPT_LANGUAGE));
- ESISegment::ListAppend (state.getOutput(), S.c_str(), S.size());
+ String S (state.header().getList (HDR_ACCEPT_LANGUAGE));
+ ESISegment::ListAppend (state.getOutput(), S.buf(), S.size());
} else {
if (state.header().hasListMember (HDR_ACCEPT_LANGUAGE, subref, ',')) {
s = "true";
@@ -885,9 +885,10 @@
if (!tempstr[0])
return;
- string strVary (rep->header.getList (HDR_VARY));
+ String strVary (rep->header.getList (HDR_VARY));
- if (!strVary.size() || strVary[0] != '*') {
+ if (!strVary.size() || strVary.buf()[0] != '*') {
rep->header.putStr (HDR_VARY, tempstr);
}
}
+
Index: squid3/src/ESIVarState.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ESIVarState.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/ESIVarState.h 18 May 2007 06:41:22 -0000 1.3
+++ squid3/src/ESIVarState.h 29 May 2007 13:31:37 -0000 1.4
@@ -1,6 +1,6 @@
/*
- * $Id: ESIVarState.h,v 1.3 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ESIVarState.h,v 1.4 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -64,7 +64,7 @@
class Variable;
void addVariable (char const *, size_t, Variable *);
- void removeVariable (string const &);
+ void removeVariable (String const &);
void *operator new (size_t byteCount);
void operator delete (void *address);
Index: squid3/src/ExternalACLEntry.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ExternalACLEntry.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- squid3/src/ExternalACLEntry.h 18 May 2007 06:41:22 -0000 1.7
+++ squid3/src/ExternalACLEntry.h 29 May 2007 13:31:37 -0000 1.8
@@ -1,6 +1,6 @@
/*
- * $Id: ExternalACLEntry.h,v 1.7 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: ExternalACLEntry.h,v 1.8 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 82 External ACL
* AUTHOR: Henrik Nordstrom, MARA Systems AB
@@ -61,11 +61,11 @@
ExternalACLEntryData() : result (-1) {}
int result;
- string user;
- string password;
- string message;
- string tag;
- string log;
+ String user;
+ String password;
+ String message;
+ String tag;
+ String log;
};
@@ -88,11 +88,11 @@
dlink_node lru;
int result;
time_t date;
- string user;
- string password;
- string message;
- string tag;
- string log;
+ String user;
+ String password;
+ String message;
+ String tag;
+ String log;
external_acl *def;
private:
Index: squid3/src/HttpHdrCc.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHdrCc.cc,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- squid3/src/HttpHdrCc.cc 18 May 2007 06:41:22 -0000 1.30
+++ squid3/src/HttpHdrCc.cc 29 May 2007 13:31:37 -0000 1.31
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHdrCc.cc,v 1.30 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHdrCc.cc,v 1.31 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 65 HTTP Cache Control Header
* AUTHOR: Alex Rousskov
@@ -66,7 +66,7 @@
/* local prototypes */
-static int httpHdrCcParseInit(HttpHdrCc * cc, const string * str);
+static int httpHdrCcParseInit(HttpHdrCc * cc, const String * str);
/* module initialization */
@@ -96,7 +96,7 @@
/* creates an cc object from a 0-terminating string */
HttpHdrCc *
-httpHdrCcParseCreate(const string * str)
+httpHdrCcParseCreate(const String * str)
{
HttpHdrCc *cc = httpHdrCcCreate();
@@ -110,7 +110,7 @@
/* parses a 0-terminating string and inits cc */
static int
-httpHdrCcParseInit(HttpHdrCc * cc, const string * str)
+httpHdrCcParseInit(HttpHdrCc * cc, const String * str)
{
const char *item;
const char *p; /* '=' parameter */
@@ -131,16 +131,17 @@
nlen = ilen;
/* find type */
- type = (http_hdr_cc_type ) httpHeaderIdByName(item, nlen, CcFieldsInfo, CC_ENUM_END);
+ type = (http_hdr_cc_type ) httpHeaderIdByName(item, nlen,
+ CcFieldsInfo, CC_ENUM_END);
if (type < 0) {
- debugs(65, 2, "hdr cc: unknown cache-directive: near '" << item << "' in '" << *str << "'");
+ debugs(65, 2, "hdr cc: unknown cache-directive: near '" << item << "' in '" << str->buf() << "'");
type = CC_OTHER;
}
if (EBIT_TEST(cc->mask, type)) {
if (type != CC_OTHER)
- debugs(65, 2, "hdr cc: ignoring duplicate cache-directive: near '" << item << "' in '" << *str << "'");
+ debugs(65, 2, "hdr cc: ignoring duplicate cache-directive: near '" << item << "' in '" << str->buf() << "'");
CcFieldsInfo[type].stat.repCount++;
@@ -205,8 +206,8 @@
{
assert(cc);
- if (cc->other.c_str())
- cc->other.clear();
+ if (cc->other.buf())
+ cc->other.clean();
memFree(cc, MEM_HTTP_HDR_CC);
}
@@ -235,7 +236,7 @@
if (EBIT_TEST(cc->mask, flag) && flag != CC_OTHER) {
/* print option name */
- packerPrintf(p, (pcount ? ", %s" : "%s"), CcFieldsInfo[flag].name.c_str());
+ packerPrintf(p, (pcount ? ", %s" : "%s"), CcFieldsInfo[flag].name.buf());
/* handle options with values */
@@ -253,7 +254,7 @@
}
if (cc->other.size())
- packerPrintf(p, (pcount ? ", %s" : "%s"), cc->other.c_str());
+ packerPrintf(p, (pcount ? ", %s" : "%s"), cc->other.buf());
}
/* negative max_age will clean old max_Age setting */
@@ -299,7 +300,7 @@
extern const HttpHeaderStat *dump_stat; /* argh! */
const int id = (int) val;
const int valid_id = id >= 0 && id < CC_ENUM_END;
- const char *name = valid_id ? CcFieldsInfo[id].name.c_str() : "INVALID";
+ const char *name = valid_id ? CcFieldsInfo[id].name.buf() : "INVALID";
if (count || valid_id)
storeAppendPrintf(sentry, "%2d\t %-20s\t %5d\t %6.2f\n",
Index: squid3/src/HttpHdrRange.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHdrRange.cc,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- squid3/src/HttpHdrRange.cc 18 May 2007 06:41:22 -0000 1.43
+++ squid3/src/HttpHdrRange.cc 29 May 2007 13:31:37 -0000 1.44
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHdrRange.cc,v 1.43 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHdrRange.cc,v 1.44 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 64 HTTP Range Header
* AUTHOR: Alex Rousskov
@@ -231,7 +231,7 @@
{}
HttpHdrRange *
-HttpHdrRange::ParseCreate(const string * range_spec)
+HttpHdrRange::ParseCreate(const String * range_spec)
{
HttpHdrRange *r = new HttpHdrRange;
@@ -245,7 +245,7 @@
/* returns true if ranges are valid; inits HttpHdrRange */
bool
-HttpHdrRange::parseInit(const string * range_spec)
+HttpHdrRange::parseInit(const String * range_spec)
{
const char *item;
const char *pos = NULL;
@@ -253,14 +253,14 @@
int count = 0;
assert(this && range_spec);
++ParsedCount;
- debugs(64, 8, "parsing range field: '" << *range_spec << "'");
+ debugs(64, 8, "parsing range field: '" << range_spec->buf() << "'");
/* check range type */
- if (strncasecmp(*range_spec,"bytes=", 6))
+ if (range_spec->caseCmp("bytes=", 6))
return 0;
/* skip "bytes="; hack! */
- pos = range_spec->c_str() + 5;
+ pos = range_spec->buf() + 5;
/* iterate through comma separated list */
while (strListGetItem(range_spec, ',', &item, &ilen, &pos)) {
@@ -276,7 +276,8 @@
++count;
}
- debugs(64, 8, "parsed range range count: " << count << ", kept " << specs.size());
+ debugs(64, 8, "parsed range range count: " << count << ", kept " <<
+ specs.size());
return specs.count != 0;
}
Index: squid3/src/HttpHdrSc.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHdrSc.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/HttpHdrSc.cc 18 May 2007 06:41:22 -0000 1.5
+++ squid3/src/HttpHdrSc.cc 29 May 2007 13:31:37 -0000 1.6
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHdrSc.cc,v 1.5 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHdrSc.cc,v 1.6 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 90 HTTP Cache Control Header
* AUTHOR: Alex Rousskov
@@ -67,7 +67,7 @@
/* local prototypes */
-static int httpHdrScParseInit(HttpHdrSc * sc, const string * str);
+static int httpHdrScParseInit(HttpHdrSc * sc, const String * str);
/* module initialization */
@@ -94,7 +94,7 @@
/* creates an sc object from a 0-terminating string */
HttpHdrSc *
-httpHdrScParseCreate(const string * str)
+httpHdrScParseCreate(const String * str)
{
HttpHdrSc *sc = httpHdrScCreate();
@@ -108,7 +108,7 @@
/* parses a 0-terminating string and inits sc */
static int
-httpHdrScParseInit(HttpHdrSc * sc, const string * str)
+httpHdrScParseInit(HttpHdrSc * sc, const String * str)
{
const char *item;
const char *p; /* '=' parameter */
@@ -135,10 +135,11 @@
ilen = p++ - item;
/* find type */
- type = httpHeaderIdByName(item, ilen, ScFieldsInfo, SC_ENUM_END);
+ type = httpHeaderIdByName(item, ilen,
+ ScFieldsInfo, SC_ENUM_END);
if (type < 0) {
- debugs(90, 2, "hdr sc: unknown control-directive: near '" << item << "' in '" << *str << "'");
+ debugs(90, 2, "hdr sc: unknown control-directive: near '" << item << "' in '" << str->buf() << "'");
type = SC_OTHER;
}
@@ -162,7 +163,7 @@
if (EBIT_TEST(sct->mask, type)) {
if (type != SC_OTHER)
- debugs(90, 2, "hdr sc: ignoring duplicate control-directive: near '" << item << "' in '" << *str << "'");
+ debugs(90, 2, "hdr sc: ignoring duplicate control-directive: near '" << item << "' in '" << str->buf() << "'");
ScFieldsInfo[type].stat.repCount++;
@@ -196,7 +197,7 @@
if (!p || !httpHeaderParseQuotedString(p, &sct->content)) {
debugs(90, 2, "sc: invalid content= quoted string near '" << item << "'");
- sct->content.clear();
+ sct->content.clean();
EBIT_CLR(sct->mask, type);
}
@@ -257,7 +258,7 @@
if (EBIT_TEST(sc->mask, flag) && flag != SC_OTHER) {
/* print option name */
- packerPrintf(p, (pcount ? ", %s" : "%s"), ScFieldsInfo[flag].name.c_str());
+ packerPrintf(p, (pcount ? ", %s" : "%s"), ScFieldsInfo[flag].name.buf());
/* handle options with values */
@@ -265,14 +266,14 @@
packerPrintf(p, "=%d", (int) sc->max_age);
if (flag == SC_CONTENT)
- packerPrintf(p, "=\"%s\"", sc->content.c_str());
+ packerPrintf(p, "=\"%s\"", sc->content.buf());
pcount++;
}
}
if (sc->target.size())
- packerPrintf (p, ";%s", sc->target.c_str());
+ packerPrintf (p, ";%s", sc->target.buf());
}
void
@@ -339,7 +340,7 @@
extern const HttpHeaderStat *dump_stat; /* argh! */
const int id = (int) val;
const int valid_id = id >= 0 && id < SC_ENUM_END;
- const char *name = valid_id ? ScFieldsInfo[id].name.c_str() : "INVALID";
+ const char *name = valid_id ? ScFieldsInfo[id].name.buf() : "INVALID";
if (count || valid_id)
storeAppendPrintf(sentry, "%2d\t %-20s\t %5d\t %6.2f\n",
@@ -352,7 +353,7 @@
extern const HttpHeaderStat *dump_stat; /* argh! */
const int id = (int) val;
const int valid_id = id >= 0 && id < SC_ENUM_END;
- const char *name = valid_id ? ScFieldsInfo[id].name.c_str() : "INVALID";
+ const char *name = valid_id ? ScFieldsInfo[id].name.buf() : "INVALID";
if (count || valid_id)
storeAppendPrintf(sentry, "%2d\t %-20s\t %5d\t %6.2f\n",
@@ -369,9 +370,9 @@
while (node) {
HttpHdrScTarget *sct = (HttpHdrScTarget *)node->data;
- if (target && !sct->target.empty() && !strcmp(target, sct->target) )
+ if (target && sct->target.buf() && !strcmp (target, sct->target.buf()))
return sct;
- else if (!target && sct->target.empty())
+ else if (!target && !sct->target.buf())
return sct;
node = node->next;
Index: squid3/src/HttpHdrSc.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHdrSc.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- squid3/src/HttpHdrSc.h 18 May 2007 06:41:22 -0000 1.2
+++ squid3/src/HttpHdrSc.h 29 May 2007 13:31:37 -0000 1.3
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHdrSc.h,v 1.2 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHdrSc.h,v 1.3 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -54,7 +54,7 @@
extern void httpHdrScInitModule (void);
extern void httpHdrScCleanModule (void);
extern HttpHdrSc *httpHdrScCreate(void);
-extern HttpHdrSc *httpHdrScParseCreate(string const *);
+extern HttpHdrSc *httpHdrScParseCreate(String const *);
extern void httpHdrScDestroy(HttpHdrSc * sc);
extern HttpHdrSc *httpHdrScDup(const HttpHdrSc * sc);
extern void httpHdrScPackInto(const HttpHdrSc * sc, Packer * p);
Index: squid3/src/HttpHdrScTarget.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHdrScTarget.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/HttpHdrScTarget.cc 18 May 2007 06:41:22 -0000 1.3
+++ squid3/src/HttpHdrScTarget.cc 29 May 2007 13:31:37 -0000 1.4
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHdrScTarget.cc,v 1.3 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHdrScTarget.cc,v 1.4 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 90 HTTP Cache Control Header
* AUTHOR: Alex Rousskov
@@ -58,6 +58,8 @@
httpHdrScTargetDestroy(HttpHdrScTarget * sc)
{
assert(sc);
+ sc->target.clean();
+ sc->content.clean();
delete sc;
}
@@ -66,7 +68,7 @@
{
HttpHdrScTarget *dup;
assert(sc);
- dup = httpHdrScTargetCreate(sc->target.c_str());
+ dup = httpHdrScTargetCreate(sc->target.buf());
dup->mask = sc->mask;
dup->max_age = sc->max_age;
dup->content = sc->content;
Index: squid3/src/HttpHdrScTarget.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHdrScTarget.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- squid3/src/HttpHdrScTarget.h 18 May 2007 06:41:22 -0000 1.2
+++ squid3/src/HttpHdrScTarget.h 29 May 2007 13:31:37 -0000 1.3
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHdrScTarget.h,v 1.2 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHdrScTarget.h,v 1.3 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -47,8 +47,8 @@
int mask;
int max_age;
int max_stale;
- string content;
- string target;
+ String content;
+ String target;
};
MEMPROXY_CLASS_INLINE(HttpHdrScTarget);
Index: squid3/src/HttpHeader.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHeader.cc,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -r1.132 -r1.133
--- squid3/src/HttpHeader.cc 18 May 2007 06:41:22 -0000 1.132
+++ squid3/src/HttpHeader.cc 29 May 2007 13:31:37 -0000 1.133
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHeader.cc,v 1.132 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHeader.cc,v 1.133 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 55 HTTP Header
* AUTHOR: Alex Rousskov
@@ -256,7 +256,7 @@
#define assert_eid(id) assert((id) >= 0 && (id) < HDR_ENUM_END)
-static void httpHeaderNoteParsedEntry(http_hdr_type id, string const &value, int error);
+static void httpHeaderNoteParsedEntry(http_hdr_type id, String const &value, int error);
static void httpHeaderStatInit(HttpHeaderStat * hs, const char *label);
static void httpHeaderStatDump(const HttpHeaderStat * hs, StoreEntry * e);
@@ -458,7 +458,7 @@
if (e->id != HDR_OTHER)
delById(e->id);
else
- delByName(e->name.c_str());
+ delByName(e->name.buf());
addEntry(e->clone());
}
@@ -565,7 +565,7 @@
}
if (e->id == HDR_CONTENT_LENGTH && (e2 = findEntry(e->id)) != NULL) {
- if (e->value.compare(e2->value) != 0) {
+ if (e->value.cmp(e2->value.buf()) != 0) {
ssize_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) << "}");
@@ -575,12 +575,12 @@
goto reset;
}
- if (!httpHeaderParseSize(e->value.c_str(), &l1)) {
- debugs(55, 1, "WARNING: Unparseable content-length '" << e->value << "'");
+ if (!httpHeaderParseSize(e->value.buf(), &l1)) {
+ debugs(55, 1, "WARNING: Unparseable content-length '" << e->value.buf() << "'");
delete e;
continue;
- } else if (!httpHeaderParseSize(e2->value.c_str(), &l2)) {
- debugs(55, 1, "WARNING: Unparseable content-length '" << e2->value << "'");
+ } else if (!httpHeaderParseSize(e2->value.buf(), &l2)) {
+ debugs(55, 1, "WARNING: Unparseable content-length '" << e2->value.buf() << "'");
delById(e2->id);
} else if (l1 > l2) {
delById(e2->id);
@@ -602,7 +602,7 @@
}
}
- if (e->id == HDR_OTHER && strpbrk(e->name, w_space) != NULL) {
+ if (e->id == HDR_OTHER && stringHasWhitespace(e->name.buf())) {
debugs(55, Config.onoff.relaxed_header_parser <= 0 ? 1 : 2,
"WARNING: found whitespace in HTTP header name {" <<
getStringPrefix(field_start, field_end) << "}");
@@ -725,7 +725,7 @@
debugs(55, 9, "deleting '" << name << "' fields in hdr " << this);
while ((e = getEntry(&pos))) {
- if (!strcasecmp(e->name,name))
+ if (!e->name.caseCmp(name))
delAt(pos, count);
else
CBIT_SET(mask, e->id);
@@ -840,7 +840,7 @@
}
bool
-HttpHeader::getList(http_hdr_type id, string *s) const
+HttpHeader::getList(http_hdr_type id, String *s) const
{
HttpHeaderEntry *e;
HttpHeaderPos pos = HttpHeaderInitPos;
@@ -853,7 +853,7 @@
while ((e = getEntry(&pos))) {
if (e->id == id)
- strListAdd(s, e->value.c_str(), ',');
+ strListAdd(s, e->value.buf(), ',');
}
/*
@@ -871,7 +871,7 @@
}
/* return a list of entries with the same id separated by ',' and ws */
-string
+String
HttpHeader::getList(http_hdr_type id) const
{
HttpHeaderEntry *e;
@@ -881,13 +881,13 @@
assert(CBIT_TEST(ListHeadersMask, id));
if (!CBIT_TEST(mask, id))
- return "";
+ return String();
- string s;
+ String s;
while ((e = getEntry(&pos))) {
if (e->id == id)
- strListAdd(&s, e->value.c_str(), ',');
+ strListAdd(&s, e->value.buf(), ',');
}
/*
@@ -905,7 +905,7 @@
}
/* return a string or list of entries with the same id separated by ',' and ws */
-string
+String
HttpHeader::getStrOrList(http_hdr_type id) const
{
HttpHeaderEntry *e;
@@ -916,13 +916,13 @@
if ((e = findEntry(id)))
return e->value;
- return "";
+ return String();
}
/*
* Returns the value of the specified header.
*/
-string
+String
HttpHeader::getByName(const char *name) const
{
http_hdr_type id;
@@ -937,12 +937,12 @@
if (id != -1)
return getStrOrList(id);
- string result;
+ String result;
/* Sorry, an unknown header name. Do linear search */
while ((e = getEntry(&pos))) {
- if (e->id == HDR_OTHER && strcasecmp(e->name,name) == 0) {
- strListAdd(&result, e->value.c_str(), ',');
+ if (e->id == HDR_OTHER && e->name.caseCmp(name) == 0) {
+ strListAdd(&result, e->value.buf(), ',');
}
}
@@ -952,10 +952,10 @@
/*
* Returns a the value of the specified list member, if any.
*/
-string
+String
HttpHeader::getByNameListMember(const char *name, const char *member, const char separator) const
{
- string header;
+ String header;
const char *pos = NULL;
const char *item;
int ilen;
@@ -965,7 +965,7 @@
header = getByName(name);
- string result;
+ String result;
while (strListGetItem(&header, separator, &item, &ilen, &pos)) {
if (strncmp(item, member, mlen) == 0 && item[mlen] == '=') {
@@ -980,10 +980,10 @@
/*
* returns a the value of the specified list member, if any.
*/
-string
+String
HttpHeader::getListMember(http_hdr_type id, const char *member, const char separator) const
{
- string header;
+ String header;
const char *pos = NULL;
const char *item;
int ilen;
@@ -992,7 +992,7 @@
assert(id >= 0);
header = getStrOrList(id);
- string result;
+ String result;
while (strListGetItem(&header, separator, &item, &ilen, &pos)) {
if (strncmp(item, member, mlen) == 0 && item[mlen] == '=') {
@@ -1001,6 +1001,7 @@
}
}
+ header.clean();
return result;
}
@@ -1164,7 +1165,7 @@
assert(Headers[id].type == ftDate_1123); /* must be of an appropriate type */
if ((e = findEntry(id))) {
- value = parse_rfc1123(e->value.c_str());
+ value = parse_rfc1123(e->value.buf());
httpHeaderNoteParsedEntry(e->id, e->value, value < 0);
}
@@ -1181,7 +1182,7 @@
if ((e = findEntry(id))) {
httpHeaderNoteParsedEntry(e->id, e->value, 0); /* no errors are possible */
- return e->value.c_str();
+ return e->value.buf();
}
return NULL;
@@ -1197,7 +1198,7 @@
if ((e = findLastEntry(id))) {
httpHeaderNoteParsedEntry(e->id, e->value, 0); /* no errors are possible */
- return e->value.c_str();
+ return e->value.buf();
}
return NULL;
@@ -1207,7 +1208,7 @@
HttpHeader::getCc() const
{
HttpHdrCc *cc;
- string s;
+ String s;
if (!CBIT_TEST(mask, HDR_CACHE_CONTROL))
return NULL;
@@ -1254,7 +1255,7 @@
if (!CBIT_TEST(mask, HDR_SURROGATE_CONTROL))
return NULL;
- string s;
+ String s;
(void) getList(HDR_SURROGATE_CONTROL, &s);
@@ -1277,7 +1278,7 @@
HttpHeaderEntry *e;
if ((e = findEntry(HDR_CONTENT_RANGE))) {
- cr = httpHdrContRangeParseCreate(e->value.c_str());
+ cr = httpHdrContRangeParseCreate(e->value.buf());
httpHeaderNoteParsedEntry(e->id, e->value, !cr);
}
@@ -1323,7 +1324,7 @@
assert(Headers[id].type == ftETag); /* must be of an appropriate type */
if ((e = findEntry(id)))
- etagParseInit(&etag, e->value.c_str());
+ etagParseInit(&etag, e->value.buf());
return etag;
}
@@ -1337,7 +1338,7 @@
memset(&tot, 0, sizeof(tot));
if ((e = findEntry(id))) {
- const char *str = e->value.c_str();
+ const char *str = e->value.buf();
/* try as an ETag */
if (etagParseInit(&tot.tag, str)) {
@@ -1373,13 +1374,19 @@
Headers[id].stat.aliveCount++;
- debugs(55, 9, "created HttpHeaderEntry " << this << ": '" << name << " : " << value);
+ debugs(55, 9, "created HttpHeaderEntry " << this << ": '" << name.buf() << " : " << value.buf());
}
HttpHeaderEntry::~HttpHeaderEntry()
{
assert_eid(id);
- debugs(55, 9, "destroying entry " << this << ": '" << name << ": " << value << "'");
+ debugs(55, 9, "destroying entry " << this << ": '" << name.buf() << ": " << value.buf() << "'");
+ /* clean name if needed */
+
+ if (id == HDR_OTHER)
+ name.clean();
+
+ value.clean();
assert(Headers[id].stat.aliveCount);
@@ -1429,9 +1436,9 @@
/* is it a "known" field? */
http_hdr_type id = httpHeaderIdByName(field_start, name_len, Headers, HDR_ENUM_END);
- string name;
+ String name;
- string value;
+ String value;
if (id < 0)
id = HDR_OTHER;
@@ -1453,10 +1460,10 @@
if (field_end - value_start > 65534) {
/* String must be LESS THAN 64K and it adds a terminating NULL */
- debugs(55, 1, "WARNING: ignoring '" << name << "' header of " << (field_end - value_start) << " bytes");
+ debugs(55, 1, "WARNING: ignoring '" << name.buf() << "' header of " << (field_end - value_start) << " bytes");
if (id == HDR_OTHER)
- name.clear();
+ name.clean();
return NULL;
}
@@ -1468,24 +1475,24 @@
Headers[id].stat.aliveCount++;
- debugs(55, 9, "parsed HttpHeaderEntry: '" << name << ": " << value << "'");
+ debugs(55, 9, "parsed HttpHeaderEntry: '" << name.buf() << ": " << value.buf() << "'");
- return new HttpHeaderEntry(id, name.c_str(), value.c_str());
+ return new HttpHeaderEntry(id, name.buf(), value.buf());
}
HttpHeaderEntry *
HttpHeaderEntry::clone() const
{
- return new HttpHeaderEntry(id, name.c_str(), value.c_str());
+ return new HttpHeaderEntry(id, name.buf(), value.buf());
}
void
HttpHeaderEntry::packInto(Packer * p) const
{
assert(p);
- packerAppend(p, name.c_str(), name.size());
+ packerAppend(p, name.buf(), name.size());
packerAppend(p, ": ", 2);
- packerAppend(p, value.c_str(), value.size());
+ packerAppend(p, value.buf(), value.size());
packerAppend(p, "\r\n", 2);
}
@@ -1495,7 +1502,7 @@
assert_eid (id);
assert (Headers[id].type == ftInt);
int val = -1;
- int ok = httpHeaderParseInt(value.c_str(), &val);
+ int ok = httpHeaderParseInt(value.buf(), &val);
httpHeaderNoteParsedEntry(id, value, !ok);
/* XXX: Should we check ok - ie
* return ok ? -1 : value;
@@ -1504,13 +1511,13 @@
}
static void
-httpHeaderNoteParsedEntry(http_hdr_type id, string const &context, int error)
+httpHeaderNoteParsedEntry(http_hdr_type id, String const &context, int error)
{
Headers[id].stat.parsCount++;
if (error) {
Headers[id].stat.errCount++;
- debugs(55, 2, "cannot parse hdr field: '" << Headers[id].name << ": " << context << "'");
+ debugs(55, 2, "cannot parse hdr field: '" << Headers[id].name.buf() << ": " << context.buf() << "'");
}
}
@@ -1527,7 +1534,7 @@
{
const int id = (int) val;
const int valid_id = id >= 0 && id < HDR_ENUM_END;
- const char *name = valid_id ? Headers[id].name.c_str() : "INVALID";
+ const char *name = valid_id ? Headers[id].name.buf() : "INVALID";
int visible = count > 0;
/* for entries with zero count, list only those that belong to current type of message */
@@ -1605,7 +1612,7 @@
for (ht = (http_hdr_type)0; ht < HDR_ENUM_END; ++ht) {
HttpHeaderFieldInfo *f = Headers + ht;
storeAppendPrintf(e, "%2d\t %-20s\t %5d\t %6.3f\t %6.3f\n",
- f->id, f->name.c_str(), f->stat.aliveCount,
+ f->id, f->name.buf(), f->stat.aliveCount,
xpercent(f->stat.errCount, f->stat.parsCount),
xpercent(f->stat.repCount, f->stat.seenCount));
}
@@ -1618,15 +1625,15 @@
}
http_hdr_type
-httpHeaderIdByName(const char *name, unsigned int name_len, const HttpHeaderFieldInfo * info, int end)
+httpHeaderIdByName(const char *name, int name_len, const HttpHeaderFieldInfo * info, int end)
{
int i;
for (i = 0; i < end; ++i) {
- if (name_len >= 0 && name_len != (unsigned int)info[i].name.size())
+ if (name_len >= 0 && name_len != info[i].name.size())
continue;
- if (!strncasecmp(name, info[i].name,
+ if (!strncasecmp(name, info[i].name.buf(),
name_len < 0 ? info[i].name.size() + 1 : name_len))
return info[i].id;
}
@@ -1651,7 +1658,7 @@
assert(id >= 0 && id < HDR_ENUM_END);
- return Headers[id].name.c_str();
+ return Headers[id].name.buf();
}
int
@@ -1665,7 +1672,7 @@
assert(id >= 0);
- string header (getStrOrList(id));
+ String header (getStrOrList(id));
while (strListGetItem(&header, separator, &item, &ilen, &pos)) {
if (strncmp(item, member, mlen) == 0
@@ -1689,7 +1696,7 @@
assert(name);
- string header (getByName(name));
+ String header (getByName(name));
while (strListGetItem(&header, separator, &item, &ilen, &pos)) {
if (strncmp(item, member, mlen) == 0
@@ -1707,9 +1714,9 @@
{
if (has(HDR_CONNECTION)) {
/* anything that matches Connection list member will be deleted */
- string strConnection;
-
- (void) getList(HDR_CONNECTION, &strConnection);
+ String strConnection;
+
+ (void) getList(HDR_CONNECTION, &strConnection);
const HttpHeaderEntry *e;
HttpHeaderPos pos = HttpHeaderInitPos;
/*
@@ -1723,7 +1730,7 @@
int headers_deleted = 0;
while ((e = getEntry(&pos))) {
- if (strListIsMember(&strConnection, e->name.c_str(), ','))
+ if (strListIsMember(&strConnection, e->name.buf(), ','))
delAt(pos, headers_deleted);
}
if (headers_deleted)
Index: squid3/src/HttpHeader.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHeader.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- squid3/src/HttpHeader.h 18 May 2007 06:41:22 -0000 1.20
+++ squid3/src/HttpHeader.h 29 May 2007 13:31:37 -0000 1.21
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHeader.h,v 1.20 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHeader.h,v 1.21 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -183,8 +183,8 @@
int getInt() const;
MEMPROXY_CLASS(HttpHeaderEntry);
http_hdr_type id;
- string name;
- string value;
+ String name;
+ String value;
};
MEMPROXY_CLASS_INLINE(HttpHeaderEntry)
@@ -211,12 +211,12 @@
void refreshMask();
void addEntry(HttpHeaderEntry * e);
void insertEntry(HttpHeaderEntry * e);
- string getList(http_hdr_type id) const;
- bool getList(http_hdr_type id, string *s) const;
- string getStrOrList(http_hdr_type id) const;
- string getByName(const char *name) const;
- string getByNameListMember(const char *name, const char *member, const char separator) const;
- string getListMember(http_hdr_type id, const char *member, const char separator) const;
+ String getList(http_hdr_type id) const;
+ bool getList(http_hdr_type id, String *s) const;
+ String getStrOrList(http_hdr_type id) const;
+ String getByName(const char *name) const;
+ String getByNameListMember(const char *name, const char *member, const char separator) const;
+ String getListMember(http_hdr_type id, const char *member, const char separator) const;
int has(http_hdr_type id) const;
void putInt(http_hdr_type id, int number);
void putTime(http_hdr_type id, time_t htime);
@@ -258,7 +258,7 @@
extern void httpHeaderRegisterWithCacheManager(CacheManager & manager);
-extern int httpHeaderParseQuotedString (const char *start, string *val);
+extern int httpHeaderParseQuotedString (const char *start, String *val);
SQUIDCEXTERN int httpHeaderHasByNameListMember(const HttpHeader * hdr, const char *name, const char *member, const char separator);
SQUIDCEXTERN void httpHeaderUpdate(HttpHeader * old, const HttpHeader * fresh, const HttpHeaderMask * denied_mask);
int httpMsgIsPersistent(HttpVersion const &http_ver, const HttpHeader * hdr);
Index: squid3/src/HttpHeaderRange.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHeaderRange.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- squid3/src/HttpHeaderRange.h 18 May 2007 06:41:22 -0000 1.9
+++ squid3/src/HttpHeaderRange.h 29 May 2007 13:31:37 -0000 1.10
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHeaderRange.h,v 1.9 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHeaderRange.h,v 1.10 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -78,7 +78,7 @@
static size_t ParsedCount;
/* Http Range Header Field */
- static HttpHdrRange *ParseCreate(const string * range_spec);
+ static HttpHdrRange *ParseCreate(const String * range_spec);
HttpHdrRange();
HttpHdrRange(HttpHdrRange const &);
@@ -96,7 +96,7 @@
int canonize(size_t);
int canonize(HttpReply *rep);
/* returns true if ranges are valid; inits HttpHdrRange */
- bool parseInit(const string * range_spec);
+ bool parseInit(const String * range_spec);
void packInto(Packer * p) const;
/* other */
bool isComplex() const;
@@ -127,7 +127,7 @@
ssize_t debt() const;
void debt(ssize_t);
ssize_t debt_size; /* bytes left to send from the current spec */
- string boundary; /* boundary for multipart responses */
+ String boundary; /* boundary for multipart responses */
bool valid;
};
Index: squid3/src/HttpHeaderTools.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpHeaderTools.cc,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- squid3/src/HttpHeaderTools.cc 18 May 2007 06:41:22 -0000 1.60
+++ squid3/src/HttpHeaderTools.cc 29 May 2007 13:31:37 -0000 1.61
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHeaderTools.cc,v 1.60 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpHeaderTools.cc,v 1.61 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 66 HTTP Header Tools
* AUTHOR: Alex Rousskov
@@ -75,7 +75,7 @@
int i;
for (i = 0; i < count; ++i)
- table[i].name.clear();
+ table[i].name.clean();
delete [] table;
}
@@ -161,7 +161,7 @@
int
httpHeaderHasConnDir(const HttpHeader * hdr, const char *directive)
{
- string list;
+ String list;
http_hdr_type ht;
int res;
/* what type of header do we have? */
@@ -177,12 +177,14 @@
res = strListIsMember(&list, directive, ',');
+ list.clean();
+
return res;
}
/* returns true iff "m" is a member of the list */
int
-strListIsMember(const string * list, const char *m, char del)
+strListIsMember(const String * list, const char *m, char del)
{
const char *pos = NULL;
const char *item;
@@ -201,7 +203,7 @@
/* returns true iff "s" is a substring of a member of the list */
int
-strListIsSubstr(const string * list, const char *s, char del)
+strListIsSubstr(const String * list, const char *s, char del)
{
assert(list && del);
return list->pos(s) != 0;
@@ -217,7 +219,7 @@
/* appends an item to the list */
void
-strListAdd(string * str, const char *item, char del)
+strListAdd(String * str, const char *item, char del)
{
assert(str && item);
@@ -241,7 +243,7 @@
* init pos with NULL to start iteration.
*/
int
-strListGetItem(const string * str, char del, const char **item, int *ilen, const char **pos)
+strListGetItem(const String * str, char del, const char **item, int *ilen, const char **pos)
{
size_t len;
static char delim[2][3] = {
@@ -258,7 +260,7 @@
else
(*pos)++;
} else {
- *pos = str->c_str();
+ *pos = str->buf();
if (!*pos)
return 0;
@@ -347,10 +349,10 @@
* RC TODO: This is too looose. We should honour the BNF and exclude CTL's
*/
int
-httpHeaderParseQuotedString (const char *start, string *val)
+httpHeaderParseQuotedString (const char *start, String *val)
{
const char *end, *pos;
- val->clear();
+ val->clean();
assert (*start == '"');
pos = start + 1;
Index: squid3/src/HttpReply.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpReply.cc,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -r1.94 -r1.95
--- squid3/src/HttpReply.cc 22 May 2007 16:37:26 -0000 1.94
+++ squid3/src/HttpReply.cc 29 May 2007 13:31:37 -0000 1.95
@@ -1,6 +1,6 @@
/*
- * $Id: HttpReply.cc,v 1.94 2007/05/22 16:37:26 rousskov Exp $
+ * $Id: HttpReply.cc,v 1.95 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 58 HTTP Reply (Response)
* AUTHOR: Alex Rousskov
@@ -105,7 +105,7 @@
// virtual function instead, but it is not clear whether virtual methods
// are allowed with MEMPROXY_CLASS() and whether some cbdata void*
// conversions are not going to kill virtual tables
- const string pfx = protoPrefix;
+ const String pfx = protoPrefix;
clean();
init();
protoPrefix = pfx;
@@ -220,7 +220,7 @@
hdr->putStr(HDR_CONTENT_TYPE, ctype);
content_type = ctype;
} else
- content_type.clear();
+ content_type = String();
if (clen >= 0)
hdr->putInt(HDR_CONTENT_LENGTH, clen);
@@ -262,7 +262,7 @@
int
HttpReply::validatorsMatch(HttpReply const * otherRep) const
{
- string one,two;
+ String one,two;
assert (otherRep);
/* Numbers first - easiest to check */
/* Content-Length */
@@ -278,7 +278,9 @@
two = otherRep->header.getStrOrList(HDR_ETAG);
- if (one.empty() || two.empty() || strcasecmp (one, two)) {
+ if (!one.buf() || !two.buf() || strcasecmp (one.buf(), two.buf())) {
+ one.clean();
+ two.clean();
return 0;
}
@@ -290,9 +292,9 @@
two = otherRep->header.getStrOrList(HDR_CONTENT_MD5);
- if (one.empty() || two.empty() || strcasecmp (one, two)) {
- one.clear();
- two.clear();
+ if (!one.buf() || !two.buf() || strcasecmp (one.buf(), two.buf())) {
+ one.clean();
+ two.clean();
return 0;
}
@@ -381,7 +383,7 @@
if (str)
content_type.limitInit(str, strcspn(str, ";\t "));
else
- content_type = "";
+ content_type = String();
/* be sure to set expires after date and cache-control */
expires = hdrExpirationTime();
@@ -391,7 +393,7 @@
void
HttpReply::hdrCacheClean()
{
- content_type.clear();
+ content_type.clean();
if (cache_control) {
httpHdrCcDestroy(cache_control);
@@ -433,8 +435,8 @@
bool HttpReply::sanityCheckStartLine(MemBuf *buf, http_status *error)
{
- if (buf->contentSize() >= protoPrefix.size() && protoPrefix.compare(buf->content(), protoPrefix.size()) != 0) {
- debugs(58, 3, "HttpReply::sanityCheckStartLine: missing protocol prefix (" << protoPrefix << ") in '" << buf->content() << "'");
+ if (buf->contentSize() >= protoPrefix.size() && protoPrefix.cmp(buf->content(), protoPrefix.size()) != 0) {
+ debugs(58, 3, "HttpReply::sanityCheckStartLine: missing protocol prefix (" << protoPrefix.buf() << ") in '" << buf->content() << "'");
*error = HTTP_INVALID_HEADER;
return false;
}
Index: squid3/src/HttpReply.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpReply.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- squid3/src/HttpReply.h 18 May 2007 06:41:22 -0000 1.19
+++ squid3/src/HttpReply.h 29 May 2007 13:31:37 -0000 1.20
@@ -1,6 +1,6 @@
/*
- * $Id: HttpReply.h,v 1.19 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpReply.h,v 1.20 2007/05/29 13:31:37 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -77,7 +77,7 @@
time_t expires;
- string content_type;
+ String content_type;
HttpHdrSc *surrogate_control;
@@ -90,7 +90,7 @@
HttpBody body; /* for small constant memory-resident text bodies only */
- string protoPrefix; // e.g., "HTTP/"
+ String protoPrefix; // e.g., "HTTP/"
bool do_clean;
Index: squid3/src/HttpRequest.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpRequest.cc,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- squid3/src/HttpRequest.cc 18 May 2007 06:41:22 -0000 1.75
+++ squid3/src/HttpRequest.cc 29 May 2007 13:31:37 -0000 1.76
@@ -1,6 +1,6 @@
/*
- * $Id: HttpRequest.cc,v 1.75 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpRequest.cc,v 1.76 2007/05/29 13:31:37 amosjeffries Exp $
*
* DEBUG: section 73 HTTP Request
* AUTHOR: Duane Wessels
@@ -70,7 +70,7 @@
{
method = METHOD_NONE;
protocol = PROTO_NONE;
- urlpath.clear();
+ urlpath = NULL;
login[0] = '\0';
host[0] = '\0';
auth_user_request = NULL;
@@ -112,7 +112,7 @@
safe_free(vary_headers);
- urlpath.clear();
+ urlpath.clean();
header.clean();
@@ -126,13 +126,13 @@
range = NULL;
}
- tag.clear();
+ tag.clean();
- extacl_user.clear();
+ extacl_user.clean();
- extacl_passwd.clear();
+ extacl_passwd.clean();
- extacl_log.clear();
+ extacl_log.clean();
}
void
@@ -240,7 +240,7 @@
assert(p);
/* pack request-line */
packerPrintf(p, "%s %s HTTP/1.0\r\n",
- RequestMethodStr[method], urlpath.c_str());
+ RequestMethodStr[method], urlpath.buf());
/* headers */
header.packInto(p);
/* trailer */
@@ -272,12 +272,12 @@
* check anonymizer (aka header_access) configuration.
*/
int
-httpRequestHdrAllowed(const HttpHeaderEntry * e, string * strConn)
+httpRequestHdrAllowed(const HttpHeaderEntry * e, String * strConn)
{
assert(e);
/* check connection header */
- if (strConn && strListIsMember(strConn, e->name.c_str(), ','))
+ if (strConn && strListIsMember(strConn, e->name.buf(), ','))
return 0;
return 1;
@@ -351,7 +351,7 @@
return urlCanonical((HttpRequest*)this);
if (urlpath.size())
- return urlpath.c_str();
+ return urlpath.buf();
return "/";
}
Index: squid3/src/HttpRequest.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpRequest.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- squid3/src/HttpRequest.h 18 May 2007 06:41:22 -0000 1.28
+++ squid3/src/HttpRequest.h 29 May 2007 13:31:38 -0000 1.29
@@ -1,6 +1,6 @@
/*
- * $Id: HttpRequest.h,v 1.28 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpRequest.h,v 1.29 2007/05/29 13:31:38 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -40,7 +40,7 @@
#include "HttpRequestMethod.h"
/* Http Request */
-extern int httpRequestHdrAllowed(const HttpHeaderEntry * e, string * strConnection);
+extern int httpRequestHdrAllowed(const HttpHeaderEntry * e, String * strConnection);
extern int httpRequestHdrAllowedByName(http_hdr_type id);
extern void httpRequestPack(void *obj, Packer *p);
@@ -84,7 +84,7 @@
u_short port;
- string urlpath;
+ String urlpath;
char *canonical;
@@ -120,13 +120,13 @@
char *peer_domain; /* Configured peer forceddomain */
- string tag; /* Internal tag for this request */
+ String tag; /* Internal tag for this request */
- string extacl_user; /* User name returned by extacl lookup */
+ String extacl_user; /* User name returned by extacl lookup */
- string extacl_passwd; /* Password returned by extacl lookup */
+ String extacl_passwd; /* Password returned by extacl lookup */
- string extacl_log; /* String to be used for access.log purposes */
+ String extacl_log; /* String to be used for access.log purposes */
public:
bool multipartRangeRequest() const;
Index: squid3/src/HttpStatusLine.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpStatusLine.cc,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- squid3/src/HttpStatusLine.cc 18 May 2007 06:41:22 -0000 1.33
+++ squid3/src/HttpStatusLine.cc 29 May 2007 13:31:38 -0000 1.34
@@ -1,6 +1,6 @@
/*
- * $Id: HttpStatusLine.cc,v 1.33 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpStatusLine.cc,v 1.34 2007/05/29 13:31:38 amosjeffries Exp $
*
* DEBUG: section 57 HTTP Status-line
* AUTHOR: Alex Rousskov
@@ -82,7 +82,7 @@
* so NULL-termination assumed.
*/
int
-httpStatusLineParse(HttpStatusLine * sline, const string &protoPrefix, const char *start, const char *end)
+httpStatusLineParse(HttpStatusLine * sline, const String &protoPrefix, const char *start, const char *end)
{
assert(sline);
sline->status = HTTP_INVALID_HEADER; /* Squid header parsing error */
@@ -90,7 +90,7 @@
// XXX: HttpMsg::parse() has a similar check but is using
// casesensitive comparison (which is required by HTTP errata?)
- if (strncasecmp(protoPrefix,start, protoPrefix.size()) != 0)
+ if (protoPrefix.caseCmp(start, protoPrefix.size()) != 0)
return 0;
start += protoPrefix.size();
Index: squid3/src/HttpStatusLine.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/HttpStatusLine.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/HttpStatusLine.h 18 May 2007 06:41:22 -0000 1.3
+++ squid3/src/HttpStatusLine.h 29 May 2007 13:31:38 -0000 1.4
@@ -1,6 +1,6 @@
/*
- * $Id: HttpStatusLine.h,v 1.3 2007/05/18 06:41:22 amosjeffries Exp $
+ * $Id: HttpStatusLine.h,v 1.4 2007/05/29 13:31:38 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -56,7 +56,7 @@
SQUIDCEXTERN const char *httpStatusLineReason(const HttpStatusLine * sline);
/* parse/pack */
/* parse a 0-terminating buffer and fill internal structires; returns true on success */
-SQUIDCEXTERN int httpStatusLineParse(HttpStatusLine * sline, const string &protoPrefix,
+SQUIDCEXTERN int httpStatusLineParse(HttpStatusLine * sline, const String &protoPrefix,
const char *start, const char *end);
/* pack fields using Packer */
SQUIDCEXTERN void httpStatusLinePackInto(const HttpStatusLine * sline, Packer * p);
Index: squid3/src/Makefile.am
===================================================================
RCS file: /cvsroot/squid/squid3/src/Makefile.am,v
retrieving revision 1.181
retrieving revision 1.182
diff -u -r1.181 -r1.182
--- squid3/src/Makefile.am 18 May 2007 06:41:22 -0000 1.181
+++ squid3/src/Makefile.am 29 May 2007 13:31:38 -0000 1.182
@@ -1,7 +1,7 @@
#
# Makefile for the Squid Object Cache server
#
-# $Id: Makefile.am,v 1.181 2007/05/18 06:41:22 amosjeffries Exp $
+# $Id: Makefile.am,v 1.182 2007/05/29 13:31:38 amosjeffries Exp $
#
# Uncomment and customize the following to suit your needs:
#
@@ -556,7 +556,7 @@
$(SSL_SOURCE) \
stat.cc \
StatHist.cc \
- SqString.cc \
+ String.cc \
stmem.cc \
stmem.h \
store.cc \
@@ -626,8 +626,7 @@
MemBuf.h \
Store.cci \
StoreEntryStream.h \
- SqString.cci \
- SqString.h \
+ String.cci \
SquidString.h \
SquidTime.h
@@ -734,7 +733,7 @@
StoreMetaUnpacker.cc \
StoreMetaURL.cc \
StoreMetaVary.cc \
- SqString.cc \
+ String.cc \
time.cc \
ufsdump.cc \
url.cc \
@@ -1096,7 +1095,6 @@
globals.cc
check_PROGRAMS+= \
- tests/testString \
tests/testAuth \
tests/testACLMaxUserIP \
tests/testBoilerplate \
@@ -1108,6 +1106,7 @@
tests/test_http_range \
tests/testHttpRequest \
tests/testStore \
+ tests/testString \
tests/testURL \
@STORE_TESTS@
@@ -1115,7 +1114,7 @@
authenticate.cc \
ConfigParser.cc \
tests/stub_acl.cc tests/stub_cache_cf.cc \
- tests/stub_helper.cc cbdata.cc SqString.cc \
+ tests/stub_helper.cc cbdata.cc String.cc \
tests/stub_store.cc HttpHeaderTools.cc HttpHeader.cc acl.cc event.cc mem.cc \
MemBuf.cc HttpHdrContRange.cc Packer.cc ACLChecklist.cc HttpHdrCc.cc HttpHdrSc.cc \
HttpHdrScTarget.cc url.cc ACLProxyAuth.cc ACLRegexData.cc ACLUserData.cc \
@@ -1133,7 +1132,7 @@
URLScheme.cc \
wordlist.cc
## acl.cc cache_cf.cc tools.cc \
-## helper.cc SqString.cc cbdata.cc HttpHeaderTools.cc store.cc cache_manager.cc \
+## helper.cc String.cc cbdata.cc HttpHeaderTools.cc store.cc cache_manager.cc \
## HttpHeader.cc url.cc mem.cc HttpRequest.cc Packer.cc access_log.cc \
## MemBuf.cc StatHist.cc logfile.cc
@@ -1169,7 +1168,7 @@
## HttpHdrScTarget.cc \
## Packer.cc \
## StatHist.cc \
-## SqString.cc \
+## String.cc \
tests_testACLMaxUserIP_SOURCES= \
acl.cc \
ACLChecklist.cc \
@@ -1194,7 +1193,7 @@
Parsing.cc \
StatHist.cc \
stmem.cc \
- SqString.cc \
+ String.cc \
tests/stub_cache_cf.cc \
tests/stub_comm.cc \
tests/stub_DelayId.cc \
@@ -1242,7 +1241,7 @@
HttpRequest.cc \
HttpRequestMethod.cc \
mem.cc \
- SqString.cc \
+ String.cc \
tests/testCacheManager.cc \
tests/testCacheManager.h \
tests/testMain.cc \
@@ -1406,7 +1405,7 @@
HttpRequestMethod.cc \
mem.cc \
RemovalPolicy.cc \
- SqString.cc \
+ String.cc \
tests/CapturingStoreEntry.h \
tests/testEvent.cc \
tests/testEvent.h \
@@ -1558,7 +1557,7 @@
HttpRequestMethod.cc \
mem.cc \
RemovalPolicy.cc \
- SqString.cc \
+ String.cc \
tests/testEventLoop.cc \
tests/testEventLoop.h \
tests/testMain.cc \
@@ -1846,7 +1845,7 @@
StoreMetaURL.cc \
StoreMetaVary.cc \
StoreSwapLogData.cc \
- SqString.cc \
+ String.cc \
SwapDir.cc \
time.cc \
tools.cc \
@@ -1888,7 +1887,7 @@
HttpRequest.cc \
HttpRequestMethod.cc \
mem.cc \
- SqString.cc \
+ String.cc \
tests/testHttpRequest.h \
tests/testHttpRequest.cc \
tests/testHttpRequestMethod.h \
@@ -2055,7 +2054,7 @@
SwapDir.cc \
authenticate.cc \
tests/stub_acl.cc tests/stub_cache_cf.cc \
- tests/stub_helper.cc cbdata.cc SqString.cc \
+ tests/stub_helper.cc cbdata.cc String.cc \
tests/stub_comm.cc \
tests/stub_client_side_request.cc \
tests/stub_http.cc \
@@ -2108,10 +2107,11 @@
tests_testStore_LDFLAGS = $(LIBADD_DL)
tests_testStore_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \
@SQUID_CPPUNIT_LA@
+
# string needs mem.cc.
tests_testString_SOURCES= \
mem.cc \
- SqString.cc \
+ String.cc \
tests/testMain.cc \
tests/testString.cc \
tests/testString.h \
@@ -2223,7 +2223,7 @@
HttpRequestMethod.cc \
mem.cc \
RemovalPolicy.cc \
- SqString.cc \
+ String.cc \
tests/testURL.cc \
tests/testURL.h \
tests/testURLScheme.cc \
Index: squid3/src/MemObject.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/MemObject.cc,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- squid3/src/MemObject.cc 18 May 2007 06:41:23 -0000 1.27
+++ squid3/src/MemObject.cc 29 May 2007 13:31:38 -0000 1.28
@@ -1,6 +1,6 @@
/*
- * $Id: MemObject.cc,v 1.27 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: MemObject.cc,v 1.28 2007/05/29 13:31:38 amosjeffries Exp $
*
* DEBUG: section 19 Store Memory Primitives
* AUTHOR: Robert Collins
@@ -168,7 +168,7 @@
debugs(20, 1, "MemObject->nclients: " << nclients);
debugs(20, 1, "MemObject->reply: " << _reply);
debugs(20, 1, "MemObject->request: " << request);
- debugs(20, 1, "MemObject->log_url: " << (log_url ? log_url : "(NULL)") );
+ debugs(20, 1, "MemObject->log_url: " << log_url << " " << checkNullString(log_url));
}
HttpReply const *
Index: squid3/src/PeerDigest.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/PeerDigest.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- squid3/src/PeerDigest.h 18 May 2007 06:41:23 -0000 1.2
+++ squid3/src/PeerDigest.h 29 May 2007 13:31:38 -0000 1.3
@@ -1,6 +1,6 @@
/*
- * $Id: PeerDigest.h,v 1.2 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: PeerDigest.h,v 1.3 2007/05/29 13:31:38 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -97,7 +97,7 @@
struct _peer *peer; /* pointer back to peer structure, argh */
CacheDigest *cd; /* actual digest structure */
- string host; /* copy of peer->host */
+ String host; /* copy of peer->host */
const char *req_result; /* text status of the last request */
struct
--- squid3/src/SqString.cc Tue May 29 13:53:29 2007
+++ /dev/null Tue May 29 13:53:29 2007
@@ -1,404 +0,0 @@
-
-/*
- * $Id: SqString.cc,v 1.7 2007/05/22 01:15:55 hno Exp $
- *
- * DEBUG: section 67 String
- * AUTHOR: Duane Wessels
- *
- * SQUID Web Proxy Cache http://www.squid-cache.org/
- * ----------------------------------------------------------
- *
- * Squid is the result of efforts by numerous individuals from
- * the Internet community; see the CONTRIBUTORS file for full
- * details. Many organizations have provided support for Squid's
- * development; see the SPONSORS file for full details. Squid is
- * Copyrighted (C) 2001 by the Regents of the University of
- * California; see the COPYRIGHT file for full details. Squid
- * incorporates software developed and/or copyrighted by other
- * sources; see the CREDITS file for full details.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
- *
- */
-
-#include "squid.h"
-#include "SqString.h"
-#include "Store.h"
-
-void
-SqString::initBuf(size_t sz)
-{
- size_t bsz;
- PROF_start(StringInitBuf);
- clear();
- assert(sz < 65536);
- buf_ = (char *)memAllocString(sz, &bsz);
- assert(bsz < 65536);
- assert(bsz >= sz);
- size_ = bsz;
- PROF_stop(StringInitBuf);
-}
-
-void
-SqString::limitInit(const char *str, unsigned int len)
-{
- PROF_start(StringLimitInit);
- assert(this && str);
- initBuf(len + 1);
- len_ = len;
- xmemcpy(buf_, str, len);
- buf_[len] = '\0';
- PROF_stop(StringLimitInit);
-}
-
-void
-SqString::init(char const *str)
-{
- assert(this);
-
- PROF_start(StringInit);
-
- if (str)
- limitInit(str, strlen(str));
- else
- clear();
- PROF_stop(StringInit);
-}
-
-void
-SqString::clear()
-{
- PROF_start(StringClean);
- assert(this);
-
- if (buf_)
- memFreeString(size_, buf_);
-
- len_ = 0;
- size_ = 0;
- buf_ = NULL;
- PROF_stop(StringClean);
-}
-
-SqString::~SqString()
-{
- clear();
-#if DEBUGSTRINGS
-
- SqStringRegistry::Instance().remove(this);
-#endif
-}
-
-SqString::SqString (char const *aString)
-{
- memset(this, 0, sizeof(SqString));
-
- init(aString);
-#if DEBUGSTRINGS
-
- SqStringRegistry::Instance().add(this);
-#endif
-}
-
-SqString &
-SqString::operator =(char const *aString)
-{
- assert(this);
- init(aString);
- return *this;
-}
-
-SqString &
-SqString::operator = (SqString const &old)
-{
- if (old.size())
- limitInit(old.c_str(), old.size());
- else
- clear();
-
- return *this;
-}
-
-bool
-SqString::operator == (SqString const &that) const
-{
- return (this->compare(that) == 0);
-}
-
-bool
-SqString::operator != (SqString const &that) const
-{
- return (this->compare(that) != 0);
-}
-
-bool
-SqString::operator >= (SqString const &that) const
-{
- return (this->compare(that) >= 0);
-}
-
-bool
-SqString::operator <= (SqString const &that) const
-{
- return (this->compare(that) <= 0);
-}
-
-bool
-SqString::operator > (SqString const &that) const
-{
- return (this->compare(that) > 0);
-}
-
-bool
-SqString::operator < (SqString const &that) const
-{
- return (this->compare(that) < 0);
-}
-
-SqString::SqString (SqString const &old)
-{
- memset(this, 0, sizeof(SqString));
-
- operator=(old);
-#if DEBUGSTRINGS
-
- SqStringRegistry::Instance().add(this);
-#endif
-}
-
-void
-SqString::append(const char *str, int len)
-{
- assert(this);
-
- PROF_start(StringAppend);
-
- if(len < 1 || str == NULL)
- return;
-
- if ( (len_ + len +1) < size_) {
- operator[](len_+len) = '\0';
- xmemcpy(buf_+len_, str, len);
- len_ += len;
- } else {
- size_t ssz = len_ + len;
- size_t bsz = len_ + len + 1;
- char* tmp = (char *)memAllocString(bsz, &bsz);
- assert(bsz < 65536);
- assert(bsz > ssz);
-
- if (buf_)
- xmemcpy(tmp, buf_, len_);
-
- if (len)
- xmemcpy(tmp + len_, str, len);
-
- tmp[ssz] = '\0';
-
- clear();
-
- size_ = bsz;
- len_ = ssz;
- buf_ = tmp;
- tmp = NULL;
- }
- PROF_stop(StringAppend);
-}
-
-void
-SqString::append(char const *str)
-{
- if(!str) return;
- append (str, strlen(str));
-}
-
-void
-SqString::append (char chr)
-{
- char myString[2];
- myString[0]=chr;
- myString[1]='\0';
- append (myString, 1);
-}
-
-void
-SqString::append(SqString const &old)
-{
- append (old.c_str(), old.size());
-}
-
-const char&
-SqString::operator [](unsigned int pos) const
-{
- assert(pos < size_ );
-
- return buf_[pos];
-}
-
-char&
-SqString::operator [](unsigned int pos)
-{
- assert(pos < size_ );
-
- return buf_[pos];
-}
-
-#if DEBUGSTRINGS
-void
-SqString::stat(StoreEntry *entry) const
-{
- storeAppendPrintf(entry, "%p : %d/%d \"%s\"\n",this,len_, size_, c_str());
-}
-
-SqStringRegistry &
-SqStringRegistry::Instance()
-{
- return Instance_;
-}
-
-template <class C>
-int
-ptrcmp(C const &lhs, C const &rhs)
-{
- return lhs - rhs;
-}
-
-void
-SqStringRegistry::registerWithCacheManager(CacheManager & manager)
-{
- manager.registerAction("strings",
- "Strings in use in squid", Stat, 0, 1);
-}
-
-void
-SqStringRegistry::add(SqString const *entry)
-{
- entries.insert(entry, ptrcmp);
-}
-
-void
-SqStringRegistry::remove(SqString const *entry)
-{
- entries.remove(entry, ptrcmp);
-}
-
-SqStringRegistry SqStringRegistry::Instance_;
-
-extern size_t memStringCount();
-
-void
-SqStringRegistry::Stat(StoreEntry *entry)
-{
- storeAppendPrintf(entry, "%lu entries, %lu reported from MemPool\n", (unsigned long) Instance().entries.elements, (unsigned long) memStringCount());
- Instance().entries.head->walk(Stater, entry);
-}
-
-void
-SqStringRegistry::Stater(SqString const * const & nodedata, void *state)
-{
- StoreEntry *entry = (StoreEntry *) state;
- nodedata->stat(entry);
-}
-
-#endif
-
-/*
- * Similar to strtok, but has some rudimentary knowledge
- * of quoting
- */
-char *
-strwordtok(char *buf, char **t)
-{
- unsigned char *word = NULL;
- unsigned char *p = (unsigned char *) buf;
- unsigned char *d;
- unsigned char ch;
- int quoted = 0;
-
- if (!p)
- p = (unsigned char *) *t;
-
- if (!p)
- goto error;
-
- while (*p && xisspace(*p))
- p++;
-
- if (!*p)
- goto error;
-
- word = d = p;
-
- while ((ch = *p)) {
- switch (ch) {
-
- case '\\':
- p++;
-
- switch (*p) {
-
- case 'n':
- ch = '\n';
-
- break;
-
- case 'r':
- ch = '\r';
-
- break;
-
- default:
- ch = *p;
-
- break;
-
- }
-
- *d++ = ch;
-
- if (ch)
- p++;
-
- break;
-
- case '"':
- quoted = !quoted;
-
- p++;
-
- break;
-
- default:
- if (!quoted && xisspace(*p)) {
- p++;
- goto done;
- }
-
- *d++ = *p++;
- break;
- }
- }
-
-done:
- *d++ = '\0';
-
-error:
- *t = (char *) p;
- return (char *) word;
-}
-
-#ifndef _USE_INLINE_
-#include "SqString.cci"
-#endif
--- squid3/src/SqString.cci Tue May 29 13:53:29 2007
+++ /dev/null Tue May 29 13:53:29 2007
@@ -1,163 +0,0 @@
-
-/*
- * $Id: SqString.cci,v 1.2 2007/05/19 06:49:12 amosjeffries Exp $
- *
- * DEBUG: section 67 String
- * AUTHOR: Duane Wessels
- *
- * SQUID Web Proxy Cache http://www.squid-cache.org/
- * ----------------------------------------------------------
- *
- * Squid is the result of efforts by numerous individuals from
- * the Internet community; see the CONTRIBUTORS file for full
- * details. Many organizations have provided support for Squid's
- * development; see the SPONSORS file for full details. Squid is
- * Copyrighted (C) 2001 by the Regents of the University of
- * California; see the COPYRIGHT file for full details. Squid
- * incorporates software developed and/or copyrighted by other
- * sources; see the CREDITS file for full details.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
- *
- */
-
-SqString::SqString() : size_(0), len_(0), buf_ (NULL)
-{
-#if DEBUGSTRINGS
- SqStringRegistry::Instance().add(this);
-#endif
-}
-
-void
-SqString::absorb(SqString &old)
-{
- clear();
- size_ = old.size_;
- buf_ = old.buf_;
- len_ = old.len_;
- old.size_ = 0;
- old.buf_ = NULL;
- old.len_ = 0;
-}
-
-int
-SqString::size() const
-{
- return len_;
-}
-
-char const *
-SqString::c_str() const
-{
- return buf_;
-}
-
-const char *
-SqString::pos(char const *aString) const
-{
- return strstr(c_str(), aString);
-}
-
-const char *
-SqString::pos(char const ch) const
-{
- return strchr(c_str(), ch);
-}
-
-const char *
-SqString::rpos(char const ch) const
-{
- return strrchr(c_str(), ch);
-}
-
-bool
-SqString::empty() const
-{
- return (buf_ == NULL || len_ == 0);
-}
-
-int
-SqString::compare(char const *aString) const
-{
- /* strcmp fails on NULLS */
-
- if (size() == 0 && (aString == NULL || aString[0] == '\0'))
- return 0;
-
- if (size() == 0)
- return -1;
-
- if (aString == NULL || aString[0] == '\0')
- return 1;
-
- return strcmp(c_str(), aString);
-}
-
-int
-SqString::compare(char const *aString, size_t count) const
-{
- /* always the same at length 0 */
-
- if (count == 0)
- return 0;
-
- if (size() == 0 && (aString == NULL || aString[0] == '\0'))
- return 0;
-
- if (size() == 0)
- return -1;
-
- if (aString == NULL || aString[0] == '\0')
- return 1;
-
- return strncmp(c_str(), aString, count);
-}
-
-int
-SqString::compare(SqString const &aString) const
-{
- /* strcmp fails on NULLS */
-
- if (size() == 0 && aString.size() == 0)
- return 0;
-
- if (size() == 0)
- return -1;
-
- if (aString.size() == 0)
- return 1;
-
- return strcmp(c_str(), aString.c_str());
-}
-
-void
-SqString::set (char const *loc, char const ch)
-{
- operator[](loc-buf_) = ch;
-}
-
-void
-SqString::cut (size_t newLength)
-{
- operator[](newLength) = '\0';
- len_ = newLength;
-}
-
-void
-SqString::cutPointer (char const *loc)
-{
- operator[](loc-buf_) = '\0';
- len_ = loc-buf_;
-}
--- squid3/src/SqString.h Tue May 29 13:53:29 2007
+++ /dev/null Tue May 29 13:53:29 2007
@@ -1,156 +0,0 @@
-
-/*
- * $Id: SqString.h,v 1.3 2007/05/20 08:29:44 amosjeffries Exp $
- *
- * DEBUG: section 67 String
- * AUTHOR: Duane Wessels
- *
- * SQUID Web Proxy Cache http://www.squid-cache.org/
- * ----------------------------------------------------------
- *
- * Squid is the result of efforts by numerous individuals from
- * the Internet community; see the CONTRIBUTORS file for full
- * details. Many organizations have provided support for Squid's
- * development; see the SPONSORS file for full details. Squid is
- * Copyrighted (C) 2001 by the Regents of the University of
- * California; see the COPYRIGHT file for full details. Squid
- * incorporates software developed and/or copyrighted by other
- * sources; see the CREDITS file for full details.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
- *
- */
-
-#ifndef SQSTRING_H
-#define SQSTRING_H
-
-/* forward decls */
-
-class CacheManager;
-
-#define DEBUGSTRINGS 0
-#if DEBUGSTRINGS
-#include "splay.h"
-
-class SqString;
-
-class SqStringRegistry
-{
-
-public:
- static StringRegistry &Instance();
-
- void add
- (SqString const *);
-
- void registerWithCacheManager(CacheManager & manager);
-
- void remove
- (SqString const *);
-
-private:
- static OBJH Stat;
-
- static StringRegistry Instance_;
-
- static SplayNode<SqString const *>::SPLAYWALKEE Stater;
-
- Splay<SqString const *> entries;
-
- bool registered;
-
-};
-
-class StoreEntry;
-#endif
-
-class SqString
-{
-
-public:
-
- /* std::string API available */
- _SQUID_INLINE_ SqString();
- SqString (char const *);
- SqString (SqString const &);
- ~SqString();
-
- SqString &operator =(char const *);
- SqString &operator =(SqString const &);
- bool operator ==(SqString const &) const;
- bool operator !=(SqString const &) const;
- bool operator >=(SqString const &) const;
- bool operator <=(SqString const &) const;
- bool operator >(SqString const &) const;
- bool operator <(SqString const &) const;
-
- _SQUID_INLINE_ int size() const;
- _SQUID_INLINE_ char const * c_str() const;
-
- const char& operator [](unsigned int) const;
- char& operator [](unsigned int);
-
- void clear();
-
- void append(char const *buf, int len);
- void append(char const *buf);
- void append(char const);
- void append(SqString const &);
-
- _SQUID_INLINE_ bool empty() const;
- _SQUID_INLINE_ int compare(char const *) const;
- _SQUID_INLINE_ int compare(char const *, size_t count) const;
- _SQUID_INLINE_ int compare(SqString const &) const;
-
-/* Custom Squid Operations available */
- /// Super-efficient string assignment. Moves internal content from one object to another.
- /// then resets the initial pobject to empty.
- _SQUID_INLINE_ void absorb(SqString &old);
- _SQUID_INLINE_ const char * pos(char const *) const;
- _SQUID_INLINE_ const char * pos(char const ch) const;
- _SQUID_INLINE_ const char * rpos(char const ch) const;
-
- _SQUID_INLINE_ void set
- (char const *loc, char const ch);
-
- _SQUID_INLINE_ void cut (size_t newLength);
-
- _SQUID_INLINE_ void cutPointer (char const *loc);
-
-#if DEBUGSTRINGS
-
- void stat (StoreEntry *) const;
-
-#endif
-
- void limitInit(const char *str, unsigned int len);
-private:
- void initBuf(size_t sz);
- void init (char const *);
-
- /* never reference these directly! */
- unsigned short int size_; /* buffer size; 64K limit */
-
- unsigned short int len_; /* current length */
-
- char *buf_;
-};
-
-#ifdef _USE_INLINE_
-#include "SqString.cci"
-#endif
-
-#endif /* SQSTRING_H */
-
Index: squid3/src/SquidString.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/SquidString.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- squid3/src/SquidString.h 18 May 2007 06:41:23 -0000 1.9
+++ squid3/src/SquidString.h 29 May 2007 13:31:38 -0000 1.10
@@ -1,9 +1,9 @@
/*
- * $Id: SquidString.h,v 1.9 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: SquidString.h,v 1.10 2007/05/29 13:31:38 amosjeffries Exp $
*
* DEBUG: section 67 String
- * AUTHOR: Duane Wessels, Amos Jeffries
+ * AUTHOR: Duane Wessels
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* ----------------------------------------------------------
@@ -33,68 +33,113 @@
*
*/
-/**
- *
- * To allow for easy future updates to the string handling within squid
- * We adopt the std::string API as the basis for string operations.
- * Then we typedef string (due to namespacing actually ::Squid::string)
- * as the preferred string handling class.
- * For Release 3.0 it is intended that the old String (no SquidString)
- * Will be the default string type.
- * For Release 3.1 it is expected that either std::string of another
- * custom managed type will be defined as default.
- *
- * NP: checkout http://johnpanzer.com/tsc_cuj/ToolboxOfStrings.html
- * for possibly better and faster strings.
- *
- * This has been done for several reasons:
- *
- * The initial String implementation was incomplete and non-standard
- * std::string provides a better known API for string handling
- * std::string or a derivative may be used in future within squid
- * String is a defined alternative to std::string in some systems
- *
- * These changes:
- * - move the old String class to SquidString making the
- * internal definition explicit.
- * - provide the well-known type of 'string' for general use
- * - migrate custom functions to well-known API:
- * buf() -> c_str()
- * clean() -> clear()
- * - remove redundant functions:
- * buf(char*) -> operator=(char*)
- * initBuf(char*) -> operator=(char*)
- * reset(char*) -> operator=(char*)
- * - make init(char*) private for use by various assignment/costructor
- * - define standard string operators
- * - define debugs stream operator
- *
- */
-
#ifndef SQUID_STRING_H
#define SQUID_STRING_H
- /* Provide standard 'string' type */
- /* class defined by the #include file MUST present the basic std::string API */
- /* at least partially as not all operatios are used by squid. */
- /* API Ref: http://www.sgi.com/tech/stl/basic_string.html */
+/* forward decls */
+
+class CacheManager;
+
+#define DEBUGSTRINGS 0
+#if DEBUGSTRINGS
+#include "splay.h"
+
+class String;
+
+class StringRegistry
+{
+
+public:
+ static StringRegistry &Instance();
+
+ void add
+ (String const *);
+
+ void registerWithCacheManager(CacheManager & manager);
+
+ void remove
+ (String const *);
+
+private:
+ static OBJH Stat;
-#include "SqString.h"
-typedef SqString string;
+ static StringRegistry Instance_;
+ static SplayNode<String const *>::SPLAYWALKEE Stater;
- /* Overload standard C functions using the basic string API */
+ Splay<String const *> entries;
-inline int strncasecmp(const string &lhs, const string &rhs, size_t len) { return strncasecmp(lhs.c_str(), rhs.c_str(), len); }
-inline int strcasecmp(const string &lhs, const string &rhs) { return strcasecmp(lhs.c_str(), rhs.c_str()); }
+ bool registered;
-inline int strncmp(const string &lhs, const string &rhs, size_t len) { return strncmp(lhs.c_str(), rhs.c_str(), len); }
-inline int strcmp(const string &lhs, const string &rhs) { return strcmp(lhs.c_str(), rhs.c_str()); }
+};
-inline const char * strpbrk(const string &lhs, const string &rhs) { return strpbrk(lhs.c_str(), rhs.c_str()); }
+class StoreEntry;
+#endif
-inline const char * strstr(const string &lhs, const string &rhs) { return strstr(lhs.c_str(), rhs.c_str()); }
+class String
+{
-inline std::ostream& operator <<(std::ostream &os, const string &s) { os << s.c_str(); return os; }
+public:
+ _SQUID_INLINE_ String();
+ String (char const *);
+ String (String const &);
+ ~String();
+
+ String &operator =(char const *);
+ String &operator =(String const &);
+ bool operator ==(String const &) const;
+ bool operator !=(String const &) const;
+
+ _SQUID_INLINE_ int size() const;
+ _SQUID_INLINE_ char const * buf() const;
+ void buf(char *);
+ void init (char const *);
+ void initBuf(size_t sz);
+ void limitInit(const char *str, int len);
+ void clean();
+ void reset(char const *str);
+ void append(char const *buf, int len);
+ void append(char const *buf);
+ void append(char const);
+ void append (String const &);
+ void absorb(String &old);
+ _SQUID_INLINE_ const char * pos(char const *) const;
+ _SQUID_INLINE_ const char * pos(char const ch) const;
+ _SQUID_INLINE_ const char * rpos(char const ch) const;
+ _SQUID_INLINE_ int cmp (char const *) const;
+ _SQUID_INLINE_ int cmp (char const *, size_t count) const;
+ _SQUID_INLINE_ int cmp (String const &) const;
+ _SQUID_INLINE_ int caseCmp (char const *) const;
+ _SQUID_INLINE_ int caseCmp (char const *, size_t count) const;
+
+ _SQUID_INLINE_ void set
+ (char const *loc, char const ch);
+
+ _SQUID_INLINE_ void cut (size_t newLength);
+
+ _SQUID_INLINE_ void cutPointer (char const *loc);
+
+#if DEBUGSTRINGS
+
+ void stat (StoreEntry *) const;
+
+#endif
+
+private:
+ /* never reference these directly! */
+ unsigned short int size_; /* buffer size; 64K limit */
+
+ unsigned short int len_; /* current length */
+
+ char *buf_;
+};
+
+_SQUID_INLINE_ std::ostream & operator<<(std::ostream& os, String const &aString);
+
+#ifdef _USE_INLINE_
+#include "String.cci"
+#endif
#endif /* SQUID_STRING_H */
+
+
Index: squid3/src/Store.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/Store.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- squid3/src/Store.h 18 May 2007 06:41:23 -0000 1.34
+++ squid3/src/Store.h 29 May 2007 13:31:38 -0000 1.35
@@ -1,6 +1,6 @@
/*
- * $Id: Store.h,v 1.34 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: Store.h,v 1.35 2007/05/29 13:31:38 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -258,7 +258,7 @@
/* TODO: imeplement the async version */
virtual void get
- (string const key , STOREGETCLIENT callback, void *cbdata) = 0;
+ (String const key , STOREGETCLIENT callback, void *cbdata) = 0;
/* prepare the store for use. The store need not be usable immediately,
* it should respond to readable() and writable() with true as soon
@@ -282,7 +282,7 @@
virtual void unlink (StoreEntry &);
/* search in the store */
- virtual StoreSearch *search(string const url, HttpRequest *) = 0;
+ virtual StoreSearch *search(String const url, HttpRequest *) = 0;
/* pulled up from SwapDir for migration.... probably do not belong here */
virtual void reference(StoreEntry &) = 0; /* Reference this object */
Index: squid3/src/StoreHashIndex.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/StoreHashIndex.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/StoreHashIndex.h 18 May 2007 06:41:23 -0000 1.3
+++ squid3/src/StoreHashIndex.h 29 May 2007 13:31:38 -0000 1.4
@@ -1,6 +1,6 @@
/*
- * $Id: StoreHashIndex.h,v 1.3 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: StoreHashIndex.h,v 1.4 2007/05/29 13:31:38 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -57,7 +57,7 @@
(const cache_key *);
virtual void get
- (string const, STOREGETCLIENT, void * cbdata);
+ (String const, STOREGETCLIENT, void * cbdata);
virtual void init();
@@ -77,7 +77,7 @@
virtual void updateSize(size_t, int);
- virtual StoreSearch *search(string const url, HttpRequest *);
+ virtual StoreSearch *search(String const url, HttpRequest *);
private:
/* migration logic */
--- /dev/null Tue May 29 13:53:29 2007
+++ squid3/src/String.cc Tue May 29 13:53:29 2007
@@ -0,0 +1,413 @@
+
+/*
+ * $Id: String.cc,v 1.26 2007/05/29 13:31:38 amosjeffries Exp $
+ *
+ * DEBUG: section 67 String
+ * AUTHOR: Duane Wessels
+ *
+ * SQUID Web Proxy Cache http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ * Squid is the result of efforts by numerous individuals from
+ * the Internet community; see the CONTRIBUTORS file for full
+ * details. Many organizations have provided support for Squid's
+ * development; see the SPONSORS file for full details. Squid is
+ * Copyrighted (C) 2001 by the Regents of the University of
+ * California; see the COPYRIGHT file for full details. Squid
+ * incorporates software developed and/or copyrighted by other
+ * sources; see the CREDITS file for full details.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+#include "squid.h"
+#include "Store.h"
+
+void
+String::initBuf(size_t sz)
+{
+ PROF_start(StringInitBuf);
+ buf((char *)memAllocString(sz, &sz));
+ assert(sz < 65536);
+ size_ = sz;
+ PROF_stop(StringInitBuf);
+}
+
+void
+String::init(char const *str)
+{
+ assert(this);
+
+ PROF_start(StringInit);
+ if (str)
+ limitInit(str, strlen(str));
+ else
+ clean();
+ PROF_stop(StringInit);
+}
+
+String::String (char const *aString) : size_(0), len_(0), buf_(NULL)
+{
+ init (aString);
+#if DEBUGSTRINGS
+
+ StringRegistry::Instance().add(this);
+#endif
+}
+
+String &
+String::operator =(char const *aString)
+{
+ clean();
+ init (aString);
+ return *this;
+}
+
+String &
+String::operator = (String const &old)
+{
+ clean ();
+
+ if (old.len_)
+ limitInit (old.buf(), old.len_);
+
+ return *this;
+}
+
+bool
+String::operator == (String const &that) const
+{
+ if (0 == this->cmp(that))
+ return true;
+
+ return false;
+}
+
+bool
+String::operator != (String const &that) const
+{
+ if (0 == this->cmp(that))
+ return false;
+
+ return true;
+}
+
+void
+String::limitInit(const char *str, int len)
+{
+ PROF_start(StringLimitInit);
+ assert(this && str);
+ initBuf(len + 1);
+ len_ = len;
+ xmemcpy(buf_, str, len);
+ buf_[len] = '\0';
+ PROF_stop(StringLimitInit);
+}
+
+String::String (String const &old) : size_(0), len_(0), buf_(NULL)
+{
+ init (old.buf());
+#if DEBUGSTRINGS
+
+ StringRegistry::Instance().add(this);
+#endif
+}
+
+void
+String::clean()
+{
+ PROF_start(StringClean);
+ assert(this);
+
+ if (buf())
+ memFreeString(size_, buf_);
+
+ len_ = 0;
+
+ size_ = 0;
+
+ buf_ = NULL;
+ PROF_stop(StringClean);
+}
+
+String::~String()
+{
+ clean();
+#if DEBUGSTRINGS
+
+ StringRegistry::Instance().remove(this);
+#endif
+}
+
+void
+String::reset(const char *str)
+{
+ PROF_start(StringReset);
+ clean();
+ init(str);
+ PROF_stop(StringReset);
+}
+
+void
+String::append(const char *str, int len)
+{
+ assert(this);
+ assert(str && len >= 0);
+
+ PROF_start(StringAppend);
+ if (len_ + len < size_) {
+ strncat(buf_, str, len);
+ len_ += len;
+ } else {
+ String snew;
+ snew.len_ = len_ + len;
+ snew.initBuf(snew.len_ + 1);
+
+ if (buf_)
+ xmemcpy(snew.buf_, buf(), len_);
+
+ if (len)
+ xmemcpy(snew.buf_ + len_, str, len);
+
+ snew.buf_[snew.len_] = '\0';
+
+ absorb(snew);
+ }
+ PROF_stop(StringAppend);
+}
+
+void
+String::append(char const *str)
+{
+ assert (str);
+ append (str, strlen(str));
+}
+
+void
+String::append (char chr)
+{
+ char myString[2];
+ myString[0]=chr;
+ myString[1]='\0';
+ append (myString, 1);
+}
+
+void
+String::append(String const &old)
+{
+ append (old.buf(), old.len_);
+}
+
+void
+String::absorb(String &old)
+{
+ clean();
+ size_ = old.size_;
+ buf (old.buf_);
+ len_ = old.len_;
+ old.size_ = 0;
+ old.buf_ = NULL;
+ old.len_ = 0;
+}
+
+void
+String::buf(char *newBuf)
+{
+ assert (buf_ == NULL);
+ buf_ = newBuf;
+}
+
+#if DEBUGSTRINGS
+void
+String::stat(StoreEntry *entry) const
+{
+ storeAppendPrintf(entry, "%p : %d/%d \"%s\"\n",this,len_, size_, buf());
+}
+
+StringRegistry &
+StringRegistry::Instance()
+{
+ return Instance_;
+}
+
+template <class C>
+int
+ptrcmp(C const &lhs, C const &rhs)
+{
+ return lhs - rhs;
+}
+
+void
+StringRegistry::registerWithCacheManager(CacheManager & manager)
+{
+ manager.registerAction("strings",
+ "Strings in use in squid", Stat, 0, 1);
+}
+
+void
+
+StringRegistry::add
+ (String const *entry)
+{
+ entries.insert(entry, ptrcmp);
+}
+
+void
+
+StringRegistry::remove
+ (String const *entry)
+{
+ entries.remove(entry, ptrcmp);
+}
+
+StringRegistry StringRegistry::Instance_;
+
+extern size_t memStringCount();
+
+void
+StringRegistry::Stat(StoreEntry *entry)
+{
+ storeAppendPrintf(entry, "%lu entries, %lu reported from MemPool\n", (unsigned long) Instance().entries.elements, (unsigned long) memStringCount());
+ Instance().entries.head->walk(Stater, entry);
+}
+
+void
+StringRegistry::Stater(String const * const & nodedata, void *state)
+{
+ StoreEntry *entry = (StoreEntry *) state;
+ nodedata->stat(entry);
+}
+
+#endif
+
+/* TODO: move onto String */
+int
+stringHasWhitespace(const char *s)
+{
+ return strpbrk(s, w_space) != NULL;
+}
+
+/* TODO: move onto String */
+int
+stringHasCntl(const char *s)
+{
+ unsigned char c;
+
+ while ((c = (unsigned char) *s++) != '\0') {
+ if (c <= 0x1f)
+ return 1;
+
+ if (c >= 0x7f && c <= 0x9f)
+ return 1;
+ }
+
+ return 0;
+}
+
+/*
+ * Similar to strtok, but has some rudimentary knowledge
+ * of quoting
+ */
+char *
+strwordtok(char *buf, char **t)
+{
+ unsigned char *word = NULL;
+ unsigned char *p = (unsigned char *) buf;
+ unsigned char *d;
+ unsigned char ch;
+ int quoted = 0;
+
+ if (!p)
+ p = (unsigned char *) *t;
+
+ if (!p)
+ goto error;
+
+ while (*p && xisspace(*p))
+ p++;
+
+ if (!*p)
+ goto error;
+
+ word = d = p;
+
+ while ((ch = *p)) {
+ switch (ch) {
+
+ case '\\':
+ p++;
+
+ switch (*p) {
+
+ case 'n':
+ ch = '\n';
+
+ break;
+
+ case 'r':
+ ch = '\r';
+
+ break;
+
+ default:
+ ch = *p;
+
+ break;
+
+ }
+
+ *d++ = ch;
+
+ if (ch)
+ p++;
+
+ break;
+
+ case '"':
+ quoted = !quoted;
+
+ p++;
+
+ break;
+
+ default:
+ if (!quoted && xisspace(*p)) {
+ p++;
+ goto done;
+ }
+
+ *d++ = *p++;
+ break;
+ }
+ }
+
+done:
+ *d++ = '\0';
+
+error:
+ *t = (char *) p;
+ return (char *) word;
+}
+
+const char *
+checkNullString(const char *p)
+{
+ return p ? p : "(NULL)";
+}
+
+#ifndef _USE_INLINE_
+#include "String.cci"
+#endif
--- /dev/null Tue May 29 13:53:29 2007
+++ squid3/src/String.cci Tue May 29 13:53:29 2007
@@ -0,0 +1,169 @@
+
+/*
+ * $Id: String.cci,v 1.9 2007/05/29 13:31:38 amosjeffries Exp $
+ *
+ * DEBUG: section 67 String
+ * AUTHOR: Duane Wessels
+ *
+ * SQUID Web Proxy Cache http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ * Squid is the result of efforts by numerous individuals from
+ * the Internet community; see the CONTRIBUTORS file for full
+ * details. Many organizations have provided support for Squid's
+ * development; see the SPONSORS file for full details. Squid is
+ * Copyrighted (C) 2001 by the Regents of the University of
+ * California; see the COPYRIGHT file for full details. Squid
+ * incorporates software developed and/or copyrighted by other
+ * sources; see the CREDITS file for full details.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+String::String() : size_(0), len_(0), buf_ (NULL)
+{
+#if DEBUGSTRINGS
+ StringRegistry::Instance().add(this);
+#endif
+}
+
+int
+String::size() const
+{
+ return len_;
+}
+
+char const *
+String::buf() const
+{
+ return buf_;
+}
+
+const char *
+String::pos(char const *aString) const
+{
+ return strstr(buf(), aString);
+}
+
+const char *
+String::pos(char const ch) const
+{
+ return strchr(buf(), ch);
+}
+
+const char *
+String::rpos(char const ch) const
+{
+ return strrchr(buf(), (ch));
+}
+
+int
+String::cmp (char const *aString) const
+{
+ /* strcmp fails on NULLS */
+
+ if (size() == 0 && (aString == NULL || aString[0] == '\0'))
+ return 0;
+
+ if (size() == 0)
+ return -1;
+
+ if (aString == NULL || aString[0] == '\0')
+ return 1;
+
+ return strcmp(buf(), aString);
+}
+
+int
+String::cmp (char const *aString, size_t count) const
+{
+ /* always the same at length 0 */
+
+ if (count == 0)
+ return 0;
+
+ if (size() == 0 && (aString == NULL || aString[0] == '\0'))
+ return 0;
+
+ if (size() == 0)
+ return -1;
+
+ if (aString == NULL || aString[0] == '\0')
+ return 1;
+
+ return strncmp(buf(), aString, count);
+}
+
+int
+String::cmp (String const &aString) const
+{
+ /* strcmp fails on NULLS */
+
+ if (size() == 0 && aString.size() == 0)
+ return 0;
+
+ if (size() == 0)
+ return -1;
+
+ if (aString.size() == 0)
+ return 1;
+
+ return strcmp(buf(), aString.buf());
+}
+
+int
+String::caseCmp (char const *aString) const
+{
+ return strcasecmp(buf(), aString);
+}
+
+int
+String::caseCmp (char const *aString, size_t count) const
+{
+ return strncasecmp(buf(), aString, count);
+}
+
+/* FIXME: this is can perform buffer overflows and underflows! */
+void
+String::set (char const *loc, char const ch)
+{
+ buf_[loc-buf_] = ch;
+}
+
+/* FIXME: this is can perform buffer overflows and underflows! */
+void
+String::cut (size_t newLength)
+{
+ len_ = newLength;
+ buf_[newLength] = '\0';
+}
+
+/* FIXME: this is can perform buffer overflows and underflows! */
+void
+String::cutPointer (char const *loc)
+{
+ len_ = loc-buf_;
+ buf_[len_] = '\0';
+}
+
+std::ostream &
+operator<<(std::ostream& os, String const &aString)
+{
+ os << aString.buf();
+ return os;
+}
+
+
Index: squid3/src/SwapDir.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/SwapDir.cc,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- squid3/src/SwapDir.cc 18 May 2007 06:41:23 -0000 1.12
+++ squid3/src/SwapDir.cc 29 May 2007 13:31:38 -0000 1.13
@@ -1,6 +1,6 @@
/*
- * $Id: SwapDir.cc,v 1.12 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: SwapDir.cc,v 1.13 2007/05/29 13:31:38 amosjeffries Exp $
*
* DEBUG: section 20 Swap Dir base object
* AUTHOR: Robert Collins
@@ -276,7 +276,7 @@
void
SwapDir::get
- (string const key, STOREGETCLIENT callback, void *cbdata)
+ (String const key, STOREGETCLIENT callback, void *cbdata)
{
fatal("not implemented");
}
Index: squid3/src/SwapDir.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/SwapDir.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- squid3/src/SwapDir.h 18 May 2007 06:41:23 -0000 1.12
+++ squid3/src/SwapDir.h 29 May 2007 13:31:38 -0000 1.13
@@ -1,6 +1,6 @@
/*
- * $Id: SwapDir.h,v 1.12 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: SwapDir.h,v 1.13 2007/05/29 13:31:38 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -60,7 +60,7 @@
(const cache_key *);
virtual void get
- (string const, STOREGETCLIENT, void * cbdata);
+ (String const, STOREGETCLIENT, void * cbdata);
virtual void init();
@@ -74,7 +74,7 @@
virtual void sync(); /* Sync the store prior to shutdown */
- virtual StoreSearch *search(string const url, HttpRequest *);
+ virtual StoreSearch *search(String const url, HttpRequest *);
virtual void reference(StoreEntry &); /* Reference this object */
@@ -134,13 +134,13 @@
(const cache_key *);
virtual void get
- (string const, STOREGETCLIENT, void * cbdata);
+ (String const, STOREGETCLIENT, void * cbdata);
virtual size_t maxSize() const { return max_size;}
virtual size_t minSize() const;
virtual void stat (StoreEntry &anEntry) const;
- virtual StoreSearch *search(string const url, HttpRequest *) = 0;
+ virtual StoreSearch *search(String const url, HttpRequest *) = 0;
virtual void updateSize(size_t size, int sign);
Index: squid3/src/access_log.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/access_log.cc,v
retrieving revision 1.125
retrieving revision 1.126
diff -u -r1.125 -r1.126
--- squid3/src/access_log.cc 18 May 2007 06:41:23 -0000 1.125
+++ squid3/src/access_log.cc 29 May 2007 13:31:38 -0000 1.126
@@ -1,6 +1,6 @@
/*
- * $Id: access_log.cc,v 1.125 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: access_log.cc,v 1.126 2007/05/29 13:31:38 amosjeffries Exp $
*
* DEBUG: section 46 Access Log
* AUTHOR: Duane Wessels
@@ -518,7 +518,7 @@
logformat_token *fmt;
static MemBuf mb;
char tmp[1024];
- string sb;
+ String sb;
mb.reset();
@@ -628,7 +628,7 @@
if (al->request)
sb = al->request->header.getByName(fmt->data.header.header);
- out = sb.c_str();
+ out = sb.buf();
quote = 1;
@@ -638,7 +638,7 @@
if (al->reply)
sb = al->reply->header.getByName(fmt->data.header.header);
- out = sb.c_str();
+ out = sb.buf();
quote = 1;
@@ -648,7 +648,7 @@
if (al->request)
sb = al->request->header.getByNameListMember(fmt->data.header.header, fmt->data.header.element, fmt->data.header.separator);
- out = sb.c_str();
+ out = sb.buf();
quote = 1;
@@ -658,7 +658,7 @@
if (al->reply)
sb = al->reply->header.getByNameListMember(fmt->data.header.header, fmt->data.header.element, fmt->data.header.separator);
- out = sb.c_str();
+ out = sb.buf();
quote = 1;
@@ -767,7 +767,7 @@
case LFT_REQUEST_URLPATH:
if (al->request) {
- out = al->request->urlpath.c_str();
+ out = al->request->urlpath.buf();
quote = 1;
}
break;
@@ -813,7 +813,7 @@
case LFT_TAG:
if (al->request)
- out = al->request->tag.c_str();
+ out = al->request->tag.buf();
quote = 1;
@@ -821,7 +821,7 @@
case LFT_EXT_LOG:
if (al->request)
- out = al->request->extacl_log.c_str();
+ out = al->request->extacl_log.buf();
quote = 1;
@@ -891,7 +891,7 @@
if (fmt->space)
mb.append(" ", 1);
- sb.clear();
+ sb.clean();
if (dofree)
safe_free(out);
@@ -1631,8 +1631,8 @@
static void
fvdbInit(void)
{
- via_table = hash_create((HASHCMP *) std::strcmp, 977, hash4);
- forw_table = hash_create((HASHCMP *) std::strcmp, 977, hash4);
+ via_table = hash_create((HASHCMP *) strcmp, 977, hash4);
+ forw_table = hash_create((HASHCMP *) strcmp, 977, hash4);
}
static void
@@ -1717,10 +1717,10 @@
{
hashFreeItems(via_table, fvdbFreeEntry);
hashFreeMemory(via_table);
- via_table = hash_create((HASHCMP *) std::strcmp, 977, hash4);
+ via_table = hash_create((HASHCMP *) strcmp, 977, hash4);
hashFreeItems(forw_table, fvdbFreeEntry);
hashFreeMemory(forw_table);
- forw_table = hash_create((HASHCMP *) std::strcmp, 977, hash4);
+ forw_table = hash_create((HASHCMP *) strcmp, 977, hash4);
}
#endif
Index: squid3/src/cache_cf.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/cache_cf.cc,v
retrieving revision 1.511
retrieving revision 1.512
diff -u -r1.511 -r1.512
--- squid3/src/cache_cf.cc 18 May 2007 06:41:23 -0000 1.511
+++ squid3/src/cache_cf.cc 29 May 2007 13:31:38 -0000 1.512
@@ -1,6 +1,6 @@
/*
- * $Id: cache_cf.cc,v 1.511 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: cache_cf.cc,v 1.512 2007/05/29 13:31:38 amosjeffries Exp $
*
* DEBUG: section 3 Configuration File Parsing
* AUTHOR: Harvest Derived
@@ -2201,14 +2201,14 @@
}
void
-ConfigParser::ParseString(string &var)
+ConfigParser::ParseString(String *var)
{
char *token = strtok(NULL, w_space);
if (token == NULL)
self_destruct();
- var = token;
+ var->reset(token);
}
static void
Index: squid3/src/client_db.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/client_db.cc,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- squid3/src/client_db.cc 18 May 2007 06:41:23 -0000 1.69
+++ squid3/src/client_db.cc 29 May 2007 13:31:39 -0000 1.70
@@ -1,6 +1,6 @@
/*
- * $Id: client_db.cc,v 1.69 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: client_db.cc,v 1.70 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 0 Client Database
* AUTHOR: Duane Wessels
@@ -80,7 +80,7 @@
if (client_table)
return;
- client_table = hash_create((HASHCMP *) std::strcmp, CLIENT_DB_HASH_SIZE, hash_string);
+ client_table = hash_create((HASHCMP *) strcmp, CLIENT_DB_HASH_SIZE, hash_string);
}
void
Index: squid3/src/client_side.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/client_side.cc,v
retrieving revision 1.755
retrieving revision 1.756
diff -u -r1.755 -r1.756
--- squid3/src/client_side.cc 18 May 2007 18:30:41 -0000 1.755
+++ squid3/src/client_side.cc 29 May 2007 13:31:39 -0000 1.756
@@ -1,6 +1,6 @@
/*
- * $Id: client_side.cc,v 1.755 2007/05/18 18:30:41 wessels Exp $
+ * $Id: client_side.cc,v 1.756 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
@@ -459,7 +459,7 @@
aLogEntry->http.version = request->http_ver;
aLogEntry->hier = request->hier;
- aLogEntry->cache.extuser = request->extacl_user.c_str();
+ aLogEntry->cache.extuser = request->extacl_user.buf();
if (request->auth_user_request) {
@@ -481,10 +481,10 @@
if (al.reply) {
al.http.code = al.reply->sline.status;
- al.http.content_type = al.reply->content_type.c_str();
+ al.http.content_type = al.reply->content_type.buf();
} else if (loggingEntry() && loggingEntry()->mem_obj) {
al.http.code = loggingEntry()->mem_obj->getReply()->sline.status;
- al.http.content_type = loggingEntry()->mem_obj->getReply()->content_type.c_str();
+ al.http.content_type = loggingEntry()->mem_obj->getReply()->content_type.buf();
}
debugs(33, 9, "clientLogRequest: http.code='" << al.http.code << "'");
@@ -541,7 +541,7 @@
safe_free(uri);
safe_free(log_uri);
safe_free(redirect.location);
- range_iter.boundary.clear();
+ range_iter.boundary.clean();
HTTPMSGUNLOCK(request);
if (client_stream.tail)
@@ -823,15 +823,15 @@
/* put terminating boundary for multiparts */
static void
-clientPackTermBound(string boundary, MemBuf * mb)
+clientPackTermBound(String boundary, MemBuf * mb)
{
- mb->Printf("\r\n--%s--\r\n", boundary.c_str());
+ mb->Printf("\r\n--%s--\r\n", boundary.buf());
debugs(33, 6, "clientPackTermBound: buf offset: " << mb->size);
}
/* appends a "part" HTTP header (as in a multi-part/range reply) to the buffer */
static void
-clientPackRangeHdr(const HttpReply * rep, const HttpHdrRangeSpec * spec, string boundary, MemBuf * mb)
+clientPackRangeHdr(const HttpReply * rep, const HttpHdrRangeSpec * spec, String boundary, MemBuf * mb)
{
HttpHeader hdr(hoReply);
Packer p;
@@ -839,9 +839,10 @@
assert(spec);
/* put boundary */
- debugs(33, 5, "clientPackRangeHdr: appending boundary: " << boundary);
+ debugs(33, 5, "clientPackRangeHdr: appending boundary: " <<
+ boundary.buf());
/* rfc2046 requires to _prepend_ boundary with <crlf>! */
- mb->Printf("\r\n--%s\r\n", boundary.c_str());
+ mb->Printf("\r\n--%s\r\n", boundary.buf());
/* stuff the header with required entries and pack it */
@@ -1033,12 +1034,12 @@
/* generates a "unique" boundary string for multipart responses
* the caller is responsible for cleaning the string */
-string
+String
ClientHttpRequest::rangeBoundaryStr() const
{
assert(this);
const char *key;
- string b (full_appname_string);
+ String b (full_appname_string);
b.append (":",1);
key = storeEntry()->getMD5Text();
b.append(key, strlen(key));
@@ -1150,7 +1151,7 @@
hdr->delById(HDR_CONTENT_TYPE);
httpHeaderPutStrf(hdr, HDR_CONTENT_TYPE,
"multipart/byteranges; boundary=\"%s\"",
- http->range_iter.boundary.c_str());
+ http->range_iter.boundary.buf());
/* Content-Length is not required in multipart responses
* but it is always nice to have one */
actual_clen = http->mRangeCLen();
@@ -2183,11 +2184,11 @@
request->flags.tproxy = conn->port->tproxy;
#endif
- if (internalCheck(request->urlpath.c_str())) {
+ if (internalCheck(request->urlpath.buf())) {
if (internalHostnameIs(request->host) &&
request->port == getMyPort()) {
http->flags.internal = 1;
- } else if (Config.onoff.global_internal_static && internalStaticCheck(request->urlpath.c_str())) {
+ } else if (Config.onoff.global_internal_static && internalStaticCheck(request->urlpath.buf())) {
xstrncpy(request->host, internalHostname(),
SQUIDHOSTNAMELEN);
request->port = getMyPort();
Index: squid3/src/client_side_reply.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/client_side_reply.cc,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -r1.128 -r1.129
--- squid3/src/client_side_reply.cc 18 May 2007 18:30:41 -0000 1.128
+++ squid3/src/client_side_reply.cc 29 May 2007 13:31:39 -0000 1.129
@@ -1,6 +1,6 @@
/*
- * $Id: client_side_reply.cc,v 1.128 2007/05/18 18:30:41 wessels Exp $
+ * $Id: client_side_reply.cc,v 1.129 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 88 Client-side Reply Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
@@ -1262,7 +1262,7 @@
int headers_deleted = 0;
while ((e = hdr->getEntry(&pos))) {
if (e->id == HDR_WWW_AUTHENTICATE || e->id == HDR_PROXY_AUTHENTICATE) {
- const char *value = e->value.c_str();
+ const char *value = e->value.buf();
if ((strncasecmp(value, "NTLM", 4) == 0 &&
(value[4] == '\0' || value[4] == ' '))
@@ -1314,7 +1314,7 @@
/* Append VIA */
{
LOCAL_ARRAY(char, bbuf, MAX_URL + 32);
- string strVia;
+ String strVia;
hdr->getList(HDR_VIA, &strVia);
snprintf(bbuf, sizeof(bbuf), "%d.%d %s",
reply->sline.version.major,
@@ -1322,7 +1322,7 @@
ThisCache);
strListAdd(&strVia, bbuf, ',');
hdr->delById(HDR_VIA);
- hdr->putStr(HDR_VIA, strVia.c_str());
+ hdr->putStr(HDR_VIA, strVia.buf());
}
/* Signal keep-alive if needed */
hdr->putStr(http->flags.accel ? HDR_CONNECTION : HDR_PROXY_CONNECTION,
Index: squid3/src/client_side_request.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/client_side_request.cc,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -r1.88 -r1.89
--- squid3/src/client_side_request.cc 26 May 2007 06:38:04 -0000 1.88
+++ squid3/src/client_side_request.cc 29 May 2007 13:31:39 -0000 1.89
@@ -1,6 +1,6 @@
/*
- * $Id: client_side_request.cc,v 1.88 2007/05/26 06:38:04 wessels Exp $
+ * $Id: client_side_request.cc,v 1.89 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 85 Client-side Request Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
@@ -628,10 +628,12 @@
#else
if (req_hdr->has(HDR_PRAGMA)) {
- string s = req_hdr->getList(HDR_PRAGMA);
+ String s = req_hdr->getList(HDR_PRAGMA);
if (strListIsMember(&s, "no-cache", ','))
no_cache++;
+
+ s.clean();
}
if (request->cache_control)
@@ -710,7 +712,7 @@
request->flags.auth = 1;
if (req_hdr->has(HDR_VIA)) {
- string s = req_hdr->getList(HDR_VIA);
+ String s = req_hdr->getList(HDR_VIA);
/*
* ThisCache cannot be a member of Via header, "1.0 ThisCache" can.
* Note ThisCache2 has a space prepended to the hostname so we don't
@@ -724,11 +726,11 @@
}
#if FORW_VIA_DB
- fvdbCountVia(s.c_str());
+ fvdbCountVia(s.buf());
#endif
- s.clear();
+ s.clean();
}
#if USE_USERAGENT_LOG
@@ -745,9 +747,9 @@
#if FORW_VIA_DB
if (req_hdr->has(HDR_X_FORWARDED_FOR)) {
- string s = req_hdr->getList(HDR_X_FORWARDED_FOR);
- fvdbCountForw(s.c_str());
- s.clear();
+ String s = req_hdr->getList(HDR_X_FORWARDED_FOR);
+ fvdbCountForw(s.buf());
+ s.clean();
}
#endif
Index: squid3/src/client_side_request.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/client_side_request.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- squid3/src/client_side_request.h 18 May 2007 06:41:23 -0000 1.29
+++ squid3/src/client_side_request.h 29 May 2007 13:31:39 -0000 1.30
@@ -1,6 +1,6 @@
/*
- * $Id: client_side_request.h,v 1.29 2007/05/18 06:41:23 amosjeffries Exp $
+ * $Id: client_side_request.h,v 1.30 2007/05/29 13:31:39 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -75,7 +75,7 @@
ClientHttpRequest(ClientHttpRequest const &);
ClientHttpRequest& operator=(ClientHttpRequest const &);
- string rangeBoundaryStr() const;
+ String rangeBoundaryStr() const;
void freeResources();
void updateCounters();
void logRequest();
Index: squid3/src/dns_internal.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/dns_internal.cc,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- squid3/src/dns_internal.cc 18 May 2007 06:41:24 -0000 1.99
+++ squid3/src/dns_internal.cc 29 May 2007 13:31:39 -0000 1.100
@@ -1,6 +1,6 @@
/*
- * $Id: dns_internal.cc,v 1.99 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: dns_internal.cc,v 1.100 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 78 DNS lookups; interacts with lib/rfc1035.c
* AUTHOR: Duane Wessels
@@ -1238,7 +1238,7 @@
if (!init) {
memDataInit(MEM_IDNS_QUERY, "idns_query", sizeof(idns_query), 0);
memset(RcodeMatrix, '\0', sizeof(RcodeMatrix));
- idns_lookup_hash = hash_create((HASHCMP *) std::strcmp, 103, hash_string);
+ idns_lookup_hash = hash_create((HASHCMP *) strcmp, 103, hash_string);
init++;
}
}
Index: squid3/src/errorpage.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/errorpage.cc,v
retrieving revision 1.226
retrieving revision 1.227
diff -u -r1.226 -r1.227
--- squid3/src/errorpage.cc 18 May 2007 06:41:24 -0000 1.226
+++ squid3/src/errorpage.cc 29 May 2007 13:31:39 -0000 1.227
@@ -1,6 +1,6 @@
/*
- * $Id: errorpage.cc,v 1.226 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: errorpage.cc,v 1.227 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 4 Error Generation
* AUTHOR: Duane Wessels
@@ -534,7 +534,7 @@
Packer p;
str.Printf("%s %s HTTP/%d.%d\n",
RequestMethodStr[r->method],
- r->urlpath.size() ? r->urlpath.c_str() : "/",
+ r->urlpath.size() ? r->urlpath.buf() : "/",
r->http_ver.major, r->http_ver.minor);
packerToMemInit(&p, &str);
r->header.packInto(&p);
@@ -739,7 +739,7 @@
Packer p;
mb.Printf("%s %s HTTP/%d.%d\n",
RequestMethodStr[r->method],
- r->urlpath.size() ? r->urlpath.c_str() : "/",
+ r->urlpath.size() ? r->urlpath.buf() : "/",
r->http_ver.major, r->http_ver.minor);
packerToMemInit(&p, &mb);
r->header.packInto(&p);
Index: squid3/src/external_acl.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/external_acl.cc,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- squid3/src/external_acl.cc 22 May 2007 01:16:40 -0000 1.79
+++ squid3/src/external_acl.cc 29 May 2007 13:31:39 -0000 1.80
@@ -1,6 +1,6 @@
/*
- * $Id: external_acl.cc,v 1.79 2007/05/22 01:16:40 hno Exp $
+ * $Id: external_acl.cc,v 1.80 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 82 External ACL
* AUTHOR: Henrik Nordstrom, MARA Systems AB
@@ -693,7 +693,7 @@
external_acl_cache_touch(acl->def, entry);
result = entry->result;
- external_acl_message = entry->message.c_str();
+ external_acl_message = entry->message.buf();
debugs(82, 2, "aclMatchExternal: " << acl->def->name << " = " << result);
@@ -763,7 +763,7 @@
for (format = acl_data->def->format; format; format = format->next) {
const char *str = NULL;
- string sb;
+ String sb;
switch (format->type) {
@@ -820,7 +820,7 @@
break;
case _external_acl_format::EXT_ACL_PATH:
- str = request->urlpath.c_str();
+ str = request->urlpath.buf();
break;
case _external_acl_format::EXT_ACL_METHOD:
@@ -829,22 +829,22 @@
case _external_acl_format::EXT_ACL_HEADER:
sb = request->header.getByName(format->header);
- str = sb.c_str();
+ str = sb.buf();
break;
case _external_acl_format::EXT_ACL_HEADER_ID:
sb = request->header.getStrOrList(format->header_id);
- str = sb.c_str();
+ str = sb.buf();
break;
case _external_acl_format::EXT_ACL_HEADER_MEMBER:
sb = request->header.getByNameListMember(format->header, format->member, format->separator);
- str = sb.c_str();
+ str = sb.buf();
break;
case _external_acl_format::EXT_ACL_HEADER_ID_MEMBER:
sb = request->header.getListMember(format->header_id, format->member, format->separator);
- str = sb.c_str();
+ str = sb.buf();
break;
#if USE_SSL
@@ -894,7 +894,7 @@
#endif
case _external_acl_format::EXT_ACL_EXT_USER:
- str = request->extacl_user.c_str();
+ str = request->extacl_user.buf();
break;
case _external_acl_format::EXT_ACL_UNKNOWN:
@@ -921,7 +921,7 @@
strwordquote(&mb, str);
}
- sb.clear();
+ sb.clean();
first = 0;
}
@@ -1244,8 +1244,8 @@
if (entry != NULL) {
debugs(82, 4, "externalAclLookup: entry = { date=" <<
(long unsigned int) entry->date << ", result=" <<
- entry->result << ", user=" << entry->user << " tag=" <<
- entry->tag << " log=" << entry->log << " }");
+ entry->result << ", user=" << entry->user.buf() << " tag=" <<
+ entry->tag.buf() << " log=" << entry->log.buf() << " }");
}
@@ -1278,7 +1278,7 @@
for (p = Config.externalAclHelperList; p; p = p->next) {
if (!p->cache)
- p->cache = hash_create((HASHCMP *) std::strcmp, hashPrime(1024), hash4);
+ p->cache = hash_create((HASHCMP *) strcmp, hashPrime(1024), hash4);
if (!p->theHelper)
p->theHelper = helperCreate(p->name);
Index: squid3/src/fqdncache.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/fqdncache.cc,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -r1.172 -r1.173
--- squid3/src/fqdncache.cc 18 May 2007 06:41:24 -0000 1.172
+++ squid3/src/fqdncache.cc 29 May 2007 13:31:39 -0000 1.173
@@ -1,6 +1,6 @@
/*
- * $Id: fqdncache.cc,v 1.172 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: fqdncache.cc,v 1.173 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 35 FQDN Cache
* AUTHOR: Harvest Derived
@@ -527,7 +527,7 @@
n = hashPrime(fqdncache_high / 4);
- fqdn_table = hash_create((HASHCMP *) std::strcmp, n, hash4);
+ fqdn_table = hash_create((HASHCMP *) strcmp, n, hash4);
memDataInit(MEM_FQDNCACHE_ENTRY, "fqdncache_entry",
sizeof(fqdncache_entry), 0);
Index: squid3/src/ftp.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ftp.cc,v
retrieving revision 1.423
retrieving revision 1.424
diff -u -r1.423 -r1.424
--- squid3/src/ftp.cc 18 May 2007 06:41:24 -0000 1.423
+++ squid3/src/ftp.cc 29 May 2007 13:31:39 -0000 1.424
@@ -1,6 +1,6 @@
/*
- * $Id: ftp.cc,v 1.423 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: ftp.cc,v 1.424 2007/05/29 13:31:39 amosjeffries Exp $
*
* DEBUG: section 9 File Transfer Protocol (FTP)
* AUTHOR: Harvest Derived
@@ -126,9 +126,9 @@
int password_url;
char *reply_hdr;
int reply_hdr_state;
- string clean_url;
- string title_url;
- string base_href;
+ String clean_url;
+ String title_url;
+ String base_href;
int conn_att;
int login_att;
ftp_state_t state;
@@ -441,9 +441,9 @@
safe_free(old_filepath);
- title_url.clear();
+ title_url.clean();
- base_href.clear();
+ base_href.clean();
safe_free(filepath);
@@ -507,7 +507,7 @@
wordlist *w;
char *dirup;
int i, j, k;
- const char *title = title_url.c_str();
+ const char *title = title_url.buf();
flags.listing_started = true;
printfReplyBody("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
printfReplyBody("<!-- HTML listing generated by Squid %s -->\n",
@@ -526,7 +526,7 @@
if (flags.need_base_href)
printfReplyBody("<BASE HREF=\"%s\">\n",
- html_quote(base_href.c_str()));
+ html_quote(base_href.buf()));
printfReplyBody("</HEAD><BODY>\n");
@@ -955,7 +955,7 @@
if (flags.dir_slash) {
url = xstrdup("./");
} else {
- const char *title = title_url.c_str();
+ const char *title = title_url.buf();
int k = 6 + strcspn(&title[6], "/");
char *t;
url = xstrdup(title + k);
@@ -1436,11 +1436,11 @@
flags.isdir = 1;
flags.root_dir = 1;
flags.need_base_href = 1; /* Work around broken browsers */
- } else if (!request->urlpath.compare("/%2f/")) {
+ } else if (!request->urlpath.cmp("/%2f/")) {
/* UNIX root directory */
flags.isdir = 1;
flags.root_dir = 1;
- } else if ((l >= 1) && (*(request->urlpath.c_str() + l - 1) == '/')) {
+ } else if ((l >= 1) && (*(request->urlpath.buf() + l - 1) == '/')) {
/* Directory URL, ending in / */
flags.isdir = 1;
@@ -1528,7 +1528,7 @@
checkUrlpath();
buildTitleUrl();
debugs(9, 5, "ftpStart: host=" << request->host << ", path=" <<
- request->urlpath << ", user=" << user << ", passwd=" <<
+ request->urlpath.buf() << ", user=" << user << ", passwd=" <<
password);
state = BEGIN;
@@ -1953,7 +1953,7 @@
mode = 'A';
} else {
t = ftpState->request->urlpath.rpos('/');
- filename = t ? t + 1 : ftpState->request->urlpath.c_str();
+ filename = t ? t + 1 : ftpState->request->urlpath.buf();
mode = mimeGetTransferMode(filename);
}
@@ -1981,7 +1981,7 @@
debugs(9, 3, "This is ftpReadType");
if (code == 200) {
- p = path = xstrdup(ftpState->request->urlpath.c_str());
+ p = path = xstrdup(ftpState->request->urlpath.buf());
if (*p == '/')
p++;
@@ -2202,7 +2202,7 @@
if (ftpState->size == 0) {
debugs(9, 2, "ftpReadSize: SIZE reported " <<
ftpState->ctrl.last_reply << " on " <<
- ftpState->title_url);
+ ftpState->title_url.buf());
ftpState->size = -1;
}
@@ -2908,7 +2908,7 @@
safe_free(ftpState->filepath);
/* Build the new path (urlpath begins with /) */
- path = xstrdup(ftpState->request->urlpath.c_str());
+ path = xstrdup(ftpState->request->urlpath.buf());
rfc1738_unescape(path);
@@ -2959,7 +2959,7 @@
if (!ftpState->flags.isdir && /* Not a directory */
!ftpState->flags.try_slash_hack && /* Not in slash hack */
ftpState->mdtm <= 0 && ftpState->size < 0 && /* Not known as a file */
- strncasecmp(ftpState->request->urlpath, "/%2f", 4) != 0) { /* No slash encoded */
+ ftpState->request->urlpath.caseCmp("/%2f", 4) != 0) { /* No slash encoded */
switch (ftpState->state) {
@@ -3118,7 +3118,7 @@
{
const char *mime_type = NULL;
const char *mime_enc = NULL;
- string urlpath = request->urlpath;
+ String urlpath = request->urlpath;
const char *filename = NULL;
const char *t = NULL;
StoreEntry *e = entry;
@@ -3139,7 +3139,7 @@
e->buffer(); /* released when done processing current data payload */
- filename = (t = urlpath.rpos('/')) ? t + 1 : urlpath.c_str();
+ filename = (t = urlpath.rpos('/')) ? t + 1 : urlpath.buf();
if (flags.isdir) {
mime_type = "text/html";
@@ -3272,7 +3272,7 @@
request->host,
portbuf,
"/%2f",
- request->urlpath.c_str());
+ request->urlpath.buf());
if ((t = strchr(buf, '?')))
*t = '\0';
Index: squid3/src/gopher.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/gopher.cc,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -r1.208 -r1.209
--- squid3/src/gopher.cc 23 May 2007 21:10:06 -0000 1.208
+++ squid3/src/gopher.cc 29 May 2007 13:31:40 -0000 1.209
@@ -1,6 +1,6 @@
/*
- * $Id: gopher.cc,v 1.208 2007/05/23 21:10:06 hno Exp $
+ * $Id: gopher.cc,v 1.209 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 10 Gopher
* AUTHOR: Harvest Derived
@@ -230,7 +230,7 @@
static void
gopher_request_parse(const HttpRequest * req, char *type_id, char *request)
{
- const char *path = req->urlpath.c_str();
+ const char *path = req->urlpath.buf();
if (request)
request[0] = '\0';
@@ -377,7 +377,7 @@
}
inbuf[len] = '\0';
- string outbuf;
+ String outbuf;
if (!gopherState->HTML_header_added) {
if (gopherState->conversion == gopher_ds::HTML_CSO_RESULT)
@@ -691,12 +691,12 @@
} /* while loop */
if (outbuf.size() > 0) {
- entry->append(outbuf.c_str(), outbuf.size());
+ entry->append(outbuf.buf(), outbuf.size());
/* now let start sending stuff to client */
entry->flush();
}
- outbuf.clear();
+ outbuf.clean();
return;
}
Index: squid3/src/http.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/http.cc,v
retrieving revision 1.522
retrieving revision 1.523
diff -u -r1.522 -r1.523
--- squid3/src/http.cc 18 May 2007 06:41:24 -0000 1.522
+++ squid3/src/http.cc 29 May 2007 13:31:40 -0000 1.523
@@ -1,6 +1,6 @@
/*
- * $Id: http.cc,v 1.522 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: http.cc,v 1.523 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
@@ -68,7 +68,7 @@
static PF httpStateFree;
static PF httpTimeout;
static void httpMaybeRemovePublic(StoreEntry *, http_status);
-static void copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, string strConnection, HttpRequest * request, HttpRequest * orig_request,
+static void copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, String strConnection, HttpRequest * request, HttpRequest * orig_request,
HttpHeader * hdr_out, int we_do_ranges, http_state_flags);
#if ICAP_CLIENT
static void icapAclCheckDoneWrapper(ICAPServiceRep::Pointer service, void *data);
@@ -92,7 +92,7 @@
const char *url;
if (_peer->options.originserver)
- url = orig_request->urlpath.c_str();
+ url = orig_request->urlpath.buf();
else
url = entry->url();
@@ -430,9 +430,9 @@
/* Pragma: no-cache in _replies_ is not documented in HTTP,
* but servers like "Active Imaging Webcast/2.0" sure do use it */
if (hdr->has(HDR_PRAGMA)) {
- string s = hdr->getList(HDR_PRAGMA);
+ String s = hdr->getList(HDR_PRAGMA);
const int no_cache = strListIsMember(&s, "no-cache", ',');
- s.clear();
+ s.clean();
if (no_cache) {
if (!REFRESH_OVERRIDE(ignore_no_cache))
@@ -584,14 +584,14 @@
const char *
httpMakeVaryMark(HttpRequest * request, HttpReply const * reply)
{
- string vary, hdr;
+ String vary, hdr;
const char *pos = NULL;
const char *item;
const char *value;
int ilen;
- static string vstr;
+ static String vstr;
- vstr.clear();
+ vstr.clean();
vary = reply->header.getList(HDR_VARY);
while (strListGetItem(&vary, ',', &item, &ilen, &pos)) {
@@ -602,14 +602,14 @@
if (strcmp(name, "*") == 0) {
/* Can not handle "Vary: *" withtout ETag support */
safe_free(name);
- vstr.clear();
+ vstr.clean();
break;
}
strListAdd(&vstr, name, ',');
hdr = request->header.getByName(name);
safe_free(name);
- value = hdr.c_str();
+ value = hdr.buf();
if (value) {
value = rfc1738_escape_part(value);
@@ -618,10 +618,10 @@
vstr.append("\"", 1);
}
- hdr.clear();
+ hdr.clean();
}
- vary.clear();
+ vary.clean();
#if X_ACCELERATOR_VARY
pos = NULL;
@@ -634,7 +634,7 @@
strListAdd(&vstr, name, ',');
hdr = request->header.getByName(name);
safe_free(name);
- value = hdr.c_str();
+ value = hdr.buf();
if (value) {
value = rfc1738_escape_part(value);
@@ -643,14 +643,14 @@
vstr.append("\"", 1);
}
- hdr.clear();
+ hdr.clean();
}
- vary.clear();
+ vary.clean();
#endif
- debugs(11, 3, "httpMakeVaryMark: " << vstr);
- return vstr.c_str();
+ debugs(11, 3, "httpMakeVaryMark: " << vstr.buf());
+ return vstr.buf();
}
void
@@ -1361,7 +1361,7 @@
LOCAL_ARRAY(char, bbuf, BBUF_SZ);
const HttpHeader *hdr_in = &orig_request->header;
const HttpHeaderEntry *e;
- string strFwd;
+ String strFwd;
HttpHeaderPos pos = HttpHeaderInitPos;
assert (hdr_out->owner == hoRequest);
/* append our IMS header */
@@ -1371,7 +1371,7 @@
bool we_do_ranges = decideIfWeDoRanges (orig_request);
- string strConnection (hdr_in->getList(HDR_CONNECTION));
+ String strConnection (hdr_in->getList(HDR_CONNECTION));
while ((e = hdr_in->getEntry(&pos)))
copyOneHeaderFromClientsideRequestToUpstreamRequest(e, strConnection, request, orig_request, hdr_out, we_do_ranges, flags);
@@ -1390,24 +1390,24 @@
/* append Via */
if (Config.onoff.via) {
- string strVia;
+ String strVia;
strVia = hdr_in->getList(HDR_VIA);
snprintf(bbuf, BBUF_SZ, "%d.%d %s",
orig_request->http_ver.major,
orig_request->http_ver.minor, ThisCache);
strListAdd(&strVia, bbuf, ',');
- hdr_out->putStr(HDR_VIA, strVia.c_str());
- strVia.clear();
+ hdr_out->putStr(HDR_VIA, strVia.buf());
+ strVia.clean();
}
#if ESI
{
/* Append Surrogate-Capabilities */
- string strSurrogate (hdr_in->getList(HDR_SURROGATE_CAPABILITY));
+ String strSurrogate (hdr_in->getList(HDR_SURROGATE_CAPABILITY));
snprintf(bbuf, BBUF_SZ, "%s=\"Surrogate/1.0 ESI/1.0\"",
Config.Accel.surrogate_id);
strListAdd(&strSurrogate, bbuf, ',');
- hdr_out->putStr(HDR_SURROGATE_CAPABILITY, strSurrogate.c_str());
+ hdr_out->putStr(HDR_SURROGATE_CAPABILITY, strSurrogate.buf());
}
#endif
@@ -1419,9 +1419,9 @@
else
strListAdd(&strFwd, "unknown", ',');
- hdr_out->putStr(HDR_X_FORWARDED_FOR, strFwd.c_str());
+ hdr_out->putStr(HDR_X_FORWARDED_FOR, strFwd.buf());
- strFwd.clear();
+ strFwd.clean();
/* append Host if not there already */
if (!hdr_out->has(HDR_HOST)) {
@@ -1455,7 +1455,7 @@
if (orig_request->auth_user_request)
username = orig_request->auth_user_request->username();
else if (orig_request->extacl_user.size())
- username = orig_request->extacl_user.c_str();
+ username = orig_request->extacl_user.buf();
snprintf(loginbuf, sizeof(loginbuf), "%s%s", username, orig_request->peer_login + 1);
@@ -1464,7 +1464,7 @@
} else if (strcmp(orig_request->peer_login, "PASS") == 0) {
if (orig_request->extacl_user.size() && orig_request->extacl_passwd.size()) {
char loginbuf[256];
- snprintf(loginbuf, sizeof(loginbuf), "%s:%s", orig_request->extacl_user.c_str(), orig_request->extacl_passwd.c_str());
+ snprintf(loginbuf, sizeof(loginbuf), "%s:%s", orig_request->extacl_user.buf(), orig_request->extacl_passwd.buf());
httpHeaderPutStrf(hdr_out, HDR_PROXY_AUTHORIZATION, "Basic %s",
base64_encode(loginbuf));
}
@@ -1491,7 +1491,7 @@
hdr_out->putStr(HDR_AUTHORIZATION, auth);
} else if (orig_request->extacl_user.size() && orig_request->extacl_passwd.size()) {
char loginbuf[256];
- snprintf(loginbuf, sizeof(loginbuf), "%s:%s", orig_request->extacl_user.c_str(), orig_request->extacl_passwd.c_str());
+ snprintf(loginbuf, sizeof(loginbuf), "%s:%s", orig_request->extacl_user.buf(), orig_request->extacl_passwd.buf());
httpHeaderPutStrf(hdr_out, HDR_AUTHORIZATION, "Basic %s",
base64_encode(loginbuf));
}
@@ -1503,7 +1503,7 @@
if (orig_request->auth_user_request)
username = orig_request->auth_user_request->username();
else if (orig_request->extacl_user.size())
- username = orig_request->extacl_user.c_str();
+ username = orig_request->extacl_user.buf();
snprintf(loginbuf, sizeof(loginbuf), "%s%s", username, orig_request->peer_login + 1);
@@ -1528,7 +1528,7 @@
httpHdrCcSetMaxAge(cc, getMaxAge(url));
if (request->urlpath.size())
- assert(strstr(url, request->urlpath.c_str()));
+ assert(strstr(url, request->urlpath.buf()));
}
/* Set no-cache if determined needed but not found */
@@ -1563,16 +1563,16 @@
if (Config2.onoff.mangle_request_headers)
httpHdrMangleList(hdr_out, request, ROR_REQUEST);
- strConnection.clear();
+ strConnection.clean();
}
void
-copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, string strConnection, HttpRequest * request, HttpRequest * orig_request, HttpHeader * hdr_out, int we_do_ranges, http_state_flags flags)
+copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, String strConnection, HttpRequest * request, HttpRequest * orig_request, HttpHeader * hdr_out, int we_do_ranges, http_state_flags flags)
{
- debugs(11, 5, "httpBuildRequestHeader: " << e->name << ": " << e->value);
+ debugs(11, 5, "httpBuildRequestHeader: " << e->name.buf() << ": " << e->value.buf());
if (!httpRequestHdrAllowed(e, &strConnection)) {
- debugs(11, 2, "'" << e->name << "' header denied by anonymize_headers configuration");
+ debugs(11, 2, "'" << e->name.buf() << "' header denied by anonymize_headers configuration");
return;
}
@@ -1731,7 +1731,7 @@
HttpVersion httpver(1, 0);
mb->Printf("%s %s HTTP/%d.%d\r\n",
RequestMethodStr[request->method],
- request->urlpath.size() ? request->urlpath.c_str() : "/",
+ request->urlpath.size() ? request->urlpath.buf() : "/",
httpver.major,httpver.minor);
/* build and pack headers */
{
Index: squid3/src/ident.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ident.cc,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- squid3/src/ident.cc 18 May 2007 06:41:24 -0000 1.76
+++ squid3/src/ident.cc 29 May 2007 13:31:40 -0000 1.77
@@ -1,6 +1,6 @@
/*
- * $Id: ident.cc,v 1.76 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: ident.cc,v 1.77 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 30 Ident (RFC 931)
* AUTHOR: Duane Wessels
@@ -270,7 +270,7 @@
void
identInit(void)
{
- ident_hash = hash_create((HASHCMP *) std::strcmp,
+ ident_hash = hash_create((HASHCMP *) strcmp,
hashPrime(Squid_MaxFD / 8),
hash4);
}
Index: squid3/src/internal.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/internal.cc,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- squid3/src/internal.cc 18 May 2007 06:41:24 -0000 1.46
+++ squid3/src/internal.cc 29 May 2007 13:31:40 -0000 1.47
@@ -1,6 +1,6 @@
/*
- * $Id: internal.cc,v 1.46 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: internal.cc,v 1.47 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 76 Internal Squid Object handling
* AUTHOR: Duane, Alex, Henrik
@@ -50,7 +50,7 @@
internalStart(HttpRequest * request, StoreEntry * entry)
{
ErrorState *err;
- const char *upath = request->urlpath.c_str();
+ const char *upath = request->urlpath.buf();
debugs(76, 3, "internalStart: " << inet_ntoa(request->client_addr) << " requesting '" << upath << "'");
if (0 == strcmp(upath, "/squid-internal-dynamic/netdb")) {
Index: squid3/src/ipcache.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ipcache.cc,v
retrieving revision 1.260
retrieving revision 1.261
diff -u -r1.260 -r1.261
--- squid3/src/ipcache.cc 18 May 2007 06:41:24 -0000 1.260
+++ squid3/src/ipcache.cc 29 May 2007 13:31:40 -0000 1.261
@@ -1,6 +1,6 @@
/*
- * $Id: ipcache.cc,v 1.260 2007/05/18 06:41:24 amosjeffries Exp $
+ * $Id: ipcache.cc,v 1.261 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 14 IP Cache
* AUTHOR: Harvest Derived
@@ -586,7 +586,7 @@
ipcache_low = (long) (((float) Config.ipcache.size *
(float) Config.ipcache.low) / (float) 100);
n = hashPrime(ipcache_high / 4);
- ip_table = hash_create((HASHCMP *) std::strcmp, n, hash4);
+ ip_table = hash_create((HASHCMP *) strcmp, n, hash4);
memDataInit(MEM_IPCACHE_ENTRY, "ipcache_entry", sizeof(ipcache_entry), 0);
}
Index: squid3/src/net_db.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/net_db.cc,v
retrieving revision 1.195
retrieving revision 1.196
diff -u -r1.195 -r1.196
--- squid3/src/net_db.cc 18 May 2007 06:41:25 -0000 1.195
+++ squid3/src/net_db.cc 29 May 2007 13:31:40 -0000 1.196
@@ -1,6 +1,6 @@
/*
- * $Id: net_db.cc,v 1.195 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: net_db.cc,v 1.196 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 38 Network Measurement Database
* AUTHOR: Duane Wessels
@@ -892,11 +892,11 @@
n = hashPrime(Config.Netdb.high / 4);
- addr_table = hash_create((HASHCMP *) std::strcmp, n, hash_string);
+ addr_table = hash_create((HASHCMP *) strcmp, n, hash_string);
n = hashPrime(3 * Config.Netdb.high / 4);
- host_table = hash_create((HASHCMP *) std::strcmp, n, hash_string);
+ host_table = hash_create((HASHCMP *) strcmp, n, hash_string);
eventAddIsh("netdbSaveState", netdbSaveState, NULL, 3600.0, 1);
Index: squid3/src/pconn.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/pconn.cc,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- squid3/src/pconn.cc 18 May 2007 06:41:25 -0000 1.52
+++ squid3/src/pconn.cc 29 May 2007 13:31:40 -0000 1.53
@@ -1,6 +1,6 @@
/*
- * $Id: pconn.cc,v 1.52 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: pconn.cc,v 1.53 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 48 Persistent Connections
* AUTHOR: Duane Wessels
@@ -217,7 +217,7 @@
PconnPool::PconnPool(const char *aDescr) : table(NULL), descr(aDescr)
{
int i;
- table = hash_create((HASHCMP *) std::strcmp, 229, hash_string);
+ table = hash_create((HASHCMP *) strcmp, 229, hash_string);
for (i = 0; i < PCONN_HIST_SZ; i++)
hist[i] = 0;
Index: squid3/src/peer_digest.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/peer_digest.cc,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -r1.124 -r1.125
--- squid3/src/peer_digest.cc 18 May 2007 06:41:25 -0000 1.124
+++ squid3/src/peer_digest.cc 29 May 2007 13:31:40 -0000 1.125
@@ -1,6 +1,6 @@
/*
- * $Id: peer_digest.cc,v 1.124 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: peer_digest.cc,v 1.125 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 72 Peer Digest Routines
* AUTHOR: Alex Rousskov
@@ -112,7 +112,7 @@
if (pd->cd)
cacheDigestDestroy(pd->cd);
- pd->host.clear();
+ pd->host.clean();
}
CBDATA_CLASS_INIT(PeerDigest);
@@ -231,7 +231,7 @@
{
eventAdd("peerDigestCheck", peerDigestCheck, pd, (double) delay, 1);
pd->times.next_check = squid_curtime + delay;
- debugs(72, 3, "peerDigestSetCheck: will check peer " << pd->host << " in " << delay << " secs");
+ debugs(72, 3, "peerDigestSetCheck: will check peer " << pd->host.buf() << " in " << delay << " secs");
}
/*
@@ -241,10 +241,10 @@
peerDigestNotePeerGone(PeerDigest * pd)
{
if (pd->flags.requested) {
- debugs(72, 2, "peerDigest: peer " << pd->host << " gone, will destroy after fetch.");
+ debugs(72, 2, "peerDigest: peer " << pd->host.buf() << " gone, will destroy after fetch.");
/* do nothing now, the fetching chain will notice and take action */
} else {
- debugs(72, 2, "peerDigest: peer " << pd->host << " is gone, destroying now.");
+ debugs(72, 2, "peerDigest: peer " << pd->host.buf() << " is gone, destroying now.");
peerDigestDestroy(pd);
}
}
@@ -279,7 +279,7 @@
/* per-peer limit */
if (req_time - pd->times.received < PeerDigestReqMinGap) {
- debugs(72, 2, "peerDigestCheck: " << pd->host <<
+ debugs(72, 2, "peerDigestCheck: " << pd->host.buf() <<
", avoiding close peer requests (" <<
(int) (req_time - pd->times.received) << " < " <<
(int) PeerDigestReqMinGap << " secs).");
@@ -289,7 +289,7 @@
/* global limit */
if (req_time - pd_last_req_time < GlobDigestReqMinGap) {
- debugs(72, 2, "peerDigestCheck: " << pd->host <<
+ debugs(72, 2, "peerDigestCheck: " << pd->host.buf() <<
", avoiding close requests (" <<
(int) (req_time - pd_last_req_time) << " < " <<
(int) GlobDigestReqMinGap << " secs).");
@@ -546,7 +546,7 @@
assert(reply);
assert (reply->sline.status != 0);
status = reply->sline.status;
- debugs(72, 3, "peerDigestFetchReply: " << pd->host << " status: " << status <<
+ debugs(72, 3, "peerDigestFetchReply: " << pd->host.buf() << " status: " << status <<
", expires: " << (long int) reply->expires << " (" << std::showpos <<
(int) (reply->expires - squid_curtime) << ")");
@@ -636,7 +636,7 @@
assert (fetch->entry->getReply()->sline.status != 0);
if (fetch->entry->getReply()->sline.status != HTTP_OK) {
- debugs(72, 1, "peerDigestSwapInHeaders: " << fetch->pd->host <<
+ debugs(72, 1, "peerDigestSwapInHeaders: " << fetch->pd->host.buf() <<
" status " << fetch->entry->getReply()->sline.status <<
" got cached!");
@@ -764,7 +764,7 @@
#endif
else
- host = pd->host.c_str();
+ host = pd->host.buf();
}
debugs(72, 6, step_name << ": peer " << host << ", offset: " <<
@@ -815,7 +815,7 @@
peerDigestFetchStop(DigestFetchState * fetch, char *buf, const char *reason)
{
assert(reason);
- debugs(72, 2, "peerDigestFetchStop: peer " << fetch->pd->host << ", reason: " << reason);
+ debugs(72, 2, "peerDigestFetchStop: peer " << fetch->pd->host.buf() << ", reason: " << reason);
peerDigestReqFinish(fetch, buf, 1, 1, 1, reason, 0);
}
@@ -824,7 +824,7 @@
peerDigestFetchAbort(DigestFetchState * fetch, char *buf, const char *reason)
{
assert(reason);
- debugs(72, 2, "peerDigestFetchAbort: peer " << fetch->pd->host << ", reason: " << reason);
+ debugs(72, 2, "peerDigestFetchAbort: peer " << fetch->pd->host.buf() << ", reason: " << reason);
peerDigestReqFinish(fetch, buf, 1, 1, 1, reason, 1);
}
@@ -874,7 +874,7 @@
peerDigestPDFinish(DigestFetchState * fetch, int pcb_valid, int err)
{
PeerDigest *pd = fetch->pd;
- const char *host = pd->host.c_str();
+ const char *host = pd->host.buf();
pd->times.received = squid_curtime;
pd->times.req_delay = fetch->resp_time;
@@ -988,7 +988,7 @@
{
StoreDigestCBlock cblock;
int freed_size = 0;
- const char *host = pd->host.c_str();
+ const char *host = pd->host.buf();
xmemcpy(&cblock, buf, sizeof(cblock));
/* network -> host conversions */
@@ -1082,7 +1082,7 @@
const int bit_util = cacheDigestBitUtil(pd->cd);
if (bit_util > 65) {
- debugs(72, 0, "Warning: " << pd->host <<
+ debugs(72, 0, "Warning: " << pd->host.buf() <<
" peer digest has too many bits on (" << bit_util << "%%).");
return 0;
@@ -1108,7 +1108,7 @@
assert(pd);
- const char *host = pd->host.c_str();
+ const char *host = pd->host.buf();
storeAppendPrintf(e, "\npeer digest from %s\n", host);
cacheDigestGuessStatsReport(&pd->stats.guess, e, host);
Index: squid3/src/protos.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/protos.h,v
retrieving revision 1.546
retrieving revision 1.547
diff -u -r1.546 -r1.547
--- squid3/src/protos.h 23 May 2007 21:10:07 -0000 1.546
+++ squid3/src/protos.h 29 May 2007 13:31:40 -0000 1.547
@@ -1,6 +1,6 @@
/*
- * $Id: protos.h,v 1.546 2007/05/23 21:10:07 hno Exp $
+ * $Id: protos.h,v 1.547 2007/05/29 13:31:40 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -222,7 +222,7 @@
SQUIDCEXTERN void httpHdrCcInitModule(void);
SQUIDCEXTERN void httpHdrCcCleanModule(void);
SQUIDCEXTERN HttpHdrCc *httpHdrCcCreate(void);
-SQUIDCEXTERN HttpHdrCc *httpHdrCcParseCreate(const string * str);
+SQUIDCEXTERN HttpHdrCc *httpHdrCcParseCreate(const String * str);
SQUIDCEXTERN void httpHdrCcDestroy(HttpHdrCc * cc);
SQUIDCEXTERN HttpHdrCc *httpHdrCcDup(const HttpHdrCc * cc);
SQUIDCEXTERN void httpHdrCcPackInto(const HttpHdrCc * cc, Packer * p);
@@ -234,14 +234,14 @@
/* Http Header Tools */
SQUIDCEXTERN HttpHeaderFieldInfo *httpHeaderBuildFieldsInfo(const HttpHeaderFieldAttrs * attrs, int count);
SQUIDCEXTERN void httpHeaderDestroyFieldsInfo(HttpHeaderFieldInfo * info, int count);
-SQUIDCEXTERN http_hdr_type httpHeaderIdByName(const char *name, unsigned int name_len, const HttpHeaderFieldInfo * attrs, int end);
+SQUIDCEXTERN http_hdr_type httpHeaderIdByName(const char *name, int name_len, const HttpHeaderFieldInfo * attrs, int end);
SQUIDCEXTERN http_hdr_type httpHeaderIdByNameDef(const char *name, int name_len);
SQUIDCEXTERN const char *httpHeaderNameById(int id);
SQUIDCEXTERN int httpHeaderHasConnDir(const HttpHeader * hdr, const char *directive);
-SQUIDCEXTERN void strListAdd(string * str, const char *item, char del);
-SQUIDCEXTERN int strListIsMember(const string * str, const char *item, char del);
-SQUIDCEXTERN int strListIsSubstr(const string * list, const char *s, char del);
-SQUIDCEXTERN int strListGetItem(const string * str, char del, const char **item, int *ilen, const char **pos);
+SQUIDCEXTERN void strListAdd(String * str, const char *item, char del);
+SQUIDCEXTERN int strListIsMember(const String * str, const char *item, char del);
+SQUIDCEXTERN int strListIsSubstr(const String * list, const char *s, char del);
+SQUIDCEXTERN int strListGetItem(const String * str, char del, const char **item, int *ilen, const char **pos);
SQUIDCEXTERN const char *getStringPrefix(const char *str, const char *end);
SQUIDCEXTERN int httpHeaderParseInt(const char *start, int *val);
SQUIDCEXTERN int httpHeaderParseSize(const char *start, ssize_t * sz);
Index: squid3/src/redirect.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/redirect.cc,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -r1.119 -r1.120
--- squid3/src/redirect.cc 18 May 2007 06:41:25 -0000 1.119
+++ squid3/src/redirect.cc 29 May 2007 13:31:40 -0000 1.120
@@ -1,6 +1,6 @@
/*
- * $Id: redirect.cc,v 1.119 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: redirect.cc,v 1.120 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 61 Redirector
* AUTHOR: Duane Wessels
@@ -135,8 +135,8 @@
if (http->request->auth_user_request)
r->client_ident = http->request->auth_user_request->username();
- else if (!http->request->extacl_user.empty()) {
- r->client_ident = http->request->extacl_user.c_str();
+ else if (http->request->extacl_user.buf() != NULL) {
+ r->client_ident = http->request->extacl_user.buf();
}
if (!r->client_ident && (conn != NULL && conn->rfc931[0]))
Index: squid3/src/stat.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/stat.cc,v
retrieving revision 1.406
retrieving revision 1.407
diff -u -r1.406 -r1.407
--- squid3/src/stat.cc 18 May 2007 06:41:25 -0000 1.406
+++ squid3/src/stat.cc 29 May 2007 13:31:40 -0000 1.407
@@ -1,5 +1,5 @@
/*
- * $Id: stat.cc,v 1.406 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: stat.cc,v 1.407 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 18 Cache Manager Statistics
* AUTHOR: Harvest Derived
@@ -1692,8 +1692,8 @@
if (http->request->auth_user_request)
p = http->request->auth_user_request->username();
- else if (!http->request->extacl_user.empty()) {
- p = http->request->extacl_user.c_str();
+ else if (http->request->extacl_user.buf() != NULL) {
+ p = http->request->extacl_user.buf();
}
if (!p && (conn != NULL && conn->rfc931[0]))
Index: squid3/src/store.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/store.cc,v
retrieving revision 1.614
retrieving revision 1.615
diff -u -r1.614 -r1.615
--- squid3/src/store.cc 18 May 2007 06:41:25 -0000 1.614
+++ squid3/src/store.cc 29 May 2007 13:31:40 -0000 1.615
@@ -1,6 +1,6 @@
/*
- * $Id: store.cc,v 1.614 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: store.cc,v 1.615 2007/05/29 13:31:40 amosjeffries Exp $
*
* DEBUG: section 20 Storage Manager
* AUTHOR: Harvest Derived
@@ -685,7 +685,7 @@
if (mem_obj->vary_headers && !storeGetPublic(mem_obj->url, mem_obj->method)) {
/* Create "vary" base object */
- string vary;
+ String vary;
StoreEntry *pe = storeCreateEntry(mem_obj->url, mem_obj->log_url, request->flags, request->method);
HttpVersion version(1, 0);
/* We are allowed to do this typecast */
@@ -693,19 +693,19 @@
rep->setHeaders(version, HTTP_OK, "Internal marker object", "x-squid-internal/vary", -1, -1, squid_curtime + 100000);
vary = mem_obj->getReply()->header.getList(HDR_VARY);
- if (!vary.empty()) {
+ if (vary.size()) {
/* Again, we own this structure layout */
- rep->header.putStr(HDR_VARY, vary.c_str());
- vary.clear();
+ rep->header.putStr(HDR_VARY, vary.buf());
+ vary.clean();
}
#if X_ACCELERATOR_VARY
vary = mem_obj->getReply()->header.getList(HDR_X_ACCELERATOR_VARY);
- if (!vary.empty()) {
+ if (vary.buf()) {
/* Again, we own this structure layout */
- rep->header.putStr(HDR_X_ACCELERATOR_VARY, vary.c_str());
- vary.clear();
+ rep->header.putStr(HDR_X_ACCELERATOR_VARY, vary.buf());
+ vary.clean();
}
#endif
Index: squid3/src/store_dir.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/store_dir.cc,v
retrieving revision 1.160
retrieving revision 1.161
diff -u -r1.160 -r1.161
--- squid3/src/store_dir.cc 18 May 2007 06:41:25 -0000 1.160
+++ squid3/src/store_dir.cc 29 May 2007 13:31:41 -0000 1.161
@@ -1,6 +1,6 @@
/*
- * $Id: store_dir.cc,v 1.160 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: store_dir.cc,v 1.161 2007/05/29 13:31:41 amosjeffries Exp $
*
* DEBUG: section 47 Store Directory Routines
* AUTHOR: Duane Wessels
@@ -502,7 +502,7 @@
}
StoreSearch *
-StoreController::search(string const url, HttpRequest *request)
+StoreController::search(String const url, HttpRequest *request)
{
/* cheat, for now you can't search the memory hot cache */
return swapDir->search(url, request);
@@ -700,7 +700,7 @@
void
StoreController::get
- (string const key, STOREGETCLIENT callback, void *cbdata)
+ (String const key, STOREGETCLIENT callback, void *cbdata)
{
fatal("not implemented");
}
@@ -775,7 +775,7 @@
void
StoreHashIndex::get
- (string const key, STOREGETCLIENT callback, void *cbdata)
+ (String const key, STOREGETCLIENT callback, void *cbdata)
{
fatal("not implemented");
}
@@ -891,7 +891,7 @@
}
StoreSearch *
-StoreHashIndex::search(string const url, HttpRequest *)
+StoreHashIndex::search(String const url, HttpRequest *)
{
if (url.size())
fatal ("Cannot search by url yet\n");
Index: squid3/src/store_log.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/store_log.cc,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- squid3/src/store_log.cc 18 May 2007 06:41:25 -0000 1.33
+++ squid3/src/store_log.cc 29 May 2007 13:31:41 -0000 1.34
@@ -1,6 +1,6 @@
/*
- * $Id: store_log.cc,v 1.33 2007/05/18 06:41:25 amosjeffries Exp $
+ * $Id: store_log.cc,v 1.34 2007/05/29 13:31:41 amosjeffries Exp $
*
* DEBUG: section 20 Storage Manager Logging Functions
* AUTHOR: Duane Wessels
@@ -87,7 +87,7 @@
(int) reply->date,
(int) reply->last_modified,
(int) reply->expires,
- !reply->content_type.empty() ? reply->content_type.c_str() : "unknown",
+ reply->content_type.size() ? reply->content_type.buf() : "unknown",
reply->content_length,
e->contentLen(),
RequestMethodStr[mem->method],
Index: squid3/src/structs.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/structs.h,v
retrieving revision 1.557
retrieving revision 1.558
diff -u -r1.557 -r1.558
--- squid3/src/structs.h 26 May 2007 06:38:05 -0000 1.557
+++ squid3/src/structs.h 29 May 2007 13:31:41 -0000 1.558
@@ -1,6 +1,6 @@
/*
- * $Id: structs.h,v 1.557 2007/05/26 06:38:05 wessels Exp $
+ * $Id: structs.h,v 1.558 2007/05/29 13:31:41 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -843,8 +843,8 @@
class HttpHdrExtField
{
- string name; /* field-name from HTTP/1.1 (no column after name) */
- string value; /* field-value from HTTP/1.1 */
+ String name; /* field-name from HTTP/1.1 (no column after name) */
+ String value; /* field-value from HTTP/1.1 */
};
/* http cache control header field */
@@ -857,7 +857,7 @@
int max_age;
int s_maxage;
int max_stale;
- string other;
+ String other;
};
/* some fields can hold either time or etag specs (e.g. If-Range) */
@@ -893,7 +893,7 @@
HttpHeaderFieldInfo() : id (HDR_ACCEPT), type (ftInvalid){}
http_hdr_type id;
- string name;
+ String name;
field_type type;
HttpHeaderFieldStat stat;
};
Index: squid3/src/url.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/url.cc,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -r1.161 -r1.162
--- squid3/src/url.cc 23 May 2007 21:10:07 -0000 1.161
+++ squid3/src/url.cc 29 May 2007 13:31:41 -0000 1.162
@@ -1,6 +1,6 @@
/*
- * $Id: url.cc,v 1.161 2007/05/23 21:10:07 hno Exp $
+ * $Id: url.cc,v 1.162 2007/05/29 13:31:41 amosjeffries Exp $
*
* DEBUG: section 23 URL Parsing
* AUTHOR: Duane Wessels
@@ -236,7 +236,7 @@
for (t = host; *t; t++)
*t = xtolower(*t);
- if (strpbrk(host, w_space) != NULL) {
+ if (stringHasWhitespace(host)) {
if (URI_WHITESPACE_STRIP == Config.uri_whitespace) {
t = q = host;
@@ -284,7 +284,7 @@
}
#endif
- if (strpbrk(urlpath, w_space) != NULL) {
+ if (stringHasWhitespace(urlpath)) {
debugs(23, 2, "urlParse: URI has whitespace: {" << url << "}");
switch (Config.uri_whitespace) {
@@ -349,7 +349,7 @@
return request->canonical;
if (request->protocol == PROTO_URN) {
- snprintf(urlbuf, MAX_URL, "urn:%s", request->urlpath.c_str());
+ snprintf(urlbuf, MAX_URL, "urn:%s", request->urlpath.buf());
} else {
switch (request->method) {
@@ -369,7 +369,7 @@
*request->login ? "@" : null_string,
request->host,
portbuf,
- request->urlpath.c_str());
+ request->urlpath.buf());
break;
}
@@ -378,22 +378,6 @@
return (request->canonical = xstrdup(urlbuf));
}
-int
-stringHasCntl(const char *s)
-{
- unsigned char c;
-
- while ((c = (unsigned char) *s++) != '\0') {
- if (c <= 0x1f)
- return 1;
-
- if (c >= 0x7f && c <= 0x9f)
- return 1;
- }
-
- return 0;
-}
-
char *
urlCanonicalClean(const HttpRequest * request)
{
@@ -403,7 +387,7 @@
char *t;
if (request->protocol == PROTO_URN) {
- snprintf(buf, MAX_URL, "urn:%s", request->urlpath.c_str());
+ snprintf(buf, MAX_URL, "urn:%s", request->urlpath.buf());
} else {
switch (request->method) {
@@ -433,7 +417,7 @@
loginbuf,
request->host,
portbuf,
- request->urlpath.c_str());
+ request->urlpath.buf());
/*
* strip arguments AFTER a question-mark
*/
Index: squid3/src/urn.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/urn.cc,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -r1.106 -r1.107
--- squid3/src/urn.cc 18 May 2007 06:41:26 -0000 1.106
+++ squid3/src/urn.cc 29 May 2007 13:31:41 -0000 1.107
@@ -1,6 +1,6 @@
/*
- * $Id: urn.cc,v 1.106 2007/05/18 06:41:26 amosjeffries Exp $
+ * $Id: urn.cc,v 1.107 2007/05/29 13:31:41 amosjeffries Exp $
*
* DEBUG: section 52 URN Parsing
* AUTHOR: Kostas Anagnostakis
@@ -53,11 +53,11 @@
void *operator new (size_t byteCount);
void operator delete (void *address);
void start (HttpRequest *, StoreEntry *);
- char *getHost (string &urlpath);
+ char *getHost (String &urlpath);
void setUriResFromRequest(HttpRequest *);
bool RequestNeedsMenu(HttpRequest *r);
void updateRequestURL(HttpRequest *r, char const *newPath);
- void createUriResRequest (string &uri);
+ void createUriResRequest (String &uri);
virtual ~UrnState();
@@ -174,17 +174,17 @@
}
char *
-UrnState::getHost (string &urlpath)
+UrnState::getHost (String &urlpath)
{
char * result;
char const *t;
if ((t = urlpath.pos(':')) != NULL) {
urlpath.set(t, '\0');
- result = xstrdup(urlpath.c_str());
+ result = xstrdup(urlpath.buf());
urlpath.set(t, ':');
} else {
- result = xstrdup(urlpath.c_str());
+ result = xstrdup(urlpath.buf());
}
return result;
@@ -193,7 +193,7 @@
bool
UrnState::RequestNeedsMenu(HttpRequest *r)
{
- return strncasecmp(r->urlpath, "menu.", 5) == 0;
+ return strncasecmp(r->urlpath.buf(), "menu.", 5) == 0;
}
void
@@ -205,11 +205,11 @@
}
void
-UrnState::createUriResRequest (string &uri)
+UrnState::createUriResRequest (String &uri)
{
LOCAL_ARRAY(char, local_urlres, 4096);
char *host = getHost (uri);
- snprintf(local_urlres, 4096, "http://%s/uri-res/N2L?urn:%s", host, uri.c_str());
+ snprintf(local_urlres, 4096, "http://%s/uri-res/N2L?urn:%s", host, uri.buf());
safe_free (host);
safe_free (urlres);
urlres = xstrdup (local_urlres);
@@ -220,7 +220,7 @@
UrnState::setUriResFromRequest(HttpRequest *r)
{
if (RequestNeedsMenu(r)) {
- updateRequestURL(r, r->urlpath.c_str() + 5);
+ updateRequestURL(r, r->urlpath.buf() + 5);
flags.force_menu = 1;
}
Index: squid3/src/whois.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/whois.cc,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- squid3/src/whois.cc 18 May 2007 06:41:26 -0000 1.44
+++ squid3/src/whois.cc 29 May 2007 13:31:41 -0000 1.45
@@ -1,6 +1,6 @@
/*
- * $Id: whois.cc,v 1.44 2007/05/18 06:41:26 amosjeffries Exp $
+ * $Id: whois.cc,v 1.45 2007/05/29 13:31:41 amosjeffries Exp $
*
* DEBUG: section 75 WHOIS protocol
* AUTHOR: Duane Wessels, Kostas Anagnostakis
@@ -100,7 +100,7 @@
buf = (char *)xmalloc(l);
- snprintf(buf, l, "%s\r\n", p->request->urlpath.c_str() + 1);
+ snprintf(buf, l, "%s\r\n", p->request->urlpath.buf() + 1);
comm_write(fd, buf, strlen(buf), whoisWriteComplete, p, NULL);
comm_read(fd, p->buf, BUFSIZ, whoisReadReply, p);
Index: squid3/src/DiskIO/AIO/AIODiskFile.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/DiskIO/AIO/AIODiskFile.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/DiskIO/AIO/AIODiskFile.cc 19 May 2007 05:03:48 -0000 1.5
+++ squid3/src/DiskIO/AIO/AIODiskFile.cc 29 May 2007 13:31:43 -0000 1.6
@@ -1,6 +1,6 @@
/*
- * $Id: AIODiskFile.cc,v 1.5 2007/05/19 05:03:48 amosjeffries Exp $
+ * $Id: AIODiskFile.cc,v 1.6 2007/05/29 13:31:43 amosjeffries Exp $
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* ----------------------------------------------------------
@@ -85,10 +85,10 @@
{
/* Simulate async calls */
#ifdef _SQUID_WIN32_
- fd = aio_open(path.c_str(), flags);
+ fd = aio_open(path.buf(), flags);
#else
- fd = file_open(path.c_str() , flags);
+ fd = file_open(path.buf() , flags);
#endif
ioRequestor = callback;
Index: squid3/src/DiskIO/AIO/AIODiskFile.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/DiskIO/AIO/AIODiskFile.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/DiskIO/AIO/AIODiskFile.h 18 May 2007 06:41:27 -0000 1.3
+++ squid3/src/DiskIO/AIO/AIODiskFile.h 29 May 2007 13:31:43 -0000 1.4
@@ -1,6 +1,6 @@
/*
- * $Id: AIODiskFile.h,v 1.3 2007/05/18 06:41:27 amosjeffries Exp $
+ * $Id: AIODiskFile.h,v 1.4 2007/05/29 13:31:43 amosjeffries Exp $
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* ----------------------------------------------------------
@@ -70,7 +70,7 @@
CBDATA_CLASS(AIODiskFile);
void error(bool const &);
int fd;
- string path;
+ String path;
AIODiskIOStrategy *strategy;
RefCount<IORequestor> ioRequestor;
bool closed;
Index: squid3/src/ICAP/ICAPConfig.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPConfig.cc,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- squid3/src/ICAP/ICAPConfig.cc 18 May 2007 06:41:29 -0000 1.15
+++ squid3/src/ICAP/ICAPConfig.cc 29 May 2007 13:31:43 -0000 1.16
@@ -1,6 +1,6 @@
/*
- * $Id: ICAPConfig.cc,v 1.15 2007/05/18 06:41:29 amosjeffries Exp $
+ * $Id: ICAPConfig.cc,v 1.16 2007/05/29 13:31:43 amosjeffries Exp $
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* ----------------------------------------------------------
@@ -48,7 +48,7 @@
ICAPConfig TheICAPConfig;
ICAPServiceRep::Pointer
-ICAPConfig::findService(const string& key)
+ICAPConfig::findService(const String& key)
{
Vector<ICAPServiceRep::Pointer>::iterator iter = services.begin();
@@ -63,7 +63,7 @@
}
ICAPClass *
-ICAPConfig::findClass(const string& key)
+ICAPConfig::findClass(const String& key)
{
if (!key.size())
return NULL;
@@ -87,7 +87,7 @@
wordlist *service_names = NULL;
wordlist *iter;
- ConfigParser::ParseString(key);
+ ConfigParser::ParseString(&key);
ConfigParser::ParseWordList(&service_names);
for (iter = service_names; iter; iter = iter->next) {
@@ -125,7 +125,7 @@
candidateClasses.clean();
- matchedClass.clear();
+ matchedClass.clean();
acl_checklist = NULL;
@@ -159,7 +159,7 @@
ICAPClass *c = *ci;
ICAPServiceRep::Pointer service = findBestService(c, false);
if (service != NULL) {
- debugs(93, 3, "ICAPAccessCheck::check: class '" << c->key << "' has candidate service '" << service->key << "'");
+ debugs(93, 3, "ICAPAccessCheck::check: class '" << c->key.buf() << "' has candidate service '" << service->key.buf() << "'");
candidateClasses += c->key;
}
}
@@ -193,7 +193,7 @@
*/
debugs(93, 3, "ICAPAccessCheck::check: NO candidates or matches found");
- matchedClass.clear();
+ matchedClass.clean();
ICAPAccessCheckCallbackWrapper(1, this);
@@ -207,7 +207,7 @@
ICAPAccessCheck *ac = (ICAPAccessCheck*)data;
if (ac->matchedClass.size()) {
- debugs(93, 5, "ICAPAccessCheckCallbackWrapper matchedClass = " << ac->matchedClass);
+ debugs(93, 5, "ICAPAccessCheckCallbackWrapper matchedClass = " << ac->matchedClass.buf());
}
if (!answer) {
@@ -241,7 +241,7 @@
debugs(93, 3, "ICAPAccessCheck::do_callback");
if (matchedClass.size()) {
- debugs(93, 3, "ICAPAccessCheck::do_callback matchedClass = " << matchedClass);
+ debugs(93, 3, "ICAPAccessCheck::do_callback matchedClass = " << matchedClass.buf());
}
void *validated_cbdata;
@@ -351,8 +351,8 @@
for (VI i = services.begin(); i != services.end(); ++i) {
const ICAPServiceRep::Pointer &r = *i;
- storeAppendPrintf(entry, "%s %s_%s %s %d %s\n", name, r->key.c_str(),
- r->methodStr(), r->vectPointStr(), r->bypass, r->uri.c_str());
+ storeAppendPrintf(entry, "%s %s_%s %s %d %s\n", name, r->key.buf(),
+ r->methodStr(), r->vectPointStr(), r->bypass, r->uri.buf());
}
};
@@ -380,7 +380,7 @@
Vector<ICAPClass*>::iterator i = classes.begin();
while (i != classes.end()) {
- storeAppendPrintf(entry, "%s %s\n", name, (*i)->key.c_str());
+ storeAppendPrintf(entry, "%s %s\n", name, (*i)->key.buf());
++i;
}
};
@@ -388,13 +388,13 @@
void
ICAPConfig::parseICAPAccess(ConfigParser &parser)
{
- string aKey;
- ConfigParser::ParseString(aKey);
+ String aKey;
+ ConfigParser::ParseString(&aKey);
ICAPClass *theClass = TheICAPConfig.findClass(aKey);
if (theClass == NULL)
fatalf("Did not find ICAP class '%s' referenced on line %d\n",
- aKey.c_str(), config_lineno);
+ aKey.buf(), config_lineno);
aclParseAccessLine(parser, &theClass->accessList);
};
@@ -413,7 +413,7 @@
Vector<ICAPClass*>::iterator i = classes.begin();
while (i != classes.end()) {
- snprintf(nom, 64, "%s %s", name, (*i)->key.c_str());
+ snprintf(nom, 64, "%s %s", name, (*i)->key.buf());
dump_acl_access(entry, nom, (*i)->accessList);
++i;
}
Index: squid3/src/ICAP/ICAPConfig.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPConfig.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- squid3/src/ICAP/ICAPConfig.h 18 May 2007 06:41:29 -0000 1.12
+++ squid3/src/ICAP/ICAPConfig.h 29 May 2007 13:31:44 -0000 1.13
@@ -1,6 +1,6 @@
/*
- * $Id: ICAPConfig.h,v 1.12 2007/05/18 06:41:29 amosjeffries Exp $
+ * $Id: ICAPConfig.h,v 1.13 2007/05/29 13:31:44 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -47,7 +47,7 @@
{
public:
- string key;
+ String key;
acl_access *accessList;
Vector<ICAPServiceRep::Pointer> services;
@@ -73,8 +73,8 @@
ICAPAccessCheckCallback *callback;
void *callback_data;
ACLChecklist *acl_checklist;
- Vector<string> candidateClasses;
- string matchedClass;
+ Vector<String> candidateClasses;
+ String matchedClass;
void do_callback();
ICAPServiceRep::Pointer findBestService(ICAPClass *c, bool preferUp);
@@ -115,8 +115,8 @@
void parseICAPService(void);
void freeICAPService(void);
void dumpICAPService(StoreEntry *, const char *);
- ICAPServiceRep::Pointer findService(const string&);
- ICAPClass * findClass(const string& key);
+ ICAPServiceRep::Pointer findService(const String&);
+ ICAPClass * findClass(const String& key);
void parseICAPClass(void);
void freeICAPClass(void);
Index: squid3/src/ICAP/ICAPModXact.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPModXact.cc,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- squid3/src/ICAP/ICAPModXact.cc 18 May 2007 06:41:29 -0000 1.32
+++ squid3/src/ICAP/ICAPModXact.cc 29 May 2007 13:31:44 -0000 1.33
@@ -973,8 +973,8 @@
* XXX These should use HttpHdr interfaces instead of Printfs
*/
const ICAPServiceRep &s = service();
- buf.Printf("%s %s ICAP/1.0\r\n", s.methodStr(), s.uri.c_str());
- buf.Printf("Host: %s:%d\r\n", s.host.c_str(), s.port);
+ buf.Printf("%s %s ICAP/1.0\r\n", s.methodStr(), s.uri.buf());
+ buf.Printf("Host: %s:%d\r\n", s.host.buf(), s.port);
buf.Printf("Date: %s\r\n", mkrfc1123(squid_curtime));
if (!TheICAPConfig.reuse_connections)
@@ -995,7 +995,7 @@
// to simplify, we could assume that request is always available
- string urlPath;
+ String urlPath;
if (request) {
urlPath = request->urlpath;
if (ICAP::methodRespmod == m)
@@ -1091,7 +1091,7 @@
const HttpRequest *request = virgin.cause ?
virgin.cause :
dynamic_cast<const HttpRequest*>(virgin.header);
- const string urlPath = request ? request->urlpath : "";
+ const String urlPath = request ? request->urlpath : String();
size_t wantedSize;
if (!service().wantsPreview(urlPath, wantedSize)) {
debugs(93, 5, "ICAPModXact should not offer preview for " << urlPath);
Index: squid3/src/ICAP/ICAPOptXact.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPOptXact.cc,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- squid3/src/ICAP/ICAPOptXact.cc 18 May 2007 06:41:29 -0000 1.7
+++ squid3/src/ICAP/ICAPOptXact.cc 29 May 2007 13:31:44 -0000 1.8
@@ -42,8 +42,8 @@
void ICAPOptXact::makeRequest(MemBuf &buf)
{
const ICAPServiceRep &s = service();
- buf.Printf("OPTIONS %s ICAP/1.0\r\n", s.uri.c_str());
- buf.Printf("Host: %s:%d\r\n", s.host.c_str(), s.port);
+ buf.Printf("OPTIONS %s ICAP/1.0\r\n", s.uri.buf());
+ buf.Printf("Host: %s:%d\r\n", s.host.buf(), s.port);
buf.append(ICAP::crlf, 2);
}
Index: squid3/src/ICAP/ICAPOptions.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPOptions.cc,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- squid3/src/ICAP/ICAPOptions.cc 18 May 2007 06:41:29 -0000 1.11
+++ squid3/src/ICAP/ICAPOptions.cc 29 May 2007 13:31:44 -0000 1.12
@@ -31,7 +31,7 @@
// future optimization note: this method is called by ICAP ACL code at least
// twice for each HTTP message to see if the message should be ignored. For any
// non-ignored HTTP message, ICAP calls to check whether a preview is needed.
-ICAPOptions::TransferKind ICAPOptions::transferKind(const string &urlPath) const
+ICAPOptions::TransferKind ICAPOptions::transferKind(const String &urlPath) const
{
if (theTransfers.preview.matches(urlPath))
return xferPreview;
@@ -122,10 +122,10 @@
// TODO: HttpHeader should provide a general method for this type of conversion
void ICAPOptions::cfgIntHeader(const HttpHeader *h, const char *fname, int &value)
{
- const string s = h->getByName(fname);
+ const String s = h->getByName(fname);
- if (!s.empty() && xisdigit(s[0]))
- value = atoi(s.c_str());
+ if (s.size() && xisdigit(*s.buf()))
+ value = atoi(s.buf());
else
value = -1;
@@ -134,7 +134,7 @@
void ICAPOptions::cfgTransferList(const HttpHeader *h, TransferList &list)
{
- const string buf = h->getByName(list.name);
+ const String buf = h->getByName(list.name);
bool foundStar = false;
list.parse(buf, foundStar);
@@ -162,7 +162,7 @@
wordlistAdd(&extensions, extension);
};
-bool ICAPOptions::TransferList::matches(const string &urlPath) const {
+bool ICAPOptions::TransferList::matches(const String &urlPath) const {
const int urlLen = urlPath.size();
for (wordlist *e = extensions; e; e = e->next) {
// optimize: store extension lengths
@@ -172,8 +172,8 @@
if (eLen < urlLen) {
const int eOff = urlLen - eLen;
// RFC 3507 examples imply that extensions come without leading '.'
- if (urlPath[eOff-1] == '.' &&
- strcmp(&urlPath[eOff], e->key) == 0) {
+ if (urlPath.buf()[eOff-1] == '.' &&
+ strcmp(urlPath.buf() + eOff, e->key) == 0) {
debugs(93,7, "ICAPOptions url " << urlPath << " matches " <<
name << " extension " << e->key);
return true;
@@ -184,7 +184,7 @@
return false;
}
-void ICAPOptions::TransferList::parse(const string &buf, bool &foundStar) {
+void ICAPOptions::TransferList::parse(const String &buf, bool &foundStar) {
foundStar = false;
const char *item;
Index: squid3/src/ICAP/ICAPOptions.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPOptions.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- squid3/src/ICAP/ICAPOptions.h 18 May 2007 06:41:29 -0000 1.10
+++ squid3/src/ICAP/ICAPOptions.h 29 May 2007 13:31:44 -0000 1.11
@@ -1,6 +1,6 @@
/*
- * $Id: ICAPOptions.h,v 1.10 2007/05/18 06:41:29 amosjeffries Exp $
+ * $Id: ICAPOptions.h,v 1.11 2007/05/29 13:31:44 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -62,18 +62,18 @@
time_t timestamp() const { return theTimestamp; };
typedef enum { xferNone, xferPreview, xferIgnore, xferComplete } TransferKind;
- TransferKind transferKind(const string &urlPath) const;
+ TransferKind transferKind(const String &urlPath) const;
public:
const char *error; // human-readable information; set iff !valid()
// ICAP server MUST supply this info
Vector<ICAP::Method> methods;
- string istag;
+ String istag;
// ICAP server MAY supply this info. If not, Squid supplies defaults.
- string service;
- string serviceId;
+ String service;
+ String serviceId;
int max_connections;
bool allow204;
int preview;
@@ -86,9 +86,9 @@
TransferList();
~TransferList();
- bool matches(const string &urlPath) const;
+ bool matches(const String &urlPath) const;
- void parse(const string &buf, bool &foundStar);
+ void parse(const String &buf, bool &foundStar);
void add(const char *extension);
void report(int level, const char *prefix) const;
Index: squid3/src/ICAP/ICAPServiceRep.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPServiceRep.cc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- squid3/src/ICAP/ICAPServiceRep.cc 18 May 2007 06:41:29 -0000 1.13
+++ squid3/src/ICAP/ICAPServiceRep.cc 29 May 2007 13:31:44 -0000 1.14
@@ -80,24 +80,24 @@
char *service_type = NULL;
- ConfigParser::ParseString(key);
+ ConfigParser::ParseString(&key);
ConfigParser::ParseString(&service_type);
ConfigParser::ParseBool(&bypass);
- ConfigParser::ParseString(uri);
+ ConfigParser::ParseString(&uri);
- debugs(3, 5, "ICAPService::parseConfigLine (line " << config_lineno << "): " << key << " " << service_type << " " << bypass);
+ debugs(3, 5, "ICAPService::parseConfigLine (line " << config_lineno << "): " << key.buf() << " " << service_type << " " << bypass);
method = parseMethod(service_type);
point = parseVectPoint(service_type);
debugs(3, 5, "ICAPService::parseConfigLine (line " << config_lineno << "): service is " << methodStr() << "_" << vectPointStr());
- if (strncmp(uri, "icap://", 7) != 0) {
- debugs(3, 0, "ICAPService::parseConfigLine (line " << config_lineno << "): wrong uri: " << uri);
+ if (uri.cmp("icap://", 7) != 0) {
+ debugs(3, 0, "ICAPService::parseConfigLine (line " << config_lineno << "): wrong uri: " << uri.buf());
return false;
}
- const char *s = &uri[7];
+ const char *s = uri.buf() + 7;
const char *e;
@@ -217,13 +217,13 @@
return probed() && !up();
}
-bool ICAPServiceRep::wantsUrl(const string &urlPath) const
+bool ICAPServiceRep::wantsUrl(const String &urlPath) const
{
Must(hasOptions());
return theOptions->transferKind(urlPath) != ICAPOptions::xferIgnore;
}
-bool ICAPServiceRep::wantsPreview(const string &urlPath, size_t &wantedSize) const
+bool ICAPServiceRep::wantsPreview(const String &urlPath, size_t &wantedSize) const
{
Must(hasOptions());
@@ -361,7 +361,7 @@
if (!theOptions->methods.empty()) {
bool method_found = false;
- string method_list;
+ String method_list;
Vector <ICAP::Method>::iterator iter = theOptions->methods.begin();
while (iter != theOptions->methods.end()) {
@@ -379,8 +379,8 @@
if (!method_found) {
debugs(93,1, "WARNING: Squid is configured to use ICAP method " <<
ICAP::methodStr(method) <<
- " for service " << uri <<
- " but OPTIONS response declares the methods are " << method_list);
+ " for service " << uri.buf() <<
+ " but OPTIONS response declares the methods are " << method_list.buf());
}
}
@@ -393,7 +393,7 @@
// TODO: If skew is negative, the option will be considered down
// because of stale options. We should probably change this.
debugs(93, 1, "ICAP service's clock is skewed by " << skew <<
- " seconds: " << uri);
+ " seconds: " << uri.buf());
}
}
Index: squid3/src/ICAP/ICAPServiceRep.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPServiceRep.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- squid3/src/ICAP/ICAPServiceRep.h 18 May 2007 06:41:30 -0000 1.8
+++ squid3/src/ICAP/ICAPServiceRep.h 29 May 2007 13:31:44 -0000 1.9
@@ -1,6 +1,6 @@
/*
- * $Id: ICAPServiceRep.h,v 1.8 2007/05/18 06:41:30 amosjeffries Exp $
+ * $Id: ICAPServiceRep.h,v 1.9 2007/05/29 13:31:44 amosjeffries Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -91,22 +91,22 @@
void callWhenReady(Callback *cb, void *data);
// the methods below can only be called on an up() service
- bool wantsUrl(const string &urlPath) const;
- bool wantsPreview(const string &urlPath, size_t &wantedSize) const;
+ bool wantsUrl(const String &urlPath) const;
+ bool wantsPreview(const String &urlPath, size_t &wantedSize) const;
bool allows204() const;
void noteFailure(); // called by transactions to report service failure
public:
- string key;
+ String key;
ICAP::Method method;
ICAP::VectPoint point;
- string uri; // service URI
+ String uri; // service URI
// URI components
- string host;
+ String host;
int port;
- string resource;
+ String resource;
// XXX: use it when selecting a service and handling ICAP errors!
bool bypass;
Index: squid3/src/ICAP/ICAPXaction.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPXaction.cc,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- squid3/src/ICAP/ICAPXaction.cc 22 May 2007 17:43:40 -0000 1.18
+++ squid3/src/ICAP/ICAPXaction.cc 29 May 2007 13:31:44 -0000 1.19
@@ -107,7 +107,7 @@
disableRetries(); // this will also safely drain pconn pool
// TODO: check whether NULL domain is appropriate here
- connection = icapPconnPool->pop(s.host.c_str(), s.port, NULL, NULL, isRetriable);
+ connection = icapPconnPool->pop(s.host.buf(), s.port, NULL, NULL, isRetriable);
if (connection >= 0) {
debugs(93,3, HERE << "reused pconn FD " << connection);
connector = &ICAPXaction_noteCommConnected; // make doneAll() false
@@ -123,12 +123,12 @@
disableRetries(); // we only retry pconn failures
connection = comm_open(SOCK_STREAM, 0, getOutgoingAddr(NULL), 0,
- COMM_NONBLOCKING, s.uri.c_str());
+ COMM_NONBLOCKING, s.uri.buf());
if (connection < 0)
dieOnConnectionFailure(); // throws
- debugs(93,3, typeName << " opens connection to " << s.host << ":" << s.port);
+ debugs(93,3, typeName << " opens connection to " << s.host.buf() << ":" << s.port);
commSetTimeout(connection, Config.Timeout.connect,
&ICAPXaction_noteCommTimedout, this);
@@ -137,7 +137,7 @@
comm_add_close_handler(connection, closer, this);
connector = &ICAPXaction_noteCommConnected;
- commConnectStart(connection, s.host.c_str(), s.port, connector, this);
+ commConnectStart(connection, s.host.buf(), s.port, connector, this);
}
/*
@@ -171,7 +171,7 @@
if (reuseConnection) {
debugs(93,3, HERE << "pushing pconn" << status());
commSetTimeout(connection, -1, NULL, NULL);
- icapPconnPool->push(connection, theService->host.c_str(), theService->port, NULL, NULL);
+ icapPconnPool->push(connection, theService->host.buf(), theService->port, NULL, NULL);
disableRetries();
} else {
debugs(93,3, HERE << "closing pconn" << status());
@@ -247,7 +247,7 @@
void ICAPXaction::handleCommTimedout()
{
- debugs(93, 0, HERE << "ICAP FD " << connection << " timeout to " << theService->methodStr() << " " << theService->uri);
+ debugs(93, 0, HERE << "ICAP FD " << connection << " timeout to " << theService->methodStr() << " " << theService->uri.buf());
reuseConnection = false;
MemBuf mb;
mb.init();
Index: squid3/src/auth/digest/auth_digest.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/auth/digest/auth_digest.cc,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- squid3/src/auth/digest/auth_digest.cc 18 May 2007 06:41:31 -0000 1.56
+++ squid3/src/auth/digest/auth_digest.cc 29 May 2007 13:31:46 -0000 1.57
@@ -1,6 +1,6 @@
/*
- * $Id: auth_digest.cc,v 1.56 2007/05/18 06:41:31 amosjeffries Exp $
+ * $Id: auth_digest.cc,v 1.57 2007/05/29 13:31:46 amosjeffries Exp $
*
* DEBUG: section 29 Authenticator
* AUTHOR: Robert Collins
@@ -204,7 +204,7 @@
digest_nonce_pool = memPoolCreate("Digest Scheme nonce's", sizeof(digest_nonce_h));
if (!digest_nonce_cache) {
- digest_nonce_cache = hash_create((HASHCMP *) std::strcmp, 7921, hash_string);
+ digest_nonce_cache = hash_create((HASHCMP *) strcmp, 7921, hash_string);
assert(digest_nonce_cache);
eventAdd("Digest none cache maintenance", authenticateDigestNonceCacheCleanup, NULL, digestConfig.nonceGCInterval, 1);
}
@@ -1089,7 +1089,7 @@
while (xisspace(*proxy_auth))
proxy_auth++;
- string temp(proxy_auth);
+ String temp(proxy_auth);
while (strListGetItem(&temp, ',', &item, &ilen, &pos)) {
if ((p = strchr(item, '=')) && (p - item < ilen))
@@ -1205,7 +1205,7 @@
}
}
- temp.clear();
+ temp.clean();
/* now we validate the data given to us */
Index: squid3/src/auth/negotiate/auth_negotiate.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/auth/negotiate/auth_negotiate.cc,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- squid3/src/auth/negotiate/auth_negotiate.cc 18 May 2007 06:41:31 -0000 1.19
+++ squid3/src/auth/negotiate/auth_negotiate.cc 29 May 2007 13:31:46 -0000 1.20
@@ -1,6 +1,6 @@
/*
- * $Id: auth_negotiate.cc,v 1.19 2007/05/18 06:41:31 amosjeffries Exp $
+ * $Id: auth_negotiate.cc,v 1.20 2007/05/29 13:31:46 amosjeffries Exp $
*
* DEBUG: section 29 Negotiate Authenticator
* AUTHOR: Robert Collins, Henrik Nordstrom, Francesco Chemolli
@@ -180,7 +180,7 @@
negotiateauthenticators = helperStatefulCreate("negotiateauthenticator");
if (!proxy_auth_cache)
- proxy_auth_cache = hash_create((HASHCMP *) std::strcmp, 7921, hash_string);
+ proxy_auth_cache = hash_create((HASHCMP *) strcmp, 7921, hash_string);
assert(proxy_auth_cache);
Index: squid3/src/auth/ntlm/auth_ntlm.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/auth/ntlm/auth_ntlm.cc,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- squid3/src/auth/ntlm/auth_ntlm.cc 18 May 2007 06:41:32 -0000 1.69
+++ squid3/src/auth/ntlm/auth_ntlm.cc 29 May 2007 13:31:46 -0000 1.70
@@ -1,6 +1,6 @@
/*
- * $Id: auth_ntlm.cc,v 1.69 2007/05/18 06:41:32 amosjeffries Exp $
+ * $Id: auth_ntlm.cc,v 1.70 2007/05/29 13:31:46 amosjeffries Exp $
*
* DEBUG: section 29 NTLM Authenticator
* AUTHOR: Robert Collins, Henrik Nordstrom, Francesco Chemolli
@@ -181,7 +181,7 @@
ntlmauthenticators = helperStatefulCreate("ntlmauthenticator");
if (!proxy_auth_cache)
- proxy_auth_cache = hash_create((HASHCMP *) std::strcmp, 7921, hash_string);
+ proxy_auth_cache = hash_create((HASHCMP *) strcmp, 7921, hash_string);
assert(proxy_auth_cache);
Index: squid3/src/fs/coss/CossSwapDir.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/fs/coss/CossSwapDir.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- squid3/src/fs/coss/CossSwapDir.h 18 May 2007 06:41:32 -0000 1.7
+++ squid3/src/fs/coss/CossSwapDir.h 29 May 2007 13:31:47 -0000 1.8
@@ -36,7 +36,7 @@
virtual void create();
virtual void dump(StoreEntry &)const;
~CossSwapDir();
- virtual StoreSearch *search(string const url, HttpRequest *);
+ virtual StoreSearch *search(String const url, HttpRequest *);
virtual void unlink (StoreEntry &);
virtual void statfs (StoreEntry &)const;
virtual int canStore(StoreEntry const &)const;
Index: squid3/src/fs/coss/store_dir_coss.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/fs/coss/store_dir_coss.cc,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- squid3/src/fs/coss/store_dir_coss.cc 18 May 2007 06:41:32 -0000 1.74
+++ squid3/src/fs/coss/store_dir_coss.cc 29 May 2007 13:31:47 -0000 1.75
@@ -1,6 +1,6 @@
/*
- * $Id: store_dir_coss.cc,v 1.74 2007/05/18 06:41:32 amosjeffries Exp $
+ * $Id: store_dir_coss.cc,v 1.75 2007/05/29 13:31:47 amosjeffries Exp $
* vim: set et :
*
* DEBUG: section 47 Store COSS Directory Routines
@@ -1170,7 +1170,7 @@
}
StoreSearch *
-CossSwapDir::search(string const url, HttpRequest *)
+CossSwapDir::search(String const url, HttpRequest *)
{
if (url.size())
fatal ("Cannot search by url yet\n");
@@ -1182,9 +1182,9 @@
CossSwapDir::stripePath() const
{
if (!stripe_path) {
- string result = path;
+ String result = path;
result.append("/stripe");
- const_cast<CossSwapDir *>(this)->stripe_path = xstrdup(result.c_str());
+ const_cast<CossSwapDir *>(this)->stripe_path = xstrdup(result.buf());
}
return stripe_path;
Index: squid3/src/fs/null/store_null.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/fs/null/store_null.cc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- squid3/src/fs/null/store_null.cc 18 May 2007 06:41:32 -0000 1.13
+++ squid3/src/fs/null/store_null.cc 29 May 2007 13:31:47 -0000 1.14
@@ -1,6 +1,6 @@
/*
- * $Id: store_null.cc,v 1.13 2007/05/18 06:41:32 amosjeffries Exp $
+ * $Id: store_null.cc,v 1.14 2007/05/29 13:31:47 amosjeffries Exp $
*
* DEBUG: section 47 Store Directory Routines
* AUTHOR: Duane Wessels
@@ -103,7 +103,7 @@
}
StoreSearch *
-NullSwapDir::search(string const url, HttpRequest *)
+NullSwapDir::search(String const url, HttpRequest *)
{
if (url.size())
fatal ("Cannot search by url yet\n");
Index: squid3/src/fs/null/store_null.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/fs/null/store_null.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/fs/null/store_null.h 18 May 2007 06:41:33 -0000 1.4
+++ squid3/src/fs/null/store_null.h 29 May 2007 13:31:47 -0000 1.5
@@ -1,6 +1,6 @@
/*
- * $Id: store_null.h,v 1.4 2007/05/18 06:41:33 amosjeffries Exp $
+ * $Id: store_null.h,v 1.5 2007/05/29 13:31:47 amosjeffries Exp $
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* ----------------------------------------------------------
@@ -49,7 +49,7 @@
virtual StoreIOState::Pointer openStoreIO(StoreEntry &, StoreIOState::STFNCB *, StoreIOState::STIOCB *, void *);
virtual void parse(int, char*);
virtual void reconfigure (int, char *);
- virtual StoreSearch *search(string const url, HttpRequest *);
+ virtual StoreSearch *search(String const url, HttpRequest *);
};
class StoreSearchNull : public StoreSearch
Index: squid3/src/fs/ufs/store_dir_ufs.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/fs/ufs/store_dir_ufs.cc,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- squid3/src/fs/ufs/store_dir_ufs.cc 18 May 2007 06:41:33 -0000 1.83
+++ squid3/src/fs/ufs/store_dir_ufs.cc 29 May 2007 13:31:47 -0000 1.84
@@ -1,6 +1,6 @@
/*
- * $Id: store_dir_ufs.cc,v 1.83 2007/05/18 06:41:33 amosjeffries Exp $
+ * $Id: store_dir_ufs.cc,v 1.84 2007/05/29 13:31:47 amosjeffries Exp $
*
* DEBUG: section 47 Store Directory Routines
* AUTHOR: Duane Wessels
@@ -1348,7 +1348,7 @@
}
StoreSearch *
-UFSSwapDir::search(string const url, HttpRequest *request)
+UFSSwapDir::search(String const url, HttpRequest *request)
{
if (url.size())
fatal ("Cannot search by url yet\n");
Index: squid3/src/fs/ufs/ufscommon.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/fs/ufs/ufscommon.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- squid3/src/fs/ufs/ufscommon.h 18 May 2007 06:41:33 -0000 1.10
+++ squid3/src/fs/ufs/ufscommon.h 29 May 2007 13:31:47 -0000 1.11
@@ -1,6 +1,6 @@
/*
- * $Id: ufscommon.h,v 1.10 2007/05/18 06:41:33 amosjeffries Exp $
+ * $Id: ufscommon.h,v 1.11 2007/05/29 13:31:47 amosjeffries Exp $
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* ----------------------------------------------------------
@@ -63,7 +63,7 @@
virtual void create();
virtual void dump(StoreEntry &) const;
~UFSSwapDir();
- virtual StoreSearch *search(string const url, HttpRequest *);
+ virtual StoreSearch *search(String const url, HttpRequest *);
virtual bool doubleCheck(StoreEntry &);
virtual void unlink(StoreEntry &);
virtual void statfs(StoreEntry &)const;
Index: squid3/src/tests/CapturingStoreEntry.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/CapturingStoreEntry.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- squid3/src/tests/CapturingStoreEntry.h 18 May 2007 06:41:33 -0000 1.2
+++ squid3/src/tests/CapturingStoreEntry.h 29 May 2007 13:31:48 -0000 1.3
@@ -14,7 +14,7 @@
CapturingStoreEntry() : _buffer_calls(0), _flush_calls(0) {}
- string _appended_text;
+ String _appended_text;
int _buffer_calls;
int _flush_calls;
Index: squid3/src/tests/TestSwapDir.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/TestSwapDir.cc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/tests/TestSwapDir.cc 18 May 2007 06:41:33 -0000 1.4
+++ squid3/src/tests/TestSwapDir.cc 29 May 2007 13:31:48 -0000 1.5
@@ -46,7 +46,7 @@
{}
StoreSearch *
-TestSwapDir::search(string, HttpRequest *)
+TestSwapDir::search(String, HttpRequest *)
{
return NULL;
}
Index: squid3/src/tests/TestSwapDir.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/TestSwapDir.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/tests/TestSwapDir.h 18 May 2007 06:41:33 -0000 1.5
+++ squid3/src/tests/TestSwapDir.h 29 May 2007 13:31:48 -0000 1.6
@@ -21,7 +21,7 @@
virtual StoreIOState::Pointer createStoreIO(StoreEntry &, StoreIOState::STFNCB *, StoreIOState::STIOCB *, void *);
virtual StoreIOState::Pointer openStoreIO(StoreEntry &, StoreIOState::STFNCB *, StoreIOState::STIOCB *, void *);
virtual void parse(int, char*);
- virtual StoreSearch *search(string, HttpRequest *);
+ virtual StoreSearch *search(String, HttpRequest *);
};
typedef RefCount<TestSwapDir> TestSwapDirPointer;
Index: squid3/src/tests/testCacheManager.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testCacheManager.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/tests/testCacheManager.cc 23 May 2007 20:59:15 -0000 1.3
+++ squid3/src/tests/testCacheManager.cc 29 May 2007 13:31:48 -0000 1.4
@@ -45,8 +45,8 @@
CacheManager manager;
manager.registerAction("sample", "my sample", &dummy_action, false, false);
CacheManagerAction *anAction = manager.findAction("sample");
- CPPUNIT_ASSERT_EQUAL( (string)"sample", (string)anAction->action );
- CPPUNIT_ASSERT_EQUAL( (string)"my sample", (string)anAction->desc );
+ CPPUNIT_ASSERT_EQUAL(String("sample"), String(anAction->action));
+ CPPUNIT_ASSERT_EQUAL(String("my sample"), String(anAction->desc));
CPPUNIT_ASSERT_EQUAL(&dummy_action, anAction->handler);
CPPUNIT_ASSERT_EQUAL(0, (int)anAction->flags.pw_req);
CPPUNIT_ASSERT_EQUAL(0, (int)anAction->flags.atomic);
Index: squid3/src/tests/testEvent.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testEvent.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/tests/testEvent.cc 23 May 2007 20:59:15 -0000 1.5
+++ squid3/src/tests/testEvent.cc 29 May 2007 13:31:48 -0000 1.6
@@ -100,12 +100,13 @@
scheduler.schedule("test event", CalledEvent::Handler, &event, 0, 0, false);
scheduler.schedule("test event2", CalledEvent::Handler, &event2, 0, 0, false);
scheduler.dump(anEntry);
- string expect = "Last event to run: last event\n"
+ CPPUNIT_ASSERT_EQUAL(String(
+ "Last event to run: last event\n"
"\n"
"Operation\tNext Execution\tWeight\tCallback Valid?\n"
"test event\t0.000000 seconds\t0\tN/A\n"
- "test event2\t0.000000 seconds\t0\tN/A\n";
- CPPUNIT_ASSERT_EQUAL( expect, anEntry->_appended_text);
+ "test event2\t0.000000 seconds\t0\tN/A\n"
+ ), anEntry->_appended_text);
delete anEntry;
}
Index: squid3/src/tests/testHttpRequest.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testHttpRequest.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/tests/testHttpRequest.cc 23 May 2007 20:59:16 -0000 1.3
+++ squid3/src/tests/testHttpRequest.cc 29 May 2007 13:31:48 -0000 1.4
@@ -37,10 +37,10 @@
HttpRequest *nullRequest = NULL;
CPPUNIT_ASSERT_EQUAL(expected_port, aRequest->port);
CPPUNIT_ASSERT_EQUAL(METHOD_GET, aRequest->method);
- CPPUNIT_ASSERT_EQUAL((string)"foo", (string)aRequest->host);
- CPPUNIT_ASSERT_EQUAL((string)"/bar", aRequest->urlpath);
+ CPPUNIT_ASSERT_EQUAL(String("foo"), String(aRequest->host));
+ CPPUNIT_ASSERT_EQUAL(String("/bar"), aRequest->urlpath);
CPPUNIT_ASSERT_EQUAL(PROTO_HTTP, aRequest->protocol);
- CPPUNIT_ASSERT_EQUAL((string)"http://foo:90/bar", (string)url);
+ CPPUNIT_ASSERT_EQUAL(String("http://foo:90/bar"), String(url));
xfree(url);
/* vanilla url, different method */
url = xstrdup("http://foo/bar");
@@ -48,10 +48,10 @@
expected_port = 80;
CPPUNIT_ASSERT_EQUAL(expected_port, aRequest->port);
CPPUNIT_ASSERT_EQUAL(METHOD_PUT, aRequest->method);
- CPPUNIT_ASSERT_EQUAL((string)"foo", (string)aRequest->host);
- CPPUNIT_ASSERT_EQUAL((string)"/bar", aRequest->urlpath);
+ CPPUNIT_ASSERT_EQUAL(String("foo"), String(aRequest->host));
+ CPPUNIT_ASSERT_EQUAL(String("/bar"), aRequest->urlpath);
CPPUNIT_ASSERT_EQUAL(PROTO_HTTP, aRequest->protocol);
- CPPUNIT_ASSERT_EQUAL((string)"http://foo/bar", (string)url);
+ CPPUNIT_ASSERT_EQUAL(String("http://foo/bar"), String(url));
/* a connect url with non-CONNECT data */
url = xstrdup(":foo/bar");
aRequest = HttpRequest::CreateFromUrlAndMethod(url, METHOD_CONNECT);
@@ -63,10 +63,10 @@
expected_port = 45;
CPPUNIT_ASSERT_EQUAL(expected_port, aRequest->port);
CPPUNIT_ASSERT_EQUAL(METHOD_CONNECT, aRequest->method);
- CPPUNIT_ASSERT_EQUAL((string)"foo", (string)aRequest->host);
- CPPUNIT_ASSERT_EQUAL((string)"", aRequest->urlpath);
+ CPPUNIT_ASSERT_EQUAL(String("foo"), String(aRequest->host));
+ CPPUNIT_ASSERT_EQUAL(String(""), aRequest->urlpath);
CPPUNIT_ASSERT_EQUAL(PROTO_NONE, aRequest->protocol);
- CPPUNIT_ASSERT_EQUAL((string)"foo:45", (string)url);
+ CPPUNIT_ASSERT_EQUAL(String("foo:45"), String(url));
xfree(url);
}
@@ -83,9 +83,9 @@
expected_port = 90;
CPPUNIT_ASSERT_EQUAL(expected_port, aRequest->port);
CPPUNIT_ASSERT_EQUAL(METHOD_GET, aRequest->method);
- CPPUNIT_ASSERT_EQUAL((string)"foo", (string)aRequest->host);
- CPPUNIT_ASSERT_EQUAL((string)"/bar", aRequest->urlpath);
+ CPPUNIT_ASSERT_EQUAL(String("foo"), String(aRequest->host));
+ CPPUNIT_ASSERT_EQUAL(String("/bar"), aRequest->urlpath);
CPPUNIT_ASSERT_EQUAL(PROTO_HTTP, aRequest->protocol);
- CPPUNIT_ASSERT_EQUAL((string)"http://foo:90/bar", (string)url);
+ CPPUNIT_ASSERT_EQUAL(String("http://foo:90/bar"), String(url));
xfree(url);
}
Index: squid3/src/tests/testHttpRequestMethod.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testHttpRequestMethod.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/tests/testHttpRequestMethod.cc 18 May 2007 06:41:33 -0000 1.3
+++ squid3/src/tests/testHttpRequestMethod.cc 29 May 2007 13:31:48 -0000 1.4
@@ -79,7 +79,7 @@
void
testHttpRequestMethod::testConst_str()
{
- CPPUNIT_ASSERT_EQUAL((string)"POST", (string)HttpRequestMethod("post").const_str());
+ CPPUNIT_ASSERT_EQUAL(String("POST"), String(HttpRequestMethod("post").const_str()));
}
/*
@@ -115,5 +115,5 @@
{
std::ostringstream buffer;
buffer << HttpRequestMethod("get");
- CPPUNIT_ASSERT_EQUAL((string)"GET", (string)buffer.str().c_str() );
+ CPPUNIT_ASSERT_EQUAL(String("GET"), String(buffer.str().c_str()));
}
Index: squid3/src/tests/testStore.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testStore.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/tests/testStore.cc 18 May 2007 06:41:33 -0000 1.5
+++ squid3/src/tests/testStore.cc 29 May 2007 13:31:48 -0000 1.6
@@ -21,7 +21,7 @@
void
TestStore::get
- (string, void (*)(StoreEntry*, void*), void*)
+ (String, void (*)(StoreEntry*, void*), void*)
{}
void
@@ -48,7 +48,7 @@
}
StoreSearch *
-TestStore::search(string const url, HttpRequest *)
+TestStore::search(String const url, HttpRequest *)
{
return NULL;
}
Index: squid3/src/tests/testStore.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testStore.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/tests/testStore.h 18 May 2007 06:41:33 -0000 1.3
+++ squid3/src/tests/testStore.h 29 May 2007 13:31:48 -0000 1.4
@@ -49,7 +49,7 @@
(const cache_key*);
virtual void get
- (string, void (*)(StoreEntry*, void*), void*);
+ (String, void (*)(StoreEntry*, void*), void*);
virtual void init();
@@ -67,7 +67,7 @@
virtual void updateSize(size_t size, int sign) {}
- virtual StoreSearch *search(string const url, HttpRequest *);
+ virtual StoreSearch *search(String const url, HttpRequest *);
};
typedef RefCount<TestStore> TestStorePointer;
Index: squid3/src/tests/testStoreController.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testStoreController.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- squid3/src/tests/testStoreController.cc 18 May 2007 06:41:33 -0000 1.6
+++ squid3/src/tests/testStoreController.cc 29 May 2007 13:31:48 -0000 1.7
@@ -78,9 +78,10 @@
static StoreEntry *
addedEntry(StorePointer hashStore,
StorePointer aStore,
- string name,
- string varySpec,
- string varyKey
+ String name,
+ String varySpec,
+ String varyKey
+
)
{
StoreEntry *e = new StoreEntry();
@@ -108,7 +109,7 @@
EBIT_CLR(e->flags, KEY_PRIVATE);
e->ping_status = PING_NONE;
EBIT_CLR(e->flags, ENTRY_VALIDATED);
- e->hashInsert((const cache_key *)name.c_str()); /* do it after we clear KEY_PRIVATE */
+ e->hashInsert((const cache_key *)name.buf()); /* do it after we clear KEY_PRIVATE */
return e;
}
Index: squid3/src/tests/testStoreEntryStream.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testStoreEntryStream.cc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/tests/testStoreEntryStream.cc 23 May 2007 20:59:16 -0000 1.4
+++ squid3/src/tests/testStoreEntryStream.cc 29 May 2007 13:31:48 -0000 1.5
@@ -37,7 +37,7 @@
stream.flush();
CPPUNIT_ASSERT_EQUAL(1, anEntry->_buffer_calls);
CPPUNIT_ASSERT_EQUAL(1, anEntry->_flush_calls);
- CPPUNIT_ASSERT_EQUAL((string)"some text !", (string)anEntry->_appended_text);
+ CPPUNIT_ASSERT_EQUAL(String("some text !"), anEntry->_appended_text);
}
delete anEntry;
Index: squid3/src/tests/testStoreHashIndex.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testStoreHashIndex.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/tests/testStoreHashIndex.cc 18 May 2007 06:41:33 -0000 1.5
+++ squid3/src/tests/testStoreHashIndex.cc 29 May 2007 13:31:48 -0000 1.6
@@ -59,9 +59,9 @@
StoreEntry *
addedEntry(StorePointer hashStore,
StorePointer aStore,
- string name,
- string varySpec,
- string varyKey
+ String name,
+ String varySpec,
+ String varyKey
)
{
@@ -90,7 +90,7 @@
EBIT_CLR(e->flags, KEY_PRIVATE);
e->ping_status = PING_NONE;
EBIT_CLR(e->flags, ENTRY_VALIDATED);
- e->hashInsert((const cache_key *)name.c_str()); /* do it after we clear KEY_PRIVATE */
+ e->hashInsert((const cache_key *)name.buf()); /* do it after we clear KEY_PRIVATE */
return e;
}
Index: squid3/src/tests/testString.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testString.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- squid3/src/tests/testString.cc 23 May 2007 20:59:16 -0000 1.5
+++ squid3/src/tests/testString.cc 29 May 2007 13:31:48 -0000 1.6
@@ -20,216 +20,41 @@
}
void
-testString::testDefaults()
-{
- string aStr;
-
- /* check this reports as empty */
- CPPUNIT_ASSERT( aStr.empty() );
- CPPUNIT_ASSERT_EQUAL( (const char*)NULL, aStr.c_str() );
- CPPUNIT_ASSERT_EQUAL( 0, aStr.size() );
-
- string bStr("foo bar");
-
- /* check copy constructor */
- CPPUNIT_ASSERT( !bStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 7, bStr.size() );
- CPPUNIT_ASSERT( NULL != bStr.c_str() );
- CPPUNIT_ASSERT( memcmp(bStr.c_str(), "foo bar", 8) == 0 );
-}
-
-void
-testString::testBooleans()
-{
- const string smStr("bar");
- const string bgStr("foo");
- const string eqStr("foo");
- const string nqStr("food");
-
- /* mathematical boolean operators */
- CPPUNIT_ASSERT(!(bgStr == smStr ));
- CPPUNIT_ASSERT( bgStr != smStr );
- CPPUNIT_ASSERT( bgStr > smStr );
- CPPUNIT_ASSERT(!(bgStr < smStr ));
- CPPUNIT_ASSERT( bgStr >= smStr );
- CPPUNIT_ASSERT(!(bgStr <= smStr ));
-
- /* reverse order to catch corners */
- CPPUNIT_ASSERT(!(smStr == bgStr ));
- CPPUNIT_ASSERT( smStr != bgStr );
- CPPUNIT_ASSERT(!(smStr > bgStr ));
- CPPUNIT_ASSERT( smStr < bgStr );
- CPPUNIT_ASSERT(!(smStr >= bgStr ));
- CPPUNIT_ASSERT( smStr <= bgStr );
-
- /* check identical to catch corners */
- CPPUNIT_ASSERT( bgStr == eqStr );
- CPPUNIT_ASSERT(!(bgStr != eqStr ));
- CPPUNIT_ASSERT(!(bgStr > eqStr ));
- CPPUNIT_ASSERT(!(bgStr < eqStr ));
- CPPUNIT_ASSERT( bgStr >= eqStr );
- CPPUNIT_ASSERT( bgStr <= eqStr );
-
- /* check _almost_ identical to catch corners */
- CPPUNIT_ASSERT(!(bgStr == nqStr ));
- CPPUNIT_ASSERT( bgStr != nqStr );
- CPPUNIT_ASSERT(!(bgStr > nqStr ));
- CPPUNIT_ASSERT( bgStr < nqStr );
- CPPUNIT_ASSERT(!(bgStr >= nqStr ));
- CPPUNIT_ASSERT( bgStr <= nqStr );
-}
-
-void
-testString::testAppend()
-{
- // FIXME: make tests for this.
- string aStr("hello");
-
- aStr.append(" world");
- CPPUNIT_ASSERT_EQUAL( (string)"hello world", aStr );
- aStr.append(" howsit", 7);
- CPPUNIT_ASSERT_EQUAL( (string)"hello world howsit", aStr );
-
- string bStr;
- string cStr("hello");
-
- /* corner cases */
- bStr.append(NULL, 2);
- CPPUNIT_ASSERT( bStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 0, bStr.size() );
- CPPUNIT_ASSERT_EQUAL( (string)"", bStr );
-
- bStr.append("hello", 5);
- CPPUNIT_ASSERT( !bStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 5, bStr.size() );
- CPPUNIT_ASSERT_EQUAL( (string)"hello", bStr );
-
- bStr.append(NULL, 2);
- CPPUNIT_ASSERT( !bStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 5, bStr.size() );
- CPPUNIT_ASSERT_EQUAL( (string)"hello", bStr );
-
- bStr.append(" world untroubled by things such as null termination", 6);
- CPPUNIT_ASSERT( !bStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 11, bStr.size() );
- CPPUNIT_ASSERT_EQUAL( (string)"hello world", bStr );
-
- cStr.append(" wo");
- CPPUNIT_ASSERT( !cStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 8, cStr.size() );
- CPPUNIT_ASSERT_EQUAL( (string)"hello wo", cStr );
-
- cStr.append("rld\0 untroubled by things such as null termination", 10);
- CPPUNIT_ASSERT( !cStr.empty() );
- CPPUNIT_ASSERT_EQUAL( 18, cStr.size() );
- CPPUNIT_ASSERT( memcmp("hello world", cStr.c_str(), 11) == 0 );
- CPPUNIT_ASSERT( memcmp("hello world\0", cStr.c_str(), 12) == 0 );
- CPPUNIT_ASSERT( memcmp("hello world\0 untro", cStr.c_str(), 18) == 0 );
- CPPUNIT_ASSERT( memcmp("hello world\0 untro\0", cStr.c_str(), 19) == 0 );
-}
-
-void
-testString::testAccess()
-{
- string test;
- test = "123456789a"; // to get a predictable length buffer.
-
- CPPUNIT_ASSERT_EQUAL( test.size(), 10 );
-
-/* FIXME: flow checks do not seem to catch assert() sent from within code. */
- /* underflow handling test: _should_ fail with core dump. */
- /* this SHOULD be impossible due to unsigned type of parameter. */
-// CPPUNIT_ASSERT_ASSERTION_FAIL( CPPUNIT_ASSERT( test[-1] ) );
-
- /* overflow handling test: _should_ fail with core dump. */
-// CPPUNIT_ASSERT_ASSERTION_FAIL( CPPUNIT_ASSERT( test[test.size()+10] ) );
-
- /* [] access method (read and write) */
- CPPUNIT_ASSERT( test[0] == '1' );
- CPPUNIT_ASSERT( test[9] == 'a' );
- CPPUNIT_ASSERT( test[10] == '\0' );
-
- test.append('T');
- CPPUNIT_ASSERT( test[10] == 'T' );
- CPPUNIT_ASSERT( test[11] == '\0' );
- CPPUNIT_ASSERT_EQUAL((string)"123456789aT", test);
-
- /* Random access inside buffer. */
- test[5] = 't';
- CPPUNIT_ASSERT( test[5] == 't' );
- CPPUNIT_ASSERT( test[11] == '\0' );
- CPPUNIT_ASSERT_EQUAL((string)"12345t789aT", test);
-
- /* border case at last position of string */
- test[9] = 'E';
- CPPUNIT_ASSERT( test[9] == 'E' );
- CPPUNIT_ASSERT( test[11] == '\0' );
- CPPUNIT_ASSERT_EQUAL((string)"12345t789ET", test);
-
- /* border case at EOS position */
- test[11] = 'F';
- CPPUNIT_ASSERT( test[11] == 'F' );
- CPPUNIT_ASSERT( test[12] == '\0' );
- CPPUNIT_ASSERT_EQUAL((string)"12345t789ETF", test);
-}
-
-void
-testString::testAssignments()
-{
- // FIXME: make tests for this.
-}
-
-void
-testString::testCstrMethods()
-{
- // FIXME: make tests for this.
- // strcmp, strncmp, etc....
-}
-
-void
-testString::testSearch()
-{
- // FIXME: make tests for this.
-
-// pos, rpos, find, rfind, etc...
-}
-
-void
testString::testCmpDefault()
{
- string left, right;
+ String left, right;
/* two default strings are equal */
- CPPUNIT_ASSERT(!left.compare(right));
- CPPUNIT_ASSERT(!left.compare(NULL));
- CPPUNIT_ASSERT(!left.compare(NULL, 1));
+ CPPUNIT_ASSERT(!left.cmp(right));
+ CPPUNIT_ASSERT(!left.cmp(NULL));
+ CPPUNIT_ASSERT(!left.cmp(NULL, 1));
}
void
testString::testCmpEmptyString()
{
- string left("");
- string right;
+ String left("");
+ String right;
/* an empty string ("") is equal to a default string */
- CPPUNIT_ASSERT(!left.compare(right));
- CPPUNIT_ASSERT(!left.compare(NULL));
- CPPUNIT_ASSERT(!left.compare(NULL, 1));
+ CPPUNIT_ASSERT(!left.cmp(right));
+ CPPUNIT_ASSERT(!left.cmp(NULL));
+ CPPUNIT_ASSERT(!left.cmp(NULL, 1));
/* reverse the order to catch corners */
- CPPUNIT_ASSERT(!right.compare(left));
- CPPUNIT_ASSERT(!right.compare(""));
- CPPUNIT_ASSERT(!right.compare("", 1));
+ CPPUNIT_ASSERT(!right.cmp(left));
+ CPPUNIT_ASSERT(!right.cmp(""));
+ CPPUNIT_ASSERT(!right.cmp("", 1));
}
void
testString::testCmpNotEmptyDefault()
{
- string left("foo");
- string right;
+ String left("foo");
+ String right;
/* empty string sorts before everything */
- CPPUNIT_ASSERT(left.compare(right) > 0);
- CPPUNIT_ASSERT(left.compare(NULL) > 0);
- CPPUNIT_ASSERT(left.compare(NULL, 1) > 0);
+ CPPUNIT_ASSERT(left.cmp(right) > 0);
+ CPPUNIT_ASSERT(left.cmp(NULL) > 0);
+ CPPUNIT_ASSERT(left.cmp(NULL, 1) > 0);
/* reverse for symmetry tests */
- CPPUNIT_ASSERT(right.compare(left) < 0);
- CPPUNIT_ASSERT(right.compare("foo") < 0);
- CPPUNIT_ASSERT(right.compare("foo", 1) < 0);
+ CPPUNIT_ASSERT(right.cmp(left) < 0);
+ CPPUNIT_ASSERT(right.cmp("foo") < 0);
+ CPPUNIT_ASSERT(right.cmp("foo", 1) < 0);
}
Index: squid3/src/tests/testString.h
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testString.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- squid3/src/tests/testString.h 23 May 2007 20:59:16 -0000 1.4
+++ squid3/src/tests/testString.h 29 May 2007 13:31:48 -0000 1.5
@@ -11,36 +11,19 @@
class testString : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testString );
- CPPUNIT_TEST( testDefaults );
- /* boolean helper tests */
CPPUNIT_TEST( testCmpDefault );
CPPUNIT_TEST( testCmpEmptyString );
CPPUNIT_TEST( testCmpNotEmptyDefault );
-
- CPPUNIT_TEST( testBooleans );
- CPPUNIT_TEST( testAppend );
- CPPUNIT_TEST( testAssignments );
- CPPUNIT_TEST( testAccess );
- CPPUNIT_TEST( testCstrMethods );
- CPPUNIT_TEST( testSearch );
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
protected:
-
- /* std::string API */
- void testDefaults();
void testCmpDefault();
void testCmpEmptyString();
void testCmpNotEmptyDefault();
- void testBooleans();
- void testAppend();
- void testAssignments();
- void testAccess();
- void testCstrMethods();
- void testSearch();
};
#endif
+
Index: squid3/src/tests/testURLScheme.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/testURLScheme.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- squid3/src/tests/testURLScheme.cc 18 May 2007 06:41:33 -0000 1.3
+++ squid3/src/tests/testURLScheme.cc 29 May 2007 13:31:48 -0000 1.4
@@ -104,9 +104,9 @@
void
testURLScheme::testConst_str()
{
- string lhs("wais");
+ String lhs("wais");
URLScheme wais(PROTO_WAIS);
- string rhs(wais.const_str());
+ String rhs(wais.const_str());
CPPUNIT_ASSERT_EQUAL(lhs, rhs);
}
@@ -143,7 +143,7 @@
{
std::ostringstream buffer;
buffer << URLScheme(PROTO_HTTP);
- string http_str("http");
- string from_buf(buffer.str().c_str());
+ String http_str("http");
+ String from_buf(buffer.str().c_str());
CPPUNIT_ASSERT_EQUAL(http_str, from_buf);
}
Index: squid3/src/tests/test_http_range.cc
===================================================================
RCS file: /cvsroot/squid/squid3/src/tests/test_http_range.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- squid3/src/tests/test_http_range.cc 18 May 2007 06:41:33 -0000 1.2
+++ squid3/src/tests/test_http_range.cc 29 May 2007 13:31:48 -0000 1.3
@@ -1,6 +1,6 @@
/*
- * $Id: test_http_range.cc,v 1.2 2007/05/18 06:41:33 amosjeffries Exp $
+ * $Id: test_http_range.cc,v 1.3 2007/05/29 13:31:48 amosjeffries Exp $
*
* DEBUG: section 64 HTTP Range Header
* AUTHOR: Alex Rousskov
@@ -56,10 +56,10 @@
return NULL;
}
-extern string httpHeaderGetList(const HttpHeader * hdr, http_hdr_type id)
+extern String httpHeaderGetList(const HttpHeader * hdr, http_hdr_type id)
{
fatal ("dummy function\n");
- return "";
+ return String();
}
SQUIDCEXTERN int httpHeaderHas(const HttpHeader * hdr, http_hdr_type type)
@@ -76,7 +76,7 @@
void
testRangeParser(char const *rangestring)
{
- string aString (rangestring);
+ String aString (rangestring);
HttpHdrRange *range = HttpHdrRange::ParseCreate (&aString);
if (!range)
@@ -96,7 +96,7 @@
HttpHdrRange *
rangeFromString(char const *rangestring)
{
- string aString (rangestring);
+ String aString (rangestring);
HttpHdrRange *range = HttpHdrRange::ParseCreate (&aString);
if (!range)