On Tue, Oct 22, 2002 at 08:24:05AM +0300, Peter Pentchev wrote:
> On Mon, Oct 21, 2002 at 10:31:48PM +0200, Linus Kendall wrote:
> [snip]
> > 
> > That was very thorough, thanks! Now I at least have a notion of what 
> > is going on. Since this is slightly urgent I guess a hack into the
> > libcurl source code to try to remove the sigalarms would do the trick
> > (in my case). In the general case it seems like there's a rather big
> > problem here as libcurl's behavior cannot really work together with the
> > FreeBSD implementation of threads.
> 
> I wonder, though..  If libcurl depends on Linux-specific threads library
> behavior, what would the effects be if it were to be compiled against
> the devel/linuxthreads port?  Maybe I will try building curl with
> linuxthreads later today..

Okay, here's another option: could you try the attached patch?

It updates the ftp/curl port to 7.10.2, and additionally, forcibly
enables the CURLOPT_NOSIGNAL option on every curl handle created, thus
disabling any signal handling for DNS query timeouts.  It would be
interesting to see if this helps your multithreaded application..

G'luck,
Peter

-- 
Peter Pentchev  [EMAIL PROTECTED]        [EMAIL PROTECTED]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
This sentence is false.
Index: ports/ftp/curl/Makefile
===================================================================
RCS file: /home/ncvs/ports/ftp/curl/Makefile,v
retrieving revision 1.45
diff -u -r1.45 Makefile
--- ports/ftp/curl/Makefile     2 Jul 2002 08:36:46 -0000       1.45
+++ ports/ftp/curl/Makefile     27 Nov 2002 14:54:36 -0000
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=      curl
-PORTVERSION=   7.9.8
+PORTVERSION=   7.10.2
 CATEGORIES=    ftp ipv6 www
 MASTER_SITES=  http://curl.haxx.se/download/ \
                http://download.sourceforge.net/curl/ \
@@ -21,6 +21,7 @@
                curl_easy_init.3 curl_easy_perform.3 curl_easy_setopt.3 \
                curl_escape.3 curl_unescape.3 \
                curl_formadd.3 curl_formparse.3 curl_formfree.3 \
+               curl_free.3 \
                curl_getdate.3 curl_getenv.3 \
                curl_global_init.3 curl_global_cleanup.3 \
                curl_mprintf.3 \
@@ -29,7 +30,7 @@
                curl_multi_perform.3 curl_multi_remove_handle.3 \
                curl_slist_append.3 curl_slist_free_all.3 \
                curl_strequal.3 curl_strnequal.3 \
-               curl_version.3 \
+               curl_version.3 curl_version_info.3 \
                libcurl.3 libcurl-multi.3 libcurl-errors.3
 
 INSTALLS_SHLIB=        yes
@@ -56,5 +57,11 @@
 # I don't know why they would do that, yet.
 test:  build
        @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} test
