aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorMicael Karlberg <[email protected]>2018-05-17 15:21:59 +0200
committerMicael Karlberg <[email protected]>2018-09-18 13:01:37 +0200
commit4f165a244cb23405ed7f607836098f180f1be08b (patch)
tree78776d971bc7751159056e3e4bffd93ad48d300c /erts
parent993f22cab851d704c40f04cda5d5c3730539a6f8 (diff)
downloadotp-4f165a244cb23405ed7f607836098f180f1be08b.tar.gz
otp-4f165a244cb23405ed7f607836098f180f1be08b.tar.bz2
otp-4f165a244cb23405ed7f607836098f180f1be08b.zip
[socket-nif] More getopt
Added guards and type specs for native getopt.
Diffstat (limited to 'erts')
-rw-r--r--erts/preloaded/src/socket.erl7
1 files changed, 4 insertions, 3 deletions
diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl
index f8aa75bf8f..a67a019b80 100644
--- a/erts/preloaded/src/socket.erl
+++ b/erts/preloaded/src/socket.erl
@@ -1424,7 +1424,7 @@ setopt(#socket{info = Info, ref = SockRef}, Level, Key, Value) ->
Level :: integer(),
Key :: {NativeOpt, ValueSize},
NativeOpt :: integer(),
- ValueSize :: non_neg_integer(),
+ ValueSize :: int | bool | non_neg_integer(),
Value :: term(),
Reason :: term().
@@ -1437,7 +1437,7 @@ getopt(#socket{info = Info, ref = SockRef}, Level, Key) ->
{EIsEncoded, ELevel} = enc_getopt_level(Level),
EKey = enc_getopt_key(Level, Key, Domain, Type, Protocol),
%% We may need to decode the value (for the same reason
- %% we needed to encode the value for setopt).
+ %% we (may have) needed to encode the value for setopt).
case nif_getopt(SockRef, EIsEncoded, ELevel, EKey) of
ok ->
ok;
@@ -2020,7 +2020,8 @@ enc_sockopt_key(Level, Opt, set = _Dir, _D, _T, _P)
enc_sockopt_key(Level, {NativeOpt, ValueSize} = Opt, get = _Dir, _D, _T, _P)
when is_integer(Level) andalso
is_integer(NativeOpt) andalso
- is_integer(ValueSize) andalso (ValueSize >= 0) ->
+ ((is_integer(ValueSize) andalso (ValueSize >= 0)) orelse
+ ((ValueSize =:= int) orelse (ValueSize =:= bool))) ->
Opt;
enc_sockopt_key(Level, Opt, _Dir, _Domain, _Type, _Protocol) ->