Pretty-print message codes
This commit is contained in:
parent
02eae02343
commit
34698c8813
1 changed files with 25 additions and 3 deletions
28
nmrp.c
28
nmrp.c
|
|
@ -95,6 +95,27 @@ struct nmrp_pkt {
|
||||||
struct nmrp_msg msg;
|
struct nmrp_msg msg;
|
||||||
} PACKED;
|
} PACKED;
|
||||||
|
|
||||||
|
static const char *msg_code_str(uint16_t code)
|
||||||
|
{
|
||||||
|
#define CASE_CODE(x) case NMRP_C_ ## x: return #x
|
||||||
|
static char buf[16];
|
||||||
|
|
||||||
|
switch (code) {
|
||||||
|
CASE_CODE(ADVERTISE);
|
||||||
|
CASE_CODE(CONF_REQ);
|
||||||
|
CASE_CODE(CONF_ACK);
|
||||||
|
CASE_CODE(CLOSE_REQ);
|
||||||
|
CASE_CODE(CLOSE_ACK);
|
||||||
|
CASE_CODE(KEEP_ALIVE_REQ);
|
||||||
|
CASE_CODE(KEEP_ALIVE_ACK);
|
||||||
|
CASE_CODE(TFTP_UL_REQ);
|
||||||
|
default:
|
||||||
|
snprintf(buf, sizeof(buf), "%04x", code);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
#undef CASE_CODE
|
||||||
|
}
|
||||||
|
|
||||||
static void msg_update_len(struct nmrp_msg *msg)
|
static void msg_update_len(struct nmrp_msg *msg)
|
||||||
{
|
{
|
||||||
uint32_t i = 0;
|
uint32_t i = 0;
|
||||||
|
|
@ -439,8 +460,8 @@ int nmrp_do(struct nmrpd_args *args)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (expect != NMRP_C_NONE && rx.msg.code != expect) {
|
if (expect != NMRP_C_NONE && rx.msg.code != expect) {
|
||||||
fprintf(stderr, "Received code 0x%02x while waiting for 0x%02x!\n",
|
fprintf(stderr, "Received %s while waiting for %s!\n",
|
||||||
rx.msg.code, expect);
|
msg_code_str(rx.msg.code), msg_code_str(expect));
|
||||||
}
|
}
|
||||||
|
|
||||||
tx.msg.code = NMRP_C_NONE;
|
tx.msg.code = NMRP_C_NONE;
|
||||||
|
|
@ -596,7 +617,8 @@ int nmrp_do(struct nmrpd_args *args)
|
||||||
status = pkt_recv(sock, &rx);
|
status = pkt_recv(sock, &rx);
|
||||||
if (status) {
|
if (status) {
|
||||||
if (status == 2) {
|
if (status == 2) {
|
||||||
fprintf(stderr, "Timeout while waiting for 0x%02x.\n", expect);
|
fprintf(stderr, "Timeout while waiting for %s.\n",
|
||||||
|
msg_code_str(expect));
|
||||||
}
|
}
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue