guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 06/23: setsockopt can take an fd


From: Andy Wingo
Subject: [Guile-commits] 06/23: setsockopt can take an fd
Date: Thu, 24 Mar 2016 14:26:03 +0000

wingo pushed a commit to branch wip-ethreads
in repository guile.

commit 785f93b5bbea4cfd42796defbae6dcc106a03652
Author: Andy Wingo <address@hidden>
Date:   Sun Mar 18 17:03:27 2012 +0100

    setsockopt can take an fd
    
    * libguile/socket.c (scm_setsockopt): Accept a raw FD in addition to
      file ports.
---
 libguile/socket.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/libguile/socket.c b/libguile/socket.c
index 2a9be54..d886105 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -621,13 +621,17 @@ SCM_DEFINE (scm_setsockopt, "setsockopt", 4, 0, 0,
 
   int ilevel, ioptname;
 
-  sock = SCM_COERCE_OUTPORT (sock);
+  if (scm_is_integer (sock))
+    fd = scm_to_int (sock);
+  else
+    {
+      sock = SCM_COERCE_OUTPORT (sock);
+      SCM_VALIDATE_OPFPORT (1, sock);
+      fd = SCM_FPORT_FDES (sock);
+    }
 
-  SCM_VALIDATE_OPFPORT (1, sock);
   ilevel = scm_to_int (level);
   ioptname = scm_to_int (optname);
-
-  fd = SCM_FPORT_FDES (sock);
   
   if (ilevel == SOL_SOCKET)
     {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]