Remove all casting from the sockaddr code.
This commit is contained in:
parent
d97d1b72d7
commit
631c5990f7
27
wsproxy.c
27
wsproxy.c
|
|
@ -356,7 +356,11 @@ calcresponse(uint32_t key1, uint32_t key2, const char *key3, char *out)
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct sockaddr_storage sa;
|
union {
|
||||||
|
struct sockaddr sa;
|
||||||
|
struct sockaddr_in sa_in;
|
||||||
|
struct sockaddr_in6 sa_in6;
|
||||||
|
} sa;
|
||||||
char line[512], key3[8], response[16], *host = NULL, *origin = NULL;
|
char line[512], key3[8], response[16], *host = NULL, *origin = NULL;
|
||||||
unsigned long minport, maxport, port;
|
unsigned long minport, maxport, port;
|
||||||
uint32_t key1 = 0, key2 = 0;
|
uint32_t key1 = 0, key2 = 0;
|
||||||
|
|
@ -411,31 +415,30 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
/* Use our own address. Fall back to 127.0.0.1 on failure. */
|
/* Use our own address. Fall back to 127.0.0.1 on failure. */
|
||||||
salen = sizeof sa;
|
salen = sizeof sa;
|
||||||
if (getsockname(STDIN_FILENO, (struct sockaddr *)&sa, &salen) == -1) {
|
if (getsockname(STDIN_FILENO, &sa.sa, &salen) == -1) {
|
||||||
struct sockaddr_in *sin = (struct sockaddr_in *)&sa;
|
salen = sizeof sa.sa_in;
|
||||||
salen = sizeof *sin;
|
memset(&sa.sa_in, 0, salen);
|
||||||
memset(sin, 0, salen);
|
sa.sa_in.sin_family = AF_INET;
|
||||||
sin->sin_family = AF_INET;
|
sa.sa_in.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||||
sin->sin_addr.s_addr = inet_addr("127.0.0.1");
|
|
||||||
}
|
}
|
||||||
switch (sa.ss_family) {
|
switch (sa.sa.sa_family) {
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
((struct sockaddr_in *)&sa)->sin_port = htons(port);
|
sa.sa_in.sin_port = htons(port);
|
||||||
break;
|
break;
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
((struct sockaddr_in6 *)&sa)->sin6_port = htons(port);
|
sa.sa_in6.sin6_port = htons(port);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Unknown protocol. */
|
/* Unknown protocol. */
|
||||||
fprintf(stderr, "unsupported network protocol\n");
|
fprintf(stderr, "unsupported network protocol\n");
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
s = socket(sa.ss_family, SOCK_STREAM, 0);
|
s = socket(sa.sa.sa_family, SOCK_STREAM, 0);
|
||||||
if (s == -1) {
|
if (s == -1) {
|
||||||
perror("socket");
|
perror("socket");
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
if (connect(s, (struct sockaddr *)&sa, salen) == -1) {
|
if (connect(s, &sa.sa, salen) == -1) {
|
||||||
perror("connect");
|
perror("connect");
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue