/* * This file was generated automatically by ExtUtils::ParseXS version 2.21 from the * contents of Socket.xs. Do not edit this file, edit Socket.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ #line 1 "Socket.xs" /* * *********** WARNING ************** * This file generated by ModPerl::WrapXS/0.01 * Any changes made here will be lost * *********************************** * 01: lib/ModPerl/WrapXS.pm:540 * 02: lib/ModPerl/WrapXS.pm:1174 * 03: Makefile.PL:423 * 04: Makefile.PL:325 * 05: Makefile.PL:56 */ #define MP_IN_XS #include "mod_perl.h" #include "modperl_xs_sv_convert.h" #include "modperl_xs_util.h" #include "modperl_xs_typedefs.h" #include "APR/Socket/APR__Socket.h" #line 38 "Socket.c" #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(var) if (0) var = var #endif #ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE #define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params) /* prototype to pass -Wmissing-prototypes */ STATIC void S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params); STATIC void S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params) { const GV *const gv = CvGV(cv); PERL_ARGS_ASSERT_CROAK_XS_USAGE; if (gv) { const char *const gvname = GvNAME(gv); const HV *const stash = GvSTASH(gv); const char *const hvname = stash ? HvNAME(stash) : NULL; if (hvname) Perl_croak(aTHX_ "Usage: %s::%s(%s)", hvname, gvname, params); else Perl_croak(aTHX_ "Usage: %s(%s)", gvname, params); } else { /* Pants. I don't think that it should be possible to get here. */ Perl_croak(aTHX_ "Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params); } } #undef PERL_ARGS_ASSERT_CROAK_XS_USAGE #ifdef PERL_IMPLICIT_CONTEXT #define croak_xs_usage(a,b) S_croak_xs_usage(aTHX_ a,b) #else #define croak_xs_usage S_croak_xs_usage #endif #endif /* NOTE: the prototype of newXSproto() is different in versions of perls, * so we define a portable version of newXSproto() */ #ifdef newXS_flags #define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0) #else #define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv) #endif /* !defined(newXS_flags) */ #line 90 "Socket.c" XS(XS_APR__Socket_bind); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_bind) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) croak_xs_usage(cv, "sock, sa"); { APR__Socket sock; APR__SockAddr sa; apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); sock = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::bind", "sock", "APR::Socket"); if (sv_derived_from(ST(1), "APR::SockAddr")) { IV tmp = SvIV((SV*)SvRV(ST(1))); sa = INT2PTR(APR__SockAddr,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::bind", "sa", "APR::SockAddr"); RETVAL = apr_socket_bind(sock, sa); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_close); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_close) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) croak_xs_usage(cv, "thesocket"); { APR__Socket thesocket; apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); thesocket = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::close", "thesocket", "APR::Socket"); RETVAL = apr_socket_close(thesocket); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_connect); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_connect) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) croak_xs_usage(cv, "sock, sa"); { APR__Socket sock; APR__SockAddr sa; apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); sock = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::connect", "sock", "APR::Socket"); if (sv_derived_from(ST(1), "APR::SockAddr")) { IV tmp = SvIV((SV*)SvRV(ST(1))); sa = INT2PTR(APR__SockAddr,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::connect", "sa", "APR::SockAddr"); RETVAL = apr_socket_connect(sock, sa); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_listen); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_listen) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) croak_xs_usage(cv, "sock, backlog"); { APR__Socket sock; apr_int32_t backlog = (apr_int32_t)SvIV(ST(1)); apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); sock = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::listen", "sock", "APR::Socket"); RETVAL = apr_socket_listen(sock, backlog); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_recvfrom); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_recvfrom) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 5) croak_xs_usage(cv, "from, sock, flags, buf, len"); { APR__SockAddr from; APR__Socket sock; apr_int32_t flags = (apr_int32_t)SvIV(ST(2)); char * buf = (char *)SvPV_nolen(ST(3)); apr_size_t * len = INT2PTR(apr_size_t *, SvUV(SvROK(ST(4)) ? SvRV(ST(4)) : ST(4))); apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::SockAddr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); from = INT2PTR(APR__SockAddr,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::recvfrom", "from", "APR::SockAddr"); if (sv_derived_from(ST(1), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(1))); sock = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::recvfrom", "sock", "APR::Socket"); RETVAL = apr_socket_recvfrom(from, sock, flags, buf, len); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_send); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_send) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 2 || items > 3) croak_xs_usage(cv, "sock, buf, len=Nullsv"); { APR__Socket sock; SV * buf = ST(1); SV * len; apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); sock = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::send", "sock", "APR::Socket"); if (items < 3) len = Nullsv; else { len = ST(2); } #line 80 "Socket.xs" RETVAL = mpxs_apr_socket_send(aTHX_ sock, buf, len); #line 315 "Socket.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_sendto); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_sendto) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 5) croak_xs_usage(cv, "sock, where, flags, buf, len"); { APR__Socket sock; APR__SockAddr where; apr_int32_t flags = (apr_int32_t)SvIV(ST(2)); const char * buf = (const char *)SvPV_nolen(ST(3)); apr_size_t * len = INT2PTR(apr_size_t *, SvUV(SvROK(ST(4)) ? SvRV(ST(4)) : ST(4))); apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); sock = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::sendto", "sock", "APR::Socket"); if (sv_derived_from(ST(1), "APR::SockAddr")) { IV tmp = SvIV((SV*)SvRV(ST(1))); where = INT2PTR(APR__SockAddr,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::sendto", "where", "APR::SockAddr"); RETVAL = apr_socket_sendto(sock, where, flags, buf, len); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_timeout_get); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_timeout_get) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif PERL_UNUSED_VAR(cv); /* -W */ { apr_status_t RETVAL; dXSTARG; #line 103 "Socket.xs" RETVAL = mpxs_apr_socket_timeout_get(aTHX_ items, MARK+1, SP); #line 381 "Socket.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_opt_get); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_opt_get) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) croak_xs_usage(cv, "socket, opt"); { APR__Socket socket; apr_int32_t opt = (apr_int32_t)SvIV(ST(1)); apr_int32_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); socket = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::opt_get", "socket", "APR::Socket"); #line 117 "Socket.xs" RETVAL = mpxs_APR__Socket_opt_get(aTHX_ socket, opt); #line 415 "Socket.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_opt_set); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_opt_set) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 3) croak_xs_usage(cv, "socket, opt, val"); { APR__Socket socket; apr_int32_t opt = (apr_int32_t)SvIV(ST(1)); apr_int32_t val = (apr_int32_t)SvIV(ST(2)); if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); socket = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::opt_set", "socket", "APR::Socket"); #line 132 "Socket.xs" mpxs_APR__Socket_opt_set(aTHX_ socket, opt, val); #line 447 "Socket.c" } XSRETURN_EMPTY; } XS(XS_APR__Socket_poll); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_poll) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 4) croak_xs_usage(cv, "socket, pool, timeout, reqevents"); { APR__Socket socket; APR__Pool pool; apr_interval_time_t timeout = (apr_interval_time_t)SvNV(ST(2)); apr_int16_t reqevents = (apr_int16_t)SvIV(ST(3)); apr_status_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); socket = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::poll", "socket", "APR::Socket"); if (SvROK(ST(1)) && sv_derived_from(ST(1), "APR::Pool")) { IV tmp = SvIV((SV*)SvRV(ST(1))); if (tmp == 0) { Perl_croak(aTHX_ "invalid pool object (already destroyed?)"); } pool = INT2PTR(APR__Pool, tmp); } else { Perl_croak(aTHX_ SvROK(ST(1)) ? "pool is not of type APR::Pool" : "pool is not a blessed reference"); }; RETVAL = mpxs_APR__Socket_poll(socket, pool, timeout, reqevents); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_recv); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_recv) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 3) croak_xs_usage(cv, "socket, buffer, len"); { APR__Socket socket; SV * buffer = ST(1); apr_size_t len = (apr_size_t)SvUV(ST(2)); apr_size_t RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); socket = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::recv", "socket", "APR::Socket"); #line 155 "Socket.xs" RETVAL = mpxs_APR__Socket_recv(aTHX_ socket, buffer, len); #line 528 "Socket.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_APR__Socket_timeout_set); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__Socket_timeout_set) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) croak_xs_usage(cv, "socket, t"); { APR__Socket socket; apr_interval_time_t t = (apr_interval_time_t)SvNV(ST(1)); if (sv_derived_from(ST(0), "APR::Socket")) { IV tmp = SvIV((SV*)SvRV(ST(0))); socket = INT2PTR(APR__Socket,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::Socket::timeout_set", "socket", "APR::Socket"); #line 169 "Socket.xs" mpxs_APR__Socket_timeout_set(aTHX_ socket, t); #line 559 "Socket.c" } XSRETURN_EMPTY; } #ifdef __cplusplus extern "C" #endif XS(boot_APR__Socket); /* prototype to pass -Wmissing-prototypes */ XS(boot_APR__Socket) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif #if (PERL_REVISION == 5 && PERL_VERSION < 9) char* file = __FILE__; #else const char* file = __FILE__; #endif PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ XS_VERSION_BOOTCHECK ; (void)newXS("APR::Socket::bind", XS_APR__Socket_bind, file); (void)newXS("APR::Socket::close", XS_APR__Socket_close, file); (void)newXS("APR::Socket::connect", XS_APR__Socket_connect, file); (void)newXS("APR::Socket::listen", XS_APR__Socket_listen, file); (void)newXS("APR::Socket::recvfrom", XS_APR__Socket_recvfrom, file); (void)newXS("APR::Socket::send", XS_APR__Socket_send, file); (void)newXS("APR::Socket::sendto", XS_APR__Socket_sendto, file); (void)newXS("APR::Socket::timeout_get", XS_APR__Socket_timeout_get, file); (void)newXS("APR::Socket::opt_get", XS_APR__Socket_opt_get, file); (void)newXS("APR::Socket::opt_set", XS_APR__Socket_opt_set, file); (void)newXS("APR::Socket::poll", XS_APR__Socket_poll, file); (void)newXS("APR::Socket::recv", XS_APR__Socket_recv, file); (void)newXS("APR::Socket::timeout_set", XS_APR__Socket_timeout_set, file); /* Initialisation Section */ #line 176 "Socket.xs" items = items; /* -Wall */ #line 604 "Socket.c" /* End of Initialisation Section */ #if (PERL_REVISION == 5 && PERL_VERSION >= 9) if (PL_unitcheckav) call_list(PL_scopestack_ix, PL_unitcheckav); #endif XSRETURN_YES; }