cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Minor patch to remove a couple of msvc compiler warnings

From: Yang Tse <yangsita_at_gmail.com>
Date: Mon, 14 Nov 2005 16:42:27 +0100

> Old unixes and Microsoft often agree on the types for arguments to functions
> such as sendto() and others, while modern unixes and the Single Unix
> Specification have a different set. See the sendto() definition for example:

In this case typecasting to (void *) instead of (char *) is ok for
msvc, it gets rid of the compiler warning and tests ok. Should also be
safe for old and modern unixes.

If no system breaks typecasting it to (void *) instead of (char *)
here is the patch that could be applied.

diff -urp c:\f\curl-old/curl/lib/tftp.c c:\f\curl-new/curl/lib/tftp.c
--- c:\f\curl-old/curl/lib/tftp.c 2005-11-13 14:20:37.000000000 +0100
+++ c:\f\curl-new/curl/lib/tftp.c 2005-11-14 16:27:38.602835200 +0100
@@ -278,7 +278,8 @@ static void tftp_send_first(tftp_state_d
     sprintf((char *)state->spacket.u.request.data, "%s%c%s%c",
             filename, '\0', mode, '\0');
     sbytes = 4 + strlen(filename) + strlen(mode);
- sbytes = sendto(state->sockfd, &state->spacket, sbytes, 0,
+ sbytes = sendto(state->sockfd, (void *)&state->spacket,
+ sbytes, 0,
                     state->conn->ip_addr->ai_addr,
                     state->conn->ip_addr->ai_addrlen);
     if(sbytes < 0) {
@@ -345,7 +346,8 @@ static void tftp_rx(tftp_state_data_t *s
     state->retries = 0;
     state->spacket.event = htons(TFTP_EVENT_ACK);
     state->spacket.u.ack.block = htons(state->block);
- sbytes = sendto(state->sockfd, &state->spacket, 4, MSG_NOSIGNAL,
+ sbytes = sendto(state->sockfd, (void *)&state->spacket,
+ 4, MSG_NOSIGNAL,
                     (struct sockaddr *)&state->remote_addr,
                     state->remote_addrlen);
     if(sbytes < 0) {
@@ -371,7 +373,7 @@ static void tftp_rx(tftp_state_data_t *s
       state->state = TFTP_STATE_FIN;
     } else {
       /* Resend the previous ACK */
- sbytes = sendto(state->sockfd, &state->spacket,
+ sbytes = sendto(state->sockfd, (void *)&state->spacket,
                       4, MSG_NOSIGNAL,
                       (struct sockaddr *)&state->remote_addr,
                       state->remote_addrlen);
@@ -437,7 +439,7 @@ static void tftp_tx(tftp_state_data_t *s
       return;
     }
     Curl_fillreadbuffer(state->conn, 512, &state->sbytes);
- sbytes = sendto(state->sockfd, &state->spacket,
+ sbytes = sendto(state->sockfd, (void *)&state->spacket,
                     4+state->sbytes, MSG_NOSIGNAL,
                     (struct sockaddr *)&state->remote_addr,
                     state->remote_addrlen);
@@ -458,7 +460,7 @@ static void tftp_tx(tftp_state_data_t *s
       state->state = TFTP_STATE_FIN;
     } else {
       /* Re-send the data packet */
- sbytes = sendto(state->sockfd, &state->spacket,
+ sbytes = sendto(state->sockfd, (void *)&state->spacket,
                       4+state->sbytes, MSG_NOSIGNAL,
                       (struct sockaddr *)&state->remote_addr,
                       state->remote_addrlen);
Received on 2005-11-14