Net-Curl
view release on metacpan or search on metacpan
Curl_Easy.xsh view on Meta::CPAN
PROTOTYPES: ENABLE
void
new( sclass="Net::Curl::Easy", base=HASHREF_BY_DEFAULT )
const char *sclass
SV *base
PREINIT:
perl_curl_easy_t *easy;
HV *stash;
PPCODE:
if ( ! SvOK( base ) || ! SvROK( base ) )
croak( "object base must be a valid reference\n" );
easy = perl_curl_easy_new();
perl_curl_easy_preset( easy );
perl_curl_setptr( aTHX_ base, &perl_curl_easy_vtbl, easy );
stash = gv_stashpv( sclass, 0 );
ST(0) = sv_bless( base, stash );
Curl_Easy.xsh view on Meta::CPAN
void
duphandle( easy, base=HASHREF_BY_DEFAULT )
Net::Curl::Easy easy
SV *base
PREINIT:
perl_curl_easy_t *clone;
const char *sclass;
perl_curl_easy_callback_code_t i;
HV *stash;
PPCODE:
if ( ! SvOK( base ) || ! SvROK( base ) )
croak( "object base must be a valid reference\n" );
sclass = sv_reftype( SvRV( ST(0) ), TRUE );
clone = perl_curl_easy_duphandle( easy );
perl_curl_easy_preset( clone );
if ( easy->cb[ CB_EASY_HEADER ].func
|| easy->cb[ CB_EASY_HEADER ].data ) {
Curl_Form.xsh view on Meta::CPAN
PROTOTYPES: ENABLE
void
new( sclass="Net::Curl::Form", base=HASHREF_BY_DEFAULT )
const char *sclass
SV *base
PREINIT:
perl_curl_form_t *form;
HV *stash;
PPCODE:
if ( ! SvOK( base ) || ! SvROK( base ) )
croak( "object base must be a valid reference\n" );
form = perl_curl_form_new();
perl_curl_setptr( aTHX_ base, &perl_curl_form_vtbl, form );
stash = gv_stashpv( sclass, 0 );
ST(0) = sv_bless( base, stash );
form->perl_self = SvRV( ST(0) );
Curl_Form.xsh view on Meta::CPAN
if ( ret != CURL_FORMADD_OK )
die_code( "Form", ret );
void
get( form, ... )
Net::Curl::Form form
PROTOTYPE: $;$&
PREINIT:
SV *output;
PPCODE:
CLEAR_ERRSV();
if ( items < 2 ) {
output = sv_2mortal( newSVpv( "", 0 ) );
curl_formget( form->post, output, cb_form_get_sv );
/* rethrow errors */
if ( SvTRUE( ERRSV ) )
croak( NULL );
Curl_Multi.xsh view on Meta::CPAN
PROTOTYPES: ENABLE
void
new( sclass="Net::Curl::Multi", base=HASHREF_BY_DEFAULT )
const char *sclass
SV *base
PREINIT:
perl_curl_multi_t *multi;
HV *stash;
PPCODE:
if ( ! SvOK( base ) || ! SvROK( base ) )
croak( "object base must be a valid reference\n" );
multi = perl_curl_multi_new();
perl_curl_setptr( aTHX_ base, &perl_curl_multi_vtbl, multi );
/* those must be set or else socket_action() segfaults */
curl_multi_setopt( multi->handle, CURLMOPT_SOCKETFUNCTION,
cb_multi_socket );
curl_multi_setopt( multi->handle, CURLMOPT_SOCKETDATA, multi );
Curl_Multi.xsh view on Meta::CPAN
MULTI_DIE( ret );
void
info_read( multi )
Net::Curl::Multi multi
PREINIT:
int queue;
CURLMsg *msg;
PPCODE:
CLEAR_ERRSV();
while ( (msg = curl_multi_info_read( multi->handle, &queue ) ) ) {
/* most likely CURLMSG_DONE */
if ( msg->msg != CURLMSG_NONE && msg->msg != CURLMSG_LAST ) {
Net__Curl__Easy easy;
SV *errsv;
curl_easy_getinfo( msg->easy_handle,
CURLINFO_PRIVATE, (void *) &easy );
Curl_Multi.xsh view on Meta::CPAN
fdset( multi )
Net::Curl::Multi multi
PREINIT:
CURLMcode ret;
fd_set fdread, fdwrite, fdexcep;
int maxfd, i;
int readsize, writesize, excepsize;
unsigned char readset[ sizeof( fd_set ) ] = { 0 };
unsigned char writeset[ sizeof( fd_set ) ] = { 0 };
unsigned char excepset[ sizeof( fd_set ) ] = { 0 };
PPCODE:
FD_ZERO( &fdread );
FD_ZERO( &fdwrite );
FD_ZERO( &fdexcep );
ret = curl_multi_fdset( multi->handle,
&fdread, &fdwrite, &fdexcep, &maxfd );
MULTI_DIE( ret );
readsize = writesize = excepsize = 0;
Curl_Multi.xsh view on Meta::CPAN
# /* Extensions: Functions that do not have libcurl equivalents. */
void
handles( multi )
Net::Curl::Multi multi
PREINIT:
simplell_t *now;
PPCODE:
if ( GIMME_V == G_VOID )
XSRETURN( 0 );
now = multi->easies;
if ( GIMME_V == G_SCALAR ) {
IV i = 0;
while ( now ) {
i++;
now = now->next;
Curl_Share.xsh view on Meta::CPAN
PROTOTYPES: ENABLE
void
new( sclass="Net::Curl::Share", base=HASHREF_BY_DEFAULT )
const char *sclass
SV *base
PREINIT:
perl_curl_share_t *share;
HV *stash;
PPCODE:
if ( ! SvOK( base ) || ! SvROK( base ) )
croak( "object base must be a valid reference\n" );
share = perl_curl_share_new( aTHX );
perl_curl_setptr( aTHX_ base, &perl_curl_share_vtbl, share );
stash = gv_stashpv( sclass, 0 );
ST(0) = sv_bless( base, stash );
share->perl_self = NULL;
( run in 2.573 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )