17 #if _RAKNET_SUPPORT_PacketLogger==1 
   37 using namespace SLNet;
 
   52 void PacketLogger::FormatLine(
char* into, 
const char* dir, 
const char* type, 
unsigned int reliableMessageNumber, 
unsigned int frame
 
   54     unsigned int splitPacketId, 
unsigned int splitPacketIndex, 
unsigned int splitPacketCount, 
unsigned int orderingIndex)
 
   57     const char* idToPrint = NULL;
 
   60         if (splitPacketCount > 0 && splitPacketCount != (
unsigned int)-1)
 
   61             idToPrint = 
"(SPLIT PACKET)";
 
   68     if (idToPrint == NULL)
 
   70         sprintf_s(numericID, 
"%5u", 
id);
 
   71         idToPrint = numericID;
 
   74     FormatLine(into, dir, type, reliableMessageNumber, frame, idToPrint, bitLen, time, local, remote, splitPacketId, splitPacketIndex, splitPacketCount, orderingIndex);
 
   77 char* into, 
size_t intoLength, 
const char* dir, 
const char* type, 
unsigned int reliableMessageNumber, 
unsigned int frame, 
unsigned char id 
   79 unsigned int splitPacketId, 
unsigned int splitPacketIndex, 
unsigned int splitPacketCount, 
unsigned int orderingIndex)
 
   82     const char* idToPrint = NULL;
 
   85         if (splitPacketCount>0 && splitPacketCount!=(
unsigned int)-1)
 
   86             idToPrint=
"(SPLIT PACKET)";
 
   95         sprintf_s(numericID, 
"%5u", 
id);
 
   96         idToPrint = numericID;
 
   99     FormatLine(into, intoLength, dir, type, reliableMessageNumber, frame, idToPrint, bitLen, time, local, remote,splitPacketId,splitPacketIndex,splitPacketCount, orderingIndex);
 
  103 char* into, 
size_t intoLength, 
const char* dir, 
const char* type, 
unsigned int reliableMessageNumber, 
unsigned int frame, 
const char* idToPrint
 
  105 unsigned int splitPacketId, 
unsigned int splitPacketIndex, 
unsigned int splitPacketCount, 
unsigned int orderingIndex)
 
  107     char str1[64], str2[62];
 
  108     local.
ToString(
true, str1, static_cast<size_t>(64));
 
  109     remote.
