aboutsummaryrefslogtreecommitdiff
path: root/src/library.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-01 15:10:49 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-11-01 15:10:49 -0700
commit1399b479e90cf94f7fe6d8580a93b8aa86cf6c66 (patch)
treedd8ea76eae5de3face75584296039d36bb5d718d /src/library.js
parent2c4a776b6f48317127f9ea57d749484fc7b3741c (diff)
write source of message in recvmsg
Diffstat (limited to 'src/library.js')
-rw-r--r--src/library.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js
index 05bbd3c0..492016a4 100644
--- a/src/library.js
+++ b/src/library.js
@@ -6675,7 +6675,7 @@ LibraryManager.library = {
return ret;
},
- recvmsg__deps: ['$Sockets', 'connect', 'recv', '__setErrNo', '$ERRNO_CODES'],
+ recvmsg__deps: ['$Sockets', 'connect', 'recv', '__setErrNo', '$ERRNO_CODES', 'htons'],
recvmsg: function(fd, msg, flags) {
var info = Sockets.fds[fd];
if (!info) return -1;
@@ -6697,6 +6697,11 @@ LibraryManager.library = {
#if SOCKET_DEBUG
Module.print('recvmsg bytes: ' + bytes);
#endif
+ // write source
+ var name = {{{ makeGetValue('msg', 'Sockets.msghdr_layout.msg_name', '*') }}};
+ {{{ makeSetValue('name', 'Sockets.sockaddr_in_layout.sin_addr', 'info.addr', 'i32') }}};
+ {{{ makeSetValue('name', 'Sockets.sockaddr_in_layout.sin_port', '_htons(info.port)', 'i16') }}};
+ // write data
var ret = bytes;
var iov = {{{ makeGetValue('msg', 'Sockets.msghdr_layout.msg_iov', 'i8*') }}};
var num = {{{ makeGetValue('msg', 'Sockets.msghdr_layout.msg_iovlen', 'i32') }}};