diff homedir/fix-map @ 0:c7f6b056b673

First import of vendor version
author Peter Gervai <grin@grin.hu>
date Tue, 10 Mar 2009 13:49:58 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homedir/fix-map	Tue Mar 10 13:49:58 2009 +0100
@@ -0,0 +1,118 @@
+#! /bin/sh -e
+
+# correct map file when switching between DCC and DCC Reputation code.
+
+# Copyright (c) 2008 by Rhyolite Software, LLC
+#
+# This agreement is not applicable to any entity which sells anti-spam
+# solutions to others or provides an anti-spam solution as part of a
+# security solution sold to other entities, or to a private network
+# which employs the DCC or uses data provided by operation of the DCC
+# but does not provide corresponding data to other users.
+#
+# Permission to use, copy, modify, and distribute this software without
+# changes for any purpose with or without fee is hereby granted, provided
+# that the above copyright notice and this permission notice appear in all
+# copies and any distributed versions or copies are either unchanged
+# or not called anything similar to "DCC" or "Distributed Checksum
+# Clearinghouse".
+#
+# Parties not eligible to receive a license under this agreement can
+# obtain a commercial license to use DCC by contacting Rhyolite Software
+# at sales@rhyolite.com.
+#
+# A commercial license would be for Distributed Checksum and Reputation
+# Clearinghouse software.  That software includes additional features.  This
+# free license for Distributed ChecksumClearinghouse Software does not in any
+# way grant permision to use Distributed Checksum and Reputation Clearinghouse
+# software
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND RHYOLITE SOFTWARE, LLC DISCLAIMS ALL
+# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL RHYOLITE SOFTWARE, LLC
+# BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+# SOFTWARE.
+
+#	Rhyolite Software DCC 1.3.103-1.11 $Revision$
+
+
+set -e
+
+SUFFIX=`date +%y%m%d`
+DCC_HOMEDIR=
+CDCC=
+MAP=map
+
+USAGE="$0: [-x] [-m map] -c cdcc -h homedir"
+while getopts "xm:c:h:" c; do
+    case $c in
+	x) set -x;;
+	m) MAP="$OPTARG";;
+	c) CDCC="$OPTARG";;
+	h) DCC_HOMEDIR="$OPTARG";;
+	*) echo "$USAGE" 1>&2; exit 1;;
+    esac
+done
+shift `expr $OPTIND - 1 || true`
+if test "$#" -ne 0 -o -z "$CDCC" -o -z "$DCC_HOMEDIR"			\
+	    -o ! -d "$DCC_HOMEDIR/."; then
+    echo "$USAGE" 1>&2
+    exit 1
+fi
+if expr "$MAP" : '/.*' >/dev/null; then :
+else
+    MAP=$DCC_HOMEDIR/$MAP
+fi
+if test ! -f "$MAP"; then
+    echo "$MAP does not exist" 1>&2
+    exit 1
+fi
+if test ! -w "$MAP" -o ! -r "$MAP"; then
+    echo "$MAP not readable and writable" 1>&2
+    exit 1
+fi
+
+if test ! -x "$CDCC"; then
+    # the cdcc command has usually not yet been installed, so use the local
+    #	version
+    echo "$CDCC does not seem to have been built" 1>&2
+    exit 1
+fi
+CDCC_CMD="$CDCC -qh $DCC_HOMEDIR file=$MAP"
+$CDCC_CMD >/dev/null </dev/null			# see that it works
+
+RSRVR=com-dcc.rhyolite.com
+RID=
+RPASSWD=
+if test -r $DCC_HOMEDIR/.updatedcc_pfile				\
+	    -a -s $DCC_HOMEDIR/.updatedcc_pfile; then
+    . $DCC_HOMEDIR/.updatedcc_pfile
+fi
+if test -r .updatedcc_pfile -a -s .updatedcc_pfile; then
+    . ./.updatedcc_pfile
+fi
+
+USING_DCC=`$CDCC_CMD info						\
+    | sed -n -e 's/^\([-a-z0-9]*\.dcc-servers\.net\),.*/\1/p'`
+USING_RHYOLITE=`$CDCC_CMD info						\
+    | sed -n -e 's/^\([-a-z0-9]*\.rhyolite\.com\),.*/\1/p'`
+
+
+# Replace references to the common DCC Reputation servers when installing the
+#   free DCC client software because the common DCC Reputation servers have
+#   probably forgotten this client's ID and so will refuse to answer.
+#   When we remove the common DCC Reputation servers, add the public servers
+#   as low priority backups to avoid leaving things broken.
+if test -n "$USING_RHYOLITE"; then
+    $CDCC_CMD "add dcc1.dcc-servers.net RTT+2000 ms"			\
+	"add dcc2.dcc-servers.net RTT+2000 ms"				\
+	"add dcc3.dcc-servers.net RTT+2000 ms"				\
+	"add dcc4.dcc-servers.net RTT+2000 ms"				\
+	"add dcc5.dcc-servers.net RTT+2000 ms"
+    for s in $USING_RHYOLITE; do
+	$CDCC_CMD "delete $s"
+    done
+fi