00001
00002
00003
00004
00005
00006
00007
00008
00009 #import "PacketTypesDebug.h"
00010
00011
00012 @implementation PacketTypesDebug
00013
00014 - (id) init {
00015 self = [super init];
00016 if (self != nil) {
00017 debugPackets = DEBUG_PACKETS;
00018 }
00019 return self;
00020 }
00021
00022 - (void) setDebugPackets:(bool)debug {
00023 debugPackets = debug;
00024 }
00025
00026 - (bool) debugPackets {
00027 return debugPackets;
00028 }
00029
00030 - (NSString *) serverPacketString:(int)packet {
00031 switch (packet) {
00032 case SP_MESSAGE:
00033 return @"SP_MESSAGE";
00034 break;
00035 case SP_PLAYER_INFO:
00036 return @"SP_PLAYER_INFO";
00037 break;
00038 case SP_KILLS:
00039 return @"SP_KILLS";
00040 break;
00041 case SP_PLAYER:
00042 return @"SP_PLAYER";
00043 break;
00044 case SP_TORP_INFO:
00045 return @"SP_TORP_INFO";
00046 break;
00047 case SP_TORP:
00048 return @"SP_TORP";
00049 break;
00050 case SP_PHASER:
00051 return @"SP_PHASER";
00052 break;
00053 case SP_PLASMA_INFO:
00054 return @"SP_PLASMA_INFO";
00055 break;
00056 case SP_PLASMA:
00057 return @"SP_PLASMA";
00058 break;
00059 case SP_WARNING:
00060 return @"SP_WARNING";
00061 break;
00062 case SP_MOTD:
00063 return @"SP_MOTD";
00064 break;
00065 case SP_YOU:
00066 return @"SP_YOU";
00067 break;
00068 case SP_QUEUE:
00069 return @"SP_QUEUE";
00070 break;
00071 case SP_STATUS:
00072 return @"SP_STATUS";
00073 break;
00074 case SP_PLANET:
00075 return @"SP_PLANET";
00076 break;
00077 case SP_PICKOK:
00078 return @"SP_PICKOK";
00079 break;
00080 case SP_LOGIN:
00081 return @"SP_LOGIN";
00082 break;
00083 case SP_FLAGS:
00084 return @"SP_FLAGS";
00085 break;
00086 case SP_MASK:
00087 return @"SP_MASK";
00088 break;
00089 case SP_PSTATUS:
00090 return @"SP_PSTATUS";
00091 break;
00092 case SP_BADVERSION:
00093 return @"SP_BADVERSION";
00094 break;
00095 case SP_HOSTILE:
00096 return @"SP_HOSTILE";
00097 break;
00098 case SP_STATS:
00099 return @"SP_STATS";
00100 break;
00101 case SP_PL_LOGIN:
00102 return @"SP_PL_LOGIN";
00103 break;
00104 case SP_RESERVED:
00105 return @"SP_RESERVED";
00106 break;
00107 case SP_PLANET_LOC:
00108 return @"SP_PLANET_LOC";
00109 break;
00110 case SP_SCAN:
00111 return @"SP_SCAN";
00112 break;
00113 case SP_UDP_REPLY:
00114 return @"SP_UDP_REPLY";
00115 break;
00116 case SP_SEQUENCE:
00117 return @"SP_SEQUENCE";
00118 break;
00119 case SP_SC_SEQUENCE:
00120 return @"SP_SC_SEQUENCE";
00121 break;
00122 case SP_RSA_KEY:
00123 return @"SP_RSA_KEY";
00124 break;
00125 case SP_MOTD_PIC:
00126 return @"SP_MOTD_PIC";
00127 break;
00128
00129 case SP_SHIP_CAP:
00130 return @"SP_SHIP_CAP";
00131 break;
00132 case SP_S_REPLY:
00133 return @"SP_S_REPLY";
00134 break;
00135 case SP_S_MESSAGE:
00136 return @"SP_S_MESSAGE";
00137 break;
00138 case SP_S_WARNING:
00139 return @"SP_S_WARNING";
00140 break;
00141 case SP_S_YOU:
00142 return @"SP_S_YOU";
00143 break;
00144 case SP_S_YOU_SS:
00145 return @"SP_S_YOU_SS";
00146 break;
00147 case SP_S_PLAYER:
00148 return @"SP_S_PLAYER";
00149 break;
00150 case SP_PING:
00151 return @"SP_PING";
00152 break;
00153 case SP_S_TORP:
00154 return @"SP_S_TORP";
00155 break;
00156 case SP_S_TORP_INFO:
00157 return @"SP_S_TORP_INFO";
00158 break;
00159 case SP_S_8_TORP:
00160 return @"SP_S_8_TORP";
00161 break;
00162 case SP_S_PLANET:
00163 return @"SP_S_PLANET";
00164 break;
00165 case SP_S_SEQUENCE:
00166 return @"SP_S_SEQUENCE";
00167 break;
00168 case SP_S_PHASER:
00169 return @"SP_S_PHASER";
00170 break;
00171 case SP_S_KILLS:
00172 return @"SP_S_KILLS";
00173 break;
00174 case SP_S_STATS:
00175 return @"SP_S_STATS";
00176 break;
00177 case SP_FEATURE:
00178 return @"SP_FEATURE";
00179 break;
00180 case SP_BITMAP:
00181 return @"SP_BITMAP";
00182 break;
00183 default:
00184 return @"UNKNOWN";
00185 break;
00186 }
00187 }
00188
00189 - (NSString *) clientPacketString:(int)packet {
00190 switch (packet) {
00191 case CP_MESSAGE:
00192 return @"CP_MESSAGE";
00193 break;
00194 case CP_SPEED:
00195 return @"CP_SPEED";
00196 break;
00197 case CP_DIRECTION:
00198 return @"CP_DIRECTION";
00199 break;
00200 case CP_PHASER:
00201 return @"CP_PHASER";
00202 break;
00203 case CP_PLASMA:
00204 return @"CP_PLASMA";
00205 break;
00206 case CP_TORP:
00207 return @"CP_TORP";
00208 break;
00209 case CP_QUIT:
00210 return @"CP_QUIT";
00211 break;
00212 case CP_LOGIN:
00213 return @"CP_LOGIN";
00214 break;
00215 case CP_OUTFIT:
00216 return @"CP_OUTFIT";
00217 break;
00218 case CP_WAR:
00219 return @"CP_WAR";
00220 break;
00221 case CP_PRACTR:
00222 return @"CP_PRACTR";
00223 break;
00224 case CP_SHIELD:
00225 return @"CP_SHIELD";
00226 break;
00227 case CP_REPAIR:
00228 return @"CP_REPAIR";
00229 break;
00230 case CP_ORBIT:
00231 return @"CP_ORBIT";
00232 break;
00233 case CP_PLANLOCK:
00234 return @"CP_PLANLOCK";
00235 break;
00236 case CP_PLAYLOCK:
00237 return @"CP_PLAYLOCK";
00238 break;
00239 case CP_BOMB:
00240 return @"CP_BOMB";
00241 break;
00242 case CP_BEAM:
00243 return @"CP_BEAM";
00244 break;
00245 case CP_CLOAK:
00246 return @"CP_CLOAK";
00247 break;
00248 case CP_DET_TORPS:
00249 return @"CP_DET_TORPS";
00250 break;
00251 case CP_DET_MYTORP:
00252 return @"CP_DET_MYTORP";
00253 break;
00254 case CP_COPILOT:
00255 return @"CP_COPILOT";
00256 break;
00257 case CP_REFIT:
00258 return @"CP_REFIT";
00259 break;
00260 case CP_TRACTOR:
00261 return @"CP_TRACTOR";
00262 break;
00263 case CP_REPRESS:
00264 return @"CP_REPRESS";
00265 break;
00266 case CP_COUP:
00267 return @"CP_COUP";
00268 break;
00269 case CP_SOCKET:
00270 return @"CP_SOCKET";
00271 break;
00272 case CP_OPTIONS:
00273 return @"CP_OPTIONS";
00274 break;
00275 case CP_BYE:
00276 return @"CP_BYE";
00277 break;
00278 case CP_DOCKPERM:
00279 return @"CP_DOCKPERM";
00280 break;
00281 case CP_UPDATES:
00282 return @"CP_UPDATES";
00283 break;
00284 case CP_RESETSTATS:
00285 return @"CP_RESETSTATS";
00286 break;
00287 case CP_RESERVED:
00288 return @"CP_RESERVED";
00289 break;
00290 case CP_SCAN:
00291 return @"CP_SCAN";
00292 break;
00293 case CP_UDP_REQ:
00294 return @"CP_UDP_REQ";
00295 break;
00296 case CP_SEQUENCE:
00297 return @"CP_SEQUENCE";
00298 break;
00299 case CP_RSA_KEY:
00300 return @"CP_RSA_KEY";
00301 break;
00302 case CP_PING_RESPONSE:
00303 return @"CP_PING_RESPONSE";
00304 break;
00305 case CP_S_REQ:
00306 return @"CP_S_REQ";
00307 break;
00308 case CP_S_THRS:
00309 return @"CP_S_THRS";
00310 break;
00311 case CP_S_MESSAGE:
00312 return @"CP_S_MESSAGE";
00313 break;
00314 case CP_S_RESERVED:
00315 return @"CP_S_RESERVED";
00316 break;
00317 case CP_S_DUMMY:
00318 return @"CP_S_DUMMY";
00319 break;
00320 case CP_FEATURE:
00321 return @"CP_FEATURE";
00322 break;
00323 default:
00324 return @"UNKNOWN";
00325 break;
00326 }
00327 }
00328
00329 - (NSString *) shortPacketString:(int)packet {
00330 switch (packet) {
00331 case SPK_VOFF:
00332 return @"SPK_VOFF";
00333 break;
00334 case SPK_VON:
00335 return @"SPK_VON";
00336 break;
00337 case SPK_MOFF:
00338 return @"SPK_MOFF";
00339 break;
00340 case SPK_MON:
00341 return @"SPK_MON";
00342 break;
00343 case SPK_M_KILLS:
00344 return @"SPK_M_KILLS";
00345 break;
00346 case SPK_M_NOKILLS:
00347 return @"SPK_M_NOKILLS";
00348 break;
00349 case SPK_THRESHOLD:
00350 return @"SPK_THRESHOLD";
00351 break;
00352 case SPK_M_WARN:
00353 return @"SPK_M_WARN";
00354 break;
00355 case SPK_M_NOWARN:
00356 return @"SPK_M_NOWARN";
00357 break;
00358 case SPK_SALL:
00359 return @"SPK_SALL";
00360 break;
00361 default:
00362 return @"UNKNOWN";
00363 break;
00364 }
00365 }
00366
00367 - (void) printPacketInBuffer:(char *) buffer size:(int) size {
00368
00369
00370 if (!debugPackets) {
00371 return;
00372 }
00373
00374
00375 NSMutableString *seperator = [NSMutableString stringWithString:@"-------------"];
00376 for (int i = 0; i < LINE_WIDTH; i++) {
00377 [seperator appendString:@"---"];
00378 }
00379 NSLog(seperator);
00380
00381 while (size > LINE_WIDTH) {
00382
00383 NSMutableString *line = [NSMutableString stringWithString:@"Packet Hex : "];
00384 NSMutableString *ascii = [NSMutableString stringWithString:@"Packet Ascii: "];
00385 for (int i = 0; i < LINE_WIDTH; i++) {
00386
00387 [line appendString: [NSString stringWithFormat: @"%2.2x ", 0xFF & buffer[i]]];
00388 if ((buffer[i] != 0) && (buffer[i] != '\n') && (buffer[i] != '\r')) {
00389 [ascii appendString:[NSString stringWithFormat: @" %1c ", buffer[i]]];
00390 } else {
00391 [ascii appendString:[NSString stringWithFormat: @" ", buffer]];
00392 }
00393 }
00394 NSLog(line);
00395 NSLog(ascii);
00396
00397 buffer += LINE_WIDTH;
00398 size -= LINE_WIDTH;
00399 }
00400
00401 NSMutableString *line = [NSMutableString stringWithString:@"Packet Hex : "];
00402 NSMutableString *ascii = [NSMutableString stringWithString:@"Packet Ascii: "];
00403
00404 for (int i = 0; i < size; i++) {
00405
00406 [line appendString: [NSString stringWithFormat: @"%2.2x ", 0xFF & buffer[i]]];
00407 if ((buffer[i] != 0) && (buffer[i] != '\n') && (buffer[i] != '\r')) {
00408 [ascii appendString:[NSString stringWithFormat: @" %1c ", buffer[i]]];
00409 } else {
00410 [ascii appendString:[NSString stringWithFormat: @" ", buffer]];
00411 }
00412 }
00413 NSLog(line);
00414 NSLog(ascii);
00415 NSLog(seperator);
00416 }
00417
00418 @end