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
       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 returned	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 14.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+14.3.quarterly>

home | help