X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Ffastcgi.c;h=f4b0f2d2123a91b6e43009fec1d3da97f0836b52;hb=81531e1d969957d5757887f1646d26093af96ff1;hp=989d16a3607319ba43e6a5c5ea317b7c1f8f7591;hpb=ea228f75c1f6d83f9a02a5ad5a7341caabac65c8;p=matches%2FMCTX3420.git diff --git a/server/fastcgi.c b/server/fastcgi.c index 989d16a..f4b0f2d 100644 --- a/server/fastcgi.c +++ b/server/fastcgi.c @@ -238,14 +238,19 @@ bool FCGI_ParseRequest(FCGIContext *context, char *params, FCGIValue values[], s case FCGI_BOOL_T: *((bool*) val->value) = true; break; - case FCGI_LONG_T: - *((long*) val->value) = strtol(value, &ptr, 10); + case FCGI_INT_T: case FCGI_LONG_T: { + long parsed = strtol(value, &ptr, 10); if (!*value || *ptr) { snprintf(buf, BUFSIZ, "Expected int for '%s' but got '%s'", key, value); FCGI_RejectJSON(context, FCGI_EscapeJSON(buf)); return false; } - break; + + if (FCGI_TYPE(val->flags) == FCGI_INT_T) + *((int*) val->value) = parsed; + else + *((long*) val->value) = parsed; + } break; case FCGI_DOUBLE_T: *((double*) val->value) = strtod(value, &ptr); if (!*value || *ptr) { @@ -440,8 +445,6 @@ void * FCGI_RequestLoop (void *data) Log(LOGDEBUG, "First request..."); while (FCGI_Accept() >= 0) { - - Log(LOGDEBUG, "Got request #%d", context.response_number); ModuleHandler module_handler = NULL; char module[BUFSIZ], params[BUFSIZ];