File Coverage

blib/lib/Net/Hotline/Constants.pm
Criterion Covered Total %
statement 432 432 100.0
branch 1 2 50.0
condition n/a
subroutine 144 144 100.0
pod n/a
total 577 578 99.8


line stmt bran cond sub pod time code
1             package Net::Hotline::Constants;
2              
3             ## Copyright(c) 1998-2002 by John C. Siracusa. All rights reserved. This
4             ## program is free software; you can redistribute it and/or modify it under
5             ## the same terms as Perl itself.
6              
7 1     1   5 use strict;
  1         2  
  1         96  
8              
9 1     1   5 use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS $VERSION %HTLC_COLORS);
  1         1  
  1         206  
10              
11             $VERSION = '0.80';
12              
13             require Exporter;
14             @ISA = qw(Exporter);
15              
16             @EXPORT_OK = qw(
17             HTLC_CHECKBYTES HTLC_COLORS HTLC_DATA_BAN HTLC_DATA_CHAT HTLC_DATA_DESTDIR
18             HTLC_DATA_DIRECTORY HTLC_DATA_FILE HTLC_DATA_FILE_RENAME HTLC_DATA_HTXF_SIZE
19             HTLC_DATA_ICON HTLC_DATA_LOGIN HTLC_DATA_MSG HTLC_DATA_NEWS_POST
20             HTLC_DATA_NICKNAME HTLC_DATA_OPTION HTLC_DATA_PASSWORD HTLC_DATA_PCHAT_REF
21             HTLC_DATA_PCHAT_SUBJECT HTLC_DATA_RFLT HTLC_DATA_SOCKET HTLC_DEFAULT_ICON
22             HTLC_DEFAULT_LOGIN HTLC_DEFAULT_NICK HTLC_EWOULDBLOCK HTLC_FOLDER_TYPE
23             HTLC_HDR_CHAT HTLC_HDR_FILE_DELETE HTLC_HDR_FILE_GET HTLC_HDR_FILE_GETINFO
24             HTLC_HDR_FILE_LIST HTLC_HDR_FILE_MKDIR HTLC_HDR_FILE_MOVE HTLC_HDR_FILE_PUT
25             HTLC_HDR_FILE_SETINFO HTLC_HDR_LOGIN HTLC_HDR_MSG HTLC_HDR_NEWS_GETFILE
26             HTLC_HDR_NEWS_POST HTLC_HDR_PCHAT_ACCEPT HTLC_HDR_PCHAT_CLOSE
27             HTLC_HDR_PCHAT_CREATE HTLC_HDR_PCHAT_DECLINE HTLC_HDR_PCHAT_INVITE
28             HTLC_HDR_PCHAT_SUBJECT HTLC_HDR_USER_CHANGE HTLC_HDR_USER_CREATE
29             HTLC_HDR_USER_GETINFO HTLC_HDR_USER_GETLIST HTLC_HDR_USER_KICK
30             HTLC_HDR_USER_OPEN HTLC_INFO_FALIAS_TYPE HTLC_INFO_FOLDER_TYPE
31             HTLC_MACOS_TO_UNIX_TIME HTLC_MAGIC HTLC_MAGIC_LEN HTLC_MAX_PATHLEN
32             HTLC_NEWLINE HTLC_PATH_SEPARATOR HTLC_TASK_BAN HTLC_TASK_FILE_DELETE
33             HTLC_TASK_FILE_GET HTLC_TASK_FILE_INFO HTLC_TASK_FILE_LIST
34             HTLC_TASK_FILE_MKDIR HTLC_TASK_FILE_MOVE HTLC_TASK_FILE_PUT HTLC_TASK_KICK
35             HTLC_TASK_LOGIN HTLC_TASK_NEWS HTLC_TASK_NEWS_POST HTLC_TASK_PCHAT_ACCEPT
36             HTLC_TASK_PCHAT_CREATE HTLC_TASK_SEND_MSG HTLC_TASK_SET_INFO
37             HTLC_TASK_USER_INFO HTLC_TASK_USER_LIST HTLC_UNIX_TO_MACOS_TIME
38             HTLS_DATA_AGREEMENT HTLS_DATA_CHAT HTLS_DATA_COLOR HTLS_DATA_FILE_COMMENT
39             HTLS_DATA_FILE_CREATOR HTLS_DATA_FILE_CTIME HTLS_DATA_FILE_ICON
40             HTLS_DATA_FILE_LIST HTLS_DATA_FILE_MTIME HTLS_DATA_FILE_NAME
41             HTLS_DATA_FILE_SIZE HTLS_DATA_FILE_TYPE HTLS_DATA_HTXF_REF HTLS_DATA_HTXF_SIZE
42             HTLS_DATA_ICON HTLS_DATA_MSG HTLS_DATA_NEWS HTLS_DATA_NEWS_POST
43             HTLS_DATA_NICKNAME HTLS_DATA_PCHAT_REF HTLS_DATA_PCHAT_SUBJECT
44             HTLS_DATA_SERVER_MSG HTLS_DATA_SOCKET HTLS_DATA_TASK_ERROR HTLS_DATA_USER_INFO
45             HTLS_DATA_USER_LIST HTLS_HDR_AGREEMENT HTLS_HDR_CHAT HTLS_HDR_MSG
46             HTLS_HDR_NEWS_POST HTLS_HDR_PCHAT_INVITE HTLS_HDR_PCHAT_SUBJECT
47             HTLS_HDR_PCHAT_USER_JOIN HTLS_HDR_PCHAT_USER_LEAVE HTLS_HDR_POLITE_QUIT
48             HTLS_HDR_TASK HTLS_HDR_USER_CHANGE HTLS_HDR_USER_LEAVE HTLS_MAGIC
49             HTLS_MAGIC_LEN HTLS_TCPPORT HTRK_MAGIC HTRK_MAGIC_LEN HTRK_TCPPORT
50             HTRK_UDPPORT HTXF_BUFSIZE HTXF_MAGIC HTXF_MAGIC_LEN HTXF_PARTIAL_CREATOR
51             HTXF_PARTIAL_TYPE HTXF_RESUME_MAGIC HTXF_RFLT_MAGIC HTXF_TCPPORT
52             PATH_SEPARATOR SIZEOF_HL_DATA_HDR SIZEOF_HL_FILE_FORK_HDR
53             SIZEOF_HL_FILE_LIST_HDR SIZEOF_HL_FILE_UPLOAD_HDR SIZEOF_HL_FILE_XFER_HDR
54             SIZEOF_HL_LONG_HDR SIZEOF_HL_PROTO_HDR SIZEOF_HL_SHORT_HDR
55             SIZEOF_HL_TASK_FILLER SIZEOF_HL_USER_LIST_HDR MACOS_MAX_FILENAME
56             HTLS_DATA_REPLY HTLS_DATA_IS_REPLY);
57              
58             %EXPORT_TAGS = ('all' => \@EXPORT_OK);
59              
60 1 50   1   6 use constant PATH_SEPARATOR => ($^O eq 'MacOS') ? ':' : '/';
  1         1  
  1         90  
