Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix issues with latest versions of curl #24

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions Curl.xs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
#include <curl/easy.h>
#include <curl/multi.h>

#if defined(__CURL_MULTI_H) && !defined(CURLINC_MULTI_H)
# define CURLINC_MULTI_H
#endif

#define header_callback_func writeheader_callback_func

/* Do a favor for older perl versions */
Expand Down Expand Up @@ -70,7 +74,7 @@ typedef struct {


typedef struct {
#ifdef __CURL_MULTI_H
#ifdef CURLINC_MULTI_H
struct CURLM *curlm;
#else
struct void *curlm;
Expand Down Expand Up @@ -232,7 +236,7 @@ static perl_curl_multi * perl_curl_multi_new()
{
perl_curl_multi *self;
Newxz(self, 1, perl_curl_multi);
#ifdef __CURL_MULTI_H
#ifdef CURLINC_MULTI_H
self->curlm=curl_multi_init();
#else
croak("curl version too old to support curl_multi_init()");
Expand All @@ -243,7 +247,7 @@ static perl_curl_multi * perl_curl_multi_new()
/* delete the multi */
static void perl_curl_multi_delete(perl_curl_multi *self)
{
#ifdef __CURL_MULTI_H
#ifdef CURLINC_MULTI_H
if (self->curlm)
curl_multi_cleanup(self->curlm);
Safefree(self);
Expand Down Expand Up @@ -1053,7 +1057,7 @@ curl_multi_add_handle(curlm, curl)
WWW::Curl::Multi curlm
WWW::Curl::Easy curl
CODE:
#ifdef __CURL_MULTI_H
#ifdef CURLINC_MULTI_H
curl_multi_add_handle(curlm->curlm, curl->curl);
#endif

Expand All @@ -1062,7 +1066,7 @@ curl_multi_remove_handle(curlm, curl)
WWW::Curl::Multi curlm
WWW::Curl::Easy curl
CODE:
#ifdef __CURL_MULTI_H
#ifdef CURLINC_MULTI_H
curl_multi_remove_handle(curlm->curlm, curl->curl);
#endif

Expand Down Expand Up @@ -1137,7 +1141,7 @@ curl_multi_perform(self)
PREINIT:
int remaining;
CODE:
#ifdef __CURL_MULTI_H
#ifdef CURLINC_MULTI_H
while(CURLM_CALL_MULTI_PERFORM ==
curl_multi_perform(self->curlm, &remaining));
RETVAL = remaining;
Expand Down
2 changes: 1 addition & 1 deletion Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ sub parse_constants {
close H;

for my $e (sort @syms) {
if ($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
if ($e =~ /(OBSOLETE|^CURL_EXTERN|^CURL_WIN32\z|^CURLOPT\z|^CURL_STRICTER\z|^CURL_DID_MEMORY_FUNC_TYPEDEFS\z|_LAST\z|_LASTENTRY\z)/) {
next;
}
my ($group) = $e =~ m/^([^_]+_)/;
Expand Down