Update to curl-7.19.4, which fixes a redirection vulnerability.

The changes in the patch files are almost the same as in Eugene's PR,
although I arrived at them mostly independently :)
Reformat all patch files now that I use quilt to manage them.
Fix two complaints from portlint: needless use of CFLAGS and differentiation
between NOPORTDOCS and NOPORTEXAMPLES.  Thanks, Eugene!

PR:		132358
Submitted by:	Eygene Ryabinkin <rea-fbsd@codelabs.ru>
This commit is contained in:
Peter Pentchev 2009-03-07 03:57:38 +00:00
parent 1d6654bbdd
commit 1ec0906e49
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=229602
14 changed files with 101 additions and 182 deletions

View file

@ -6,7 +6,7 @@
# #
PORTNAME= curl PORTNAME= curl
PORTVERSION= 7.19.2 PORTVERSION= 7.19.4
CATEGORIES= ftp ipv6 www CATEGORIES= ftp ipv6 www
MASTER_SITES= http://curl.haxx.se/download/ \ MASTER_SITES= http://curl.haxx.se/download/ \
${MASTER_SITE_SOURCEFORGE} \ ${MASTER_SITE_SOURCEFORGE} \
@ -20,6 +20,8 @@ COMMENT= Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:${PORTSDIR}/security/ca_root_nss RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:${PORTSDIR}/security/ca_root_nss
PATCH_STRIP= -p1
MAN1= curl.1 curl-config.1 MAN1= curl.1 curl-config.1
MAN3= curl_easy_cleanup.3 curl_easy_duphandle.3 \ MAN3= curl_easy_cleanup.3 curl_easy_duphandle.3 \
curl_easy_escape.3 curl_easy_getinfo.3 \ curl_easy_escape.3 curl_easy_getinfo.3 \
@ -179,7 +181,7 @@ CONFIGURE_ARGS+= --disable-proxy
.endif .endif
.if defined(ADDFLAGS) .if defined(ADDFLAGS)
CONFIGURE_ENV+= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
.endif .endif
DOCS= BINDINGS BUGS CONTRIBUTE DISTRO-DILEMMA FAQ FEATURES \ DOCS= BINDINGS BUGS CONTRIBUTE DISTRO-DILEMMA FAQ FEATURES \
@ -195,6 +197,8 @@ post-install:
${INSTALL_DATA} ${DOCS:S@^@${WRKSRC}/docs/@} ${DOCSDIR} ${INSTALL_DATA} ${DOCS:S@^@${WRKSRC}/docs/@} ${DOCSDIR}
@${MKDIR} ${DOCSDIR}/libcurl @${MKDIR} ${DOCSDIR}/libcurl
(cd ${WRKSRC}/docs/libcurl && exec ${INSTALL_DATA} ABI *.html *.pdf *.m4 ${DOCSDIR}/libcurl/) (cd ${WRKSRC}/docs/libcurl && exec ${INSTALL_DATA} ABI *.html *.pdf *.m4 ${DOCSDIR}/libcurl/)
.endif
.if !defined(NOPORTEXAMPLES)
@${MKDIR} ${EXAMPLESDIR} @${MKDIR} ${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/docs/examples/README ${WRKSRC}/docs/examples/Makefile.example ${WRKSRC}/docs/examples/makefile* ${WRKSRC}/docs/examples/*.c ${WRKSRC}/docs/examples/*.cc ${EXAMPLESDIR}/ ${INSTALL_DATA} ${WRKSRC}/docs/examples/README ${WRKSRC}/docs/examples/Makefile.example ${WRKSRC}/docs/examples/makefile* ${WRKSRC}/docs/examples/*.c ${WRKSRC}/docs/examples/*.cc ${EXAMPLESDIR}/
.endif .endif

View file

@ -1,3 +1,3 @@
MD5 (curl-7.19.2.tar.bz2) = 3a461b145a4a31fe7d5a44684e7fbdbc MD5 (curl-7.19.4.tar.bz2) = 2734167c1e5f7ce6be99b75d2d371d85
SHA256 (curl-7.19.2.tar.bz2) = 60091fe65ad3aed9b5151cb4e8fcfaf56567c5ae705fdf4246854625eb91c272 SHA256 (curl-7.19.4.tar.bz2) = fb3436280dedbc8f8141d3841a5964c4491dd6457bc5b7123854aed0b794be86
SIZE (curl-7.19.2.tar.bz2) = 2168458 SIZE (curl-7.19.4.tar.bz2) = 2296879

View file

@ -1,6 +1,7 @@
diff -urN -x .svn ../../vendor/curl/Makefile.in ./Makefile.in Build and install the documentation as usual, no special handling.
--- ../../vendor/curl/Makefile.in 2008-11-05 14:00:46.000000000 +0200
+++ ./Makefile.in 2009-01-21 16:12:08.000000000 +0200 --- a/Makefile.in
+++ b/Makefile.in
@@ -273,9 +273,9 @@ @@ -273,9 +273,9 @@
libcurl.pc.in vc6curl.dsw libcurl.pc.in vc6curl.dsw

View file

@ -1,14 +1,14 @@
diff -urN -x .svn ../../vendor/curl/configure ./configure Do not needlessly add /usr/include and /usr/lib to the compiler and
--- ../../vendor/curl/configure 2008-11-02 00:09:51.000000000 +0200 linker flags if the base system OpenSSL is used.
+++ ./configure 2009-01-21 16:12:08.000000000 +0200
@@ -32237,8 +32237,10 @@ --- a/configure
+++ b/configure
@@ -23435,7 +23435,7 @@
PKGTEST="no" PKGTEST="no"
PREFIX_OPENSSL=$OPT_SSL PREFIX_OPENSSL=$OPT_SSL
LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
+ if ! [ "$PREFIX_OPENSSL" = "/usr" ]; then - if "$PREFIX_OPENSSL" != "/usr" ; then
LDFLAGS="$LDFLAGS -L$LIB_OPENSSL" + if [ "$PREFIX_OPENSSL" != "/usr" ] ; then
CPPFLAGS="$CPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include" LDFLAGS="$LDFLAGS -L$LIB_OPENSSL"
+ fi CPPFLAGS="$CPPFLAGS -I$PREFIX_OPENSSL/include"
;; fi
esac

View file

@ -1,12 +0,0 @@
diff -urN -x .svn ../../vendor/curl/docs/curl.1 ./docs/curl.1
--- ../../vendor/curl/docs/curl.1 2008-10-29 23:15:24.000000000 +0200
+++ ./docs/curl.1 2009-01-21 16:12:19.000000000 +0200
@@ -875,7 +875,7 @@
Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET
requests when following a 302 redirection. The non-RFC behaviour is ubiquitous
in web browsers, so curl does the conversion by default to maintain
-consistency. However, a server may requires a POST to remain a POST after such
+consistency. However, a server may require a POST to remain a POST after such
a redirection. This option is meaningful only when using \fI-L/--location\fP
(Added in 7.19.1)
.IP "--proxy-anyauth"

View file

@ -1,12 +0,0 @@
diff -urN -x .svn ../../vendor/curl/docs/curl.html ./docs/curl.html
--- ../../vendor/curl/docs/curl.html 2008-11-05 14:00:48.000000000 +0200
+++ ./docs/curl.html 2009-01-21 16:12:12.000000000 +0200
@@ -362,7 +362,7 @@
<p class="level0"><a name="--post301"></a><span class="nroffip">--post301</span>
<p class="level1">Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET requests when following a 301 redirection. The non-RFC behaviour is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using <a class="emphasis" href="#-L--location">-L/--location</a> (Added in 7.17.1)
<p class="level0"><a name="--post302"></a><span class="nroffip">--post302</span>
-<p class="level1">Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET requests when following a 302 redirection. The non-RFC behaviour is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may requires a POST to remain a POST after such a redirection. This option is meaningful only when using <a class="emphasis" href="#-L--location">-L/--location</a> (Added in 7.19.1)
+<p class="level1">Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET requests when following a 302 redirection. The non-RFC behaviour is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using <a class="emphasis" href="#-L--location">-L/--location</a> (Added in 7.19.1)
<p class="level0"><a name="--proxy-anyauth"></a><span class="nroffip">--proxy-anyauth</span>
<p class="level1">Tells curl to pick a suitable authentication method when communicating with the given proxy. This might cause an extra request/response round-trip. (Added in 7.13.2)
<p class="level0"><a name="--proxy-basic"></a><span class="nroffip">--proxy-basic</span>

View file

@ -1,24 +1,8 @@
--- ../../../tags/curl-7.19.2-stock/lib/ftp.c 2009-01-23 18:11:47.000000000 +0200 Handle CURL_DISABLE_PROXY properly.
+++ lib/ftp.c 2009-01-26 03:31:07.000000000 +0200
@@ -1901,7 +1901,7 @@
result = CURLE_COULDNT_CONNECT;
break;
}
-#ifndef CURL_DISABLE_HTTP
+#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_PROXY)
if(conn->bits.tunnel_proxy && conn->bits.httpproxy) {
/* FIX: this MUST wait for a proper connect first if 'connected' is
* FALSE */
@@ -1927,7 +1927,7 @@
if(CURLE_OK != result)
return result;
}
-#endif /* CURL_DISABLE_HTTP */
+#endif /* CURL_DISABLE_HTTP || CURL_DISABLE_PROXY */
state(conn, FTP_STOP); /* this phase is completed */ --- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -3056,7 +3056,7 @@ @@ -3055,7 +3055,7 @@
bool *done) /* see description above */ bool *done) /* see description above */
{ {
CURLcode result; CURLcode result;
@ -27,21 +11,3 @@
/* for FTP over HTTP proxy */ /* for FTP over HTTP proxy */
struct HTTP http_proxy; struct HTTP http_proxy;
struct FTP *ftp_save; struct FTP *ftp_save;
@@ -3079,7 +3079,7 @@
ftpc->response_time = RESP_TIMEOUT; /* set default response time-out */
-#ifndef CURL_DISABLE_HTTP
+#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_PROXY)
if(conn->bits.tunnel_proxy && conn->bits.httpproxy) {
/* BLOCKING */
/* We want "seamless" FTP operations through HTTP proxy tunnel */
@@ -3102,7 +3102,7 @@
if(CURLE_OK != result)
return result;
}
-#endif /* CURL_DISABLE_HTTP */
+#endif /* CURL_DISABLE_HTTP || CURL_DISABLE_PROXY */
if(conn->protocol & PROT_FTPS) {
/* BLOCKING */

View file

@ -1,6 +1,7 @@
diff -urN -x .svn ../../vendor/curl/lib/url.c ./lib/url.c Different handling of signals and threads.
--- ../../vendor/curl/lib/url.c 2008-11-03 18:24:56.000000000 +0200
+++ ./lib/url.c 2009-01-21 16:12:49.000000000 +0200 --- a/lib/url.c
+++ b/lib/url.c
@@ -719,6 +719,10 @@ @@ -719,6 +719,10 @@
data->set.httpauth = CURLAUTH_BASIC; /* defaults to basic */ data->set.httpauth = CURLAUTH_BASIC; /* defaults to basic */
data->set.proxyauth = CURLAUTH_BASIC; /* defaults to basic */ data->set.proxyauth = CURLAUTH_BASIC; /* defaults to basic */

View file

@ -1,7 +1,8 @@
diff -urN -x .svn ../../vendor/curl/src/main.c ./src/main.c Use fstat() instead of stat() to avoid a race condition.
--- ../../vendor/curl/src/main.c 2008-10-29 00:12:02.000000000 +0200
+++ ./src/main.c 2009-01-21 16:12:11.000000000 +0200 --- a/src/main.c
@@ -4313,31 +4313,32 @@ +++ b/src/main.c
@@ -4355,31 +4355,32 @@
(-1 == create_dir_hierarchy(outfile, config->errors))) (-1 == create_dir_hierarchy(outfile, config->errors)))
return CURLE_WRITE_ERROR; return CURLE_WRITE_ERROR;
@ -52,38 +53,3 @@ diff -urN -x .svn ../../vendor/curl/src/main.c ./src/main.c
} }
else { else {
outs.stream = NULL; /* open when needed */ outs.stream = NULL; /* open when needed */
@@ -5288,12 +5289,13 @@
static const char *
msdosify (const char *file_name)
{
- static char dos_name[PATH_MAX*2];
+ static char dos_name[PATH_MAX + 16];
static const char illegal_chars_dos[] = ".+, ;=[]|<>\\\":?*";
static const char *illegal_chars_w95 = &illegal_chars_dos[8];
int idx, dot_idx;
const char *s = file_name;
char *d = dos_name;
+ char *dlimit = dos_name + PATH_MAX;
const char *illegal_aliens = illegal_chars_dos;
size_t len = sizeof (illegal_chars_dos) - 1;
int lfn = 0;
@@ -5314,7 +5316,7 @@
*d++ = *s++;
}
- for (idx = 0, dot_idx = -1; *s; s++, d++) {
+ for (idx = 0, dot_idx = -1; *s && d < dlimit; s++, d++) {
if (memchr (illegal_aliens, *s, len)) {
/* Dots are special: DOS doesn't allow them as the leading character,
and a file name cannot have more than a single dot. We leave the
@@ -5371,6 +5373,10 @@
idx++;
}
+ if(d >= dlimit) {
+ /* should some kind of error be raised? */
+ d = dlimit - 1;
+ }
*d = '\0';
return dos_name;
}

View file

@ -1,6 +1,7 @@
diff -urN -x .svn ../../vendor/curl/tests/libtest/lib505.c ./tests/libtest/lib505.c Use fstat() instead of stat() to avoid a race condition.
--- ../../vendor/curl/tests/libtest/lib505.c 2008-09-22 00:15:55.000000000 +0300
+++ ./tests/libtest/lib505.c 2009-01-21 16:12:24.000000000 +0200 --- a/tests/libtest/lib505.c
+++ b/tests/libtest/lib505.c
@@ -56,12 +56,24 @@ @@ -56,12 +56,24 @@
return -1; return -1;
} }

View file

@ -1,6 +1,7 @@
diff -urN -x .svn ../../vendor/curl/tests/libtest/lib541.c ./tests/libtest/lib541.c Use fstat() instead of stat() to avoid a race condition.
--- ../../vendor/curl/tests/libtest/lib541.c 2008-09-22 00:15:55.000000000 +0300
+++ ./tests/libtest/lib541.c 2009-01-21 16:12:25.000000000 +0200 --- a/tests/libtest/lib541.c
+++ b/tests/libtest/lib541.c
@@ -48,12 +48,24 @@ @@ -48,12 +48,24 @@
return -1; return -1;
} }

