KHTTP_FCGI_TEST(3)

NAME
khttp_fcgi_test - test whether kcgi is using FastCGI

LIBRARY
libkcgi

SYNOPSIS
#include <sys/types.h>
#include <stdarg.h>
#include <stdint.h>
#include <kcgi.h>
int
khttp_fcgi_test();

DESCRIPTION
Tests whether the kcgi(3) application is being run under a FastCGI or regular CGI socket. This function may only be run prior to khttp_fcgi_init(3). Afterward, its behaviour is undefined.

EXAMPLES
The following example starts an application in FastCGI or regular CGI mode depending upon the environment.

    int
    main(void)
    {
      struct kreq	 req;
      struct kfcgi	*fcgi;
      enum kcgi_err	 er;
      if (!khttp_fcgi_test()) {
        er = khttp_parse(&req, NULL, 0, NULL, 0, 0);
        if (er != KCGI_OK)
          err(1, "khttp_parse: %s", kcgi_strerror(er));
        /* Do something. */
        khttp_free(&req);
        return 0;
      }
      er = khttp_fcgi_init(&fcgi, NULL, 0, NULL, 0, 0);
      if (er != KCGI_OK)
        errx(1, "khttp_fcgi_init: %s", kcgi_strerror(er));
      for (;;) {
        er = khttp_fcgi_parse(fcgi, &req);
        if (er != KCGI_OK)
          err(1, "khttp_fcgi_parse: %s", kcgi_strerror(er));
        if (KCGI_EXIT == er) {
          khttp_free(&req);
          break;
        }
        /* Do something. */
        khttp_free(&req);
      }
      khttp_fcgi_free(fcgi);
      return 0;
    }

SEE ALSO
kcgi(3)

AUTHORS
Written by Kristaps Dzonsons <kristaps@bsd.lv>.