61              
62             %HTLC_COLORS = (0 => 'gray',
63             1 => 'black',
64             2 => 'red',
65             3 => 'pink');
66              
67             # Hotline gives times relative to Mac OS epoch. Add this constant to the
68             # times returned by Hotline to get the time since the unix epoch.
69 1     1   4 use constant HTLC_MACOS_TO_UNIX_TIME => -2082830400;
  1         2  
  1         37  
70              
71             # Add this constant to Unix times to get Hotline (Mac OS) times
72 1     1   4 use constant HTLC_UNIX_TO_MACOS_TIME => 2082830400;
  1         2  
  1         39  
73              
74 1     1   5 use constant HTLC_PATH_SEPARATOR => ':';
  1         2  
  1         39  
75              
76 1     1   9 use constant HTLC_FOLDER_TYPE => 'fldr';
  1         1  
  1         32  
77 1     1   4 use constant HTXF_PARTIAL_TYPE => 'HTft';
  1         1  
  1         49  
78 1     1   4 use constant HTXF_PARTIAL_CREATOR => 'HTLC';
  1         2  
  1         45  
79              
80 1     1   5 use constant HTLC_INFO_FOLDER_TYPE => 'Folder';
  1         2  
  1         50  
81 1     1   5 use constant HTLC_INFO_FALIAS_TYPE => 'Folder Alias';
  1         1  
  1         40  
