Skip to content

Commit c90497b

Browse files
authored
Convert _read_sockaddr/_write_sockaddr to JS-only functions (#13435)
These function operator on JS objects and as such cannot be called from native code. As such is it also meaningless to include them in deps_info.py. This is because only symbols contains in native object files can appear in deps_info.py. See #13431 for more on this.
1 parent e0138df commit c90497b

File tree

3 files changed

+23
-24
lines changed

3 files changed

+23
-24
lines changed

src/library.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2267,8 +2267,8 @@ LibraryManager.library = {
22672267
return str;
22682268
},
22692269

2270-
_read_sockaddr__deps: ['$Sockets', '_inet_ntop4_raw', '_inet_ntop6_raw', 'ntohs'],
2271-
_read_sockaddr: function (sa, salen) {
2270+
$readSockaddr__deps: ['$Sockets', '_inet_ntop4_raw', '_inet_ntop6_raw', 'ntohs'],
2271+
$readSockaddr: function (sa, salen) {
22722272
// family / port offsets are common to both sockaddr_in and sockaddr_in6
22732273
var family = {{{ makeGetValue('sa', C_STRUCTS.sockaddr_in.sin_family, 'i16') }}};
22742274
var port = _ntohs({{{ makeGetValue('sa', C_STRUCTS.sockaddr_in.sin_port, 'i16', undefined, true) }}});
@@ -2300,8 +2300,8 @@ LibraryManager.library = {
23002300

23012301
return { family: family, addr: addr, port: port };
23022302
},
2303-
_write_sockaddr__deps: ['$Sockets', '_inet_pton4_raw', '_inet_pton6_raw'],
2304-
_write_sockaddr: function (sa, family, addr, port, addrlen) {
2303+
$writeSockaddr__deps: ['$Sockets', '_inet_pton4_raw', '_inet_pton6_raw'],
2304+
$writeSockaddr: function (sa, family, addr, port, addrlen) {
23052305
switch (family) {
23062306
case {{{ cDefine('AF_INET') }}}:
23072307
addr = __inet_pton4_raw(addr);
@@ -2311,7 +2311,7 @@ LibraryManager.library = {
23112311
{{{ makeSetValue('sa', C_STRUCTS.sockaddr_in.sin_family, 'family', 'i16') }}};
23122312
{{{ makeSetValue('sa', C_STRUCTS.sockaddr_in.sin_addr.s_addr, 'addr', 'i32') }}};
23132313
{{{ makeSetValue('sa', C_STRUCTS.sockaddr_in.sin_port, '_htons(port)', 'i16') }}};
2314-
/* Use makeSetValue instead of memset to avoid adding memset dependency for all users of _write_sockaddr. */
2314+
/* Use makeSetValue instead of memset to avoid adding memset dependency for all users of writeSockaddr. */
23152315
{{{ assert(C_STRUCTS.sockaddr_in.__size__ - C_STRUCTS.sockaddr_in.sin_zero == 8), '' }}}
23162316
{{{ makeSetValue('sa', C_STRUCTS.sockaddr_in.sin_zero, '0', 'i64') }}};
23172317
break;
@@ -2443,7 +2443,7 @@ LibraryManager.library = {
24432443
return 0;
24442444
},
24452445

2446-
getaddrinfo__deps: ['$Sockets', '$DNS', '_inet_pton4_raw', '_inet_ntop4_raw', '_inet_pton6_raw', '_inet_ntop6_raw', '_write_sockaddr'],
2446+
getaddrinfo__deps: ['$Sockets', '$DNS', '_inet_pton4_raw', '_inet_ntop4_raw', '_inet_pton6_raw', '_inet_ntop6_raw', '$writeSockaddr'],
24472447
getaddrinfo__proxy: 'sync',
24482448
getaddrinfo__sig: 'iiiii',
24492449
getaddrinfo: function(node, service, hint, out) {
@@ -2471,7 +2471,7 @@ LibraryManager.library = {
24712471
__inet_ntop6_raw(addr) :
24722472
__inet_ntop4_raw(addr);
24732473
sa = _malloc(salen);
2474-
errno = __write_sockaddr(sa, family, addr, port);
2474+
errno = writeSockaddr(sa, family, addr, port);
24752475
assert(!errno);
24762476

24772477
ai = _malloc({{{ C_STRUCTS.addrinfo.__size__ }}});
@@ -2615,9 +2615,9 @@ LibraryManager.library = {
26152615
return 0;
26162616
},
26172617

2618-
getnameinfo__deps: ['$Sockets', '$DNS', '_read_sockaddr'],
2618+
getnameinfo__deps: ['$Sockets', '$DNS', '$readSockaddr'],
26192619
getnameinfo: function (sa, salen, node, nodelen, serv, servlen, flags) {
2620-
var info = __read_sockaddr(sa, salen);
2620+
var info = readSockaddr(sa, salen);
26212621
if (info.errno) {
26222622
return {{{ cDefine('EAI_FAMILY') }}};
26232623
}

src/library_syscall.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -544,10 +544,10 @@ var SyscallsLibrary = {
544544
return socket;
545545
},
546546
/** @param {boolean=} allowNull */
547-
$getSocketAddress__deps: ['_read_sockaddr'],
547+
$getSocketAddress__deps: ['$readSockaddr'],
548548
$getSocketAddress: function(addrp, addrlen, allowNull) {
549549
if (allowNull && addrp === 0) return null;
550-
var info = __read_sockaddr(addrp, addrlen);
550+
var info = readSockaddr(addrp, addrlen);
551551
if (info.errno) throw new FS.ErrnoError(info.errno);
552552
info.addr = DNS.lookup_addr(info.addr) || info.addr;
553553
#if SYSCALL_DEBUG
@@ -563,12 +563,12 @@ var SyscallsLibrary = {
563563
#endif
564564
return sock.stream.fd;
565565
},
566-
__sys_getsockname__deps: ['$getSocketFromFD', '_write_sockaddr', '$DNS'],
566+
__sys_getsockname__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
567567
__sys_getsockname: function(fd, addr, addrlen) {
568568
err("__sys_getsockname " + fd);
569569
var sock = getSocketFromFD(fd);
570570
// TODO: sock.saddr should never be undefined, see TODO in websocket_sock_ops.getname
571-
var errno = __write_sockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || '0.0.0.0'), sock.sport, addrlen);
571+
var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || '0.0.0.0'), sock.sport, addrlen);
572572
#if ASSERTIONS
573573
assert(!errno);
574574
#endif
@@ -583,13 +583,13 @@ var SyscallsLibrary = {
583583
__sys_setsockopt: function(fd) {
584584
return -{{{ cDefine('ENOPROTOOPT') }}}; // The option is unknown at the level indicated.
585585
},
586-
__sys_getpeername__deps: ['$getSocketFromFD', '_write_sockaddr', '$DNS'],
586+
__sys_getpeername__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
587587
__sys_getpeername: function(fd, addr, addrlen) {
588588
var sock = getSocketFromFD(fd);
589589
if (!sock.daddr) {
590590
return -{{{ cDefine('ENOTCONN') }}}; // The socket is not connected.
591591
}
592-
var errno = __write_sockaddr(addr, sock.family, DNS.lookup_name(sock.daddr), sock.dport, addrlen);
592+
var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(sock.daddr), sock.dport, addrlen);
593593
#if ASSERTIONS
594594
assert(!errno);
595595
#endif
@@ -607,12 +607,12 @@ var SyscallsLibrary = {
607607
getSocketFromFD(fd);
608608
return -{{{ cDefine('ENOSYS') }}}; // unsupported feature
609609
},
610-
__sys_accept4__deps: ['$getSocketFromFD', '_write_sockaddr', '$DNS'],
610+
__sys_accept4__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
611611
__sys_accept4: function(fd, addr, addrlen, flags) {
612612
var sock = getSocketFromFD(fd);
613613
var newsock = sock.sock_ops.accept(sock);
614614
if (addr) {
615-
var errno = __write_sockaddr(addr, newsock.family, DNS.lookup_name(newsock.daddr), newsock.dport, addrlen);
615+
var errno = writeSockaddr(addr, newsock.family, DNS.lookup_name(newsock.daddr), newsock.dport, addrlen);
616616
#if ASSERTIONS
617617
assert(!errno);
618618
#endif
@@ -632,13 +632,13 @@ var SyscallsLibrary = {
632632
sock.sock_ops.listen(sock, backlog);
633633
return 0;
634634
},
635-
__sys_recvfrom__deps: ['$getSocketFromFD', '_write_sockaddr', '$DNS'],
635+
__sys_recvfrom__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
636636
__sys_recvfrom: function(fd, buf, len, flags, addr, addrlen) {
637637
var sock = getSocketFromFD(fd);
638638
var msg = sock.sock_ops.recvmsg(sock, len);
639639
if (!msg) return 0; // socket is closed
640640
if (addr) {
641-
var errno = __write_sockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port, addrlen);
641+
var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port, addrlen);
642642
#if ASSERTIONS
643643
assert(!errno);
644644
#endif
@@ -673,7 +673,7 @@ var SyscallsLibrary = {
673673
}
674674
return -{{{ cDefine('ENOPROTOOPT') }}}; // The option is unknown at the level indicated.
675675
},
676-
__sys_sendmsg__deps: ['$getSocketFromFD', '_read_sockaddr', '$DNS'],
676+
__sys_sendmsg__deps: ['$getSocketFromFD', '$readSockaddr', '$DNS'],
677677
__sys_sendmsg: function(fd, message, flags) {
678678
var sock = getSocketFromFD(fd);
679679
var iov = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iov, '*') }}};
@@ -683,7 +683,7 @@ var SyscallsLibrary = {
683683
var name = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_name, '*') }}};
684684
var namelen = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_namelen, 'i32') }}};
685685
if (name) {
686-
var info = __read_sockaddr(name, namelen);
686+
var info = readSockaddr(name, namelen);
687687
if (info.errno) return -info.errno;
688688
port = info.port;
689689
addr = DNS.lookup_addr(info.addr) || info.addr;
@@ -705,7 +705,7 @@ var SyscallsLibrary = {
705705
// write the buffer
706706
return sock.sock_ops.sendmsg(sock, view, 0, total, addr, port);
707707
},
708-
__sys_recvmsg__deps: ['$getSocketFromFD', '_write_sockaddr', '$DNS'],
708+
__sys_recvmsg__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
709709
__sys_recvmsg: function(fd, message, flags) {
710710
var sock = getSocketFromFD(fd);
711711
var iov = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iov, 'i8*') }}};
@@ -730,7 +730,7 @@ var SyscallsLibrary = {
730730
// write the source address out
731731
var name = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_name, '*') }}};
732732
if (name) {
733-
var errno = __write_sockaddr(name, sock.family, DNS.lookup_name(msg.addr), msg.port);
733+
var errno = writeSockaddr(name, sock.family, DNS.lookup_name(msg.addr), msg.port);
734734
#if ASSERTIONS
735735
assert(!errno);
736736
#endif

tools/deps_info.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@
8686
'_embind_register_std_string': ['free'],
8787
'_embind_register_std_wstring': ['free'],
8888
'_inet_ntop6_raw': ['ntohs'],
89-
'_read_sockaddr': ['ntohs'],
9089
'alGetProcAddress': ['emscripten_GetAlProcAddress'],
9190
'alGetString': ['malloc', 'free'],
9291
'alcGetProcAddress': ['emscripten_GetAlcProcAddress'],

0 commit comments

Comments
 (0)