<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/164fb32e7bc255dabcad2a236b248f1a0d203bd1">https://github.com/macports/macports-ports/commit/164fb32e7bc255dabcad2a236b248f1a0d203bd1</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 164fb32 radmind: update to 1.14.1
</span>164fb32 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 164fb32e7bc255dabcad2a236b248f1a0d203bd1
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Jan 29 08:57:53 2020 +1100
<span style='display:block; white-space:pre;color:#404040;'> radmind: update to 1.14.1
</span>---
net/radmind/Portfile | 19 ++-
net/radmind/files/cksum.c.patch | 121 ++++++++++++++++
net/radmind/files/configure.patch | 112 +++++++++++++++
net/radmind/files/retr.c.patch | 284 ++++++++++++++++++++++++++++++++++++++
net/radmind/files/stor.c.patch | 177 ++++++++++++++++++++++++
5 files changed, 708 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/radmind/Portfile b/net/radmind/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 923dd8b..e7a332c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/radmind/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/radmind/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,8 +1,7 @@
</span> PortSystem 1.0
name radmind
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 1.11.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.14.1
</span> categories net sysutils
license BSD
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,15 +16,25 @@ long_description A suite of Unix command-line tools and a server \
</span> is detected, radmind can optionally reverse the \
change.
platforms darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage http://rsug.itd.umich.edu/software/radmind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites sourceforge
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums md5 62419551c6b83873f10b5eb4462cd007
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage http://www.radmind.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites sourceforge:project/radmind/radmind/radmind-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums md5 8682217b757b3831e1c085d768d7e811 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 6b925083ef9dce2de21ebb0ffef287b1ffe9173d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 92ce3d586245b107bf4e412b59eb02ec3e57b4d12a0b9a16b0fadf10983ed21f
</span>
depends_lib path:lib/libssl.dylib:openssl port:zlib
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles configure.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cksum.c.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retr.c.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ stor.c.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args --mandir='\${prefix}/share/man' \
--with-radminddir='\${prefix}/var/radmind'
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# tries to link with libsnet before building it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> destroot.keepdirs ${destroot}${prefix}/var/radmind/cert \
${destroot}${prefix}/var/radmind/client \
${destroot}${prefix}/var/radmind/command \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/radmind/files/cksum.c.patch b/net/radmind/files/cksum.c.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6af7a43
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/radmind/files/cksum.c.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,121 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cksum.c.orig 2010-12-13 14:42:49.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cksum.c 2020-01-29 08:49:22.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -41,20 +41,26 @@ do_fcksum( int fd, char *cksum_b64 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ off_t size = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char buf[ 8192 ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern EVP_MD *md;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_MD_CTX mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX *mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char md_value[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestInit( &mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = EVP_MD_CTX_new();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!mdctx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestInit( mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (( rr = read( fd, buf, sizeof( buf ))) > 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size += rr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( rr < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestFinal( &mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestFinal( mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base64_e( md_value, md_len, cksum_b64 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( size );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,13 +109,17 @@ do_acksum( char *path, char *cksum_b64,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct as_entry as_entries_endian[ 3 ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int md_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern EVP_MD *md;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_MD_CTX mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX *mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char md_value[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestInit( &mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = EVP_MD_CTX_new();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!mdctx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestInit( mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* checksum applesingle header */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, (char *)&as_header, AS_HEADERLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, (char *)&as_header, AS_HEADERLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size += (size_t)AS_HEADERLEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* endian handling, sum big-endian header entries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -120,53 +130,61 @@ do_acksum( char *path, char *cksum_b64,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_entry_netswap( &as_entries_endian[ AS_DFE ] );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* checksum header entries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, (char *)&as_entries_endian,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, (char *)&as_entries_endian,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (unsigned int)( 3 * sizeof( struct as_entry )));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size += sizeof( 3 * sizeof( struct as_entry ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* checksum finder info data */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, afinfo->ai.ai_data, FINFOLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, afinfo->ai.ai_data, FINFOLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size += FINFOLEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* checksum rsrc fork data */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( afinfo->as_ents[ AS_RFE ].ae_length > 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snprintf( rsrc_path, MAXPATHLEN, "%s%s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path, _PATH_RSRCFORKSPEC ) >= MAXPATHLEN ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errno = ENAMETOOLONG;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( rfd = open( rsrc_path, O_RDONLY )) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (( rc = read( rfd, buf, sizeof( buf ))) > 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size += (size_t)rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( close( rfd ) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( rc < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( dfd = open( path, O_RDONLY, 0 )) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* checksum data fork */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (( rc = read( dfd, buf, sizeof( buf ))) > 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size += (size_t)rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( rc < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( close( dfd ) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestFinal( &mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestFinal( mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base64_e( ( char*)&md_value, md_len, cksum_b64 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( size );
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/radmind/files/configure.patch b/net/radmind/files/configure.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..8f5d43f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/radmind/files/configure.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,112 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.orig 2010-12-13 14:49:48.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure 2020-01-29 07:09:44.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5203,9 +5203,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ echo "$as_me:$LINENO: checking for SSLeay_version in -lcrypto" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-echo $ECHO_N "checking for SSLeay_version in -lcrypto... $ECHO_C" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test "${ac_cv_lib_crypto_SSLeay_version+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ echo "$as_me:$LINENO: checking for OpenSSL_version in -lcrypto" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo $ECHO_N "checking for OpenSSL_version in -lcrypto... $ECHO_C" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${ac_cv_lib_crypto_OpenSSL_version+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo $ECHO_N "(cached) $ECHO_C" >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5223,11 +5223,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern "C"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-char SSLeay_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char OpenSSL_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-return SSLeay_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++return OpenSSL_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5250,21 +5250,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test ! -s conftest.err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } && test -s conftest$ac_exeext &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_test_x conftest$ac_exeext; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ac_cv_lib_crypto_SSLeay_version=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_crypto_OpenSSL_version=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$as_me: failed program was:" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sed 's/^/| /' conftest.$ac_ext >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ac_cv_lib_crypto_SSLeay_version=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_crypto_OpenSSL_version=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBS=$ac_check_lib_save_LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_SSLeay_version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-echo "${ECHO_T}$ac_cv_lib_crypto_SSLeay_version" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test $ac_cv_lib_crypto_SSLeay_version = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_OpenSSL_version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo "${ECHO_T}$ac_cv_lib_crypto_OpenSSL_version" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test $ac_cv_lib_crypto_OpenSSL_version = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat >>confdefs.h <<_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define HAVE_LIBCRYPTO 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsnet/configure.orig 2010-12-13 14:43:02.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsnet/configure 2020-01-29 07:12:25.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3090,9 +3090,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ echo "$as_me:$LINENO: checking for SSLeay_version in -lcrypto" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-echo $ECHO_N "checking for SSLeay_version in -lcrypto... $ECHO_C" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test "${ac_cv_lib_crypto_SSLeay_version+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ echo "$as_me:$LINENO: checking for OpenSSL_version in -lcrypto" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo $ECHO_N "checking for OpenSSL_version in -lcrypto... $ECHO_C" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${ac_cv_lib_crypto_OpenSSL_version+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo $ECHO_N "(cached) $ECHO_C" >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3110,11 +3110,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern "C"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-char SSLeay_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char OpenSSL_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-return SSLeay_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++return OpenSSL_version ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3137,21 +3137,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test ! -s conftest.err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } && test -s conftest$ac_exeext &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_test_x conftest$ac_exeext; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ac_cv_lib_crypto_SSLeay_version=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_crypto_OpenSSL_version=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$as_me: failed program was:" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sed 's/^/| /' conftest.$ac_ext >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ac_cv_lib_crypto_SSLeay_version=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_crypto_OpenSSL_version=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBS=$ac_check_lib_save_LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_SSLeay_version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-echo "${ECHO_T}$ac_cv_lib_crypto_SSLeay_version" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test $ac_cv_lib_crypto_SSLeay_version = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_OpenSSL_version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo "${ECHO_T}$ac_cv_lib_crypto_OpenSSL_version" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test $ac_cv_lib_crypto_OpenSSL_version = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat >>confdefs.h <<_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define HAVE_LIBCRYPTO 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/radmind/files/retr.c.patch b/net/radmind/files/retr.c.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..560e5e6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/radmind/files/retr.c.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,284 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- retr.c.orig 2010-12-13 14:42:49.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ retr.c 2020-01-29 08:52:28.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -74,7 +74,7 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char buf[ 8192 ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ssize_t rr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern EVP_MD *md;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_MD_CTX mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX *mdctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char md_value[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char cksum_b64[ SZ_BASE64_E( EVP_MAX_MD_SIZE ) ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,13 +84,18 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s\n", pathdesc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestInit( &mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = EVP_MD_CTX_new();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!mdctx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return( 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestInit( mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( verbose ) printf( ">>> RETR %s\n", pathdesc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_writef( sn, "RETR %s\n", pathdesc ) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve %s failed: 1-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -98,11 +103,13 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( line = snet_getline_multi( sn, logger, &tv )) == NULL ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve %s failed: 2-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( *line != '2' ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s\n", line );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,6 +118,7 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( line = snet_getline( sn, &tv )) == NULL ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve %s failed: 3-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size = strtoofft( line, NULL, 10 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -119,6 +127,7 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "line %d: size in transcript does not match size "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "from server\n", linenum );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s\n", pathdesc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -127,6 +136,7 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path, getpid()) >= MAXPATHLEN ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s.radmind.%i: too long", path,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (int)getpid());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Open file */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -135,14 +145,17 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errno = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( mkprefix( temppath ) != 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( fd = open( temppath, O_WRONLY | O_CREAT, tempmode )) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -165,7 +178,7 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto error2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= rr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -197,7 +210,9 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* cksum file */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestFinal( &mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestFinal( mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base64_e( md_value, md_len, cksum_b64 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( strcmp( trancksum, cksum_b64 ) != 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "line %d: checksum in transcript does not match "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -213,6 +228,7 @@ retr( SNET *sn, char *pathdesc, char *pa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close( fd );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unlink( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( returnval );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,7 +262,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct as_entry ae_ents[ 3 ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct timeval tv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern EVP_MD *md;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_MD_CTX mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX *mdctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char md_value[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char cksum_b64[ SZ_BASE64_E( EVP_MAX_MD_SIZE ) ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -256,13 +272,18 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s\n", pathdesc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestInit( &mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = EVP_MD_CTX_new();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!mdctx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return( 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestInit( mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( verbose ) printf( ">>> RETR %s\n", pathdesc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_writef( sn, "RETR %s\n", pathdesc ) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve applefile %s failed: 1-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -270,11 +291,13 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( line = snet_getline_multi( sn, logger, &tv )) == NULL ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve applefile %s failed: 2-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( *line != '2' ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s\n", line );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -283,6 +306,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( line = snet_getline( sn, &tv )) == NULL ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve applefile %s failed: 3-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size = strtoofft( line, NULL, 10 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -291,6 +315,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "line %d: size in transcript does not match size"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "from server\n", linenum );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s\n", pathdesc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( size < ( AS_HEADERLEN + ( 3 * sizeof( struct as_entry )) +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -298,6 +323,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "retrieve applefile %s failed: AppleSingle-encoded file too "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "short\n", path );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -306,6 +332,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( rc = snet_read( sn, ( char * )&ah, AS_HEADERLEN, &tv )) <= 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "retrieve applefile %s failed: 4-%s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( rc != AS_HEADERLEN ) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -313,16 +340,18 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "retrieve applefile %s failed: corrupt AppleSingle-encoded file\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, (char *)&ah, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, (char *)&ah, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* name temp file */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snprintf( temppath, MAXPATHLEN, "%s.radmind.%i", path,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ getpid()) >= MAXPATHLEN ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "%s.radmind.%i: too long", path, ( int )getpid());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -333,15 +362,18 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errno = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( mkprefix( temppath ) != 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( dfd = open( temppath, O_CREAT | O_EXCL | O_WRONLY,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tempmode )) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -373,7 +405,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Should we check for valid ae_ents here? YES! */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, (char *)&ae_ents, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, (char *)&ae_ents, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -398,7 +430,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto error2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, finfo, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, finfo, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -448,7 +480,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto error3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -482,7 +514,7 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -523,7 +555,9 @@ retr_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( verbose ) printf( "<<< .\n" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestFinal( &mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestFinal( mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base64_e(( char*)&md_value, md_len, cksum_b64 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( strcmp( trancksum, cksum_b64 ) != 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "line %d: checksum in transcript does not match "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -541,6 +575,7 @@ error3:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close( dfd );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unlink( temppath );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( returnval );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/radmind/files/stor.c.patch b/net/radmind/files/stor.c.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d80f1ea
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/radmind/files/stor.c.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,177 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- stor.c.orig 2010-12-13 14:42:49.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ stor.c 2020-01-29 08:56:26.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -136,7 +136,7 @@ stor_file( SNET *sn, char *pathdesc, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ssize_t rr, size = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int md_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern EVP_MD *md;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_MD_CTX mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX *mdctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char md_value[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char cksum_b64[ SZ_BASE64_E( EVP_MAX_MD_SIZE ) ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -146,7 +146,12 @@ stor_file( SNET *sn, char *pathdesc, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "line %d: No checksum listed\n", linenum );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit( 2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestInit( &mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = EVP_MD_CTX_new();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!mdctx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ perror(NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit( 2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestInit( mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Open and stat file */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -197,12 +202,13 @@ stor_file( SNET *sn, char *pathdesc, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_write( sn, buf, rr, &tv ) != rr ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_file %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= rr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,6 +232,7 @@ stor_file( SNET *sn, char *pathdesc, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_writef( sn, ".\r\n" ) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_file %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( verbose ) fputs( "\n>>> .\n", stdout );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -237,7 +244,8 @@ stor_file( SNET *sn, char *pathdesc, cha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* cksum data sent */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestFinal( &mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestFinal( mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base64_e( md_value, md_len, cksum_b64 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( strcmp( trancksum, cksum_b64 ) != 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -262,7 +270,7 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int md_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int rsrc_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern EVP_MD *md;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_MD_CTX mdctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX *mdctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char md_value[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char cksum_b64[ EVP_MAX_MD_SIZE ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -272,7 +280,12 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "line %d: No checksum listed\n", linenum );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit( 2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestInit( &mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdctx = EVP_MD_CTX_new();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!mdctx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ perror(NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit( 2 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestInit( mdctx, md );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check size listed in transcript */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -303,6 +316,7 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snprintf( rsrc_path, MAXPATHLEN, "%s%s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path, _PATH_RSRCFORKSPEC ) >= MAXPATHLEN ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errno = ENAMETOOLONG;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (( rfd = open( rsrc_path, O_RDONLY )) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -335,11 +349,12 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AS_HEADERLEN ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_applefile %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= AS_HEADERLEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, (char *)&as_header, AS_HEADERLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, (char *)&as_header, AS_HEADERLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -353,11 +368,12 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ != ( 3 * sizeof( struct as_entry ))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_applefile %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= ( 3 * sizeof( struct as_entry ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, (char *)&afinfo->as_ents,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, (char *)&afinfo->as_ents,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (unsigned int)( 3 * sizeof( struct as_entry )));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -371,11 +387,12 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &tv ) != FINFOLEN ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_applefile %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= FINFOLEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, afinfo->ai.ai_data, FINFOLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, afinfo->ai.ai_data, FINFOLEN );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -389,11 +406,12 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_write( sn, buf, rc, &tv ) != rc ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_applefile %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -413,11 +431,12 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_write( sn, buf, rc, &tv ) != rc ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_applefile %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestUpdate( &mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestUpdate( mdctx, buf, (unsigned int)rc );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( dodots ) { putc( '.', stdout ); fflush( stdout ); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( showprogress ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -442,6 +461,7 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( snet_writef( sn, ".\r\n" ) < 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr, "stor_applefile %s failed: %s\n", pathdesc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strerror( errno ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return( -1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( verbose ) fputs( "\n>>> .\n", stdout );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -463,7 +483,8 @@ stor_applefile( SNET *sn, char *pathdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* cksum data sent */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( cksum ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- EVP_DigestFinal( &mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_DigestFinal( mdctx, md_value, &md_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVP_MD_CTX_free( mdctx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base64_e( ( char*)&md_value, md_len, cksum_b64 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ( strcmp( trancksum, cksum_b64 ) != 0 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf( stderr,
</span></pre><pre style='margin:0'>
</pre>