82              
83 1     1   4 use constant HTLC_DEFAULT_NICK => 'guest';
  1         1  
  1         40  
84 1     1   4 use constant HTLC_DEFAULT_LOGIN => 'guest';
  1         1  
  1         33  
85 1     1   12 use constant HTLC_DEFAULT_ICON => 410;
  1         1  
  1         32  
86              
87 1     1   4 use constant HTLC_EWOULDBLOCK => 2; # Can be anything > 1, really
  1         9  
  1         38  
88              
89 1     1   4 use constant HTLC_MAX_PATHLEN => 255;
  1         2  
  1         42  
90 1     1   4 use constant MACOS_MAX_FILENAME => 31;
  1         1  
  1         41  
91              
92             # Arbitrary unique task type constants
93 1     1   4 use constant HTLC_TASK_FILE_DELETE => 1;
  1         1  
  1         43  
94 1     1   5 use constant HTLC_TASK_FILE_GET => 2;
  1         2  
  1         36  
95 1     1   4 use constant HTLC_TASK_FILE_INFO => 3;
  1         2  
  1         42  
96 1     1   4 use constant HTLC_TASK_FILE_LIST => 4;
  1         2  
  1         38  
97 1     1   4 use constant HTLC_TASK_FILE_MKDIR => 5;
  1         1  
  1         27  
98 1     1   4 use constant HTLC_TASK_FILE_MOVE => 6;
  1         1  
  1         37  
99 1     1   4 use constant HTLC_TASK_FILE_PUT => 7;
  1         1  
  1         34  
100 1     1   3 use constant HTLC_TASK_KICK => 8;
  1         1  
  1         28  
101 1     1   3 use constant HTLC_TASK_LOGIN => 9;
  1         1  
  1         31  
102 1     1   4 use constant HTLC_TASK_NEWS => 10;
  1         1  
  1         31  
103 1     1   4 use constant HTLC_TASK_NEWS_POST => 11;
  1         1  
  1         40  
104 1     1   4 use constant HTLC_TASK_SEND_MSG => 12;
  1         1  
  1         76  
105 1     1   5 use constant HTLC_TASK_SET_INFO => 13;
  1         1  
  1         37  
106 1     1   5 use constant HTLC_TASK_USER_INFO => 14;
  1         1  
  1         51  
107 1     1   4 use constant HTLC_TASK_USER_LIST => 15;
  1         34  
  1         39  
108 1     1   5 use constant HTLC_TASK_PCHAT_CREATE => 16;
  1         1  
  1         40  
109 1     1   5 use constant HTLC_TASK_PCHAT_ACCEPT => 17;
  1         2  
  1         51  
110 1     1   4 use constant HTLC_TASK_BAN => 18;
  1         1  
  1         29  
111              
112 1     1   3 use constant HTRK_TCPPORT => 5498;
  1         1  
  1         33  
113 1     1   3 use constant HTRK_UDPPORT => 5499;
  1         7  
  1         32  
114 1     1   4 use constant HTLS_TCPPORT => 5500;
  1         1  
  1         27  
115 1     1   4 use constant HTXF_TCPPORT => 5501;
  1         1  
  1         51  
116              
117 1     1   3 use constant HTXF_BUFSIZE => 4096;
  1         1  
  1         40  
118              
119 1     1   4 use constant HTLC_NEWLINE => "\015";
  1         1  
  1         53  
120              
121 1     1   4 use constant HTLC_MAGIC => pack("C12", 84, 82, 84, 80, 72, 79, 84, 76, 0, 1, 0, 2);
  1         1  
  1         34  
122 1     1   4 use constant HTLC_MAGIC_LEN => 12;
  1         1  
  1         45  