+
+.if !defined(NOPORTDOCS)
+post-install:
+       ${MKDIR} ${DOCSDIR}
+       ${CP} -r ${WRKSRC}/docs/* ${DOCSDIR}/ 
+.endif
 
 .include <bsd.port.mk>
Index: ports/ftp/curl/distinfo
===================================================================
RCS file: /home/ncvs/ports/ftp/curl/distinfo,v
retrieving revision 1.26
diff -u -r1.26 distinfo
--- ports/ftp/curl/distinfo     2 Jul 2002 08:36:46 -0000       1.26
+++ ports/ftp/curl/distinfo     27 Nov 2002 14:40:45 -0000
@@ -1 +1 @@
-MD5 (curl-7.9.8.tar.bz2) = 9f29e398d36050816fc4759d4837eb65
+MD5 (curl-7.10.2.tar.bz2) = 9f6a911b5ee5432128f67d4d8df09279
Index: ports/ftp/curl/pkg-plist
===================================================================
RCS file: /home/ncvs/ports/ftp/curl/pkg-plist,v
retrieving revision 1.5
diff -u -r1.5 pkg-plist
--- ports/ftp/curl/pkg-plist    16 Apr 2002 11:30:21 -0000      1.5
+++ ports/ftp/curl/pkg-plist    27 Nov 2002 14:58:20 -0000
@@ -11,3 +11,162 @@
 lib/libcurl.la
 lib/libcurl.so
 lib/libcurl.so.%%SHLIB_VER%%
+share/curl/curl-ca-bundle.crt
+@dirrm share/curl
+%%PORTDOCS%%share/doc/curl/BINDINGS
+%%PORTDOCS%%share/doc/curl/BUGS
+%%PORTDOCS%%share/doc/curl/CONTRIBUTE
+%%PORTDOCS%%share/doc/curl/FAQ
+%%PORTDOCS%%share/doc/curl/FEATURES
+%%PORTDOCS%%share/doc/curl/HISTORY
+%%PORTDOCS%%share/doc/curl/INSTALL
+%%PORTDOCS%%share/doc/curl/INTERNALS
+%%PORTDOCS%%share/doc/curl/KNOWN_BUGS
+%%PORTDOCS%%share/doc/curl/MANUAL
+%%PORTDOCS%%share/doc/curl/Makefile
+%%PORTDOCS%%share/doc/curl/Makefile.am
+%%PORTDOCS%%share/doc/curl/Makefile.in
+%%PORTDOCS%%share/doc/curl/README.win32
+%%PORTDOCS%%share/doc/curl/RESOURCES
+%%PORTDOCS%%share/doc/curl/THANKS
+%%PORTDOCS%%share/doc/curl/TODO
+%%PORTDOCS%%share/doc/curl/TheArtOfHttpScripting
+%%PORTDOCS%%share/doc/curl/VERSIONS
+%%PORTDOCS%%share/doc/curl/curl-config.1
+%%PORTDOCS%%share/doc/curl/curl-config.html
+%%PORTDOCS%%share/doc/curl/curl-config.pdf
+%%PORTDOCS%%share/doc/curl/curl.1
+%%PORTDOCS%%share/doc/curl/curl.html
+%%PORTDOCS%%share/doc/curl/curl.pdf
+%%PORTDOCS%%share/doc/curl/examples/Makefile
+%%PORTDOCS%%share/doc/curl/examples/Makefile.am
+%%PORTDOCS%%share/doc/curl/examples/Makefile.example
+%%PORTDOCS%%share/doc/curl/examples/Makefile.in
+%%PORTDOCS%%share/doc/curl/examples/README
+%%PORTDOCS%%share/doc/curl/examples/curlgtk.c
+%%PORTDOCS%%share/doc/curl/examples/fopen.c
+%%PORTDOCS%%share/doc/curl/examples/ftpget.c
+%%PORTDOCS%%share/doc/curl/examples/ftpgetresp.c
+%%PORTDOCS%%share/doc/curl/examples/ftpupload.c
+%%PORTDOCS%%share/doc/curl/examples/getinmemory.c
+%%PORTDOCS%%share/doc/curl/examples/http-post.c
+%%PORTDOCS%%share/doc/curl/examples/httpput.c
+%%PORTDOCS%%share/doc/curl/examples/multi-app.c
+%%PORTDOCS%%share/doc/curl/examples/multi-double.c
+%%PORTDOCS%%share/doc/curl/examples/multi-post.c
+%%PORTDOCS%%share/doc/curl/examples/multi-single.c
+%%PORTDOCS%%share/doc/curl/examples/multithread.c
+%%PORTDOCS%%share/doc/curl/examples/persistant.c
+%%PORTDOCS%%share/doc/curl/examples/post-callback.c
+%%PORTDOCS%%share/doc/curl/examples/postit2.c
+%%PORTDOCS%%share/doc/curl/examples/sepheaders.c
+%%PORTDOCS%%share/doc/curl/examples/simple.c
+%%PORTDOCS%%share/doc/curl/examples/simplepost.c
+%%PORTDOCS%%share/doc/curl/examples/simplessl.c
+%%PORTDOCS%%share/doc/curl/libcurl-the-guide
+%%PORTDOCS%%share/doc/curl/libcurl/Makefile
+%%PORTDOCS%%share/doc/curl/libcurl/Makefile.am
+%%PORTDOCS%%share/doc/curl/libcurl/Makefile.in
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_cleanup.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_cleanup.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_cleanup.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_duphandle.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_duphandle.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_duphandle.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_getinfo.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_getinfo.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_getinfo.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_init.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_init.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_init.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_perform.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_perform.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_perform.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_setopt.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_setopt.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_easy_setopt.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_escape.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_escape.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_escape.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formadd.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formadd.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formadd.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formfree.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formfree.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formfree.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formparse.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formparse.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_formparse.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_free.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_free.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_free.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_getdate.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_getdate.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_getdate.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_getenv.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_getenv.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_getenv.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_global_cleanup.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_global_cleanup.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_global_cleanup.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_global_init.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_global_init.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_global_init.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_mprintf.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_mprintf.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_mprintf.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_add_handle.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_add_handle.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_add_handle.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_cleanup.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_cleanup.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_cleanup.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_fdset.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_fdset.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_fdset.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_info_read.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_info_read.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_info_read.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_init.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_init.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_init.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_perform.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_perform.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_perform.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_remove_handle.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_remove_handle.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_multi_remove_handle.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_slist_append.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_slist_append.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_slist_append.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_slist_free_all.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_slist_free_all.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_slist_free_all.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_strequal.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_strequal.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_strequal.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_strnequal.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_strnequal.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_strnequal.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_unescape.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_unescape.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_unescape.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_version.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_version.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_version.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/curl_version_info.3
+%%PORTDOCS%%share/doc/curl/libcurl/curl_version_info.html
+%%PORTDOCS%%share/doc/curl/libcurl/curl_version_info.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/index.html
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl-errors.3
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl-errors.html
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl-errors.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl-multi.3
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl-multi.html
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl-multi.pdf
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl.3
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl.html
+%%PORTDOCS%%share/doc/curl/libcurl/libcurl.pdf
+%%PORTDOCS%%@dirrm share/doc/curl/libcurl
+%%PORTDOCS%%@dirrm share/doc/curl/examples
+%%PORTDOCS%%@dirrm share/doc/curl
Index: ports/ftp/curl/files/patch-lib::url.c
===================================================================
RCS file: ports/ftp/curl/files/patch-lib::url.c
diff -N ports/ftp/curl/files/patch-lib::url.c
--- ports/ftp/curl/files/patch-lib::url.c       1 Jan 1970 00:00:00 -0000
+++ ports/ftp/curl/files/patch-lib::url.c       27 Nov 2002 15:23:37 -0000
@@ -0,0 +1,13 @@
+--- lib/url.c.old      Wed Nov 27 17:22:24 2002
++++ lib/url.c  Wed Nov 27 17:23:29 2002
+@@ -288,6 +288,10 @@
+   
+   data->set.proxytype = CURLPROXY_HTTP; /* defaults to HTTP proxy */
+ 
++#if defined(__FreeBSD_version)
++  data->set.no_signal = TRUE; /* different handling of signals and threads */
++#endif /* __FreeBSD_version */
++
+   /* create an array with connection data struct pointers */
+   data->state.numconnects = 5; /* hard-coded right now */
+   data->state.connects = (struct connectdata **)

Attachment: msg38351/pgp00000.pgp
Description: PGP signature

Reply via email to