From 5329726352f8b983e419b6206a85c15cc8836676 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Mon, 9 Jul 2018 18:41:07 +0200
Subject: [socket-nif] Add support for socket (level socket) option peek_off

The socket option (level socket) peek_off is now supported.

OTP-14831
---
 lib/kernel/test/socket_server.erl | 37 ++++++++++++++++++++++++++++++++-----
 1 file changed, 32 insertions(+), 5 deletions(-)

(limited to 'lib/kernel')

diff --git a/lib/kernel/test/socket_server.erl b/lib/kernel/test/socket_server.erl
index 54e13cc92d..e5338644b1 100644
--- a/lib/kernel/test/socket_server.erl
+++ b/lib/kernel/test/socket_server.erl
@@ -99,6 +99,25 @@ manager_init(Domain, dgram = Type, Proto, Peek) ->
     i("try open socket"),
     case socket:open(Domain, Type, Proto) of
         {ok, Sock} ->
+            F = fun(X) -> case socket:getopt(Sock, socket, X) of
+                              {ok, V} ->    f("~p", [V]);
+                              {error, _} -> "-"
+                          end
+                end,
+            i("(socket) open (~s,~s,~s): "
+              "~n   broadcast: ~s"
+              "~n   dontroute: ~s"
+              "~n   keepalive: ~s"
+              "~n   reuseaddr: ~s"
+              "~n   linger:    ~s"
+              "~n   debug:     ~s"
+              "~n   prio:      ~s"
+              "~n   rcvbuf:    ~s"
+              "~n   sndbuf:    ~s"
+              "~n   try find (local) address", 
+              [F(domain), F(type), F(protocol), 
+               F(broadcast), F(dontroute), F(keepalive), F(reuseaddr), F(linger),
+               F(debug), F(priority), F(rcvbuf), F(sndbuf)]),
             Addr = which_addr(Domain),
             SA = #{family => Domain,
                    addr   => Addr},
@@ -260,14 +279,22 @@ acceptor_do_init(Domain, Type, Proto) ->
            end,
     F = fun(X) -> case socket:getopt(Sock, socket, X) of
                       {ok, V} ->    f("~p", [V]);
-                      {error, _} -> "-"
+                      {error, R} -> f("error: ~p", [R])
                   end
         end,
     i("(socket) open (~s,~s,~s): "
-      "~n   debug: ~s"
-      "~n   prio:  ~s"
-      "~n   try find (local) address", 
-      [F(domain), F(type), F(protocol), F(debug), F(priority)]),
+      "~n   dontroute: ~s"
+      "~n   keepalive: ~s"
+      "~n   reuseaddr: ~s"
+      "~n   linger:    ~s"
+      "~n   debug:     ~s"
+      "~n   prio:      ~s"
+      "~n   rcvbuf:    ~s"
+      "~n   sndbuf:    ~s"
+      "~n   => try find (local) address", 
+      [F(domain), F(type), F(protocol), 
+       F(dontroute), F(keepalive), F(reuseaddr), F(linger),
+       F(debug), F(priority), F(rcvbuf), F(sndbuf)]),
     Addr = which_addr(Domain),
     SA = #{family => Domain,
            addr   => Addr},
-- 
cgit v1.2.3