guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 17/23: getsockopt: allow raw file descriptors


From: Andy Wingo
Subject: [Guile-commits] 17/23: getsockopt: allow raw file descriptors
Date: Thu, 24 Mar 2016 14:26:04 +0000

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

commit 377dc7d55c60e4820b8a77db886b0531bd5308e8
Author: Andy Wingo <address@hidden>
Date:   Tue Mar 27 20:46:02 2012 +0200

    getsockopt: allow raw file descriptors
    
    * libguile/socket.c (scm_getsockopt): Allow raw file descriptors.
---
 libguile/socket.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/libguile/socket.c b/libguile/socket.c
index 86c6191..69776d3 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -485,12 +485,17 @@ SCM_DEFINE (scm_getsockopt, "getsockopt", 3, 0, 0,
   int ilevel;
   int ioptname;
 
-  sock = SCM_COERCE_OUTPORT (sock);
-  SCM_VALIDATE_OPFPORT (1, 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);
+    }
   ilevel = scm_to_int (level);
   ioptname = scm_to_int (optname);
 
-  fd = SCM_FPORT_FDES (sock);
   if (getsockopt (fd, ilevel, ioptname, (void *) &optval, &optlen) == -1)
     SCM_SYSERROR;
 



reply via email to

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