123 1     1   4 use constant HTLS_MAGIC => pack("C8", 84, 82, 84, 80, 0, 0, 0, 0);
  1         2  
  1         46  
124 1     1   5 use constant HTLS_MAGIC_LEN => 8;
  1         1  
  1         46  
125 1     1   4 use constant HTRK_MAGIC => pack("C6", 72, 84, 82, 75, 0, 1);
  1         1  
  1         34  
126 1     1   4 use constant HTRK_MAGIC_LEN => 6;
  1         1  
  1         33  
127 1     1   4 use constant HTXF_MAGIC => pack("C4", 72, 84, 88, 70);
  1         1  
  1         32  
128 1     1   4 use constant HTXF_MAGIC_LEN => 4;
  1         1  
  1         32  
129 1     1   4 use constant HTXF_RFLT_MAGIC => pack("C4", 82, 70, 76, 84);
  1         1  
  1         39  
130 1     1   4 use constant HTXF_RESUME_MAGIC => pack("n3", 0x00CC, 0x0002, 0x0001);
  1         1  
  1         33  
131              
132 1     1   4 use constant HTLC_HDR_CHAT => 0x00000069;
  1         1  
  1         44  
133 1     1   4 use constant HTLC_HDR_FILE_DELETE => 0x000000CC;
  1         1  
  1         36  
134 1     1   4 use constant HTLC_HDR_FILE_GET => 0x000000CA;
  1         1  
  1         27  
135 1     1   3 use constant HTLC_HDR_FILE_GETINFO => 0x000000CE;
  1         5  
  1         31  
136 1     1   4 use constant HTLC_HDR_FILE_LIST => 0x000000C8;
  1         2  
  1         36  
137 1     1   4 use constant HTLC_HDR_FILE_MKDIR => 0x000000CD;
  1         1  
  1         26  
138 1     1   4 use constant HTLC_HDR_FILE_MOVE => 0x000000D0;
  1         1  
  1         33  
139 1     1   3 use constant HTLC_HDR_FILE_PUT => 0x000000CB;
  1         2  
  1         26  
140 1     1   4 use constant HTLC_HDR_FILE_SETINFO => 0x000000CF;
  1         6  
  1         35  
141 1     1   4 use constant HTLC_HDR_LOGIN => 0x0000006B;
  1         1  
  1         72  
142 1     1   5 use constant HTLC_HDR_MSG => 0x0000006C;
  1         2  
  1         38  
143 1     1   34 use constant HTLC_HDR_NEWS_GETFILE => 0x00000065;
  1         2  
  1         41  
144 1     1   4 use constant HTLC_HDR_NEWS_POST => 0x00000067;
  1         1  
  1         37  
145 1     1   5 use constant HTLC_HDR_PCHAT_ACCEPT => 0x00000073;
  1         1  
  1         40  
146 1     1   4 use constant HTLC_HDR_PCHAT_CLOSE => 0x00000074;
  1         1  
  1         34  
147 1     1   3 use constant HTLC_HDR_PCHAT_CREATE => 0x00000070;
  1         2  
  1         39  
148 1     1   3 use constant HTLC_HDR_PCHAT_DECLINE => 0x00000072;
  1         2  
  1         28  
149 1     1   3 use constant HTLC_HDR_PCHAT_INVITE => 0x00000071;
  1         1  
  1         32  
150 1     1   3 use constant HTLC_HDR_PCHAT_SUBJECT => 0x00000078;
  1         1  
  1         33  
151 1     1   3 use constant HTLC_HDR_USER_CHANGE => 0x00000130;
  1         2  
  1         31  
152 1     1   3 use constant HTLC_HDR_USER_CREATE => 0x0000015E;
  1         1  
  1         32  
153 1     1   4 use constant HTLC_HDR_USER_GETINFO => 0x0000012F;
  1         1  
  1         33  
154 1     1   4 use constant HTLC_HDR_USER_GETLIST => 0x0000012C;
  1         1  
  1         31  
155 1     1   4 use constant HTLC_HDR_USER_KICK => 0x0000006E;
  1         2  
  1         31  
156 1     1   4 use constant HTLC_HDR_USER_OPEN => 0x00000160;
  1         1  
  1         35  
