/*
- * $Id: enums.h,v 1.134 1998/09/30 02:53:19 wessels Exp $
+ * $Id: enums.h,v 1.135 1998/10/12 21:40:57 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
#if USE_CARP
CARP,
#endif
+ ANY_OLD_PARENT,
HIER_MAX
} hier_code;
/*
- * $Id: neighbors.cc,v 1.257 1998/10/08 02:40:07 wessels Exp $
+ * $Id: neighbors.cc,v 1.258 1998/10/12 21:40:59 wessels Exp $
*
* DEBUG: section 15 Neighbor Routines
* AUTHOR: Harvest Derived
return NULL;
}
+peer *
+getAnyParent(request_t * request)
+{
+ peer *p = NULL;
+ for (p = Config.peers; p; p = p->next) {
+ if (neighborType(p, request) != PEER_PARENT)
+ continue;
+ if (!peerHTTPOkay(p, request))
+ continue;
+ debug(15, 3) ("getAnyParent: returning %s\n", p->host);
+ return p;
+ }
+ debug(15, 3) ("getAnyParent: returning NULL\n");
+ return NULL;
+}
+
peer *
getNextPeer(peer * p)
{
/*
- * $Id: peer_select.cc,v 1.86 1998/10/11 23:19:48 wessels Exp $
+ * $Id: peer_select.cc,v 1.87 1998/10/12 21:41:00 wessels Exp $
*
* DEBUG: section 44 Peer Selection Algorithm
* AUTHOR: Duane Wessels
#if USE_CARP
"CARP",
#endif
+ "ANY_PARENT",
"INVALID CODE"
};
*code = FIRSTUP_PARENT;
return p;
}
+ if ((p = getAnyParent(request))) {
+ *code = ANY_OLD_PARENT;
+ return p;
+ }
return NULL;
}
/*
- * $Id: protos.h,v 1.276 1998/10/10 14:57:42 wessels Exp $
+ * $Id: protos.h,v 1.277 1998/10/12 21:41:01 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
extern peer *peerFindByName(const char *);
extern peer *getDefaultParent(request_t * request);
extern peer *getRoundRobinParent(request_t * request);
+extern peer *getAnyParent(request_t * request);
extern lookup_t peerDigestLookup(peer * p, request_t * request, StoreEntry * entry);
extern peer *neighborsDigestSelect(request_t * request, StoreEntry * entry);
extern void peerNoteDigestLookup(request_t * request, peer * p, lookup_t lookup);