[TRACERT] Improve error handling and output (#319)

- Correctly interpret network error codes
- Add output for generic transmit failure

CORE-14242 #resolve
This commit is contained in:
Stanislav Motylkov 2018-01-26 21:37:43 +03:00 committed by Ged Murphy
parent dc85171674
commit 010c7bfc9b
18 changed files with 132 additions and 34 deletions

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -20,13 +20,18 @@ Options:\r\n\
IDS_UNABLE_RESOLVE "Unable to resolve target system name %1.\r\n"
IDS_GEN_FAILURE "General failure.\r\n"
IDS_TRANSMIT_FAILED "Transmit failed. (Error %1!u!)\r\n"
IDS_HOP_COUNT "%1!3lu! %0\r\n"
IDS_HOP_TIME "%1!4lu! ms %0\r\n"
IDS_HOP_ZERO, " <1 ms %0\r\n"
IDS_TIMEOUT " * %0\r\n"
IDS_HOP_RES_INFO "%1 [%2]\r\n"
IDS_HOP_IP_INFO "%1\r\n"
IDS_HOP_RES_INFO "%1 [%2]"
IDS_HOP_IP_INFO "%1"
IDS_LINEBREAK "\r\n"
IDS_REQ_TIMED_OUT "Request timed out.\r\n"
IDS_HOP_RESPONSE " reports: "
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\r\n"
IDS_DEST_NET_UNREACHABLE "Destination network unreachable.\r\n"
END

View file

@ -6,6 +6,7 @@
#define IDS_TRACE_COMPLETE 103
#define IDS_UNABLE_RESOLVE 104
#define IDS_GEN_FAILURE 105
#define IDS_TRANSMIT_FAILED 106
#define IDS_HOP_COUNT 107
#define IDS_HOP_TIME 108
@ -14,3 +15,7 @@
#define IDS_HOP_RES_INFO 111
#define IDS_HOP_IP_INFO 112
#define IDS_REQ_TIMED_OUT 113
#define IDS_LINEBREAK 114
#define IDS_HOP_RESPONSE 115
#define IDS_DEST_HOST_UNREACHABLE 116
#define IDS_DEST_NET_UNREACHABLE 117

View file

@ -317,8 +317,19 @@ DecodeResponse(
break;
case IP_DEST_HOST_UNREACHABLE:
OutputText(IDS_TIMEOUT);
break;
case IP_DEST_NET_UNREACHABLE:
FoundTarget = true;
PrintHopInfo(AddressInfo);
OutputText(IDS_HOP_RESPONSE);
if (Status == IP_DEST_HOST_UNREACHABLE)
{
OutputText(IDS_DEST_HOST_UNREACHABLE);
}
else if (Status == IP_DEST_NET_UNREACHABLE)
{
OutputText(IDS_DEST_NET_UNREACHABLE);
}
return true;
case IP_REQ_TIMED_OUT:
OutputText(IDS_TIMEOUT);
@ -329,6 +340,7 @@ DecodeResponse(
return false;
default:
OutputText(IDS_TRANSMIT_FAILED, Status);
return false;
}
@ -341,6 +353,7 @@ DecodeResponse(
if (Status == IP_TTL_EXPIRED_TRANSIT || Status == IP_SUCCESS)
{
PrintHopInfo(AddressInfo);
OutputText(IDS_LINEBREAK);
}
else if (Status == IP_REQ_TIMED_OUT)
{