summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm
blob: 1e86dbf1bf430b509ef9ed324ee4510e715ce5ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
package Net::FastCGI::Constant;

use strict;
use warnings;

BEGIN {
    our $VERSION        = '0.14';
    my @common          = qw[ FCGI_MAX_CONTENT_LEN
                              FCGI_MAX_LEN
                              FCGI_HEADER_LEN
                              FCGI_VERSION_1
                              FCGI_NULL_REQUEST_ID ];

    my @type            = qw[ FCGI_BEGIN_REQUEST
                              FCGI_ABORT_REQUEST
                              FCGI_END_REQUEST
                              FCGI_PARAMS
                              FCGI_STDIN
                              FCGI_STDOUT
                              FCGI_STDERR
                              FCGI_DATA
                              FCGI_GET_VALUES
                              FCGI_GET_VALUES_RESULT
                              FCGI_UNKNOWN_TYPE
                              FCGI_MAXTYPE ];

    my @role            = qw[ FCGI_RESPONDER
                              FCGI_AUTHORIZER
                              FCGI_FILTER ];

    my @flag            = qw[ FCGI_KEEP_CONN ];

    my @protocol_status = qw[ FCGI_REQUEST_COMPLETE
                              FCGI_CANT_MPX_CONN
                              FCGI_OVERLOADED
                              FCGI_UNKNOWN_ROLE ];

    my @value           = qw[ FCGI_MAX_CONNS
                              FCGI_MAX_REQS
                              FCGI_MPXS_CONNS ];

    my @pack            = qw[ FCGI_Header
                              FCGI_BeginRequestBody
                              FCGI_EndRequestBody
                              FCGI_UnknownTypeBody ];

    my @name            = qw[ @FCGI_TYPE_NAME
                              @FCGI_RECORD_NAME
                              @FCGI_ROLE_NAME
                              @FCGI_PROTOCOL_STATUS_NAME ];

    our @EXPORT_OK      = (  @common,
                             @type,
                             @role,
                             @flag,
                             @protocol_status,
                             @value,
                             @pack,
                             @name );

    our %EXPORT_TAGS    = (  all             => \@EXPORT_OK,
                             common          => \@common,
                             type            => \@type,
                             role            => \@role,
                             flag            => \@flag,
                             protocol_status => \@protocol_status,
                             value           => \@value,
                             pack            => \@pack );

    our @FCGI_TYPE_NAME = (
        undef,                        #  0
        'FCGI_BEGIN_REQUEST',         #  1
        'FCGI_ABORT_REQUEST',         #  2
        'FCGI_END_REQUEST',           #  3
        'FCGI_PARAMS',                #  4
        'FCGI_STDIN',                 #  5
        'FCGI_STDOUT',                #  6
        'FCGI_STDERR',                #  7
        'FCGI_DATA',                  #  8
        'FCGI_GET_VALUES',            #  9
        'FCGI_GET_VALUES_RESULT',     # 10
        'FCGI_UNKNOWN_TYPE'           # 11
    );

    our @FCGI_RECORD_NAME = (
        undef,                        #  0
        'FCGI_BeginRequestRecord',    #  1
        'FCGI_AbortRequestRecord',    #  2
        'FCGI_EndRequestRecord',      #  3
        'FCGI_ParamsRecord',          #  4
        'FCGI_StdinRecord',           #  5
        'FCGI_StdoutRecord',          #  6
        'FCGI_StderrRecord',          #  7
        'FCGI_DataRecord',            #  8
        'FCGI_GetValuesRecord',       #  9
        'FCGI_GetValuesResultRecord', # 10
        'FCGI_UnknownTypeRecord',     # 11
    );

    our @FCGI_ROLE_NAME = (
        undef,                        #  0
        'FCGI_RESPONDER',             #  1
        'FCGI_AUTHORIZER',            #  2
        'FCGI_FILTER',                #  3
    );

    our @FCGI_PROTOCOL_STATUS_NAME = (
        'FCGI_REQUEST_COMPLETE',      #  0
        'FCGI_CANT_MPX_CONN',         #  1
        'FCGI_OVERLOADED',            #  2
        'FCGI_UNKNOWN_ROLE',          #  3
    );

    if (Internals->can('SvREADONLY')) { # 5.8
        Internals::SvREADONLY(@FCGI_TYPE_NAME, 1);
        Internals::SvREADONLY(@FCGI_RECORD_NAME, 1);
        Internals::SvREADONLY(@FCGI_ROLE_NAME, 1);
        Internals::SvREADONLY(@FCGI_PROTOCOL_STATUS_NAME, 1);
        Internals::SvREADONLY($_, 1) for @FCGI_TYPE_NAME,
                                         @FCGI_RECORD_NAME,
                                         @FCGI_ROLE_NAME,
                                         @FCGI_PROTOCOL_STATUS_NAME;
    }

    require Exporter;
    *import = \&Exporter::import;
}


sub FCGI_LISTENSOCK_FILENO   () {      0 }

# common
sub FCGI_MAX_CONTENT_LEN     () { 0xFFFF }
sub FCGI_MAX_LEN             () { 0xFFFF } # deprecated
sub FCGI_HEADER_LEN          () {      8 }
sub FCGI_VERSION_1           () {      1 }
sub FCGI_NULL_REQUEST_ID     () {      0 }

# type
sub FCGI_BEGIN_REQUEST       () {      1 }
sub FCGI_ABORT_REQUEST       () {      2 }
sub FCGI_END_REQUEST         () {      3 }
sub FCGI_PARAMS              () {      4 }
sub FCGI_STDIN               () {      5 }
sub FCGI_STDOUT              () {      6 }
sub FCGI_STDERR              () {      7 }
sub FCGI_DATA                () {      8 }
sub FCGI_GET_VALUES          () {      9 }
sub FCGI_GET_VALUES_RESULT   () {     10 }
sub FCGI_UNKNOWN_TYPE        () {     11 }
sub FCGI_MAXTYPE             () { FCGI_UNKNOWN_TYPE }

# role
sub FCGI_RESPONDER           () {      1 }
sub FCGI_AUTHORIZER          () {      2 }
sub FCGI_FILTER              () {      3 }

# flags
sub FCGI_KEEP_CONN           () {      1 }

# protocol status
sub FCGI_REQUEST_COMPLETE    () {      0 }
sub FCGI_CANT_MPX_CONN       () {      1 }
sub FCGI_OVERLOADED          () {      2 }
sub FCGI_UNKNOWN_ROLE        () {      3 }

# value
sub FCGI_MAX_CONNS           () { 'FCGI_MAX_CONNS'  }
sub FCGI_MAX_REQS            () { 'FCGI_MAX_REQS'   }
sub FCGI_MPXS_CONNS          () { 'FCGI_MPXS_CONNS' }

# pack
sub FCGI_Header              () { 'CCnnCx' }
sub FCGI_BeginRequestBody    () { 'nCx5'   }
sub FCGI_EndRequestBody      () { 'NCx3'   }
sub FCGI_UnknownTypeBody     () { 'Cx7'    }

1;