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_*