diff options
author | Raimo Niskanen <raimo@erlang.org> | 2020-07-31 17:16:10 +0200 |
---|---|---|
committer | Raimo Niskanen <raimo@erlang.org> | 2020-08-19 15:08:18 +0200 |
commit | 6ce43245dcf7e89e1ca084cd9207799a73e46e09 (patch) | |
tree | d651a89c5b7221364ea4d38e0c51d1fcc84b8508 /erts/emulator/nifs | |
parent | bd136cd21b0f43d7577b308b013b664b95ad4147 (diff) | |
download | erlang-6ce43245dcf7e89e1ca084cd9207799a73e46e09.tar.gz |
Fix type spec and doc for msghdr
Diffstat (limited to 'erts/emulator/nifs')
-rw-r--r-- | erts/emulator/nifs/common/prim_socket_nif.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/erts/emulator/nifs/common/prim_socket_nif.c b/erts/emulator/nifs/common/prim_socket_nif.c index cb9244e2c8..25f8886fe1 100644 --- a/erts/emulator/nifs/common/prim_socket_nif.c +++ b/erts/emulator/nifs/common/prim_socket_nif.c @@ -13017,30 +13017,28 @@ void encode_msghdr(ErlNifEnv* env, "\r\n", descP->sock, addr, ctrl, flags) ); { - ERL_NIF_TERM keys[] = {esock_atom_addr, - esock_atom_iov, + ERL_NIF_TERM keys[] = {esock_atom_iov, esock_atom_ctrl, - esock_atom_flags}; - ERL_NIF_TERM vals[] = {addr, iov, ctrl, flags}; - unsigned int numKeys = NUM(keys); - unsigned int numVals = NUM(vals); - ERL_NIF_TERM tmp; + esock_atom_flags, + esock_atom_addr}; + ERL_NIF_TERM vals[] = {iov, ctrl, flags, addr}; + size_t numKeys = NUM(keys); - ESOCK_ASSERT( numKeys == numVals ); + ESOCK_ASSERT( numKeys == NUM(vals) ); SSDBG( descP, ("SOCKET", "encode_msghdr {%d} -> create msghdr map\r\n", descP->sock) ); - ESOCK_ASSERT( MKMA(env, keys, vals, numKeys, &tmp) ); + if (msgHdrP->msg_namelen == 0) + numKeys--; // No addr + ESOCK_ASSERT( MKMA(env, keys, vals, numKeys, eSockAddr) ); SSDBG( descP, ("SOCKET", "encode_msghdr {%d}-> msghdr encoded\r\n", descP->sock) ); - - *eSockAddr = tmp; } SSDBG( descP, |