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