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' => [