157              
158 1     1   4 use constant HTLC_DATA_BAN => 0x0071;
  1         2  
  1         27  
159 1     1   3 use constant HTLC_DATA_CHAT => 0x0065;
  1         2  
  1         66  
160 1     1   4 use constant HTLC_DATA_DESTDIR => 0x00D4;
  1         2  
  1         32  
161 1     1   4 use constant HTLC_DATA_DIRECTORY => 0x00CA;
  1         2  
  1         26  
162 1     1   4 use constant HTLC_DATA_FILE => 0x00C9;
  1         1  
  1         32  
163 1     1   3 use constant HTLC_DATA_FILE_RENAME => 0x00D3;
  1         1  
  1         27  
164 1     1   4 use constant HTLC_DATA_HTXF_SIZE => 0x006C;
  1         1  
  1         37  
165 1     1   3 use constant HTLC_DATA_ICON => 0x0068;
  1         2  
  1         37  
166 1     1   4 use constant HTLC_DATA_LOGIN => 0x0069;
  1         1  
  1         32  
167 1     1   3 use constant HTLC_DATA_MSG => 0x0065;
  1         2  
  1         25  
168 1     1   4 use constant HTLC_DATA_NEWS_POST => 0x0065;
  1         1  
  1         31  
169 1     1   3 use constant HTLC_DATA_NICKNAME => 0x0066;
  1         2  
  1         37  
170 1     1   4 use constant HTLC_DATA_OPTION => 0x006D;
  1         1  
  1         33  
171 1     1   4 use constant HTLC_DATA_PASSWORD => 0x006A;
  1         1  
  1         30  
172 1     1   4 use constant HTLC_DATA_PCHAT_REF => 0x0072;
  1         1  
  1         37  
173 1     1   9 use constant HTLC_DATA_PCHAT_SUBJECT => 0x0073;
  1         1  
  1         32  
174 1     1   4 use constant HTLC_DATA_RFLT => 0x00CB;
  1         1  
  1         26  
175 1     1   3 use constant HTLC_DATA_SOCKET => 0x0067;
  1         1  
  1         31  
176              
177 1     1   4 use constant HTLS_HDR_AGREEMENT => 0x0000006D;
  1         1  
  1         38  
178 1     1   4 use constant HTLS_HDR_CHAT => 0x0000006A;
  1         1  
  1         27  
179 1     1   4 use constant HTLS_HDR_MSG => 0x00000068;
  1         1  
  1         31  
180 1     1   3 use constant HTLS_HDR_NEWS_POST => 0x00000066;
  1         1  
  1         32  
181 1     1   3 use constant HTLS_HDR_PCHAT_INVITE => 0x00000071;
  1         1  
  1         32  
182 1     1   3 use constant HTLS_HDR_PCHAT_SUBJECT => 0x00000077;
  1         1  
  1         27  
183 1     1   3 use constant HTLS_HDR_PCHAT_USER_JOIN => 0x00000075;
  1         2  
  1         30  
184 1     1   4 use constant HTLS_HDR_PCHAT_USER_LEAVE => 0x00000076;
  1         1  
  1         31  
185 1     1   4 use constant HTLS_HDR_POLITE_QUIT => 0x0000006F;
  1         1  
  1         33  
186 1     1   3 use constant HTLS_HDR_TASK => 0x00010000;
  1         2  
  1         26  
187 1     1   4 use constant HTLS_HDR_USER_CHANGE => 0x0000012D;
  1         1  
  1         26  
188 1     1   4 use constant HTLS_HDR_USER_LEAVE => 0x0000012E;
  1         8  
  1         31  
189              
190 1     1   4 use constant HTLS_DATA_AGREEMENT => 0x0065;
  1         1  
  1         32  
191 1     1   3 use constant HTLS_DATA_CHAT => 0x0065;
  1         1  
  1         36  
192 1     1   4 use constant HTLS_DATA_COLOR => 0x0070;
  1         2  
  1         39  
193 1     1   4 use constant HTLS_DATA_REPLY => 0x00D6;
  1         6  
  1         35  
