cachehost *freecachehosts;
pendingscan *freependingscans;
foundproxy *freefoundproxies;
+extrascan *freeextrascans;
scan *getscan() {
int i;
if (!freependingscans) {
freependingscans=(pendingscan *)nsmalloc(POOL_PROXYSCAN,ALLOCUNIT * sizeof(pendingscan));
for (i=0;i<(ALLOCUNIT-1);i++)
- freependingscans[i].next = freependingscans+i+1;
+ freependingscans[i].next = (pendingscan *)&(freependingscans[i+1]);
freependingscans[ALLOCUNIT-1].next=NULL;
}
psp=freependingscans;
- freependingscans=psp->next;
+ freependingscans=(pendingscan *)psp->next;
return psp;
}
if (!freefoundproxies) {
freefoundproxies=(foundproxy *)nsmalloc(POOL_PROXYSCAN,ALLOCUNIT * sizeof(foundproxy));
for (i=0;i<(ALLOCUNIT-1);i++)
- freefoundproxies[i].next = freefoundproxies+i+1;
+ freefoundproxies[i].next = (foundproxy *)&(freefoundproxies[i+1]);
freefoundproxies[ALLOCUNIT-1].next=NULL;
}
fpp=freefoundproxies;
- freefoundproxies=fpp->next;
+ freefoundproxies=(foundproxy *)fpp->next;
return fpp;
}
freefoundproxies=fpp;
}
+extrascan *getextrascan() {
+ int i;
+ extrascan *esp;
+
+ if (freeextrascans==NULL) {
+ freeextrascans=(extrascan *)nsmalloc(POOL_PROXYSCAN,ALLOCUNIT*sizeof(extrascan));
+ for (i=0;i<(ALLOCUNIT-1);i++) {
+ freeextrascans[i].next=&(freeextrascans[i+1]);
+ }
+ freeextrascans[ALLOCUNIT-1].next=NULL;
+ }
+
+ esp=freeextrascans;
+ freeextrascans=esp->next;
+
+ return esp;
+}
+
+void freeextrascan(extrascan *esp) {
+ esp->next=freeextrascans;
+ freeextrascans=esp;
+}
+