<em>concurrency=N</em> previously called <em>auth_param ... concurrency</em> as a separate option.
<p>Removed Basic, Digest, NTLM, Negotiate <em>auth_param ... concurrency</em> setting option.
+ <tag>cache_dir</tag>
+ <p><em>min-size</em> option ported from Squid-2
+
<tag>cache_peer</tag>
<p><em>htcp-*</em> options collapsed into <em>htcp=</em> taking an optional comma-separated list of flags.
The old form is deprecated but still accepted.
<p>Not yet ported from 2.6
<tag>cache_dir</tag>
- <p><em>min-size</em> option not yet ported from Squid-2
<p><em>COSS</em> storage type is lacking stability fixes from 2.6
<p>COSS <em>overwrite-percent=</em> option not yet ported from 2.6
<p>COSS <em>max-stripe-waste=</em> option not yet ported from 2.6
{
ConfigOptionVector *result = new ConfigOptionVector;
result->options.push_back(new ConfigOptionAdapter<SwapDir>(*const_cast<SwapDir *>(this), &SwapDir::optionReadOnlyParse, &SwapDir::optionReadOnlyDump));
- result->options.push_back(new ConfigOptionAdapter<SwapDir>(*const_cast<SwapDir *>(this), &SwapDir::optionMaxSizeParse, &SwapDir::optionMaxSizeDump));
+ result->options.push_back(new ConfigOptionAdapter<SwapDir>(*const_cast<SwapDir *>(this), &SwapDir::optionObjectSizeParse, &SwapDir::optionObjectSizeDump));
return result;
}
}
bool
-SwapDir::optionMaxSizeParse(char const *option, const char *value, int isaReconfig)
+SwapDir::optionObjectSizeParse(char const *option, const char *value, int isaReconfig)
{
- if (strcmp(option, "max-size") != 0)
+ int64_t *val;
+ if (strcmp(option, "max-size") == 0) {
+ val = &max_objsize;
+ } else if (strcmp(option, "min-size") == 0) {
+ val = &min_objsize;
+ } else
return false;
if (!value)
int64_t size = strtoll(value, NULL, 10);
- if (isaReconfig && max_objsize != size)
- debugs(3, 1, "Cache dir '" << path << "' max object size now " << size);
+ if (isaReconfig && *val != size)
+ debugs(3, 1, "Cache dir '" << path << "' object " << option << " now " << size);
- max_objsize = size;
+ *val = size;
return true;
}
void
-SwapDir::optionMaxSizeDump(StoreEntry * e) const
+SwapDir::optionObjectSizeDump(StoreEntry * e) const
{
+ if (min_objsize != -1)
+ storeAppendPrintf(e, " min-size=%"PRId64, min_objsize);
+
if (max_objsize != -1)
storeAppendPrintf(e, " max-size=%"PRId64, max_objsize);
}
{
public:
- SwapDir(char const *aType) : theType (aType), cur_size(0), max_size(0), max_objsize (-1), cleanLog(NULL) {
+ SwapDir(char const *aType) : theType (aType), cur_size(0), max_size(0), min_objsize(-1), max_objsize(-1), cleanLog(NULL) {
fs.blksize = 1024;
path = NULL;
}
private:
bool optionReadOnlyParse(char const *option, const char *value, int reconfiguring);
void optionReadOnlyDump(StoreEntry * e) const;
- bool optionMaxSizeParse(char const *option, const char *value, int reconfiguring);
- void optionMaxSizeDump(StoreEntry * e) const;
+ bool optionObjectSizeParse(char const *option, const char *value, int reconfiguring);
+ void optionObjectSizeDump(StoreEntry * e) const;
char const *theType;
public:
uint64_t max_size; ///< maximum allocatable size of the storage area
char *path;
int index; /* This entry's index into the swapDirs array */
+ int64_t min_objsize;
int64_t max_objsize;
RemovalPolicy *repl;
int removals;
#endif
}
-/*
+/**
* Determine whether the given directory can handle this object
* size
*
* Note: if the object size is -1, then the only swapdirs that
- * will return true here are ones that have max_obj_size = -1,
+ * will return true here are ones that have min and max unset,
* ie any-sized-object swapdirs. This is a good thing.
*/
bool
SwapDir::objectSizeIsAcceptable(int64_t objsize) const
{
- /*
- * If the swapdir's max_obj_size is -1, then it definitely can
- */
-
- if (max_objsize == -1)
+ // If the swapdir has no range limits, then it definitely can
+ if (min_objsize == -1 && max_objsize == -1)
return true;
/*
- * If the object size is -1, then if the storedir isn't -1 we
- * can't store it
+ * If the object size is -1 and the storedir has limits we
+ * can't store it there.
*/
- if ((objsize == -1) && (max_objsize != -1))
+ if (objsize == -1)
return false;
- /*
- * Else, make sure that the max object size is larger than objsize
- */
- return max_objsize > objsize;
+ // Else, make sure that the object size will fit.
+ return min_objsize <= objsize && max_objsize > objsize;
}