ENH: Attempt to remove cast warnings

This commit is contained in:
Andy Cedilnik 2003-05-22 10:42:29 -04:00
parent 5730bd6b1b
commit f5cf6676a7
3 changed files with 16 additions and 7 deletions

View File

@ -619,14 +619,14 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */
/* This is the loop that attempts to connect to all IP-addresses we /* This is the loop that attempts to connect to all IP-addresses we
know for the given host. One by one. */ know for the given host. One by one. */
for(rc=-1, aliasindex=0; for(rc=-1, aliasindex=0;
rc && (struct in_addr *)remotehost->addr->h_addr_list[aliasindex]; rc && (void *)remotehost->addr->h_addr_list[aliasindex];
aliasindex++) { aliasindex++) {
struct sockaddr_in serv_addr; struct sockaddr_in serv_addr;
/* do this nasty work to do the connect */ /* do this nasty work to do the connect */
memset((char *) &serv_addr, '\0', sizeof(serv_addr)); memset((char *) &serv_addr, '\0', sizeof(serv_addr));
memcpy((char *)&(serv_addr.sin_addr), memcpy(&(serv_addr.sin_addr),
(struct in_addr *)remotehost->addr->h_addr_list[aliasindex], remotehost->addr->h_addr_list[aliasindex],
sizeof(struct in_addr)); sizeof(struct in_addr));
serv_addr.sin_family = remotehost->addr->h_addrtype; serv_addr.sin_family = remotehost->addr->h_addrtype;
serv_addr.sin_port = htons((unsigned short)port); serv_addr.sin_port = htons((unsigned short)port);
@ -706,8 +706,10 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */
/* leave the socket in non-blocking mode */ /* leave the socket in non-blocking mode */
if(addr) if(addr)
{
/* this is the address we've connected to */ /* this is the address we've connected to */
*addr = (struct in_addr *)remotehost->addr->h_addr_list[aliasindex]; memcpy(addr, &remotehost->addr->h_addr_list[aliasindex], sizeof(struct in_addr*));
}
#endif #endif
/* allow NULL-pointers to get passed in */ /* allow NULL-pointers to get passed in */

View File

@ -106,7 +106,9 @@ char *Curl_if2ip(char *interface, char *buf, int buf_size)
else { else {
struct in_addr in; struct in_addr in;
struct sockaddr_in *s = (struct sockaddr_in *)&req.ifr_dstaddr; struct sockaddr_in *s;
struct sockaddr *sadd = &req.ifr_dstaddr;
memcpy(&s, &sadd, sizeof(struct sockaddr_in*));
memcpy(&in, &(s->sin_addr.s_addr), sizeof(in)); memcpy(&in, &(s->sin_addr.s_addr), sizeof(in));
#if defined(HAVE_INET_NTOA_R) #if defined(HAVE_INET_NTOA_R)
ip = inet_ntoa_r(in,buf,buf_size); ip = inet_ntoa_r(in,buf,buf_size);

View File

@ -1531,7 +1531,10 @@ static int handleSock5Proxy(
#endif #endif
} }
*((unsigned short*)&socksreq[8]) = htons(conn->remote_port); {
unsigned short htons_res = htons(conn->remote_port);
memcpy(&socksreq[8], &htons_res, sizeof(unsigned short*));
}
{ {
const int packetsize = 10; const int packetsize = 10;
@ -1554,11 +1557,13 @@ static int handleSock5Proxy(
return 1; return 1;
} }
if (socksreq[1] != 0) { /* Anything besides 0 is an error */ if (socksreq[1] != 0) { /* Anything besides 0 is an error */
unsigned short ntohs_arg;
memcpy(&ntohs_arg, &socksreq[8], sizeof(unsigned short*));
failf(conn->data, failf(conn->data,
"Can't complete SOCKS5 connection to %d.%d.%d.%d:%d. (%d)", "Can't complete SOCKS5 connection to %d.%d.%d.%d:%d. (%d)",
(unsigned char)socksreq[4], (unsigned char)socksreq[5], (unsigned char)socksreq[4], (unsigned char)socksreq[5],
(unsigned char)socksreq[6], (unsigned char)socksreq[7], (unsigned char)socksreq[6], (unsigned char)socksreq[7],
(unsigned int)ntohs(*(unsigned short*)(&socksreq[8])), (unsigned int)ntohs(ntohs_arg),
socksreq[1]); socksreq[1]);
return 1; return 1;
} }