test/telemetry: fix error handling for socket
Checks
Commit Message
When the socket connection failed, an error was printed to screen but
the function did not return an error, and continued to try read from the
socket. This is now corrected to close the socket and return -1 when the
connection fails.
Fixes: bd78cf693ebd ("test/telemetry: add unit tests for data to JSON")
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
app/test/test_telemetry_data.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Comments
On Tue, Oct 13, 2020 at 05:28:20PM +0100, Ciara Power wrote:
> When the socket connection failed, an error was printed to screen but
> the function did not return an error, and continued to try read from the
> socket. This is now corrected to close the socket and return -1 when the
> connection fails.
>
> Fixes: bd78cf693ebd ("test/telemetry: add unit tests for data to JSON")
>
> Signed-off-by: Ciara Power <ciara.power@intel.com>
> ---
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
13/10/2020 18:45, Bruce Richardson:
> On Tue, Oct 13, 2020 at 05:28:20PM +0100, Ciara Power wrote:
> > When the socket connection failed, an error was printed to screen but
> > the function did not return an error, and continued to try read from the
> > socket. This is now corrected to close the socket and return -1 when the
> > connection fails.
> >
> > Fixes: bd78cf693ebd ("test/telemetry: add unit tests for data to JSON")
> >
> > Signed-off-by: Ciara Power <ciara.power@intel.com>
> > ---
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Applied, thanks
@@ -319,9 +319,12 @@ connect_to_socket(void)
"%s/dpdk_telemetry.%s", rte_eal_get_runtime_dir(),
TELEMETRY_VERSION);
if (connect(sock, (struct sockaddr *) &telem_addr,
- sizeof(telem_addr)) < 0)
+ sizeof(telem_addr)) < 0) {
printf("\n%s: Error connecting to socket: %s\n", __func__,
strerror(errno));
+ close(sock);
+ return -1;
+ }
bytes = read(sock, buf, sizeof(buf) - 1);
if (bytes < 0) {