[SLOF] [PATCH v2] dhcp: fix warning messages when calling strtoip()

Alexey Kardashevskiy aik at ozlabs.ru
Thu Feb 11 12:48:34 AEDT 2016


On 02/10/2016 07:30 PM, Nikunj A Dadhania wrote:
> With the removal of dupicate strtoip in patch "dhcp: Remove duplicated
> strtoip()" (commit 896e31da2cc260bf5311a89b63683def20329c5b), we get
> following warnings messages:
>
> dhcp.c: In function ‘dhcpv4’:
> dhcp.c:215:16: warning: pointer targets in passing argument 1 of ‘strtoip’ differ in signedness [-Wpointer-sign]
>     if (!strtoip(dhcp_tftp_name, (uint8_t *)&dhcp_tftp_ip)) {
>                  ^
> In file included from dhcp.c:51:0:
> ../netapps/args.h:20:5: note: expected ‘const char *’ but argument is of type ‘int8_t * {aka signed char *}’
>   int strtoip(const char *, char[4]);
>       ^
> dhcp.c:215:32: warning: pointer targets in passing argument 2 of ‘strtoip’ differ in signedness [-Wpointer-sign]
>     if (!strtoip(dhcp_tftp_name, (uint8_t *)&dhcp_tftp_ip)) {
>                                  ^
> In file included from dhcp.c:51:0:
> ../netapps/args.h:20:5: note: expected ‘char *’ but argument is of type ‘uint8_t * {aka unsigned char *}’
>   int strtoip(const char *, char[4]);
>       ^
>
> There were unnecessary typecasts which could be removed by declaring
> dhcp_tftp_name and dhcp_filename. Along with this, change the dns_get_ip
> signature as well to reduce typecast.

Thanks, applied.


>
> Signed-off-by: Nikunj A Dadhania <nikunj at linux.vnet.ibm.com>
> ---
>   clients/net-snk/app/netapps/netboot.c |  2 +-
>   clients/net-snk/app/netlib/dhcp.c     | 16 ++++++++--------
>   clients/net-snk/app/netlib/dns.c      |  4 ++--
>   clients/net-snk/app/netlib/dns.h      |  2 +-
>   4 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/clients/net-snk/app/netapps/netboot.c b/clients/net-snk/app/netapps/netboot.c
> index 7ed82aa..bb1db03 100644
> --- a/clients/net-snk/app/netapps/netboot.c
> +++ b/clients/net-snk/app/netapps/netboot.c
> @@ -844,7 +844,7 @@ int parse_tftp_args(char buffer[], char *server_ip, char filename[], int fd,
>   		tmp = raw + 7;
>   		tmp[j] = '\0';
>   		strcpy(domainname, tmp);
> -		if (dns_get_ip(fd, (int8_t *)domainname, server_ip6, 6) == 0) {
> +		if (dns_get_ip(fd, domainname, server_ip6, 6) == 0) {
>   			printf("\n DNS failed for IPV6\n");
>                           return -1;
>                   }
> diff --git a/clients/net-snk/app/netlib/dhcp.c b/clients/net-snk/app/netlib/dhcp.c
> index 28aa488..7e2e88c 100644
> --- a/clients/net-snk/app/netlib/dhcp.c
> +++ b/clients/net-snk/app/netlib/dhcp.c
> @@ -164,8 +164,8 @@ static uint8_t  ether_packet[ETH_MTU_SIZE];
>   static uint32_t dhcp_own_ip        = 0;
>   static uint32_t dhcp_server_ip     = 0;
>   static uint32_t dhcp_siaddr_ip     = 0;
> -static int8_t   dhcp_filename[256];
> -static int8_t   dhcp_tftp_name[256];
> +static char   dhcp_filename[256];
> +static char   dhcp_tftp_name[256];
>   static uint32_t dhcp_xid;
>
>   static char   * response_buffer;
> @@ -182,8 +182,8 @@ int32_t dhcpv4(char *ret_buffer, filename_ip_t *fn_ip)
>   	uint32_t dhcp_tftp_ip     = 0;
>   	int fd = fn_ip->fd;
>
> -	strcpy((char *) dhcp_filename, "");
> -	strcpy((char *) dhcp_tftp_name, "");
> +	strcpy(dhcp_filename, "");
> +	strcpy(dhcp_tftp_name, "");
>
>   	response_buffer = ret_buffer;
>
> @@ -197,11 +197,11 @@ int32_t dhcpv4(char *ret_buffer, filename_ip_t *fn_ip)
>   		dhcp_siaddr_ip = fn_ip->server_ip;
>   	}
>   	if(fn_ip->filename[0] != 0) {
> -		strcpy((char *) dhcp_filename, (char *) fn_ip->filename);
> +		strcpy(dhcp_filename, (char *) fn_ip->filename);
>   	}
>
>   	// TFTP SERVER
> -	if (!strlen((char *) dhcp_tftp_name)) {
> +	if (!strlen(dhcp_tftp_name)) {
>   		if (!dhcp_siaddr_ip) {
>   			// ERROR: TFTP name is not presented
>   			return -3;
> @@ -212,7 +212,7 @@ int32_t dhcpv4(char *ret_buffer, filename_ip_t *fn_ip)
>   	}
>   	else {
>   		// TFTP server defined by its name
> -		if (!strtoip(dhcp_tftp_name, (uint8_t *)&dhcp_tftp_ip)) {
> +		if (!strtoip(dhcp_tftp_name, (char *)&dhcp_tftp_ip)) {
>   			if (!dns_get_ip(fd, dhcp_tftp_name, (uint8_t *)&dhcp_tftp_ip, 4)) {
>   				// DNS error - can't obtain TFTP-server name
>   				// Use TFTP-ip from siaddr field, if presented
> @@ -230,7 +230,7 @@ int32_t dhcpv4(char *ret_buffer, filename_ip_t *fn_ip)
>   	// Store configuration info into filename_ip strucutre
>   	fn_ip -> own_ip = dhcp_own_ip;
>   	fn_ip -> server_ip = dhcp_tftp_ip;
> -	strcpy((char *) fn_ip -> filename, (char *) dhcp_filename);
> +	strcpy((char *) fn_ip -> filename, dhcp_filename);
>
>   	return 0;
>   }
> diff --git a/clients/net-snk/app/netlib/dns.c b/clients/net-snk/app/netlib/dns.c
> index 0ab1346..a5a36a1 100644
> --- a/clients/net-snk/app/netlib/dns.c
> +++ b/clients/net-snk/app/netlib/dns.c
> @@ -133,7 +133,7 @@ dns_init(uint32_t _dns_server_ip, uint8_t _dns_server_ipv6[16], uint8_t ip_versi
>    *                   FALSE - error condition occurs.
>    */
>   int8_t
> -dns_get_ip(int fd, int8_t * url, uint8_t * domain_ip, uint8_t ip_version)
> +dns_get_ip(int fd, char* url, uint8_t * domain_ip, uint8_t ip_version)
>   {
>   	/* this counter is used so that we abort after 30 DNS request */
>   	int32_t i;
> @@ -143,7 +143,7 @@ dns_get_ip(int fd, int8_t * url, uint8_t * domain_ip, uint8_t ip_version)
>   	(* domain_ip) = 0;
>
>   	// Retrieve host name from URL
> -	if (!urltohost((char *) url, (char *) host_name)) {
> +	if (!urltohost(url, (char *) host_name)) {
>   		printf("\nERROR:\t\t\tBad URL!\n");
>   		return 0;
>   	}
> diff --git a/clients/net-snk/app/netlib/dns.h b/clients/net-snk/app/netlib/dns.h
> index 82eea4e..b8756af 100644
> --- a/clients/net-snk/app/netlib/dns.h
> +++ b/clients/net-snk/app/netlib/dns.h
> @@ -20,7 +20,7 @@
>   extern int8_t dns_init(uint32_t _dns_server_ip, uint8_t _dns_server_ipv6[16], uint8_t ip_version);
>
>   /* For given URL retrieves IPv4 from DNS-server. */
> -extern int8_t dns_get_ip(int fd, int8_t * url, uint8_t * domain_ip, uint8_t ip_version);
> +extern int8_t dns_get_ip(int fd, char * url, uint8_t * domain_ip, uint8_t ip_version);
>
>   /* Handles DNS-packets, which are detected by receive_ether. */
>   extern int32_t handle_dns(uint8_t * packet, int32_t packetsize);
>


-- 
Alexey


More information about the SLOF mailing list