|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
--- runtime/Clib/csocket.c.orig 2018-12-18 16:52:09.914524595 -0700
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+++ runtime/Clib/csocket.c 2018-12-18 16:52:39.254438046 -0700
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
@@ -1703,8 +1703,8 @@ bgl_socket_localp( obj_t sock ) {
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
if( SOCKET( sock ).stype == BGL_SOCKET_SERVER ) {
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
return 0;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
- struct sockaddr_in sin;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
- int len = sizeof( sin );
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ struct sockaddr_storage sstor;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ int len = sizeof( sstor );
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
if( getsockname( SOCKET( sock ).fd,
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
(struct sockaddr *)&sin,
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
@@ -1718,12 +1718,14 @@ bgl_socket_localp( obj_t sock ) {
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
socket_error( "socket-localp", buffer, sock );
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
} else if( SOCKET( sock ).family == AF_INET ) {
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
/* ipv4 addr */
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
- return sin.sin_addr.s_addr == SOCKET( sock ).address.in_addr.s_addr;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ struct sockaddr_in *sin = (struct sockaddr_in *)(void *)&ssto;;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ return sin->sin_addr.s_addr == SOCKET( sock ).address.in_addr.s_addr;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
/* ipv6 addr */
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
/* MS: 17nov2014 don't know how to implement this */
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ struct sockaddr_in6 *sin = (struct sockaddr_in6 *)(void *)&ssto;;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
fprintf( stderr, "(%s:%d) IPV6 UNTESTED\n", __FILE__, __LINE__ );
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
- return memcmp( (char *)&(((struct sockaddr_in6 *)( &sin ))->sin6_addr),
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ return memcmp( (char *)&(sin->sin6_addr),
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
(char *)&(SOCKET( sock ).address.in6_addr),
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
sizeof( (SOCKET( sock ).address.in6_addr) ) );
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
}
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
@@ -2632,7 +2634,7 @@ bgl_make_datagram_server_socket( int por
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
int s;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
struct addrinfo hints, *servinfo, *p;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
int rv;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
- char service[ 10 ];
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
+ char service[ 12 ];
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
obj_t sock, buf, inb, iport;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
FILE *fs;
|
|
![](https://seccdn.libravatar.org/avatar/258caf5973a37959eeea9164bfc32d49b0634d0792e85fce1f5acf0430f05ba2?s=16&d=retro) |
3e2c3d9 |
|