]> Kevux Git Server - fll/commit
Bugfix: f_network_from_ip_string() and f_network_to_ip_string() design problems.
authorKevin Day <thekevinday@gmail.com>
Thu, 30 Nov 2023 03:01:02 +0000 (21:01 -0600)
committerKevin Day <thekevinday@gmail.com>
Thu, 30 Nov 2023 03:01:02 +0000 (21:01 -0600)
commitb015f74bed510aa6d3f6c8e1454784d6346b98c1
tree55f999c761cd962bbb7ef9d62d73663a481064b1
parent42112faa0bc95874e4fda4c7819b8bafa6f16ea5
Bugfix: f_network_from_ip_string() and f_network_to_ip_string() design problems.

Change the inet_pton() and inet_ntop() function calls to use the explicit .v4 and .v6 union members.
Being explicit is much safer.

The inet_pton() function also returns zero without the errno set when the address is invalid.
Handle this case, returning F_address_not (with error bit) when zero is returned by inet_pton().

The unit tests for these functions are incorrect and are not all called (which is why their incorrectness was not previously discovered).
Make sure to use h_errno where appropriate.
Make sure the mock function for inet_pton() allows for returning zero or non-zero.
Make sure the family type is set so that the expected return codes are returned.
Make sure the ip string is set so that the expected return codes are returned.
Handle the newly added F_address_not case.

Add the missing unit test function calls:
- test__f_network_from_ip_address__fails
- test__f_network_from_ip_name__fails
- test__f_network_from_ip_string__fails
- test__f_network_to_ip_string__fails

This could use more review and testing.
Such extra review will be performed while I continue to write TacocaT.
level_0/f_network/c/network.c
level_0/f_network/c/network.h
level_0/f_network/tests/unit/c/mock-network.c
level_0/f_network/tests/unit/c/test-network-from_ip_address.c
level_0/f_network/tests/unit/c/test-network-from_ip_name.c
level_0/f_network/tests/unit/c/test-network-from_ip_string.c
level_0/f_network/tests/unit/c/test-network-to_ip_string.c
level_0/f_network/tests/unit/c/test-network.c