diff options
author | Micael Karlberg <[email protected]> | 2019-05-29 13:49:45 +0200 |
---|---|---|
committer | Micael Karlberg <[email protected]> | 2019-05-29 13:49:45 +0200 |
commit | 0bb7928c5985b057efbf8846ffbfc55edc7f31d4 (patch) | |
tree | 78ef645040c9f988a46d7759a341d823597ccd84 /erts/emulator/nifs/common/socket_util.c | |
parent | 247529ce5cb50cd9e645d3658e20420b8cf5263b (diff) | |
parent | 347cc4649f784c1a0fe57d2ce6ed1ccf41446b39 (diff) | |
download | otp-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.c | 20 |
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); |