Add %X for upper case hex printing.

pull/746/merge
Roger A. Light 8 years ago
parent 17029c1e11
commit d55da837aa

@ -71,7 +71,7 @@ static int check_format(struct mosq_config *cfg, const char *str)
// JSON output, assuming JSON payload // JSON output, assuming JSON payload
}else if(str[i+1] == 'U'){ }else if(str[i+1] == 'U'){
// Unix time+nanoseconds // Unix time+nanoseconds
}else if(str[i+1] == 'x'){ }else if(str[i+1] == 'x' || str[i+1] == 'X'){
// payload in hex // payload in hex
}else{ }else{
fprintf(stderr, "Error: Invalid format specifier '%c'.\n", str[i+1]); fprintf(stderr, "Error: Invalid format specifier '%c'.\n", str[i+1]);

@ -65,16 +65,20 @@ static int get_time(struct tm **ti, long *ns)
} }
static void write_payload(const unsigned char *payload, int payloadlen, bool hex) static void write_payload(const unsigned char *payload, int payloadlen, int hex)
{ {
int i; int i;
if(!hex){ if(hex == 0){
(void)fwrite(payload, 1, payloadlen, stdout); (void)fwrite(payload, 1, payloadlen, stdout);
}else{ }else if(hex == 1){
for(i=0; i<payloadlen; i++){ for(i=0; i<payloadlen; i++){
fprintf(stdout, "%x", payload[i]); fprintf(stdout, "%x", payload[i]);
} }
}else if(hex == 2){
for(i=0; i<payloadlen; i++){
fprintf(stdout, "%X", payload[i]);
}
} }
} }
@ -108,7 +112,7 @@ static void json_print(const struct mosquitto_message *message, const struct tm
fputs("\"}", stdout); fputs("\"}", stdout);
}else{ }else{
fputs("\"payload\":", stdout); fputs("\"payload\":", stdout);
write_payload(message->payload, message->payloadlen, false); write_payload(message->payload, message->payloadlen, 0);
fputs("}", stdout); fputs("}", stdout);
} }
} }
@ -175,7 +179,7 @@ static void formatted_print(const struct mosq_config *cfg, const struct mosquitt
break; break;
case 'p': case 'p':
write_payload(message->payload, message->payloadlen, false); write_payload(message->payload, message->payloadlen, 0);
break; break;
case 'q': case 'q':
@ -207,7 +211,11 @@ static void formatted_print(const struct mosq_config *cfg, const struct mosquitt
break; break;
case 'x': case 'x':
write_payload(message->payload, message->payloadlen, true); write_payload(message->payload, message->payloadlen, 1);
break;
case 'X':
write_payload(message->payload, message->payloadlen, 2);
break; break;
} }
} }

@ -593,7 +593,8 @@
<listitem><para><option>%q</option> the message QoS.</para></listitem> <listitem><para><option>%q</option> the message QoS.</para></listitem>
<listitem><para><option>%r</option> the retained flag for the message.</para></listitem> <listitem><para><option>%r</option> the retained flag for the message.</para></listitem>
<listitem><para><option>%t</option> the message topic.</para></listitem> <listitem><para><option>%t</option> the message topic.</para></listitem>
<listitem><para><option>%x</option> the payload with each byte as a hexadecimal number.</para></listitem> <listitem><para><option>%x</option> the payload with each byte as a hexadecimal number (lower case).</para></listitem>
<listitem><para><option>%X</option> the payload with each byte as a hexadecimal number (upper case).</para></listitem>
</itemizedlist> </itemizedlist>
</refsect2> </refsect2>

Loading…
Cancel
Save