Re: [squid-users] some Squid implementation questions?

From: Henrik Nordstrom <hno@dont-contact.us>
Date: Thu, 14 Jun 2001 21:35:27 +0200

Sadhna.Ahuja@nokia.com wrote:

> The cache_dir line only provides the sd->path, sd->max_size, sd->u.ufs.l1
> and sd->u.ufs.l2, where sd = Config.cacheSwap.swapDirs[i]. But how is the
> cacheSwap struct (swapDirs, n_allocated & n_configured) initialized?

storeUfsDirParse is only the "ufs" sub-parser of cache_dir, parsing ufs
cache_dir lines. Before this the general cache_dir directive parser has
created the swapdir entry. See parse_cachedir.

Hint: all configuration directives are parsed by functions called
  parse_<typename as listed in cf.data.pre>

> In other words, in the function storeUfsDirParse(), do you always call
> allocate_new_swapdir() ? (That would happen if swap->n_configured is zero).

There is no allocate_new_swapdir() call in storeUfsDirParse(). At least
not in Suqid-2.4 or later.

> storeUnlink() calls storeUfsUnlink(), which in turn, calls unlinkdUnlink().
> This whole routine is bounded by #if USE_UNLINKD. Is USE_UNLINKD *always*
> defined?

When you build the "ufs" store yes, as it requires unlinkd. If you try
to disable unlinkd while building the "ufs" store building will fail.

For other stores the path may be different. Specifically for the "aufs"
store:

  storeUnlink() -> storeAufsUnlink() -> aioUnlink() -> aio_unlink() ->
[thread] -> aio_do_unlink().

as unlinkdUnlink() is not used there you may disable unlinkd, and
compilation will still work.

--
Henrik Nordstrom
Squid Hacker
Received on Thu Jun 14 2001 - 14:04:05 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:00:45 MST