aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/nifs/common/socket_util.c
diff options
context:
space:
mode:
authorMicael Karlberg <[email protected]>2019-05-29 13:49:45 +0200
committerMicael Karlberg <[email protected]>2019-05-29 13:49:45 +0200
commit0bb7928c5985b057efbf8846ffbfc55edc7f31d4 (patch)
tree78ef645040c9f988a46d7759a341d823597ccd84 /erts/emulator/nifs/common/socket_util.c
parent247529ce5cb50cd9e645d3658e20420b8cf5263b (diff)
parent347cc4649f784c1a0fe57d2ce6ed1ccf41446b39 (diff)
downloadotp-0bb7928c5985b057efbf8846ffbfc55edc7f31d4.tar.gz
otp-0bb7928c5985b057efbf8846ffbfc55edc7f31d4.tar.bz2
otp-0bb7928c5985b057efbf8846ffbfc55edc7f31d4.zip
Merge branch 'bmk/erts/esock/20190529/unix_domain_socket/OTP-15822' into maint
Diffstat (limited to 'erts/emulator/nifs/common/socket_util.c')
-rw-r--r--erts/emulator/nifs/common/socket_util.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/erts/emulator/nifs/common/socket_util.c b/erts/emulator/nifs/common/socket_util.c
index a61cfc75ef..2740cb51ef 100644
--- a/erts/emulator/nifs/common/socket_util.c
+++ b/erts/emulator/nifs/common/socket_util.c
@@ -986,9 +986,27 @@ char* esock_decode_timeval(ErlNifEnv* env,
if (!GET_LONG(env, eSec, &timeP->tv_sec))
return ESOCK_STR_EINVAL;
+#if (SIZEOF_INT == 4)
+ {
+ int usec;
+ if (!GET_INT(env, eUSec, &usec))
+ return ESOCK_STR_EINVAL;
+ timeP->tv_usec = (typeof(timeP->tv_usec)) usec;
+ }
+#elif (SIZEOF_LONG == 4)
+ {
+ long usec;
+ if (!GET_LONG(env, eUSec, &usec))
+ return ESOCK_STR_EINVAL;
+ timeP->tv_usec = (typeof(timeP->tv_usec)) usec;
+ }
+#else
+ /* Ok, we give up... */
if (!GET_LONG(env, eUSec, &timeP->tv_usec))
return ESOCK_STR_EINVAL;
+#endif
+
return NULL;
}
@@ -1656,7 +1674,7 @@ char* make_sockaddr_un(ErlNifEnv* env,
ERL_NIF_TERM* sa)
{
ERL_NIF_TERM keys[] = {esock_atom_family, esock_atom_path};
- ERL_NIF_TERM vals[] = {esock_atom_inet, path};
+ ERL_NIF_TERM vals[] = {esock_atom_local, path};
unsigned int numKeys = sizeof(keys) / sizeof(ERL_NIF_TERM);
unsigned int numVals = sizeof(vals) / sizeof(ERL_NIF_TERM);