ToString(
true, str2, static_cast<size_t>(62));
 
  113     if (reliableMessageNumber==(
unsigned int)-1)
 
  122         sprintf_s(str3,
"%5u",reliableMessageNumber);
 
  125     sprintf_s(into, intoLength, 
"%s,%s%s,%s,%s,%5u,%s,%u,%" PRINTF_64_BIT_MODIFIER "u,%s,%s,%i,%i,%i,%i,%s," 
  144 void PacketLogger::FormatLine(
char* into, 
const char* dir, 
const char* type, 
unsigned int reliableMessageNumber, 
unsigned int frame
 
  146     unsigned int splitPacketId, 
unsigned int splitPacketIndex, 
unsigned int splitPacketCount, 
unsigned int orderingIndex)
 
  148     char str1[64], str2[62];
 
  149     local.
ToString(
true, str1, static_cast<size_t>(64));
 
  150     remote.
ToString(
true, str2, static_cast<size_t>(62));
 
  154     if (reliableMessageNumber == (
unsigned int)-1)
 
  163         sprintf_s(str3, 
"%5u", reliableMessageNumber);
 
  166 #pragma warning(push) 
  167 #pragma warning(disable:4996) 
  168     sprintf(into, 
"%s,%s%s,%s,%s,%5u,%s,%u,%" PRINTF_64_BIT_MODIFIER "u,%s,%s,%i,%i,%i,%i,%s," 
  194     FormatLine(str, 256, 
"Snd", 
"Raw", 0, 0, data[0], bitsUsed, 
SLNet::GetTimeMS(), 
rakPeerInterface->
GetExternalID(remoteSystemAddress), remoteSystemAddress, (
unsigned int)-1,(
unsigned int)-1,(
unsigned int)-1,(
unsigned int)-1);
 
  201     AddToLog(
"Clock,S|R,Typ,Reliable#,Frm #,PktID,BitLn,Time     ,Local IP:Port   ,RemoteIP:Port,SPID,SPIN,SPCO,OI,Suffix,Miscellaneous\n");
 
  209     FormatLine(str, 256, 
"Rcv", 
"Raw", 0, 0, data[0], bitsUsed, 
SLNet::GetTime(), 
rakPeerInterface->
GetInternalID(
UNASSIGNED_SYSTEM_ADDRESS), remoteSystemAddress,(
unsigned int)-1,(
unsigned int)-1,(
unsigned int)-1,(
unsigned int)-1);
 
  217         type=(
char*) 
"RcvErr";
 
  219         type=(
char*) 
"RcvWrn";
 
  220     FormatLine(str, 1024, type, errorMessage, 0, 0, 
"", bitsUsed, 
SLNet::GetTime(), 
rakPeerInterface->
GetInternalID(
UNASSIGNED_SYSTEM_ADDRESS), remoteSystemAddress,(
unsigned int)-1,(
unsigned int)-1,(
unsigned int)-1,(
unsigned int)-1);
 
  227     char str1[64], str2[62];
 
  229     localSystemAddress.
ToString(
true, str1, static_cast<size_t>(64));
 
  230     remoteSystemAddress.
ToString(
true, str2, static_cast<size_t>(62));
 
  234     sprintf_s(str, 
"%s,Rcv,Ack,%i,,,,%" PRINTF_64_BIT_MODIFIER "u,%s,%s,,,,,," 
  237                     , (
unsigned long long) time
 
  246     char str1[64], str2[62];
 
  248     localSystemAddress.
ToString(
true, str1, static_cast<size_t>(64));
 
  249     remoteSystemAddress.
ToString(
true, str2, static_cast<size_t>(62));
 
  254     sprintf_s(str, 
"%s,Lcl,PBP,,,%s,%i,%" PRINTF_64_BIT_MODIFIER "u,%s,%s,,,,,," 
  258                     , (
unsigned long long) time
 
  267     const char *sendTypes[] =
 
  278     const char *sendType = sendTypes[isSend];
 
  281     unsigned int reliableMessageNumber;
 
  283         reliableMessageNumber=(
unsigned int)-1;
 
  289         FormatLine(str, 256, sendType, 
"Tms", reliableMessageNumber, frameNumber, internalPacket->
data[1+
sizeof(
SLNet::Time)], internalPacket->
dataBitLength, (
unsigned long long)time, localSystemAddress, remoteSystemAddress, internalPacket->
splitPacketId, internalPacket->
splitPacketIndex, internalPacket->
splitPacketCount, internalPacket->
orderingIndex);
 
  293         FormatLine(str, 256, sendType, 
"Nrm", reliableMessageNumber, frameNumber, internalPacket->
data[0], internalPacket->
dataBitLength, (
unsigned long long)time, localSystemAddress, remoteSystemAddress, internalPacket->
splitPacketId, internalPacket->
splitPacketIndex, internalPacket->
splitPacketCount, internalPacket->
orderingIndex);
 
  311     localSystemAddress.
ToString(
true, str1, static_cast<size_t>(64));
 
  316     sprintf_s(str, 
"%s,Lcl,%s,,,,,%" PRINTF_64_BIT_MODIFIER "u,%s,,,,,,,%s" 
  319                     , (
unsigned long long) time
 
  342         "ID_UNCONNECTED_PING",
 
  343         "ID_UNCONNECTED_PING_OPEN_CONNECTIONS",
 
  345         "ID_DETECT_LOST_CONNECTIONS",
 
  346         "ID_OPEN_CONNECTION_REQUEST_1",
 
  347         "ID_OPEN_CONNECTION_REPLY_1",
 
  348         "ID_OPEN_CONNECTION_REQUEST_2",
 
  349         "ID_OPEN_CONNECTION_REPLY_2",
 
  350         "ID_CONNECTION_REQUEST",
 
  351         "ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY",
 
  352         "ID_OUR_SYSTEM_REQUIRES_SECURITY",
 
  353         "ID_PUBLIC_KEY_MISMATCH",
 
  354         "ID_OUT_OF_BAND_INTERNAL",
 
  355         "ID_SND_RECEIPT_ACKED",
 
  356         "ID_SND_RECEIPT_LOSS",
 
  357         "ID_CONNECTION_REQUEST_ACCEPTED",
 
  358         "ID_CONNECTION_ATTEMPT_FAILED",
 
  359         "ID_ALREADY_CONNECTED",
 
  360         "ID_NEW_INCOMING_CONNECTION",
 
  361         "ID_NO_FREE_INCOMING_CONNECTIONS",
 
  362         "ID_DISCONNECTION_NOTIFICATION",
 
  363         "ID_CONNECTION_LOST",
 
  364         "ID_CONNECTION_BANNED",
 
  365         "ID_INVALID_PASSWORD",
 
  366         "ID_INCOMPATIBLE_PROTOCOL_VERSION",
 
  367         "ID_IP_RECENTLY_CONNECTED",
 
  369         "ID_UNCONNECTED_PONG",
 
  370         "ID_ADVERTISE_SYSTEM",
 
  371         "ID_DOWNLOAD_PROGRESS",
 
  372         "ID_REMOTE_DISCONNECTION_NOTIFICATION",
 
  373         "ID_REMOTE_CONNECTION_LOST",
 
  374         "ID_REMOTE_NEW_INCOMING_CONNECTION",
 
  375         "ID_FILE_LIST_TRANSFER_HEADER",
 
  376         "ID_FILE_LIST_TRANSFER_FILE",
 
  377         "ID_FILE_LIST_REFERENCE_PUSH_ACK",
 
  378         "ID_DDT_DOWNLOAD_REQUEST",
 
  379         "ID_TRANSPORT_STRING",
 
  380         "ID_REPLICA_MANAGER_CONSTRUCTION",
 
  381         "ID_REPLICA_MANAGER_SCOPE_CHANGE",
 
  382         "ID_REPLICA_MANAGER_SERIALIZE",
 
  383         "ID_REPLICA_MANAGER_DOWNLOAD_STARTED",
 
  384         "ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE",
 
  385         "ID_RAKVOICE_OPEN_CHANNEL_REQUEST",
 
  386         "ID_RAKVOICE_OPEN_CHANNEL_REPLY",
 
  387         "ID_RAKVOICE_CLOSE_CHANNEL",
 
  389         "ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE",
 
  390         "ID_AUTOPATCHER_CREATION_LIST",
 
  391         "ID_AUTOPATCHER_DELETION_LIST",
 
  392         "ID_AUTOPATCHER_GET_PATCH",
 
  393         "ID_AUTOPATCHER_PATCH_LIST",
 
  394         "ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR",
 
  395         "ID_AUTOPATCHER_CANNOT_DOWNLOAD_ORIGINAL_UNMODIFIED_FILES",
 
  396         "ID_AUTOPATCHER_FINISHED_INTERNAL",
 
  397         "ID_AUTOPATCHER_FINISHED",
 
  398         "ID_AUTOPATCHER_RESTART_APPLICATION",
 
  399         "ID_NAT_PUNCHTHROUGH_REQUEST",
 
  400         "ID_NAT_CONNECT_AT_TIME",
 
  401         "ID_NAT_GET_MOST_RECENT_PORT",
 
  402         "ID_NAT_CLIENT_READY",
 
  403         "ID_NAT_TARGET_NOT_CONNECTED",
 
  404         "ID_NAT_TARGET_UNRESPONSIVE",
 
  405         "ID_NAT_CONNECTION_TO_TARGET_LOST",
 
  406         "ID_NAT_ALREADY_IN_PROGRESS",
 
  407         "ID_NAT_PUNCHTHROUGH_FAILED",
 
  408         "ID_NAT_PUNCHTHROUGH_SUCCEEDED",
 
  409         "ID_READY_EVENT_SET",
 
  410         "ID_READY_EVENT_UNSET",
 
  411         "ID_READY_EVENT_ALL_SET",
 
  412         "ID_READY_EVENT_QUERY",
 
  414         "ID_RPC_REMOTE_ERROR",
 
  416         "ID_FILE_LIST_REFERENCE_PUSH",
 
  417         "ID_READY_EVENT_FORCE_ALL_SET",
 
  418         "ID_ROOMS_EXECUTE_FUNC",
 
  419         "ID_ROOMS_LOGON_STATUS",
 
  420         "ID_ROOMS_HANDLE_CHANGE",
 
  421         "ID_LOBBY2_SEND_MESSAGE",
 
  422         "ID_LOBBY2_SERVER_ERROR",
 
  424         "ID_FCM2_REQUEST_FCMGUID",
 
  425         "ID_FCM2_RESPOND_CONNECTION_COUNT",
 
  426         "ID_FCM2_INFORM_FCMGUID",
 
  427         "ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT",
 
  428         "ID_FCM2_VERIFIED_JOIN_START",
 
  429         "ID_FCM2_VERIFIED_JOIN_CAPABLE",
 
  430         "ID_FCM2_VERIFIED_JOIN_FAILED",
 
  431         "ID_FCM2_VERIFIED_JOIN_ACCEPTED",
 
  432         "ID_FCM2_VERIFIED_JOIN_REJECTED",
 
  433         "ID_UDP_PROXY_GENERAL",
 
  435         "ID_SQLite3_UNKNOWN_DB",
 
  437         "ID_NAT_TYPE_DETECTION_REQUEST",
 
  438         "ID_NAT_TYPE_DETECTION_RESULT",
 
  439         "ID_ROUTER_2_INTERNAL",
 
  440         "ID_ROUTER_2_FORWARDING_NO_PATH",
 
  441         "ID_ROUTER_2_FORWARDING_ESTABLISHED",
 
  442         "ID_ROUTER_2_REROUTED",
 
  443         "ID_TEAM_BALANCER_INTERNAL",
 
  444         "ID_TEAM_BALANCER_REQUESTED_TEAM_FULL",
 
  445         "ID_TEAM_BALANCER_REQUESTED_TEAM_LOCKED",
 
  446         "ID_TEAM_BALANCER_TEAM_REQUESTED_CANCELLED",
 
  447         "ID_TEAM_BALANCER_TEAM_ASSIGNED",
 
  448         "ID_LIGHTSPEED_INTEGRATION",
 
  450         "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS",
 
  451         "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS",
 
  452         "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE",
 
  453         "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE",
 
  454         "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT",
 
  455         "ID_TWO_WAY_AUTHENTICATION_NEGOTIATION",
 
  456         "ID_CLOUD_POST_REQUEST",
 
  457         "ID_CLOUD_RELEASE_REQUEST",
 
  458         "ID_CLOUD_GET_REQUEST",
 
  459         "ID_CLOUD_GET_RESPONSE",
 
  460         "ID_CLOUD_UNSUBSCRIBE_REQUEST",
 
  461         "ID_CLOUD_SERVER_TO_SERVER_COMMAND",
 
  462         "ID_CLOUD_SUBSCRIPTION_NOTIFICATION",
 
  465         "ID_NAT_REQUEST_BOUND_ADDRESSES",
 
  466         "ID_NAT_RESPOND_BOUND_ADDRESSES",
 
  467         "ID_FCM2_UPDATE_USER_CONTEXT",
 
  475         "ID_USER_PACKET_ENUM" 
  478     return (
char*)IDTable[Id];
 
  483     static char str[256];
 
  485     return (
const char*) str;
 
  497     strncpy_s(
prefix, _prefix, 255);
 
  502     strncpy_s(
suffix, _suffix, 255);
 
  507 #if defined(_WIN32) && !defined(__GNUC__)  && !defined(__GCCXML__) 
  512     gettimeofday(&tv, &tz);
 
  517     localtime_s ( &timeinfo, &rawtime );
 
  518     strftime (buffer,128,
"%x %X",&timeinfo);
 
  520     sprintf_s(buff, 
".%i", tv.tv_usec);
 
  521     strcat_s(buffer,128,buff);
 
  544 #endif // _RAKNET_SUPPORT_*