Squid code questions should be send to squid-dev@squid-cache.org.
This block seems to be there to introduce additional local variables.
Unlike C++ C can only have variable declarations at the head of a block.
DIRECT is one of the servers added to the servers list if so is allowed
in peer selection (remember, DIRECT may have been forbidden in the
configuration by never_direct).
If the server list ends up empty then there was no possible paths to use
to forward the request (not even DIRECT).
-- Henrik Nordstrom Squid Hacker Songqing Chen wrote: > > Hi, Henrik, > two questions when I read the program. > 1. in the cachemgrStart , the usage of { } seems wired/unnecessary. Not sure if it is a > careless mistake. > > assert(a != NULL); > if (a->flags.atomic) > storeBuffer(entry); > { > HttpReply *rep = entry->mem_obj->reply; > /* prove there are no previous reply headers around */ > assert(0 == rep->sline.status); > httpReplySetHeaders(rep, > (double) 1.0, > HTTP_OK, > NULL, > "text/plain", > -1, /* C-Len */ > squid_curtime, /* LMT */ > squid_curtime); > httpReplySwapOut(rep, entry); > } > a->handler(entry); > > 2. If the object is not cached in the proxy, and the request is directed to fetch it from > original server. > the last line in "peerSelectFoo" calls "peerSelectCallback(ps)" , > in which "fwdStartComplete" is called as the callback function, with the psstate->servers > set to NULL. > But in the fwdStartComplete, if the server is set to NULL, > it will call the fwdStartFail. > > I am not sure if my understanding is correct. > > -- > > Songqing Chen > Dept. of Computer Science > College of William&MaryReceived on Tue May 01 2001 - 07:47:30 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:13:57 MST