View file

@ -1,6 +1,7 @@
diff -urN -x .svn ../../vendor/curl/tests/runtests.pl ./tests/runtests.pl Do not use valgrind.
--- ../../vendor/curl/tests/runtests.pl 2008-10-27 22:11:37.000000000 +0200
+++ ./tests/runtests.pl 2009-01-21 16:12:22.000000000 +0200 --- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -88,7 +88,7 @@ @@ -88,7 +88,7 @@
); );

View file

@ -1,6 +1,7 @@
diff -urN -x .svn ../../vendor/curl/tests/server/getpart.c ./tests/server/getpart.c Properly allocate a buffer as large as needed.
--- ../../vendor/curl/tests/server/getpart.c 2008-10-23 17:42:39.000000000 +0300
+++ ./tests/server/getpart.c 2009-01-21 16:12:27.000000000 +0200 --- a/tests/server/getpart.c
+++ b/tests/server/getpart.c
@@ -87,7 +87,7 @@ @@ -87,7 +87,7 @@
needed_len = len + *stringlen + 1; /* recalculate */ needed_len = len + *stringlen + 1; /* recalculate */
} }

View file

@ -151,49 +151,50 @@ libdata/pkgconfig/libcurl.pc
%%PORTDOCS%%%%DOCSDIR%%/libcurl/libcurl.pdf %%PORTDOCS%%%%DOCSDIR%%/libcurl/libcurl.pdf
%%PORTDOCS%%@dirrm %%DOCSDIR%%/libcurl %%PORTDOCS%%@dirrm %%DOCSDIR%%/libcurl
%%PORTDOCS%%@dirrm %%DOCSDIR%% %%PORTDOCS%%@dirrm %%DOCSDIR%%
%%PORTDOCS%%%%EXAMPLESDIR%%/10-at-a-time.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/10-at-a-time.c
%%PORTDOCS%%%%EXAMPLESDIR%%/Makefile.example %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Makefile.example
%%PORTDOCS%%%%EXAMPLESDIR%%/README %%PORTEXAMPLES%%%%EXAMPLESDIR%%/README
%%PORTDOCS%%%%EXAMPLESDIR%%/anyauthput.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/anyauthput.c
%%PORTDOCS%%%%EXAMPLESDIR%%/cacertinmem.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/cacertinmem.c
%%PORTDOCS%%%%EXAMPLESDIR%%/certinfo.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/certinfo.c
%%PORTDOCS%%%%EXAMPLESDIR%%/cookie_interface.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/cookie_interface.c
%%PORTDOCS%%%%EXAMPLESDIR%%/curlgtk.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/curlgtk.c
%%PORTDOCS%%%%EXAMPLESDIR%%/curlx.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/curlx.c
%%PORTDOCS%%%%EXAMPLESDIR%%/debug.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/debug.c
%%PORTDOCS%%%%EXAMPLESDIR%%/fileupload.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/evhiperfifo.c
%%PORTDOCS%%%%EXAMPLESDIR%%/fopen.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/fileupload.c
%%PORTDOCS%%%%EXAMPLESDIR%%/ftpget.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/fopen.c
%%PORTDOCS%%%%EXAMPLESDIR%%/ftpgetresp.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/ftpget.c
%%PORTDOCS%%%%EXAMPLESDIR%%/ftpupload.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/ftpgetresp.c
%%PORTDOCS%%%%EXAMPLESDIR%%/ftpuploadresume.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/ftpupload.c
%%PORTDOCS%%%%EXAMPLESDIR%%/getinfo.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/ftpuploadresume.c
%%PORTDOCS%%%%EXAMPLESDIR%%/getinmemory.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/getinfo.c
%%PORTDOCS%%%%EXAMPLESDIR%%/ghiper.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/getinmemory.c
%%PORTDOCS%%%%EXAMPLESDIR%%/hiperfifo.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/ghiper.c
%%PORTDOCS%%%%EXAMPLESDIR%%/htmltidy.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/hiperfifo.c
%%PORTDOCS%%%%EXAMPLESDIR%%/htmltitle.cc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/htmltidy.c
%%PORTDOCS%%%%EXAMPLESDIR%%/http-post.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/htmltitle.cc
%%PORTDOCS%%%%EXAMPLESDIR%%/httpcustomheader.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/http-post.c
%%PORTDOCS%%%%EXAMPLESDIR%%/httpput.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/httpcustomheader.c
%%PORTDOCS%%%%EXAMPLESDIR%%/https.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/httpput.c
%%PORTDOCS%%%%EXAMPLESDIR%%/makefile.dj %%PORTEXAMPLES%%%%EXAMPLESDIR%%/https.c
%%PORTDOCS%%%%EXAMPLESDIR%%/multi-app.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/makefile.dj
%%PORTDOCS%%%%EXAMPLESDIR%%/multi-debugcallback.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multi-app.c
%%PORTDOCS%%%%EXAMPLESDIR%%/multi-double.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multi-debugcallback.c
%%PORTDOCS%%%%EXAMPLESDIR%%/multi-post.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multi-double.c
%%PORTDOCS%%%%EXAMPLESDIR%%/multi-single.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multi-post.c
%%PORTDOCS%%%%EXAMPLESDIR%%/multithread.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multi-single.c
%%PORTDOCS%%%%EXAMPLESDIR%%/opensslthreadlock.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multithread.c
%%PORTDOCS%%%%EXAMPLESDIR%%/persistant.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/opensslthreadlock.c
%%PORTDOCS%%%%EXAMPLESDIR%%/post-callback.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/persistant.c
%%PORTDOCS%%%%EXAMPLESDIR%%/postit2.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/post-callback.c
%%PORTDOCS%%%%EXAMPLESDIR%%/sampleconv.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/postit2.c
%%PORTDOCS%%%%EXAMPLESDIR%%/sepheaders.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sampleconv.c
%%PORTDOCS%%%%EXAMPLESDIR%%/sendrecv.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sepheaders.c
%%PORTDOCS%%%%EXAMPLESDIR%%/simple.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sendrecv.c
%%PORTDOCS%%%%EXAMPLESDIR%%/simplepost.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple.c
%%PORTDOCS%%%%EXAMPLESDIR%%/simplessl.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplepost.c
%%PORTDOCS%%%%EXAMPLESDIR%%/synctime.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplessl.c
%%PORTDOCS%%%%EXAMPLESDIR%%/threaded-ssl.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/synctime.c
%%PORTDOCS%%@dirrm %%EXAMPLESDIR%% %%PORTEXAMPLES%%%%EXAMPLESDIR%%/threaded-ssl.c
%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%