Changeset 107548 in vbox for trunk/src/libs
- Timestamp:
- Jan 8, 2025 7:54:13 PM (2 months ago)
- svn:sync-xref-src-repo-rev:
- 166619
- Location:
- trunk/src/libs/libslirp-4.8.0
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/libslirp-4.8.0/include/glib.h
r106935 r107548 35 35 36 36 #ifndef INCLUDED_glib_h 37 #define INCLUDED_glib_h 37 38 #ifndef RT_WITHOUT_PRAGMA_ONCE 38 39 # pragma once -
trunk/src/libs/libslirp-4.8.0/src/libslirp.h
r105726 r107548 210 210 */ 211 211 uint8_t oob_eth_addr[6]; 212 #ifdef VBOX 213 /* 214 * Allow for network broadcasts to be sent out of internal NAT network. 215 * When true, all devices on host's network would receive broadcasts if 216 * host's network configuration allows. 217 */ 218 bool fForwardBroadcast; 219 220 /* 221 * Set a maximum number of pending socket connections to be passeed to 222 * the backlog parameter of listen(). 223 */ 224 int iSoMaxConn; 225 #endif 212 226 } SlirpConfig; 213 227 -
trunk/src/libs/libslirp-4.8.0/src/slirp.c
r105726 r107548 699 699 } 700 700 701 #ifdef VBOX 702 slirp->fForwardBroadcast = cfg->fForwardBroadcast; 703 slirp->iSoMaxConn = cfg->iSoMaxConn; 704 #endif 705 701 706 ip6_post_init(slirp); 702 707 return slirp; -
trunk/src/libs/libslirp-4.8.0/src/slirp.h
r105533 r107548 218 218 struct sockaddr_in6 *outbound_addr6; 219 219 bool disable_dns; /* slirp will not redirect/serve any DNS packet */ 220 221 #ifdef VBOX 222 bool fForwardBroadcast; 223 int iSoMaxConn; 224 #endif 220 225 }; 221 226 -
trunk/src/libs/libslirp-4.8.0/src/socket.c
r105533 r107548 656 656 DEBUG_MISC(" did recvfrom %d, errno = %d-%s", m->m_len, errno, 657 657 strerror(errno)); 658 if (m->m_len < 0) { 658 if (m->m_len < 0) { 659 659 if (errno == ENOTCONN) { 660 660 /* … … 868 868 (slirp_socket_set_fast_reuse(s) < 0) || 869 869 (bind(s, haddr, haddrlen) < 0) || 870 #ifdef VBOX 871 (listen(s, slirp->iSoMaxConn) < 0)) { 872 #else 870 873 (listen(s, 1) < 0)) { 874 #endif 871 875 int tmperrno = errno; /* Don't clobber the real reason we failed */ 872 876 if (s >= 0) { … … 973 977 974 978 if (so->so_faddr.s_addr == s->vhost_addr.s_addr || 975 so->so_faddr.s_addr == 0xffffffff) { 979 #ifdef VBOX 980 so->so_faddr.s_addr == 0xffffffff || 981 so->so_faddr.s_addr == 982 (s->vnetwork_addr.s_addr|~s->vnetwork_mask.s_addr)) { 983 #else 984 so->so_faddr.s_addr == 0xffffffff { 985 #endif 986 976 987 if (s->disable_host_loopback) { 977 988 return false; 978 989 } 979 990 980 sin->sin_addr = loopback_addr; 991 #ifdef VBOX 992 if (s->fForwardBroadcast) 993 sin->sin_addr.s_addr = 0xffffffff; 994 else 995 #endif 996 sin->sin_addr = loopback_addr; 981 997 } 982 998 -
trunk/src/libs/libslirp-4.8.0/src/udp.c
r105533 r107548 222 222 } 223 223 setsockopt(so->s, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl)); 224 #ifdef VBOX 225 if ( slirp->fForwardBroadcast 226 && ( so->so_faddr.s_addr == (slirp->vnetwork_addr.s_addr|~slirp->vnetwork_mask.s_addr) 227 || so->so_faddr.s_addr == 0xffffffff) ) 228 setsockopt(so->s, SOL_SOCKET, SO_BROADCAST, &(int){1}, sizeof(int)); 229 #endif 224 230 225 231 /*
Note:
See TracChangeset
for help on using the changeset viewer.