diff --git a/ChangeLog.txt b/ChangeLog.txt index 3bb53195..0dfdcdb2 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,10 @@ +2.0.12 - 2021-07-xx +=================== + +Clients: +- mosquitto_sub and mosquitto_rr now open stdout in binary mode on Windows + so binary payloads are not modified when printing. + 2.0.11 - 2021-06-08 =================== diff --git a/client/rr_client.c b/client/rr_client.c index 4b1edba4..52b0d2e5 100644 --- a/client/rr_client.c +++ b/client/rr_client.c @@ -309,6 +309,7 @@ int main(int argc, char *argv[]) #endif mosquitto_lib_init(); + output_init(); rc = client_config_load(&cfg, CLIENT_RR, argc, argv); if(rc){ diff --git a/client/sub_client.c b/client/sub_client.c index 5e5e570c..304eb914 100644 --- a/client/sub_client.c +++ b/client/sub_client.c @@ -324,7 +324,7 @@ int main(int argc, char *argv[]) mosquitto_lib_init(); - rand_init(); + output_init(); rc = client_config_load(&cfg, CLIENT_SUB, argc, argv); if(rc){ diff --git a/client/sub_client_output.c b/client/sub_client_output.c index 1cb984b6..c3fb5c33 100644 --- a/client/sub_client_output.c +++ b/client/sub_client_output.c @@ -21,6 +21,8 @@ Contributors: #ifdef WIN32 /* For rand_s on Windows */ # define _CRT_RAND_S +# include +# include #endif #include @@ -764,7 +766,7 @@ static void formatted_print(const struct mosq_config *lcfg, const struct mosquit } -void rand_init(void) +void output_init(void) { #ifndef WIN32 struct tm *ti = NULL; @@ -773,6 +775,9 @@ void rand_init(void) if(!get_time(&ti, &ns)){ srandom((unsigned int)ns); } +#else + /* Disable text translation so binary payloads aren't modified */ + _setmode(_fileno(stdout), _O_BINARY); #endif } diff --git a/client/sub_client_output.h b/client/sub_client_output.h index 9bca8b67..bf116be6 100644 --- a/client/sub_client_output.h +++ b/client/sub_client_output.h @@ -22,7 +22,7 @@ Contributors: #include "mosquitto.h" #include "client_shared.h" -void rand_init(void); +void output_init(void); void print_message(struct mosq_config *cfg, const struct mosquitto_message *message, const mosquitto_property *properties); #endif