static int child(void) { struct kreq r; const char *page = "index"; struct kfcgi *fcgi; enum kcgi_err er; if ( ! khttp_fcgi_test()) return(0); if (KCGI_OK != khttp_fcgi_init(&fcgi, NULL, 0, &page, 1, 0)) return(0); while (KCGI_OK == (er = khttp_fcgi_parse(fcgi, &r))) { khttp_head(&r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); khttp_head(&r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_TEXT_HTML]); khttp_body(&r); khttp_free(&r); } khttp_free(&r); khttp_fcgi_free(fcgi); return(KCGI_HUP == er ? 1 : 0); }
static int child(void) { struct kreq r; const char *page = "index"; int rc; rc = 0; if (khttp_fcgi_test()) return(0); if (KCGI_OK != khttp_parse(&r, NULL, 0, &page, 1, 0)) return(0); if (KAUTH_DIGEST != r.rawauth.type) goto out; else if (0 == r.rawauth.authorised) goto out; else if (strcmp(r.rawauth.d.digest.user, "Mufasa")) goto out; else if (strcmp(r.rawauth.d.digest.realm, "*****@*****.**")) goto out; else if (strcmp(r.rawauth.d.digest.uri, "/dir/index.html")) goto out; else if (khttpdigest_validate(&r, "Circle Of Life") <= 0) goto out; khttp_head(&r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); khttp_head(&r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_TEXT_HTML]); khttp_body(&r); rc = 1; out: khttp_free(&r); return(rc); }
static int child(void) { struct kreq r; const char *page = "index"; struct kfcgi *fcgi; struct kvalid key = { kvalid_abort, "foo" }; enum kcgi_err er; if ( ! khttp_fcgi_test()) return(0); if (KCGI_OK != khttp_fcgi_init(&fcgi, &key, 1, &page, 1, 0)) return(0); er = khttp_fcgi_parse(fcgi, &r); khttp_free(&r); khttp_fcgi_free(fcgi); return(KCGI_HUP == er ? 1 : 0); }
static int child(void) { struct kreq r; const char *page = "index"; if (khttp_fcgi_test()) return(0); if (KCGI_OK != khttp_parse(&r, NULL, 0, &page, 1, 0)) return(0); khttp_head(&r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_415]); khttp_head(&r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_TEXT_HTML]); khttp_body(&r); khttp_free(&r); return(1); }