Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KHTTP_FCGI_GETFD(3)	     Library Functions Manual	     KHTTP_FCGI_GETFD(3)

NAME
     khttp_fcgi_getfd -- get the FastCGI control socket

LIBRARY
     libkcgi

SYNOPSIS
     #include <sys/types.h>
     #include <stdarg.h>
     #include <stdint.h>
     #include <kcgi.h>

     int
     khttp_fcgi_getfd(const struct kfcgi *fcgi);

DESCRIPTION
     Get  the  control	socket used for handling FastCGI processes.  This should
     only be used for polling purposes in asynchronous applications.  If the re-
     turned socket descriptor is manipulated in any other way, the  results  are
     undefined.

     The returned descriptor is only valid after khttp_fcgi_init(3) and prior to
     khttp_fcgi_free(3).

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

	   int
	   main(void)
	   {
	     struct pollfd  pfd;
	     struct kreq    req;
	     struct kfcgi  *fcgi;
	     enum kcgi_err  er;
	     int rc;

	     er = khttp_fcgi_init(&fcgi, NULL, 0, NULL, 0, 0);
	     if (er != KCGI_OK)
	       errx(1, "khttp_fcgi_init: %s", kcgi_strerror(er));

	     pfd.events = POLLIN;
	     pfd.fd = khttp_fcgi_getfd(fcgi);

	     /* Poll on other sockets here... */
	     while ((rc = poll(&pfd, 1, INFTIM)) != -1) {
	       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);
	     if (rc == -1)
	       err(1, "poll");
	     return 0;
	   }

SEE ALSO
     kcgi(3)

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

FreeBSD ports 15.quarterly	   $Mdocdate$		     KHTTP_FCGI_GETFD(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=khttp_fcgi_getfd&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help