summaryrefslogtreecommitdiffabout
path: root/src/fastcgi.cc
Side-by-side diff
Diffstat (limited to 'src/fastcgi.cc') (more/less context) (ignore whitespace changes)
-rw-r--r--src/fastcgi.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/fastcgi.cc b/src/fastcgi.cc
index 6285370..8b7668c 100644
--- a/src/fastcgi.cc
+++ b/src/fastcgi.cc
@@ -28,25 +28,28 @@ namespace kingate {
if(!_initialized) {
if( FCGX_Init() )
throw exception(CODEPOINT,"failed to FCGX_Init()");
_initialized = true;
}
}
fcgi_socket::~fcgi_socket() {
if(sock>=0)
close(sock);
}
fcgi_interface::fcgi_interface(fcgi_socket& s,int f)
- : sin(&sbin), sout(&sbout), serr(&sberr) {
+ : sbin(buf_sbin,sizeof(buf_sbin)),
+ sbout(buf_sbout,sizeof(buf_sbout)),
+ sberr(buf_sberr,sizeof(buf_sberr)),
+ sin(&sbin), sout(&sbout), serr(&sberr) {
if( FCGX_InitRequest(&request,s.sock,f) )
throw exception(CODEPOINT,"failed to FCGX_InitRequest()");
if( FCGX_Accept_r(&request) )
throw exception(CODEPOINT,"failed to FCGX_Accept_r()");
sbin.attach(request.in);
sbout.attach(request.out);
sberr.attach(request.err);
for(char **p = request.envp; *p; p++) {
const char *e = strchr(*p,'=');
if(!e){
// XXX: check if we have it already?
metavars[*p] = string(0);