194 1     1   5 use constant HTLS_DATA_IS_REPLY => 0x0071;
  1         5  
  1         30  
195 1     1   3 use constant HTLS_DATA_ICON => 0x0068;
  1         2  
  1         34  
196 1     1   4 use constant HTLS_DATA_NEWS => 0x0065;
  1         1  
  1         38  
197 1     1   4 use constant HTLS_DATA_NICKNAME => 0x0066;
  1         1  
  1         39  
198 1     1   5 use constant HTLS_DATA_SERVER_MSG => 0x006D;
  1         1  
  1         31  
199 1     1   4 use constant HTLS_DATA_SOCKET => 0x0067;
  1         1  
  1         37  
200 1     1   5 use constant HTLS_DATA_TASK_ERROR => 0x0064;
  1         1  
  1         95  
201 1     1   4 use constant HTLS_DATA_USER_INFO => 0x0065;
  1         1  
  1         32  
202 1     1   4 use constant HTLS_DATA_USER_LIST => 0x012C;
  1         1  
  1         31  
203              
204 1     1   4 use constant HTLS_DATA_FILE_COMMENT => 0x00D2;
  1         1  
  1         48  
205 1     1   4 use constant HTLS_DATA_FILE_CREATOR => 0x00CE;
  1         2  
  1         37  
206 1     1   4 use constant HTLS_DATA_FILE_CTIME => 0x00D0;
  1         1  
  1         35  
207 1     1   21 use constant HTLS_DATA_FILE_ICON => 0x00D5;
  1         2  
  1         73  
208 1     1   4 use constant HTLS_DATA_FILE_LIST => 0x00C8;
  1         1  
  1         44  
209 1     1   5 use constant HTLS_DATA_FILE_MTIME => 0x00D1;
  1         1  
  1         37  
210 1     1   4 use constant HTLS_DATA_FILE_NAME => 0x00C9;
  1         1  
  1         36  
211 1     1   4 use constant HTLS_DATA_FILE_SIZE => 0x00CF;
  1         4  
  1         43  
212 1     1   5 use constant HTLS_DATA_FILE_TYPE => 0x00CD;
  1         2  
  1         49  
213 1     1   8 use constant HTLS_DATA_HTXF_REF => 0x006B;
  1         13  
  1         50  
214 1     1   5 use constant HTLS_DATA_HTXF_SIZE => 0x006C;
  1         2  
  1         45  
215 1     1   5 use constant HTLS_DATA_MSG => 0x0065;
  1         1  
  1         40  
216 1     1   4 use constant HTLS_DATA_NEWS_POST => 0x0065;
  1         2  
  1         48  
217 1     1   4 use constant HTLS_DATA_PCHAT_REF => 0x0072;
  1         2  
  1         122  
218 1     1   5 use constant HTLS_DATA_PCHAT_SUBJECT => 0x0073;
  1         2  
  1         42  
219              
220 1     1   5 use constant SIZEOF_HL_PROTO_HDR => 20;
  1         1  
  1         53  
221 1     1   5 use constant SIZEOF_HL_DATA_HDR => 4;
  1         1  
  1         46  
222 1     1   13 use constant SIZEOF_HL_SHORT_HDR => 6;
  1         1  
  1         39  
223 1     1   4 use constant SIZEOF_HL_LONG_HDR => 8;
  1         2  
  1         36  
224 1     1   4 use constant SIZEOF_HL_FILE_LIST_HDR => 24;
  1         1  
  1         68  
225 1     1   4 use constant SIZEOF_HL_USER_LIST_HDR => 12;
  1         2  
  1         47  
226 1     1   5 use constant SIZEOF_HL_TASK_FILLER => 2;
  1         2  
  1         54  
227 1     1   5 use constant SIZEOF_HL_FILE_XFER_HDR => 40;
  1         3  
  1         40  
228 1     1   6 use constant SIZEOF_HL_FILE_UPLOAD_HDR => 111;
  1         1  
  1         53  
229 1     1   5 use constant SIZEOF_HL_FILE_FORK_HDR => 16;
  1         1  
  1         69  
230              
231             1;