File Coverage

blib/lib/Net/Gnats/Constants.pm
Criterion Covered Total %
statement 7 8 87.5
branch n/a
condition n/a
subroutine 3 4 75.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package Net::Gnats::Constants;
2 41     41   41432 use strictures;
  41         81  
  41         216  
3             BEGIN {
4 41     41   9355 $Net::Gnats::Constants::VERSION = '0.22';
5             }
6 41     41   224 use vars qw($VERSION);
  41     0   82  
  41         72528  
7              
8             require Exporter;
9             our @ISA = qw(Exporter);
10              
11             our @EXPORT_OK =
12             qw( CODE_GREETING CODE_CLOSING CODE_OK CODE_SEND_PR CODE_SEND_TEXT
13             CODE_SEND_CHANGE_REASON
14             CODE_NO_PRS_MATCHED CODE_NO_ADM_ENTRY CODE_PR_READY CODE_TEXT_READY
15             CODE_INFORMATION CODE_INFORMATION_FILLER CODE_NONEXISTENT_PR
16             CODE_EOF_PR CODE_UNREADABLE_PR CODE_INVALID_PR_CONTENTS
17             CODE_INVALID_FIELD_NAME CODE_INVALID_ENUM CODE_INVALID_DATE
18             CODE_INVALID_FIELD_CONTENTS CODE_INVALID_SEARCH_TYPE CODE_INVALID_EXPR
19             CODE_INVALID_LIST CODE_INVALID_DATABASE CODE_INVALID_QUERY_FORMAT
20             CODE_NO_KERBEROS CODE_AUTH_TYPE_UNSUP CODE_NO_ACCESS CODE_LOCKED_PR
21             CODE_GNATS_LOCKED CODE_GNATS_NOT_LOCKED
22             CODE_PR_NOT_LOCKED CODE_READONLY_FIELD
23             CODE_INVALID_FTYPE_PROPERTY
24             CODE_CMD_ERROR CODE_WRITE_PR_FAILED CODE_ERROR CODE_TIMEOUT
25             CODE_NO_GLOBAL_CONFIG CODE_INVALID_GLOBAL_CONFIG CODE_NO_INDEX
26             CODE_FILE_ERROR
27              
28             SENDINCLUDE REASONCHANGE READONLY AUDITINCLUDE SENDREQUIRED
29             REPLY_CONT REPLY_END RESTART_CHECK_THRESHOLD
30              
31             CATEGORY_FIELD SYNOPSIS_FIELD SUBMITTER_ID_FIELD ORIGINATOR_FIELD
32             AUDIT_TRAIL_FIELD RESPONSIBLE_FIELD LAST_MODIFIED_FIELD NUMBER_FIELD
33             STATE_FIELD UNFORMATTED_FIELD RELEASE_FIELD
34              
35             FROM_FIELD REPLYTO_FIELD TO_FIELD CC_FIELD SUBJECT_FIELD SENDPR_VER_FIELD
36             NOTIFY_FIELD
37              
38             CR LF CRLF DOT CONT
39              
40             MAX_NEW_PRS);
41              
42 0           BEGIN {
43             sub CR () { "\015" }
44             sub LF () { "\012" }
45             sub CRLF () { "\015\012" }
46             sub DOT () { '.' }
47             sub CONT () { '-' }
48              
49             # pcodes.h, gnats core
50             sub CODE_GREETING () { 200 }
51             sub CODE_CLOSING () { 201 }
52             sub CODE_OK () { 210 }
53             sub CODE_SEND_PR () { 211 }
54             sub CODE_SEND_TEXT () { 212 }
55             sub CODE_SEND_CHANGE_REASON () { 213 }
56             sub CODE_NO_PRS_MATCHED () { 220 }
57             sub CODE_NO_ADM_ENTRY () { 221 }
58              
59             sub CODE_PR_READY () { 300 }
60             sub CODE_TEXT_READY () { 301 }
61             sub CODE_INFORMATION () { 350 }
62             sub CODE_INFORMATION_FILLER () { 351 }
63              
64             sub CODE_NONEXISTENT_PR () { 400 }
65             sub CODE_EOF_PR () { 401 }
66             sub CODE_UNREADABLE_PR () { 402 }
67             sub CODE_INVALID_PR_CONTENTS () { 403 }
68             sub CODE_INVALID_FIELD_NAME () { 410 }
69             sub CODE_INVALID_ENUM () { 411 }
70             sub CODE_INVALID_DATE () { 412 }
71             sub CODE_INVALID_FIELD_CONTENTS () { 413 }
72             sub CODE_INVALID_SEARCH_TYPE () { 414 }
73             sub CODE_INVALID_EXPR () { 415 }
74             sub CODE_INVALID_LIST () { 416 }
75             sub CODE_INVALID_DATABASE () { 417 }
76             sub CODE_INVALID_QUERY_FORMAT () { 418 }
77             sub CODE_NO_KERBEROS () { 420 }
78             sub CODE_AUTH_TYPE_UNSUP () { 421 }
79             sub CODE_NO_ACCESS () { 422 }
80             sub CODE_LOCKED_PR () { 430 }
81             sub CODE_GNATS_LOCKED () { 431 }
82             sub CODE_GNATS_NOT_LOCKED () { 432 }
83             sub CODE_PR_NOT_LOCKED () { 433 }
84             sub CODE_READONLY_FIELD () { 434 }
85             sub CODE_INVALID_FTYPE_PROPERTY () { 435 }
86             sub CODE_CMD_ERROR () { 440 }
87             sub CODE_WRITE_PR_FAILED () { 450 }
88              
89             sub CODE_ERROR () { 600 }
90             sub CODE_TIMEOUT () { 610 }
91             sub CODE_NO_GLOBAL_CONFIG () { 620 }
92             sub CODE_INVALID_GLOBAL_CONFIG () { 621 }
93             sub CODE_NO_INDEX () { 630 }
94             sub CODE_FILE_ERROR () { 640 }
95              
96             # bits in fieldinfo(field, flags) has (set=yes not-set=no) whether the
97             # send command should include the field
98             sub SENDINCLUDE () { 1 }
99              
100             # whether change to a field requires reason
101             sub REASONCHANGE () { 2 }
102              
103             # if set, can't be edited
104             sub READONLY () { 4 }
105              
106             # if set, save changes in Audit-Trail
107             sub AUDITINCLUDE () { 8 }
108              
109             # whether the send command _must_ include this field
110             sub SENDREQUIRED () { 16 }
111              
112             # The possible values of a server reply type. $REPLY_CONT means that
113             # there are more reply lines that will follow, $REPLY_END Is the final
114             # line.
115             sub REPLY_CONT () { 1 }
116             sub REPLY_END () { 2 }
117              
118             # This was found as an 'arbitrary' restart value.
119             sub RESTART_CHECK_THRESHOLD () { 5 }
120              
121             # Various PR field names that should probably not be referenced in
122             # here.
123             #
124              
125             # Actually, the majority of uses are probably OK--but we need to map
126             # internal names to external ones. (All of these field names
127             # correspond to internal fields that are likely to be around for a
128             # long time.)
129             #
130              
131             sub CATEGORY_FIELD () { 'Category' }
132             sub SYNOPSIS_FIELD () { 'Synopsis' }
133             sub SUBMITTER_ID_FIELD () { 'Submitter-Id' }
134             sub ORIGINATOR_FIELD () { 'Originator' }
135             sub AUDIT_TRAIL_FIELD () { 'Audit-Trail' }
136             sub RESPONSIBLE_FIELD () { 'Responsible' }
137             sub LAST_MODIFIED_FIELD () { 'Last-Modified' }
138              
139             sub NUMBER_FIELD () { 'builtinfield:Number' }
140             sub STATE_FIELD () { 'State' }
141             sub UNFORMATTED_FIELD () { 'Unformatted' }
142             sub RELEASE_FIELD () { 'Release' }
143              
144             sub FROM_FIELD () { 'From' }
145             sub REPLYTO_FIELD () { 'Reply-To' }
146             sub TO_FIELD () { 'To' }
147             sub CC_FIELD () { 'Cc' }
148             sub SUBJECT_FIELD () {'Subject'}
149             sub SENDPR_VER_FIELD () {'X-Send-Pr-Version' }
150             sub NOTIFY_FIELD () {'X-GNATS-Notify'}
151             sub MAX_NEW_PRS () { 100 }
152              
153             }
154              
155              
156              
157             =head1 PROTOCOL RESPONSE CODES
158              
159             =head2 CODE_GREETING
160              
161             =cut
162              
163             *CR = \CR();
164             *LF = \LF();
165             *CRLF = \CRLF();
166             *DOT = \DOT();
167             *CONT = \CONT();
168             *CODE_GREETING = \CODE_GREETING();
169             *CODE_CLOSING = \CODE_CLOSING();
170             *CODE_OK = \CODE_OK();
171             *CODE_SEND_PR = \CODE_SEND_PR();
172             *CODE_SEND_TEXT = \CODE_SEND_TEXT();
173             *CODE_SEND_CHANGE_REASON = \CODE_SEND_CHANGE_REASON();
174             *CODE_NO_PRS_MATCHED = \CODE_NO_PRS_MATCHED();
175             *CODE_NO_ADM_ENTRY = \CODE_NO_ADM_ENTRY();
176             *CODE_PR_READY = \CODE_PR_READY();
177             *CODE_TEXT_READY = \CODE_TEXT_READY();
178             *CODE_INFORMATION = \CODE_INFORMATION();
179             *CODE_INFORMATION_FILLER = \CODE_INFORMATION_FILLER();
180             *CODE_NONEXISTENT_PR = \CODE_NONEXISTENT_PR();
181             *CODE_EOF_PR = \CODE_EOF_PR();
182             *CODE_UNREADABLE_PR = \CODE_UNREADABLE_PR();
183             *CODE_INVALID_PR_CONTENTS = \CODE_INVALID_PR_CONTENTS();
184             *CODE_INVALID_FIELD_NAME = \CODE_INVALID_FIELD_NAME();
185             *CODE_INVALID_ENUM = \CODE_INVALID_ENUM();
186             *CODE_INVALID_DATE = \CODE_INVALID_DATE();
187             *CODE_INVALID_FIELD_CONTENTS = \CODE_INVALID_FIELD_CONTENTS();
188             *CODE_INVALID_SEARCH_TYPE = \CODE_INVALID_SEARCH_TYPE();
189             *CODE_INVALID_EXPR = \CODE_INVALID_EXPR();
190             *CODE_INVALID_LIST = \CODE_INVALID_LIST();
191             *CODE_INVALID_DATABASE = \CODE_INVALID_DATABASE();
192             *CODE_INVALID_QUERY_FORMAT = \CODE_INVALID_QUERY_FORMAT();
193             *CODE_NO_KERBEROS = \CODE_NO_KERBEROS();
194             *CODE_AUTH_TYPE_UNSUP = \CODE_AUTH_TYPE_UNSUP;
195             *CODE_NO_ACCESS = \CODE_NO_ACCESS();
196             *CODE_LOCKED_PR = \CODE_LOCKED_PR();
197             *CODE_GNATS_LOCKED = \CODE_GNATS_LOCKED();
198             *CODE_GNATS_NOT_LOCKED = \CODE_GNATS_NOT_LOCKED();
199             *CODE_PR_NOT_LOCKED = \CODE_PR_NOT_LOCKED();
200             *CODE_READONLY_FIELD = \CODE_READONLY_FIELD();
201             *CODE_INVALID_FTYPE_PROPERTY = \CODE_INVALID_FTYPE_PROPERTY();
202             *CODE_CMD_ERROR = \CODE_CMD_ERROR();
203             *CODE_WRITE_PR_FAILED = \CODE_WRITE_PR_FAILED();
204             *CODE_ERROR = \CODE_ERROR();
205             *CODE_TIMEOUT = \CODE_TIMEOUT();
206             *CODE_NO_GLOBAL_CONFIG = \CODE_NO_GLOBAL_CONFIG();
207             *CODE_INVALID_GLOBAL_CONFIG = \CODE_INVALID_GLOBAL_CONFIG();
208             *CODE_NO_INDEX = \CODE_NO_INDEX();
209             *CODE_FILE_ERROR = \CODE_FILE_ERROR();
210              
211             *SENDINCLUDE = \SENDINCLUDE();
212             *REASONCHANGE = \REASONCHANGE();
213             *READONLY = \READONLY();
214             *AUDITINCLUDE = \AUDITINCLUDE();
215             *SENDREQUIRED = \SENDREQUIRED();
216             *REPLY_CONT = \REPLY_CONT();
217             *REPLY_END = \REPLY_END();
218              
219             *RESTART_CHECK_THRESHOLD = \RESTART_CHECK_THRESHOLD();
220              
221             *CATEGORY_FIELD = \CATEGORY_FIELD();
222             *SYNOPSIS_FIELD = \SYNOPSIS_FIELD();
223             *SUBMITTER_ID_FIELD = \SUBMITTER_ID_FIELD();
224             *ORIGINATOR_FIELD = \ORIGINATOR_FIELD();
225             *AUDIT_TRAIL_FIELD = \AUDIT_TRAIL_FIELD();
226             *RESPONSIBLE_FIELD = \RESPONSIBLE_FIELD();
227             *LAST_MODIFIED_FIELD = \LAST_MODIFIED_FIELD();
228             *NUMBER_FIELD = \NUMBER_FIELD();
229             *STATE_FIELD = \STATE_FIELD();
230             *UNFORMATTED_FIELD = \UNFORMATTED_FIELD();
231             *RELEASE_FIELD = \RELEASE_FIELD();
232              
233             *FROM_FIELD = \FROM_FIELD();
234             *REPLYTO_FIELD = \REPLYTO_FIELD();
235             *TO_FIELD = \TO_FIELD();
236             *CC_FIELD = \CC_FIELD();
237             *SUBJECT_FIELD = \SUBJECT_FIELD();
238             *SENDPR_VER_FIELD = \SENDPR_VER_FIELD();
239             *NOTIFY_FIELD = \NOTIFY_FIELD();
240              
241             1;