mirror of
https://github.com/bgp/bgpq4
synced 2025-02-28 08:53:11 +00:00
Solaris: tested and does not works..
This commit is contained in:
@@ -37,6 +37,12 @@ bgpq_expander_init(struct bgpq_expander* b, int af)
|
|||||||
b->name="NN";
|
b->name="NN";
|
||||||
b->aswidth=8;
|
b->aswidth=8;
|
||||||
b->asn32s[0]=malloc(8192);
|
b->asn32s[0]=malloc(8192);
|
||||||
|
if(!b->asn32s[0]) {
|
||||||
|
sx_report(SX_FATAL,"Unable to allocate 8192 bytes: %s\n",
|
||||||
|
strerror(errno));
|
||||||
|
exit(1);
|
||||||
|
};
|
||||||
|
memset(b->asn32s[0],0,8192);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
fixups:
|
fixups:
|
||||||
@@ -212,6 +218,7 @@ bgpq_pipeline_dequeue_ripe(FILE* f, struct bgpq_expander* b)
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
};
|
};
|
||||||
if(feof(f)) {
|
if(feof(f)) {
|
||||||
sx_report(SX_FATAL,"EOF from RADB\n");
|
sx_report(SX_FATAL,"EOF from RADB\n");
|
||||||
@@ -319,6 +326,7 @@ bgpq_pipeline(FILE* f, int (*callback)(char*, void*), void* udata,
|
|||||||
};
|
};
|
||||||
memset(bp,0,sizeof(bp));
|
memset(bp,0,sizeof(bp));
|
||||||
|
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
ret=fwrite(request,1,strlen(request),f);
|
ret=fwrite(request,1,strlen(request),f);
|
||||||
fseek(f,0,SEEK_END);
|
fseek(f,0,SEEK_END);
|
||||||
|
|
||||||
@@ -359,6 +367,7 @@ bgpq_pipeline_dequeue(FILE* f, struct bgpq_expander* b)
|
|||||||
};
|
};
|
||||||
exit(1);
|
exit(1);
|
||||||
};
|
};
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
|
|
||||||
if(request[0]=='A') {
|
if(request[0]=='A') {
|
||||||
char* eon, *c;
|
char* eon, *c;
|
||||||
@@ -379,6 +388,7 @@ bgpq_pipeline_dequeue(FILE* f, struct bgpq_expander* b)
|
|||||||
};
|
};
|
||||||
exit(1);
|
exit(1);
|
||||||
};
|
};
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
|
|
||||||
for(c=recvbuffer; c<recvbuffer+togot;) {
|
for(c=recvbuffer; c<recvbuffer+togot;) {
|
||||||
size_t spn=strcspn(c," \n");
|
size_t spn=strcspn(c," \n");
|
||||||
@@ -400,6 +410,7 @@ bgpq_pipeline_dequeue(FILE* f, struct bgpq_expander* b)
|
|||||||
};
|
};
|
||||||
exit(1);
|
exit(1);
|
||||||
};
|
};
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
} else if(request[0]=='C') {
|
} else if(request[0]=='C') {
|
||||||
/* No data */
|
/* No data */
|
||||||
} else if(request[0]=='D') {
|
} else if(request[0]=='D') {
|
||||||
@@ -418,6 +429,7 @@ bgpq_pipeline_dequeue(FILE* f, struct bgpq_expander* b)
|
|||||||
b->piped--;
|
b->piped--;
|
||||||
free(pipe);
|
free(pipe);
|
||||||
|
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
};
|
};
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
@@ -436,6 +448,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata,
|
|||||||
|
|
||||||
SX_DEBUG(debug_expander,"expander: sending '%s'\n", request);
|
SX_DEBUG(debug_expander,"expander: sending '%s'\n", request);
|
||||||
|
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
ret=fwrite(request,1,strlen(request),f);
|
ret=fwrite(request,1,strlen(request),f);
|
||||||
fseek(f,0,SEEK_END);
|
fseek(f,0,SEEK_END);
|
||||||
if(ret!=strlen(request)) {
|
if(ret!=strlen(request)) {
|
||||||
@@ -455,6 +468,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata,
|
|||||||
};
|
};
|
||||||
SX_DEBUG(debug_expander>2,"expander: initially got %i bytes, '%s'\n",
|
SX_DEBUG(debug_expander>2,"expander: initially got %i bytes, '%s'\n",
|
||||||
strlen(request),request);
|
strlen(request),request);
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
if(request[0]=='A') {
|
if(request[0]=='A') {
|
||||||
char* eon, *c;
|
char* eon, *c;
|
||||||
long togot=strtoul(request+1,&eon,10);
|
long togot=strtoul(request+1,&eon,10);
|
||||||
@@ -476,6 +490,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata,
|
|||||||
};
|
};
|
||||||
SX_DEBUG(debug_expander>2,"expander: final reply of %i bytes, '%s'\n",
|
SX_DEBUG(debug_expander>2,"expander: final reply of %i bytes, '%s'\n",
|
||||||
strlen(recvbuffer),recvbuffer);
|
strlen(recvbuffer),recvbuffer);
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
|
|
||||||
for(c=recvbuffer; c<recvbuffer+togot;) {
|
for(c=recvbuffer; c<recvbuffer+togot;) {
|
||||||
size_t spn=strcspn(c," \n");
|
size_t spn=strcspn(c," \n");
|
||||||
@@ -493,6 +508,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata,
|
|||||||
};
|
};
|
||||||
exit(1);
|
exit(1);
|
||||||
};
|
};
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
} else if(request[0]=='C') {
|
} else if(request[0]=='C') {
|
||||||
/* no data */
|
/* no data */
|
||||||
} else if(request[0]=='D') {
|
} else if(request[0]=='D') {
|
||||||
@@ -571,6 +587,7 @@ bgpq_expand(struct bgpq_expander* b)
|
|||||||
snprintf(sources,sizeof(sources),"!s%s\n", b->sources);
|
snprintf(sources,sizeof(sources),"!s%s\n", b->sources);
|
||||||
fseek(f,0,SEEK_END);
|
fseek(f,0,SEEK_END);
|
||||||
fwrite(sources,strlen(sources),1,f);
|
fwrite(sources,strlen(sources),1,f);
|
||||||
|
fseek(f,0,SEEK_END);
|
||||||
fgets(sources,sizeof(sources),f);
|
fgets(sources,sizeof(sources),f);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user