100
100
WvHttpPool::WvHttpPool()
101
: log("HTTP Pool", WvLog::Debug), conns(10), pipeline_incompatible(50)
101
: log("HTTP Pool", WvLog::Debug), conns(10),
102
pipeline_incompatible(50)
103
104
log("Pool initializing.\n");
104
105
num_streams_created = 0;
122
bool WvHttpPool::pre_select(SelectInfo &si)
123
void WvHttpPool::pre_select(SelectInfo &si)
125
// log(WvLog::Debug5, "pre_select: main:%s conns:%s urls:%s\n",
126
// count(), conns.count(), urls.count());
128
WvIStreamList::pre_select(si);
130
WvUrlStreamDict::Iter ci(conns);
131
for (ci.rewind(); ci.next(); )
137
WvUrlRequestList::Iter i(urls);
138
for (i.rewind(); i.next(); )
142
log(WvLog::Debug4, "Checking dns for '%s'\n", i->url.gethost());
143
if (i->url.resolve())
146
dns.pre_select(i->url.gethost(), si);
152
bool WvHttpPool::post_select(SelectInfo &si)
124
154
bool sure = false;
126
156
WvUrlStreamDict::Iter ci(conns);
127
157
for (ci.rewind(); ci.next(); )
129
// if (!ci->isok() || urls.isempty())
161
log(WvLog::Debug4, "Selecting true because of a dead stream.\n");
132
162
unconnect(ci.ptr());
134
log(WvLog::Debug3, "Selecting true because of a dead stream.\n");
139
// log(WvLog::Debug5, "pre_select: main:%s conns:%s urls:%s\n",
140
// count(), conns.count(), urls.count());
142
168
WvUrlRequestList::Iter i(urls);
143
169
for (i.rewind(); i.next(); )
163
189
if (!i->instream)
165
191
log(WvLog::Debug4, "Checking dns for '%s'\n", i->url.gethost());
166
if (i->url.resolve() || dns.pre_select(i->url.gethost(), si))
192
if (i->url.resolve() || dns.post_select(i->url.gethost(), si))
168
194
log(WvLog::Debug4, "Selecting true because of '%s'\n", i->url);