curl-library
Re: Minor patch to remove a couple of msvc compiler warnings
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