/Volumes/Plantain/MyDocuments/Projects/MacTrek/MacTrek/Comm/PacketTypesDebug.m

00001 //
00002 //  PacketTypesDebug.m
00003 //  MacTrek
00004 //
00005 //  Created by Aqua on 20/05/2006.
00006 //  Copyright 2006 __MyCompanyName__. All rights reserved.
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     // check if we need to do this
00370     if (!debugPackets) {
00371         return;
00372     }
00373     
00374     // print seperator
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         // print a line
00383         NSMutableString *line  = [NSMutableString stringWithString:@"Packet Hex  : "];
00384         NSMutableString *ascii = [NSMutableString stringWithString:@"Packet Ascii: "];
00385         for (int i = 0; i < LINE_WIDTH; i++) {
00386             // add a character to the line
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     // print partial last line
00404     for (int i = 0; i < size; i++) {
00405         // add a character to the line
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

Generated on Fri Jul 28 19:15:15 2006 for MacTrek by  doxygen 1.4.7