Author: torsten
Date: Mon Apr 19 10:43:15 2010
New Revision: 935519

URL: http://svn.apache.org/viewvc?rev=935519&view=rev
Log:
make the UNIX-level file descriptor of an APR::Socket available

Modified:
    perl/modperl/trunk/t/response/TestAPR/socket.pm
    perl/modperl/trunk/xs/APR/Socket/APR__Socket.h
    perl/modperl/trunk/xs/maps/apr_functions.map
    perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm

Modified: perl/modperl/trunk/t/response/TestAPR/socket.pm
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/t/response/TestAPR/socket.pm?rev=935519&r1=935518&r2=935519&view=diff
==============================================================================
--- perl/modperl/trunk/t/response/TestAPR/socket.pm (original)
+++ perl/modperl/trunk/t/response/TestAPR/socket.pm Mon Apr 19 10:43:15 2010
@@ -18,7 +18,7 @@ use APR::Const -compile => 'EMISMATCH';
 sub handler {
     my $r = shift;
 
-    my $tests = 4;
+    my $tests = 5;
 
     plan $r, tests => $tests;
 
@@ -40,6 +40,15 @@ sub handler {
     $socket->timeout_set($orig_val);
     ok t_cmp($socket->timeout_get(), $orig_val, "timeout_get()");
 
+    my $fd=$socket->sock_get;
+    t_debug "client socket fd=$fd";
+    if ($^O eq 'MSWin32') {
+        ok $fd==-1;
+    }
+    else {
+        ok $fd>=0;
+    }
+
     Apache2::Const::OK;
 }
 

Modified: perl/modperl/trunk/xs/APR/Socket/APR__Socket.h
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/xs/APR/Socket/APR__Socket.h?rev=935519&r1=935518&r2=935519&view=diff
==============================================================================
--- perl/modperl/trunk/xs/APR/Socket/APR__Socket.h (original)
+++ perl/modperl/trunk/xs/APR/Socket/APR__Socket.h Mon Apr 19 10:43:15 2010
@@ -116,3 +116,14 @@ apr_status_t mpxs_APR__Socket_poll(apr_s
 
     return apr_poll(&fd, 1, &nsds, timeout);
 }
+
+static MP_INLINE int mpxs_APR__Socket_sock_get(pTHX_ apr_socket_t *sock)
+{
+#ifdef WIN32
+    return -1;                 /* not implemented */
+#else
+    apr_os_sock_t s;
+    apr_os_sock_get(&s, sock);
+    return s;
+#endif
+}

Modified: perl/modperl/trunk/xs/maps/apr_functions.map
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/xs/maps/apr_functions.map?rev=935519&r1=935518&r2=935519&view=diff
==============================================================================
--- perl/modperl/trunk/xs/maps/apr_functions.map (original)
+++ perl/modperl/trunk/xs/maps/apr_functions.map Mon Apr 19 10:43:15 2010
@@ -55,6 +55,7 @@ MODULE=APR::Socket
 !apr_socket_shutdown
 -apr_socket_inherit_set
 -apr_socket_inherit_unset
+ mpxs_APR__Socket_sock_get | | apr_socket_t *:socket
 
 MODULE=APR::Socket
  apr_socket_close
@@ -626,7 +627,7 @@ MODULE=APR::OS
 -apr_os_exp_time_get
 -apr_os_file_get
 -apr_os_imp_time_get
--apr_os_sock_get
+~apr_os_sock_get
 -apr_os_thread_get
 -apr_os_threadkey_get
 -apr_os_sock_make

Modified: perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm?rev=935519&r1=935518&r2=935519&view=diff
==============================================================================
--- perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm (original)
+++ perl/modperl/trunk/xs/tables/current/ModPerl/FunctionTable.pm Mon Apr 19 
10:43:15 2010
@@ -5981,6 +5981,24 @@ $ModPerl::FunctionTable = [
     ]
   },
   {
+    'return_type' => 'int',
+    'name' => 'mpxs_APR__Socket_sock_get',
+    'attr' => [
+      'static',
+      '__inline__'
+    ],
+    'args' => [
+      {
+        'type' => 'PerlInterpreter *',
+        'name' => 'my_perl'
+      },
+      {
+        'type' => 'apr_socket_t *',
+        'name' => 'socket'
+      }
+    ]
+  },
+  {
     'return_type' => 'SV *',
     'name' => 'mpxs_APR__String_strfsize',
     'args' => [


Reply via email to