FCGI
[catagits/Gitalist.git] / local-lib5 / man / man3 / FCGI.3pm
CommitLineData
06d1a341 1.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sp \" Vertical space (when we can't use .PP)
6.if t .sp .5v
7.if n .sp
8..
9.de Vb \" Begin verbatim text
10.ft CW
11.nf
12.ne \\$1
13..
14.de Ve \" End verbatim text
15.ft R
16.fi
17..
18.\" Set up some character translations and predefined strings. \*(-- will
19.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20.\" double quote, and \*(R" will give a right double quote. \*(C+ will
21.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23.\" nothing in troff, for use with C<>.
24.tr \(*W-
25.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26.ie n \{\
27. ds -- \(*W-
28. ds PI pi
29. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31. ds L" ""
32. ds R" ""
33. ds C` ""
34. ds C' ""
35'br\}
36.el\{\
37. ds -- \|\(em\|
38. ds PI \(*p
39. ds L" ``
40. ds R" ''
41'br\}
42.\"
43.\" Escape single quotes in literal strings from groff's Unicode transform.
44.ie \n(.g .ds Aq \(aq
45.el .ds Aq '
46.\"
47.\" If the F register is turned on, we'll generate index entries on stderr for
48.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49.\" entries marked with X<> in POD. Of course, you'll have to process the
50.\" output yourself in some meaningful fashion.
51.ie \nF \{\
52. de IX
53. tm Index:\\$1\t\\n%\t"\\$2"
54..
55. nr % 0
56. rr F
57.\}
58.el \{\
59. de IX
60..
61.\}
62.\"
63.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64.\" Fear. Run. Save yourself. No user-serviceable parts.
65. \" fudge factors for nroff and troff
66.if n \{\
67. ds #H 0
68. ds #V .8m
69. ds #F .3m
70. ds #[ \f1
71. ds #] \fP
72.\}
73.if t \{\
74. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75. ds #V .6m
76. ds #F 0
77. ds #[ \&
78. ds #] \&
79.\}
80. \" simple accents for nroff and troff
81.if n \{\
82. ds ' \&
83. ds ` \&
84. ds ^ \&
85. ds , \&
86. ds ~ ~
87. ds /
88.\}
89.if t \{\
90. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96.\}
97. \" troff and (daisy-wheel) nroff accents
98.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105.ds ae a\h'-(\w'a'u*4/10)'e
106.ds Ae A\h'-(\w'A'u*4/10)'E
107. \" corrections for vroff
108.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110. \" for low resolution devices (crt and lpr)
111.if \n(.H>23 .if \n(.V>19 \
112\{\
113. ds : e
114. ds 8 ss
115. ds o a
116. ds d- d\h'-1'\(ga
117. ds D- D\h'-1'\(hy
118. ds th \o'bp'
119. ds Th \o'LP'
120. ds ae ae
121. ds Ae AE
122.\}
123.rm #[ #] #H #V #F C
124.\" ========================================================================
125.\"
126.IX Title "FCGI 3"
127.TH FCGI 3 "2010-05-28" "perl v5.8.8" "User Contributed Perl Documentation"
128.\" For nroff, turn off justification. Always turn off hyphenation; it makes
129.\" way too many mistakes in technical documents.
130.if n .ad l
131.nh
132.SH "NAME"
133FCGI \- Fast CGI module
134.SH "SYNOPSIS"
135.IX Header "SYNOPSIS"
136.Vb 1
137\& use FCGI;
138\&
139\& my $count = 0;
140\& my $request = FCGI::Request();
141\&
142\& while($request\->Accept() >= 0) {
143\& print("Content\-type: text/html\er\en\er\en", ++$count);
144\& }
145.Ve
146.SH "DESCRIPTION"
147.IX Header "DESCRIPTION"
148Functions:
149.IP "FCGI::Request" 4
150.IX Item "FCGI::Request"
151Creates a request handle. It has the following optional parameters:
152.RS 4
153.IP "input perl file handle (default: \e*STDIN)" 8
154.IX Item "input perl file handle (default: *STDIN)"
155.PD 0
156.IP "output perl file handle (default: \e*STDOUT)" 8
157.IX Item "output perl file handle (default: *STDOUT)"
158.IP "error perl file handle (default: \e*STDERR)" 8
159.IX Item "error perl file handle (default: *STDERR)"
160.PD
161These filehandles will be setup to act as input/output/error
162on succesful Accept.
163.IP "environment hash reference (default: \e%ENV)" 8
164.IX Item "environment hash reference (default: %ENV)"
165The hash will be populated with the environment.
166.IP "socket (default: 0)" 8
167.IX Item "socket (default: 0)"
168Socket to communicate with the server.
169Can be the result of the OpenSocket function.
170For the moment, it's the file descriptor of the socket
171that should be passed. This may change in the future.
172.Sp
173You should only use your own socket if your program
174is not started by a process manager such as mod_fastcgi
175(except for the FastCgiExternalServer case) or cgi-fcgi.
176If you use the option, you have to let your FastCGI
177server know which port (and possibly server) your program
178is listening on.
179See remote.pl for an example.
180.IP "flags (default: 0)" 8
181.IX Item "flags (default: 0)"
182Possible values:
183.RS 8
184.IP "\s-1FCGI::FAIL_ACCEPT_ON_INTR\s0" 12
185.IX Item "FCGI::FAIL_ACCEPT_ON_INTR"
186If set, Accept will fail if interrupted.
187It not set, it will just keep on waiting.
188.RE
189.RS 8
190.RE
191.RE
192.RS 4
193.Sp
194Example usage:
195 my \f(CW$req\fR = FCGI::Request;
196.Sp
197or:
198 my \f(CW%env\fR;
199 my \f(CW$in\fR = new IO::Handle;
200 my \f(CW$out\fR = new IO::Handle;
201 my \f(CW$err\fR = new IO::Handle;
202 my \f(CW$req\fR = FCGI::Request($in, \f(CW$out\fR, \f(CW$err\fR, \e%env);
203.RE
204.IP "FCGI::OpenSocket(path, backlog)" 4
205.IX Item "FCGI::OpenSocket(path, backlog)"
206Creates a socket suitable to use as an argument to Request.
207.RS 4
208.IP "path" 8
209.IX Item "path"
210Pathname of socket or colon followed by local tcp port.
211Note that some systems take file permissions into account
212on Unix domain sockets, so you'll have to make sure that
213the server can write to the created file, by changing
214the umask before the call and/or changing permissions and/or
215group of the file afterwards.
216.IP "backlog" 8
217.IX Item "backlog"
218Maximum length of the queue of pending connections.
219If a connection
220request arrives with the queue full the client may receive
221an error with an indication of \s-1ECONNREFUSED\s0.
222.RE
223.RS 4
224.RE
225.IP "FCGI::CloseSocket(socket)" 4
226.IX Item "FCGI::CloseSocket(socket)"
227Close a socket opened with OpenSocket.
228.ie n .IP "$req\->\fIAccept()\fR" 4
229.el .IP "\f(CW$req\fR\->\fIAccept()\fR" 4
230.IX Item "$req->Accept()"
231Accepts a connection on \f(CW$req\fR, attaching the filehandles and
232populating the environment hash.
233Returns 0 on success.
234If a connection has been accepted before, the old
235one will be finished first.
236.Sp
237Note that unlike with the old interface, no die and warn
238handlers are installed by default. This means that if
239you are not running an sfio enabled perl, any warn or
240die message will not end up in the server's log by default.
241It is advised you set up die and warn handlers yourself.
242\&\s-1FCGI\s0.pm contains an example of die and warn handlers.
243.ie n .IP "$req\->\fIFinish()\fR" 4
244.el .IP "\f(CW$req\fR\->\fIFinish()\fR" 4
245.IX Item "$req->Finish()"
246Finishes accepted connection.
247Also detaches filehandles.
248.ie n .IP "$req\->\fIFlush()\fR" 4
249.el .IP "\f(CW$req\fR\->\fIFlush()\fR" 4
250.IX Item "$req->Flush()"
251Flushes accepted connection.
252.ie n .IP "$req\->\fIDetach()\fR" 4
253.el .IP "\f(CW$req\fR\->\fIDetach()\fR" 4
254.IX Item "$req->Detach()"
255Temporarily detaches filehandles on an accepted connection.
256.ie n .IP "$req\->\fIAttach()\fR" 4
257.el .IP "\f(CW$req\fR\->\fIAttach()\fR" 4
258.IX Item "$req->Attach()"
259Re-attaches filehandles on an accepted connection.
260.ie n .IP "$req\->\fILastCall()\fR" 4
261.el .IP "\f(CW$req\fR\->\fILastCall()\fR" 4
262.IX Item "$req->LastCall()"
263Tells the library not to accept any more requests on this handle.
264It should be safe to call this method from signal handlers.
265.Sp
266Note that this method is still experimental and everything
267about it, including its name, is subject to change.
268.ie n .IP "$env = $req\->\fIGetEnvironment()\fR" 4
269.el .IP "\f(CW$env\fR = \f(CW$req\fR\->\fIGetEnvironment()\fR" 4
270.IX Item "$env = $req->GetEnvironment()"
271Returns the environment parameter passed to FCGI::Request.
272.ie n .IP "($in, $out, $err) = $req\->\fIGetHandles()\fR" 4
273.el .IP "($in, \f(CW$out\fR, \f(CW$err\fR) = \f(CW$req\fR\->\fIGetHandles()\fR" 4
274.IX Item "($in, $out, $err) = $req->GetHandles()"
275Returns the file handle parameters passed to FCGI::Request.
276.ie n .IP "$isfcgi = $req\->\fIIsFastCGI()\fR" 4
277.el .IP "\f(CW$isfcgi\fR = \f(CW$req\fR\->\fIIsFastCGI()\fR" 4
278.IX Item "$isfcgi = $req->IsFastCGI()"
279Returns whether or not the program was run as a FastCGI.
280.SH "AUTHOR"
281.IX Header "AUTHOR"
282Sven Verdoolaege <skimo@kotnet.org>