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 **)
msg38351/pgp00000.pgp
Description: PGP signature