diff options
Diffstat (limited to 'Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs')
18 files changed, 2659 insertions, 0 deletions
diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/admin.funcs b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/admin.funcs new file mode 100755 index 00000000000..27800dc876f --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/admin.funcs @@ -0,0 +1,200 @@ +#!/bin/bash +# $Id: admin.funcs,v 1.2 2001/01/15 22:20:11 tom Exp $ +# +# ComeOn Point Functions! v0.9.2 +# - usate da vari altri moduli ComeOn Point... +# +# AUTHOR: Beppe (beppe.dem@nsm.it) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +# Args: source_file, domain, nldir +install_nodelist() { + + NODELIST="$1" + FOR_DOMAIN="$2" + NODEDIR="$3" + + dialog --backtitle "$TITLE" --infobox "Installo la nodelist '$NODELIST' per il domain $FOR_DOMAIN, attendere prego..." 0 0 + + cp "$NODELIST" $NODEDIR/$FOR_DOMAIN.ndl + chown fnet.uucp $NODEDIR/$FOR_DOMAIN.ndl + + echo "y" | su -l fnet -c "ifindex" >/dev/null +} + +# Args: source, dest +add_alias() { + + SOURCE=$1 + DEST=$2 + ALIASES=/etc/aliases + ENTRY="`grep $SOURCE: $ALIASES`" + + dialog --backtitle "$TITLE" --infobox "Creo un alias per redirigere le mail per $SOURCE a $DEST ..." 0 0 + + if [ ! "$ENTRY" ] + then + echo "$SOURCE: $DEST" >>$ALIASES + else + OLDDEST="`echo $ENTRY | cut -f2 -d:`" + mkstemp alias + sed /"$SOURCE:"/s/"$OLDDEST"/" $DEST"/ $ALIASES >$tmp_alias + cat $tmp_alias >$ALIASES + rm $tmp_alias + fi + mkaliases >/dev/null +} + +# Args: Areas_pathname, newsgroup, area_ftn, description [, expire_days] +# Returns: 1 - innd not running +# 2 - already existing newsgroup +# 3 - already existing ftn_area +create_newsgroup() { + + AREAS="$1" + NEWSGROUP="$2" + AREA="$3" + DESCRIPTION="$4" + EXPIRE_DAYS="$5" + + NEWSGROUPS=~news/newsgroups + EXPIRECTL=~news/expire.ctl + + dialog --backtitle "$TITLE" --infobox "Creo il newsgroup $NEWSGROUP per contenere i messaggi dell'area $AREA..." 0 0 + + if [ ! "`ps ax | grep ~news/etc/innd`" ] + then + return 1 + fi + + if [ "`cut $NEWSGROUPS -f1 | cut -f1 -d\ | grep -x $NEWSGROUP`" ] + then + return 2 + fi + + if [ "`cut $AREAS -f1 | cut -f1 -d\ | grep -x $AREA`" ] + then + return 3 + fi + + su -l news -c "bin/ctlinnd newgroup $NEWSGROUP" >/dev/null + echo -e "$NEWSGROUP\t$DESCRIPTION" >> $NEWSGROUPS + echo -e "$AREA\t$NEWSGROUP\t`echo $NEWSGROUP | cut -f1 -d.`" >> $AREAS + + if [ "$EXPIRE_DAYS" ]; then + echo "$NEWSGROUP:A:2:$EXPIRE_DAYS:$EXPIRE_DAYS" >> $EXPIRECTL + fi + + chown news.news $NEWSGROUPS $EXPIRECTL + chmod 440 $EXPIRECTL + chown fnet.uucp $AREAS +} + +# Returns: 0 if ok, 1 if (innd not running), 2 if (no that newsgroup) +# Args: Areas_pathname, newsgroup +rmgroup() { + + AREAS=$1 + NEWSGR=$2 + NEWSGROUPS=~news/newsgroups + EXPIRE=~news/expire.ctl + + dialog --backtitle "$TITLE" --infobox "Elimino il newsgroup $NEWSGR ed i messaggi in esso contenuti, attendere prego. Questa operazione potrebbe durare alcuni minuti." 0 0 + + if [ ! "`ps x | grep ~news/etc/innd`" ] + then + return 1 + fi + + if [ ! "`cut -f1 $NEWSGROUPS | cut -f1 -d\ | grep -x $NEWSGR`" ] + then + return 2 + else + +# Updating newsgroups file + if [ -f $NEWSGROUPS ] + then + mkstemp groups + mv $NEWSGROUPS $NEWSGROUPS~ + grep -v $NEWSGR $NEWSGROUPS~ >$tmp_groups + mv $tmp_groups $NEWSGROUPS + else + :> $NEWSGROUPS + fi + chown news.news $NEWSGROUPS + +# Updating Areas file + if [ -f $AREAS ] + then + mkstemp areas + mv $AREAS $AREAS~ + grep -v $NEWSGR $AREAS~ >$tmp_areas + mv $tmp_areas $AREAS + else + :> $AREAS + fi + chown fnet.uucp $AREAS + +# Updating expire.ctl file + if [ -f $EXPIRE ] + then + mkstemp expire + mv $EXPIRE $EXPIRE~ + grep -v "$NEWSGR:" $EXPIRE~ >$tmp_expire + mv $tmp_expire $EXPIRE + else + :> $EXPIRE + fi + chown news.news $EXPIRE + chmod 444 $EXPIRE +# Remove pending articles + echo -e "\n$NEWSGR:A:0:0:0" >>$EXPIRE + su -l news -c "bin/news.daily" >/dev/null + mkstemp expire + grep -v $NEWSGR $EXPIRE >$tmp_expire + mv $tmp_expire $EXPIRE + chown news.news $EXPIRE + chmod 444 $EXPIRE + +# Updating active file + su -l news -c "bin/ctlinnd rmgroup $NEWSGR" >/dev/null + fi +} + +# Args: newsgroups_wildmat, days_to_keep +set_expire_time() { + + NEWSGROUP="$1" + KEEPDAYS="$2" + EXPIRE=~news/expire.ctl + + dialog --backtitle "$TITLE" --infobox "Imposto a $KEEPDAYS il numero di giorni di mantenimento dei messaggi del newsgroup $NEWSGROUP..." 0 0 + + if [ ! -f $EXPIRE ] + then + :> $EXPIRE + + elif [ "`cut $EXPIRE -s -f1 -d: | grep -x $NEWSGROUP`" ] + then + mkstemp expire + grep -v "$NEWSGROUP:" $EXPIRE >$tmp_expire + mv $tmp_expire $EXPIRE + fi + echo -e "\n$NEWSGROUP:A:2:$KEEPDAYS:$KEEPDAYS" >>$EXPIRE + chown news.news $EXPIRE + chmod 444 $EXPIRE +} diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/common.funcs b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/common.funcs new file mode 100755 index 00000000000..04eca9a8400 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/common.funcs @@ -0,0 +1,338 @@ +# +# ComeOn Point Functions! v0.9.2 +# - usate da vari altri moduli ComeOn Point... +# +# AUTHOR: Beppe (beppe.dem@nsm.it) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +save() { + if [ -f $1 ] + then + mv $1 $1~ + fi +} + +# Returns $PKG_TO_REMOVE +find_incompatible_packages() { + dialog --backtitle "$TITLE" --infobox "Vediamo innanzitutto se c'e' qualche pacchetto di troppo ... ;-)" 0 0 + + PKG_TO_REMOVE="" + for i in sendmail smailcfg cnews + do + if [ -f /var/adm/packages/$i ] + then + PKG_TO_REMOVE="$PKG_TO_REMOVE $i" + fi + done +} + +# Returns $PKG_TO_INSTALL +find_necessary_packages() { + dialog --backtitle "$TITLE" --infobox "Controlliamo se manca qualche pacchetto..." 0 0 + + PKG_TO_INSTALL="" + for i in tcpip mailx inn + do + if [ ! -f /var/adm/packages/$i ] + then + PKG_TO_INSTALL="$PKG_TO_INSTALL $i" + fi + done +} + +# Args: user, editor +configure_trn() { + dialog --backtitle "$TITLE" --infobox "Configuro trn all'user $1..." 0 0 + + SHELL_USED="`basename \`cut /etc/passwd -f1,7 -d: | grep $1: | cut -f2 -d:\``" + USER_HOME="`cut /etc/passwd -f1,6 -d: | grep $1: | cut -f2 -d:`" + TRNRC="$USER_HOME/.trnrc" + + case $SHELL_USED in + bash) + if [ -f $USER_HOME/.bash_profile ] + then + PROF=$USER_HOME/.bash_profile + else + PROF=$USER_HOME/.profile + fi;; + zsh) + PROF=$USER_HOME/.zprofile;; + *) + PROF=$USER_HOME/.profile;; + esac + + if [ ! -f $PROF ] + then + :>$PROF + chown $1.mail $PROF + elif [ ! "`grep -x \". ~/.trnrc\" $PROF`" ] + then + echo -e "\n. ~/.trnrc" >>$PROF + fi + + save $TRNRC + + echo "EDITOR=\"$2\"" > $TRNRC + cat copi.trnrc >> $TRNRC + chown $1.mail $TRNRC +} + +# Args: user, editor +configure_elm() { + USER=$1 + EDIT=$2 + + dialog --backtitle "$TITLE" --infobox "Configuro elm all'user $USER..." 0 0 + + USER_HOME="`cut /etc/passwd -f1,6 -d: | grep $USER: | cut -f2 -d:`" + DIRRC="$USER_HOME/.elm" + ELMRC="$DIRRC/elmrc" + + mkdir -p $DIRRC -m 700 + chown $USER.mail $USERHOME $DIRRC + + save $ELMRC + + cat <<EOF >$ELMRC +# +# .elm/elmrc - options file for the ELM mail system +# +# Generated by $PKTNAME for $USER +# + +# For yes/no settings with ?, ON means yes, OFF means no + +# how to sort the alias list, "Name" by default +### aliassortby = Name + +# name of editor to use for replies that have text +alteditor = $EDIT + +# alternative addresses that I could receive mail from (usually a +# forwarding mailbox) and don't want to have listed... +### alternatives = + +# should the default be to delete messages we've marked for deletion? +alwaysdelete = ON + +# should the default be to keep unread messages in the incoming mailbox? +alwayskeep = ON + +# should the default be to store read messages to the "received" folder? +alwaysstore = OFF + +# should we use the "->" rather than the inverse video bar? +arrow = OFF + +# should the message disposition questions be displayed(ON) or +# auto-answered(OFF) with the default answers when we resync or +# change folders? +ask = OFF + +# would you like to be asked for Carbon-Copies information each msg? +askcc = OFF + +# attribution string for replies ('%s' is the author of original message) +attribution = %s wrote: + +# automatically copy message being replied to into buffer? +autocopy = ON + +# threshold for bouncing copies of remote uucp messages... +# zero = disable function. +### bounceback = 0 + +# This is used to determine if the builtin pager should be used on some +# messages even if you would usually use an external pager program. +# There are two ways of determining whether the builtin pager should be +# used. If you want any message that is shorter than "n" lines to use the +# internal pager, set the parameter to "n". If you want the builtin +# pager to be used if the message is "m" lines shorter than the number of +# lines on your screen set the parameter to be "-m". Setting the +# parameter to zero will result in the message always being sent through +# your external pager. +### builtinlines = -3 + +# where to save calendar entries +#calendar = /root/calendar + +# list of options that can be configured at the "o)ptions" screen +configoptions = ^_cdefsopyv_am_un + +# Should elm always ask the user to confirm before it appends +# messages to any existing file? +# This is used for both folders in the user's mail directory +# and ordinary files. +confirmappend = OFF + +# Should elm always ask the user to confirm before it creates +# any new files? +# This is used for both folders in the user's mail directory +# and ordinary files. +confirmcreate = OFF + +# Should elm ask for confirmation before it appends a message +# to an existing file that is not a folder in the user's Mail +# directory? +# This is used for ordinary files only and does not affect +# folders in the user's mail directory. +confirmfiles = OFF + +# Should elm ask for confirmation before it creates a new folder +# in the user's Mail directory? +# This is used only for folders in the user's mail directory and +# does not affect ordinary files. +confirmfolders = OFF + +# save a copy of all outbound messages? +copy = ON + +# name of editor for ~e command (when editor="builtin") +easyeditor = $EDIT + +# what editor to use ("none" means simulate Berkeley Mail) +editor = $EDIT + +# the character to use in the builtin editor for entering commands +### escape = ~ + +# save outbound messages by login name of sender/recipient even if the +# associated folder doesn't already exist? +### forcename = OFF + +# do we want to be able to mail out AT&T Mail Forms? +### forms = OFF + +# The full user name for outbound mail +### fullname = $PKTNAME User + +# should we keep folders from which all messages are deleted? +### keepempty = OFF + +# are we running on an HP terminal and want HOME, PREV, NEXT, etc...? +### keypad = OFF + +# local ".signature" file to append to appropriate messages... +localsignature = ~/.signature + +# where to save my mail to, default directory is "Mail" +maildir = ~/Mail + +# should we display the three-line 'mini' menu? +menu = ON + +# would you like a copy of a message you send to an alias you are on? +### metoo = OFF + +# when using the page commands (+ - <NEXT> <PREV>) change the current +# message pointer...? +### movepage = OFF + +# just show the names when expanding aliases? +names = OFF + +# when messages are copied into the outbound buffer, don't include headers? +noheader = ON + +# program to use for displaying messages ('builtin' is recommended) +### pager = builtin+ + +# start up by pointing to the first new message received, if possible? +### pointnew = ON + +# list of delivery precedences allowed, or empty to allow anything +# precedence may be followed by optional ":priority" specification +### precedences = + +# prefix sequence for indenting included message text in outgoing messages... +prefix = _:>_ + +# how to print a message ('%s' is the filename) +### print = /bin/cat %s | /usr/bin/lpr + +# prompt for a command after the external pager exits? +### promptafter = ON + +# Value by which message count is incremented while reading a new mailbox. +# Setting this value to a number larger than one will speed up the time it +# takes to read a large mailbox when using a slow terminal. +### readmsginc = 1 + +# where to save received messages to, default file is "=received" +receivedmail = =received + +# remote ".signature" file to append to appropriate messages... +remotesignature = ~/.signature + +# emulate the mailx message increment mode (only increment after +# something has been 'done' to a message, either saved or deleted, +# as opposed to simply each time something is touched)? +### resolve = ON + +# save messages, incoming and outbound, by login name of sender/recipient? +savename = ON + +# where to save copies of outgoing mail to, default file is "=sent" +sentmail = =sent + +# The shell to use for shell escapes +shell = /bin/sh + +# do we want dashes above signatures? (News 2.11 compatibility and convention) +### sigdashes = ON + +# time in seconds which Elm will wait after displaying a transient message +# and before erasing it. Can be 0 or positive integer. +### sleepmsg = 2 + +# are we running on an HP terminal and want softkeys available too? +# (this implies "keypad=ON" too) +### softkeys = OFF + +# how to sort folders, "Reverse Sent" by default +### sortby = Reverse-Sent + +# Set the main prompt timeout for resynching... +### timeout = 600 + +# display message title when displaying pages of message? +titles = ON + +# where to place temporary files, default directory is "/tmp" +### tmpdir = /tmp/ + +# are we good at it? 0=beginner, 1=intermediate, 2+ = expert! +userlevel = 0 + +# would you like to use termcap/terminfo ti/te entries? +usetite = ON + +# name of editor for ~v command (when editor="builtin") +visualeditor = $EDIT + +# enable the weedout list to be read? +### weed = ON + +# what headers I DON'T want to see, ever. +weedout = "*end-of-user-headers*" + +EOF + + chmod 600 $ELMRC + chown $USER.mail $ELMRC +} diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.funcs b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.funcs new file mode 100755 index 00000000000..7be4bdb4151 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.funcs @@ -0,0 +1,1303 @@ +#!/bin/bash +# $Id: copi.funcs,v 1.3 2001/01/15 22:24:26 tom Exp $ +# ComeOn Point Functions! v0.9.2 +# - usate da vari altri moduli ComeOn Point... +# +# AUTHOR: Beppe (beppe.dem@nsm.it) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +HOST=`hostname` +DOMAIN=`hostname -d` +PKTNAME="ComeOn Point Installer!" +COMEONDIR=/usr/lib/ComeOn + +AKASETUP=$COMEONDIR/point/.akasetup +COPIUSER=$COMEONDIR/point/.copi.user +EMSIFILE=$COMEONDIR/point/.emsi +PNTSETUP=$COMEONDIR/point/.pntsetup + +mkstemp() { + eval 'tmp_'$1'=`tempfile 2>/dev/null` || tmp_'$1'=/tmp/'$1'$$' +} + +# Args: [start_uid] +# Returns: $FOUND_UID +find_unused_uid() { + + if [ $1 ]; then + FOUND_UID=$1 + else + FOUND_UID=501 + fi + + while [ "`cut -f3 -d: /etc/passwd | grep -x $FOUND_UID`" ] + do + FOUND_UID=$[$FOUND_UID+1] + done +} + +int2fido() { + _RETVAL="`echo $1 | cut -f3 -d. | cut -c2-`:\ +`echo $1 | cut -f2 -d. | cut -c2-`/\ +`echo $1 | cut -f1 -d. | cut -c2-`" +} +int2fidonet() { + _RETVAL="`echo $1 | cut -f3 -d. | cut -c2-`:\ +`echo $1 | cut -f2 -d. | cut -c2-`/\ +`echo $1 | cut -f1 -d. | cut -c2-`@\ +`echo $1 | cut -f4- -d.`" +} +fido2int() { + _RETVAL="f\ +`echo $1 | cut -f2 -d '/'`.n\ +`echo $1 | cut -f1 -d '/' | cut -f2 -d:`.z\ +`echo $1 | cut -f1 -d '/' | cut -f1 -d:`" +} +fidonet2int() { + _RETVAL="f\ +`echo $1 | cut -f2 -d/ | cut -f1 -d@`.n\ +`echo $1 | cut -f1 -d/ | cut -f2 -d:`.z\ +`echo $1 | cut -f1 -d/ | cut -f1 -d:`.\ +`echo $1 | cut -f2 -d@`" +} +fidonetpoint2int() { + _RETVAL="p\ +`echo $1 | cut -f2 -d. | cut -f1 -d@`.f\ +`echo $1 | cut -f2 -d/ | cut -f1 -d.`.n\ +`echo $1 | cut -f2 -d: | cut -f1 -d/`.z\ +`echo $1 | cut -f1 -d/ | cut -f1 -d:`.\ +`echo $1 | cut -f2 -d@`.org" +} + +# Parameters: fqdn +configure_loopback() { + dialog --backtitle "$TITLE" --infobox "Configuro la rete (in modo loopback)..." 0 0 + + FQDN=$1 + HOST=`echo $FQDN | cut -f1 -d.` + DOMAIN=`echo $FQDN | cut -f2- -d.` + + save /etc/hostname + echo $FQDN >/etc/HOSTNAME + export HOSTNAME=$FQDN + hostname $HOST + + save /etc/rc.d/rc.inet1 + cat <<EOF >/etc/rc.d/rc.inet1 +#! /bin/sh +# +# rc.inet1 This shell script boots up the base INET system. + +# Attach the loopback device. +/sbin/ifconfig lo 127.0.0.1 +/sbin/route add -net 127.0.0.0 + +# End of rc.inet1 +EOF + chmod 755 /etc/rc.d/rc.inet1 + + + save /etc/networks + cat <<EOF >/etc/networks +# +# networks This file describes a number of netname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# + +loopback 127.0.0.0 + +# End of networks. +EOF + chmod 644 /etc/networks + + + save /etc/hosts + cat <<EOF >/etc/hosts +# +# hosts This file describes a number of hostname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# On small systems, this file can be used instead of a +# "named" name server. Just add the names, addresses +# and any aliases to this file... +# +# By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1 +# should NEVER be named with the name of the machine. It causes problems +# for some (stupid) programs, irc and reputedly talk. :^) +# +# But we (ComeOn Linux!) says that this is not valid for you, because +# you resulted to have not a network at the installation time. + +# For loopbacking. +127.0.0.1 localhost $FQDN $HOST + +# End of hosts. +EOF + chmod 644 /etc/hosts + + save /etc/resolv.conf + echo domain $DOMAIN >/etc/resolv.conf + chmod 644 /etc/resolv.conf + + save /etc/host.conf + cat <<EOF >/etc/host.conf +order hosts,bind +multi on +EOF + chmod 644 /etc/host.conf + + /etc/rc.d/rc.inet1 +} + +# Private function, adds an user to a group. Args: user, group +add_to_group() { + + if [ ! "`groups \"$1\" | grep \" $2 \"`" ] + then + USERS="`grep \"$2:\" /etc/group | cut -s -f4 -d:`" + + mkstemp group + if [ "$USERS" ]; then + sed "/$2:/s/:$USERS/:$USERS,$1/" /etc/group >$tmp_group + else + sed "/$2:/s/:/:$1/3" /etc/group >$tmp_group + fi + + save /etc/group + mv $tmp_group /etc/group + fi +} + +# Arguments: user, fullname +add_postmaster() { + dialog --backtitle "$TITLE" --infobox "Creo l'user principale e/o ne adatto le informazioni..." 0 0 + + USER="$1" + NAME="$2" + HOMEDIR="/home/$USER" + +# echo "$USER" >$COPIUSER # you've to do this in any other location + ENTRY="`cut /etc/passwd -s -f1,2,5 -d: | grep $USER:`" + if [ "$ENTRY" ] + then + OLDNAME="`echo $ENTRY | cut -f3 -d:`" + PASW="`echo $ENTRY | cut -f2 -d:`" + if [ "$OLDNAME" != "$NAME" ] + then + mkstemp passwd + sed "/$USER:$PASW:/s/:$OLDNAME:/:$NAME:/" /etc/passwd >$tmp_passwd + save /etc/passwd + mv $tmp_passwd /etc/passwd + fi + + add_to_group "$USER" mail + else + if [ -f /bin/bash ]; then USERSHELL=/bin/bash; else USERSHELL=""; fi + find_unused_uid + echo "$USER:*:$FOUND_UID:12:$NAME:$HOMEDIR:$USERSHELL" >>/etc/passwd + mkdir -p $HOMEDIR -m 755 + chown $USER.mail $HOMEDIR + fi +} + +comment_nntp_in_inetdconf() { + dialog --backtitle "$TITLE" --infobox "Commento la riga 'nntp' in /etc/inetd.conf..." 0 0 + + mkstemp inetd + sed "/in.nntpd/s/nntp/#&/" /etc/inetd.conf >$tmp_inetd + save /etc/inetd.conf + mv $tmp_inetd /etc/inetd.conf + killall -1 inetd +} + +# Args: organization +set_organization() { + dialog --backtitle "$TITLE" --infobox "Imposto l' origin..." 0 0 + + ORGANIZATION=/etc/organization + save $ORGANIZATION + + NEW_ORGANIZATION="$1" + echo "$NEW_ORGANIZATION" >$ORGANIZATION +} + +create_innconf_newsfeeds_distrib() { + dialog --backtitle "$TITLE" --infobox "Creo i files di configurazione principali di InterNet News (inn)..." 0 0 + +# File: inn.conf + INNCONF=~news/inn.conf + save $INNCONF + + cat <<EOF >$INNCONF +## $Revision: 1.3 $ +## inn.conf -- inn configuration data +## Format: +## <parameter>:<whitespace><value> +## Used by various programs and libinn. The following parameters are defined: +## domain Local domain, without leading period. +## fromhost What to put in the From line; default is FQDN +## of the local host. +## moderatormailer Where to mail moderated postings, if not found +## in the moderators file; see moderators(5). +## pathhost What to put in the Path and Xref headers; default +## is FQDN of the local host. +## organization If $ORGANIZATION doesn't exist. What to put in +## the Organization header if blank. +## server If $NNTPSERVER doesn't exist. Local NNTP server +## host to connect to. +## + +server: $HOST.$DOMAIN +domain: $DOMAIN +pathhost: $HOST +EOF + + chmod 444 $INNCONF + chown news.news $INNCONF + + +# File: newsfeeds + NEWSFEEDS=~news/newsfeeds + save $NEWSFEEDS + + echo -e "ME:*::\n" >$NEWSFEEDS + + IAKA=1 + OK=1 + while [ "$OK" != 0 ] + do + AKA="`cut $AKASETUP -f$IAKA -d:`" + if [ ! "$AKA" ] + then + OK=0 + else + if [ $IAKA != 1 ] + then + TMPAKA="`echo $AKA | cut -f-4 -d.`" + SENDCRON="$SENDCRON $TMPAKA" + echo -n "$TMPAKA/" >>$NEWSFEEDS + fi + TMPAKA="`echo $AKA | cut -f1-2 -d.`" + if [ $IAKA = 1 ]; then + SENDCRON="$SENDCRON $TMPAKA" + fi + echo -e "$TMPAKA\\" >>$NEWSFEEDS + echo -e "\t:!*,`echo $AKA | cut -f4 -d.`.*\\" >>$NEWSFEEDS + echo -e "\t:Tf,Wfb,B4096/1024:\n" >>$NEWSFEEDS + fi + IAKA=$[$IAKA+1] + done + + chmod 444 $NEWSFEEDS + chown news.news $NEWSFEEDS + + +# File: distrib.pats + DISTRIB=~news/distrib.pats + save $DISTRIB + + IAKA=1 + OK=1 + while [ "$OK" != 0 ]; do + AKA="`cut $AKASETUP -f$IAKA -d:`" + IAKA=$[$IAKA+1] + if [ "$AKA" = "" ]; then + OK=0 + else + DOM="`echo $AKA | cut -f4 -d.`" + echo "10:$DOM.*:$DOM" >>$DISTRIB + fi + done + + chmod 444 $DISTRIB + chown news.news $DISTRIB +} + +# Args: num_of_days +create_expirectl() { + dialog --backtitle "$TITLE" --infobox "Imposto il periodo di transito dei messaggi..." 0 0 + + EXPIRECTL=~news/expire.ctl + save $EXPIRECTL + + EXPIRE_DAYS=$1 + + echo -e "/remember/:14\n\n*:A:2:$EXPIRE_DAYS:$EXPIRE_DAYS" >$EXPIRECTL + + chmod 440 $EXPIRECTL + chown news.news $EXPIRECTL +} + +create_nnrpaccess() { + dialog --backtitle "$TITLE" --infobox "Rendo accessibili le news in lettura..." 0 0 + + NNRPACCESS=~news/nnrp.access + save $NNRPACCESS + + cat <<EOF >$NNRPACCESS +## $Revision: 1.3 $ +## nnrp.access - access file for on-campus NNTP sites +## Format: +## <host>:<perm>:<user>:<pass>:<groups> +## Connecting host must be found in this file; the last match found is +## used, so put defaults first. +## <host> Wildcard name or IP address +## <perm> R to read; P to post +## <user> Username for authentication before posting +## <pass> Password, for same reason +## <groups> Newsgroup patterns that can be read or not read +## To disable posting put a space in the <user> and <pass> fields, since +## there is no way for client to enter one. +## +## Default is no access, no way to authentication, and no groups. +# *:: -no- : -no- :!* +## Foo, Incorporated, hosts have no password, can read anything. +# *.foo.com:Read Post:::* + +*:: -no- : -no- :!* +localhost.$DOMAIN:Read Post:::* +$HOST.$DOMAIN:Read Post:::* + +EOF + + chmod 440 $NNRPACCESS + chown news.news $NNRPACCESS +} + +create_hostsnntp() { + dialog --backtitle "$TITLE" --infobox "Rendo accessibili le news in scrittura..." 0 0 + + HOSTSNNTP=~news/hosts.nntp + save $HOSTSNNTP + + cat <<EOF >$HOSTSNNTP +## $Revision: 1.3 $ +## hosts.nntp - names and addresses that feed us news +## Format +## <host>: +## <host>:<password> +## <host> can be a name or IP address; no wildcards. Any hosts not +## listed here are handed off to nnrpd. + +$HOST.$DOMAIN: + +EOF + + chmod 440 $HOSTSNNTP + chown news.news $HOSTSNNTP +} + +create_dirs_and_files() { + + CURMASK=`umask` + . ./copi.wheel + pushd /var/log >/dev/null + mkdir -p news -m 755; chown news.news news + cd /var/log/news; mkdir -p OLD -m 755; chown news.news OLD + cd /var/spool; mkdir -p news -m 775; chown news.news news + cd /var/spool/news; umask 02 + mkdir -p out.going control junk in.coming + chown news.news out.going control junk in.coming + cd in.coming; mkdir -p bad tmp; chown news.news bad tmp; umask $CURMASK + ln -sf ~news /usr/local/lib/ + ln -sf ~news/inews /usr/bin/ + chmod 1777 /var/tmp + + cd /var/spool + mkdir -p uucppublic + chown uucp.uucp uucppublic + chmod 1777 uucppublic + + cd ~news + touch history history.dir history.pag errlog log + chown news.news history* log errlog + chmod 664 history* log errlog + + save active + echo "control 0000000000 0000000001 y" > active + echo "junk 0000000000 0000000001 y" >> active + chown news.news active + + save active.times + echo "control 814573260 usenet" > active.times + echo "junk 814573260 usenet" >> active.times + chown news.news active.times + + save newsgroups + :>newsgroups + chown news.news newsgroups + + popd >/dev/null +} + +install_rcnews() { + dialog --backtitle "$TITLE" --infobox "Avvio l'InterNet News daemon (innd) e l'installo negli script di boot, attendere... attenzione che e' probabile che in questa fase non sia possibile entrare da un'altra VC come root." 0 0 + + RCLOCAL=/etc/rc.d/rc.local + RCNEWS=~news/etc/rc.news + RCLINE="`grep $RCNEWS $RCLOCAL`" + + if [ ! "$RCLINE" -o `echo $RCLINE | cut -c1` = '#' ] + then + save $RCLOCAL + echo -e "\n$RCNEWS" >>$RCLOCAL + fi + + cp copi.rcnews $RCNEWS + chmod 550 $RCNEWS + chown news.news $RCNEWS + + if [ -f ~news/innd/innd.pid ]; then + su -l news -c "bin/ctlinnd shutdown x" >/dev/null + sleep 2 # wait for server to shutdown + fi + + killall innd 2>/dev/null # make sure it's gone down + $RCNEWS +} + +install_crontab_news() { + dialog --backtitle "$TITLE" --infobox "Imposto la crontab di news per l'automantenimento del sistema (cancellazione giornaliera dei messaggi vecchi et similia)..." 0 0 + + + if [ -f $COPIUSER ]; then + POSTMST="`cat $COPIUSER`" + else + POSTMST="root" + fi + + NEWSHOME=~news + save /var/spool/cron/crontabs/news + cat <<EOF | crontab - -u news +#------------------------------------------------------------------------------- +# /var/spool/cron/crontabs/news +SHELL=/bin/sh +# +MAILTO=$POSTMST +# +#=============================================================================== +# +# inn-1.4 (Inter Net News) +# +#=============================================================================== +# +#------------------------------------------------------------------------------- +# Daily housekeeping ... expires news and other things ... +#------------------------------------------------------------------------------- +# +51 16 * * * $NEWSHOME/bin/news.daily < /dev/null +# +#------------------------------------------------------------------------------- +# offer spooled news - that was spooled into the incoming directory when the +# innd server wasn't available - again to the innd server. +#------------------------------------------------------------------------------- +# +18 * * * * $NEWSHOME/rnews -U +# +#------------------------------------------------------------------------------- +# send news batches to your fidonet(-like) news feeds +#------------------------------------------------------------------------------- +# +49 16 * * * $NEWSHOME/send-ifmail$SENDCRON +# +#------------------------------------------------------------------------------- +# +EOF + + echo $NEWSHOME/send-ifmail$SENDCRON >/etc/point.ifsend +} + +# Private func +# Args: dir_with_sources, bindir, cfgdir, logdir, version +copi.ifmCfg() { + + SRCDIR="$1" + BINDIR="$2" + CFGDIR="$3" + LOGDIR="$4" + VERSION="$5" + SOURCE="$SRCDIR/CONFIG" + CONFIGFILE="$CFGDIR/config" + + cat <<EOF >$SOURCE +# Compile-time configuration for ifmail FidoNet mailer and gateway +COPYRIGHT = "Eugene G. Crosser, 1993-1995" +VERSION = "$VERSION" + +# Main configuration file. This default may be overwritten by -I key. +CONFIGFILE = $CONFIGFILE + +# Debug messages turned on by -x key are written here. +# Some error messages may occationally appear here too. +# This may be changed in the 'config' file. +DEBUGFILE = "$LOGDIR/ifdebug" + +# Procession log. Usually gets several lines for each invocation. +# Also look for error diagnostics here. If HAS_SYSLOG defined, +# only stdout and stderr from the packers and unpackers go to this +# file, while actual logging is done via syslog() calls. +# This may be changed in the 'config' file. +LOGFILE = "$LOGDIR/iflog" + +# Use syslog() facility codes for mail gate, news gate and ifcico. +# Define -DHAS_SYSLOG (see below) +#MAILLOG = LOG_MAIL +MAILLOG = LOG_LOCAL0 +#NEWSLOG = LOG_NEWS +NEWSLOG = LOG_LOCAL0 +#CICOLOG = LOG_UUCP +CICOLOG = LOG_LOCAL0 + +# Directory where UUCP lock files reside. +#LOCKDIR = "/var/lock" +LOCKDIR = "/var/spool/uucp" + +# Directory from which file requests are resolved. +# This may be changed from the 'config' file. +#PUBDIR = "/home/ftp/pub" +PUBDIR = "/var/spool/uucppublic" + +# Compile-time system-dependant options. + +# If you specify "-DHAS_NDBM_H", ndbm calls will be used instead +# of dbm ones, and the feature will be activated of Cnews log processing +# to add entries to SEEN-BY if echo message is exported to several FTN +# nodes by Cnews mechanism. This works with INN too. + +# If you specify "-DHAS_STATFS" or "-DHAS_STATVFS", statfs() (or statvfs() +# respectivly) call will be used to check available disk space. For statfs() +# call, you must also specify which .h file to use: "-DSTATFS_IN_VFS_H" or +# "-DSTATFS_IN_STATFS_H" or "-DSTATFS_IN_STATVFS_H" or "-DSTATFS_IN_MOUNT_H". +# For statvfs() call, statvfs.h is included. + +# define -DSCO_STYLE_STATFS if your statfs() call requires 4 arguments. + +# If you specify "-DHAS_SETSID", setsid() call is used to detach from the +# control terminal. Otherwise setpgrp() call is used, and in this case you +# may specify "-DBSD_SETPGRP" to use BSD-style call. Used in ifcico only. + +# If you specify "-DDONT_HAVE_TM_GMTOFF", timezone offset will be calculated +# from the difference between the results of localtime() and gmtime() calls +# instead of using tm_gmtoff field of struct tm. + +# If you specify "-DDONT_HAVE_GETOPT", local definitions for getopt will +# be used (but not the function itself) + +# For ifcico, you must specify -DHAS_TERMIOS_H (preffered), -DHAS_TERMIO_H +# or -DHAS_SGTTY_H to use POSIX-y, SysV-ish of BSD-ish terminal control. + +# in SVR4 you should specify -DHAS_DIAL (and maybe -DHAS_DIAL_H) to use +# dial() library function instead of regular open(). Lock files are +# not used in this case. + +# for uucp lock files, you must specify either -DASCII_LOCKFILES or +# -DBINARY_LOCKFILES + +# define -DHAS_FSYNC if there is a fsync() system call (to update .flo +# files) + +# define -DPARANOID if you want iftoss to deny packets with wrong password. + +# define -DRELAXED if you want iftoss to accept packets that are not +# addressed to your node. + +# define -DFORCEINTL if you want ifmail to create ^aINTL even if this is +# not an inter-zone netmail. + +# define -DNEED_UUCPFROM if your MTA needs a uucp "From" line in mail. + +# define -DHAS_TCP if you want ifmail to be able to originate outgoing +# connections over TCP/IP (socket library needed) + +# define -DHAS_TERM if you want ifmail to be able to originate outgoing +# connections over TERM (TCP "extention", client.a needed) + +# define -DHAS_REGEX_H or -DHAS_LIBGEN_H if you have either of these +# header files for regular expression handlers. + +# define -DHAS_SYSLOG to use syslog() instead of logging to files. +# Files are necessary anyway, external programs' stdout and stderr +# are redirected there. + +# define -DNEED_BSY if you want ifpack and ifcico to create .bsy +# files preventing simultaneous processing of the same node. + +# define -DNEED_FORK if your system is uncapable of getting rid of the +# control terminal unless you are running not as a group leader. + +# define -DREGEX_NEED_CARET if your re_comp/re_exec require that the +# mask starts with a '^' to match the beginning of the string. + +# as of June 1994, FreeBSD has a nasty bug in the kernel lseek() code: +# if you make lseek() to a point before the start of the file, it +# succeeds and the writing point becomes negative. Fortunately, +# subsequent write()s fail :-). To overwork this, define +# -DNEGATIVE_SEEK_BUG, this will add an extra fseek() to restore +# zero writing point where necessary. + +# define -DNEED_TRAP if you want debugging information when the programs +# are aborted with segmentation fault etc. Currently tested and works +# only with Linux, and only with newer kernels (1.1.20+) + +# define -DSLAVE_SENDS_NAK_TOO if you have problems answering incoming +# EMSI sessions originated by FrontDoor. FrontDoor does not follow +# EMSI specifications when originating calls, this is a workaround. + +# define -DDONT_HAVE_DIRENT if there is no working opendir()/readdir() +# etc. in your libc. You will aso need to add "dirent.o" to the NEEDED +# (see below). + +# Linux: +OPTS = -DHAS_STATFS -DSTATFS_IN_VFS_H -DHAS_SETSID -DHAS_NDBM_H \\ + -DDONT_HAVE_TM_GMTOFF -DHAS_TERMIOS_H -DASCII_LOCKFILES \\ + -DHAS_FSYNC -DHAS_IOCTL_H -DHAS_REGEX_H -DHAS_TCP \\ + -DFORCEINTL -DHAS_SYSLOG -DNEED_UUCPFROM -DNEED_BSY \\ + -DREGEX_NEED_CARET -DNEED_TRAP -DSLAVE_SENDS_NAK_TOO \\ + -DNEED_FORK -DLESS_RFC_KLUDGES + +# 386BSD: +#OPTS = -DHAS_STATFS -DSTATFS_IN_MOUNT_H -DHAS_SETSID -DHAS_NDBM_H \\ + -DHAS_TERMIOS_H -DASCII_LOCKFILES -DHAS_FSYNC -DHAS_IOCTL_H \\ + -DHAS_REGEX_H -DHAS_TCP -DHAS_SYSLOG -DNEED_UUCPFROM \\ + -DNEED_BSY -DNEED_FORK -DNEGATIVE_SEEK_BUG \\ + -DREGEX_NEED_CARET + +# SVR4: +#OPTS = -DHAS_STATVFS -DDONT_HAVE_TM_GMTOFF -DHAS_SETSID -DHAS_NDBM_H \\ + -DHAS_TERMIOS_H -DHAS_DIAL -DHAS_DIAL_H -DASCII_LOCKFILES \\ + -DHAS_FSYNC -DHAS_IOCTL_H -DHAS_LIBGEN_H -DHAS_TCP \\ + -DHAS_SYSLOG -DREGEX_NEED_CARET +# SunOS: +#OPTS = -DHAS_STATFS -DSTATFS_IN_VFS_H -DHAS_SETSID -DHAS_NDBM_H \\ + -DDONT_HAVE_GETOPT -DHAS_TERMIOS_H -DASCII_LOCKFILES \\ + -DHAS_FSYNC -DHAS_TCP -DHAS_SYSLOG \\ + -DREGEX_NEED_CARET + +# SCO Unix 3.2v4.2 +#OPTS = -DHAS_STATFS -DSTATFS_IN_STATFS_H -DSCO_STYLE_STATFS \\ + -DHAS_TERMIOS_H -DDONT_HAVE_TM_GMTOFF -DDO_NEED_TIME \\ + -DDONT_HAVE_GETOPT -DASCII_LOCKFILES -DHAS_IOCTL_H \\ + -DHAS_TCP -DHAS_SYSLOG \\ + -DREGEX_NEED_CARET + +# ISC Unix 3.2 v3.0 +#OPTS = -DHAS_STATFS -DSTATFS_IN_STATFS_H -DHAS_TERMIO_H \\ + -DDONT_HAVE_TM_GMTOFF -DDONT_HAVE_GETOPT \\ + -DASCII_LOCKFILES -DHAS_IOCTL_H -DSCO_STYLE_STATFS \\ + -DUSE_POLL -DHAS_NET_ERRNO_H -DSHORT_PID_T \\ + -DHAS_TCP -DHAS_SYSLOG \\ + -DREGEX_NEED_CARET +# On ISC, if you are suing gcc, you can run into a trouble with sscanf() +# function. It appears that sscanf(string,"%d.%d",&int1,&int2) where +# string is a constant segfaults unless you specify "-fwritable-strings" +# to gcc. I would say that this is a bug in ISC libc. If nessecary, +# add this to the defines above. If you have ISC version 4.0 or later, +# you can add "-posix", remove "-DSHORT_PID_T" and specify "-DHAS_TERMIOS" +# to get benefit of posix terminal control. + +# for make install, where to put binaries and what owner to set +BINDIR = $BINDIR +OWNER = fnet +GROUP = uucp +MODE = 0711 +SMODE = 4711 + +INSTALL = install +RANLIB = ranlib +#RANLIB = touch +SHELL = /bin/sh +ECHO = echo -e +CC = gcc +YACC = bison -y +#YACC = yacc +LEX = flex +#LEX = lex +AWK = awk +TAR = tar + +#CFLAGS = -g -Wall +# Linux, 386BSD, SunOS: +CFLAGS = -O2 -Wall -m486 -s +# SVR4: +#CFLAGS = -O -Xa + +LDFLAGS = -s + +# For LIBS, you may need to add "-lfl" if you are using flex 2.4.x +# If you need TERM also add e.g. "/usr/src/term112/client.a" + +# Linux +LIBS = -ldbm +# SunOS: +#LIBS = +# 386BSD: +#LIBS = -lgdbm -lgnuregex +# SVR4 +#LIBS = -ldbm -lform -lnsl -lsocket -lc -L/usr/ucblib -lucb +# SCO +#LIBS = -ldbm -lsocket -lintl +# ISC +#LIBS = -lcposix -lmalloc -ldbm -linet -lPW + +INCLUDES = -I\${INCDIR} +# ISC +#INCLUDES = -I/usr/include/rpcsvc -I\${INCDIR} + +# What programs are absent at your system? +#NEEDED = strcasestr.o strncasecmp.o strcasecmp.o rename.o mkdir.o usleep.o \\ + regexpr.o +# Linux +NEEDED = +# SVR4 +#NEEDED = regexpr.o +# SCO +#NEEDED = strcasestr.o strncasecmp.o strcasecmp.o usleep.o regexpr.o +# SunOS and 386BSD +#NEEDED = signal.o +# ISC +#NEEDED = usleep.o regexpr.o vsyslog.o +EOF + +} + +# Args: package.tgz, bin_dir, cfg_dir, log_dir, version, where_to_put_src +install_ifmail() { + dialog --backtitle "$TITLE" --infobox "Installo e compilo Ifmail..." 0 0 + + AKAPRI="`cut $AKASETUP -f1 -d:`" + int2fido $AKAPRI + AKAPRIFTN=$_RETVAL + + if [ -f $COPIUSER ] + then + POST="`cat $COPIUSER`" + else + POST=root + fi + + TGZ="$1" + BINDIR="$2" + CFGDIR="$3" + LOGDIR="$4" + VERSION="$5" + SRC="$6" + +################################################### +## passwd e group +#################################### + + if [ "`cut /etc/passwd -f1 -d: | grep -x fnet`" ] + then + mkstemp passwd + grep -v "fnet:" /etc/passwd >$tmp_passwd + save /etc/passwd + mv $tmp_passwd /etc/passwd + fi + + find_unused_uid 92 + echo "fnet:*:$FOUND_UID:14:Fidonet Gate:$BINDIR:" >>/etc/passwd + + +#################################################### +#### dirs and files +################################### + mkdir -p $CFGDIR $LOGDIR /var/spool/ifmail/{BAK,nl.d} $BINDIR/magic + chown fnet.uucp $BINDIR{,/magic} $CFGDIR $LOGDIR /var/spool/ifmail/{,BAK,nl.d} + touch $LOGDIR/{ifdebug,iflog,sysiflog,TheLog} + chown fnet.uucp $LOGDIR/{ifdebug,iflog,sysiflog,TheLog} + +########################################################################## +#### COMPILAZIONE +#################################### + + SRC="$SRC/`tar zxvf $TGZ -C $SRC | head -1`" +# ora in $SRC c'e' il path completo dei source Ifmail + + copi.ifmCfg $SRC $BINDIR $CFGDIR $LOGDIR $VERSION + patch -N -d $SRC <ifpatch 2>/dev/null + make clean -C $SRC + make -C $SRC +########################################################################## +#### INSTALLAZIONE +#################################### + make install -C $SRC +} + + +# Args: bin_dir, cfg_dir, log_dir, passwords +# note: passwords are colon-separated (":") +configure_ifmail() { + dialog --backtitle "$TITLE" --infobox "Configuro Ifmail..." 0 0 + + BINDIR=$1 + CFGDIR=$2 + LOGDIR=$3 + PASSWDS=$4 + + SPD="` cut $EMSIFILE -f1`" + SYSNAME="` cut $EMSIFILE -f2`" + LOCATION="` cut $EMSIFILE -f3`" + COMPLETE_PHONE="` cut $EMSIFILE -f4`" + INTERCOUNTRYPREF="`cut $EMSIFILE -f5`" + LONG_DIST_PREFIX="`cut $EMSIFILE -f6`" + NODEFLAGS="` cut $EMSIFILE -f7`" + DIALSTRING="` cut $EMSIFILE -f8`" + SYSOP="` cut $EMSIFILE -f9`" + + COUNTRYPREF="`echo $COMPLETE_PHONE | cut -f1 -d'-'`" + PREF="` echo $COMPLETE_PHONE | cut -f2 -d'-'`" + PHONE="` echo $COMPLETE_PHONE | cut -f3 -d'-'`" + + FNETCFG=$CFGDIR/config + AREAS=$CFGDIR/Areas + + POINTS="`cat $PNTSETUP`" + POST="`cat $COPIUSER`" + AKAPRI="`cut $AKASETUP -f1 -d:`" + int2fido "$AKAPRI" + AKAPRIFTN="$_RETVAL" + +#invece di "cp $SRC/misc/inn/send-ifmail ~news" +#----------------------------------------------------------------------------- + cp copi.sendifm1 ~news/send-ifmail + cat <<EOF >>~news/send-ifmail +-p"$BINDIR/ifnews %s" \\ +EOF + cat copi.sendifm2 >>~news/send-ifmail + + chmod 550 ~news/send-ifmail + chown news.news ~news/send-ifmail + +#invece di "cp $SRC/misc/contrib/ifreq $BINDIR" +#----------------------------------------------------------------------------- + cp copi.ifreq1 $BINDIR/ifreq + cat <<EOF >>$BINDIR/ifreq +# ifcico-config-file: +\$config = "$CFGDIR/config"; + +# change this to the default node, where requests should go to. +\$node = "$AKAPRIFTN"; +EOF + cat copi.ifreq2 >>$BINDIR/ifreq + + chmod 755 $BINDIR/ifreq + chown fnet.uucp $BINDIR/ifreq + +#invece di "cp $SRC/misc/contrib/ifman $BINDIR" +#----------------------------------------------------------------------------- + cp copi.ifman1 $BINDIR/ifman + cat <<EOF >>$BINDIR/ifman +\$cfgfile="$CFGDIR/config"; # where the config is +\$ifowner="fnet"; # who is the owner of the ifmail + +EOF + cat copi.ifman2 >>$BINDIR/ifman + + chmod 755 $BINDIR/ifman + chown fnet.uucp $BINDIR/ifman + +#invece di "cp $SRC/misc/contrib/ifpoll $BINDIR" +#----------------------------------------------------------------------------- + cp copi.ifpoll1 $BINDIR/ifpoll + cat <<EOF >>$BINDIR/ifpoll +FIDOPATH=$BINDIR +LOGPATH=$LOGDIR + +# sysop of fido stuff +IFCICO_SYSOP=$POST + +# my boss node (default address to poll) +NODE=$AKAPRI +EOF + cat copi.ifpoll2 >> $BINDIR/ifpoll + + chmod 755 $BINDIR/ifpoll + chown fnet.uucp $BINDIR/ifpoll + + +######################################################### +##### se in syslog.conf non c'e' "local0.*", lo aggiunge +################################ + + SYSLOG="`grep \"local0.* \" /etc/syslog.conf`" + SYSCHECK_A="`echo \"$SYSLOG\" | cut -f1 | grep -x \"local0.*\"`" + SYSCHECK_B="`echo \"$SYSLOG\" | cut -f2- | grep $LOGDIR/sysiflog`" + MYSYSLOG="local0.*\t\t\t\t\t$LOGDIR/sysiflog" + + if [ ! "$SYSCHECK_A" -o ! "$SYSCHECK_B" ] + then + echo -e "\n# For ifmail" >> /etc/syslog.conf + echo -e "$MYSYSLOG" >>/etc/syslog.conf + killall -1 syslogd + fi + + +######################## + save $AREAS + :> $AREAS + chown fnet.uucp $AREAS + + save $FNETCFG + cat <<EOF >$FNETCFG +# Configuration file for ifmail (ifgate+ifcico) package by Eugene Crosser +# Compile-time default name of this file may be overridden by -I key. +# +# Lines with the first nonblank character '#' are comments. +# +# Log file name. Overrides compile-time default. +logfile $LOGDIR/iflog + +# Debug file name. Overrides compile-time default. +debugfile $LOGDIR/ifdebug + +# Debugging verbosity level (is overidden by -x key). Default is 0. +# WARNING: if >0 your messages will go in /tmp/ifmail !!!!!!!!!!!!!!!!!! +verbose 0 + +# The first is the main address: +EOF +#---------------------------- + + AKA="any" + IAKA=0 + while [ "$AKA" ] + do + IAKA=$[$IAKA+1] + AKA="`cut $AKASETUP -f$IAKA -d:`" + if [ "$AKA" ] + then + int2fidonet $AKA + AKAFTN="`echo $_RETVAL | cut -f1 -d.`" + echo "# aka for `echo $AKAFTN | cut -f2 -d '@'`" >> $FNETCFG + + POINT="`echo $POINTS | cut -f$IAKA -d:`" + + AKAFTN="`echo $AKAFTN | cut -f1 -d '@'`.$POINT@`echo $AKAFTN | cut -f2 -d '@'`" + + echo "address $AKAFTN" >> $FNETCFG + fi + done + +#---------------------------- + cat <<EOF >>$FNETCFG + +# Passwords for nodes. Not checked by iftoss (unless -DPARANOID specified +# at compile-time), checked by ifcico. +# Inserted into outgoing mail packets, EMSI and yoohoo packets. +EOF +#---------------------------- + + AKA="any" + IAKA=0 + while [ "$AKA" ] + do + IAKA=$[$IAKA+1] + AKA="`cut $AKASETUP -f$IAKA -d:`" + if [ "$AKA" ] + then + int2fido $AKA + AKAFTN=$_RETVAL + + PASSWD="`echo $PASSWDS | cut -f$IAKA -d:`" + if [ "$PASSWD" ] + then + echo "password $AKAFTN $PASSWD" >> $FNETCFG + fi + fi + done + +#---------------------------- + cat <<EOF >>$FNETCFG + +# Include config extention file (here: file with real passwords). +# Includes may be nested. If the nesting is cyclic, the program cycles too. +# You are warned. +# include $CFGDIR/passwds + +# System alias file - try to fetch ftn-style aliases from there. +# If "from" address of a message from FidoNet matches _right_ side +# of some entry in sysalias file, then the Reply-To: header is created +# in the RFC message with the name part taken from the left side of the +# sysalis entry and domain part taken from myfqdn (below). E.g., if a +# fidonet message comes from "John Smith of 1:234/567.89@fidonet" and +# there is an entry in the sysalias file: +# "jsmith: John.Smith@p89.f567.n234.z1.fidonet.org" +# and fqdn value is "pccross.msk.su", then the resulting message will +# contain a line: "Reply-To: jsmith@pccross.msk.su". +sysalias /etc/aliases + +# This host fully qualified domain name to add to the alias above +myfqdn `hostname -f` + +# Directory for incoming packets/files: +inbound /var/spool/ifmail/inb +# Directories for "listed" and "protected" sessions +listinbound /var/spool/ifmail/inb +protinbound /var/spool/ifmail/inb + +# Directory for outgoing packets (default domain and zone): +# other zones will be like "/var/spool/ifmail/outb.003", +# other domains will be like "/var/spool/ifmail/<domain>.<zone>" +outbound /var/spool/ifmail/outb + +# Directory from which the file requests are satisfied +public /var/spool/uucppublic + +# Directory with executables to satisfy "magic" file requests +# if requested a file present in this directory, it will be +# executed and stdout sent to the remote system. It is dangerous! +# You are warned. +magic $BINDIR/magic + +# Primary nodelist (serves "outbound" directory and domain from the +# first "address" statement). Name expanded with ".NNN" if neccessary. +nodelist /var/spool/ifmail/nl.d/`cut $AKASETUP -f1 -d: | cut -f4 -d.`.ndl + +# Secondary nodelists and nodelists for other domains. +# use directory name from the first "nodelist" statement. +# filename originating address +EOF +#---------------------------- + + AKA="any" + IAKA=0 + while [ "$AKA" ] + do + IAKA=$[$IAKA+1] + AKA="`cut $AKASETUP -f$IAKA -d:`" + if [ "$AKA" ] + then + int2fidonet $AKA + AKAFTN="`echo $_RETVAL | cut -f1 -d.`" + echo -e "nodelist `echo $AKAFTN | cut -f2 -d '@'`.ndl\t$AKAFTN" >> $FNETCFG + fi + done + +#---------------------------- + cat <<EOF >>$FNETCFG + +# domain translations, just context substitution. Leading dot recommended. +# May contain '@'-sign too. First matching used. +# NOTE: If you specify at least one domtrans line, there will be _NO_ +# default for fidonet <--> fidonet.org. Don't forget to specify it +# explicitly as a last line. +# FTN side Internet side +#domtrans f720.n335.z2.fidonet.org giuda.deis.unical.it +#domtrans .fidonet .fidonet.org + +# Automatically updated alias database. If omitted or inaccessible, +# ^aREPLYADDR and ^aREPLYTO kludges are generated in fido messages. +database /var/spool/ifmail/ifdbm + +# Sequencer file (used to generate unique IDs) +sequencer /var/spool/ifmail/seq + +# Areas file (format: "AREA newsgroup distribution") +areas $CFGDIR/Areas + +# Bad groups prefixes - do not pass to fido if appear in Newsgroups header +# This is NOT the same as "!news.group" in the cnews "sys" file. +# badgroup relcom.ads. +# badgroup relcom.commerce. + +# Maximum allowed number of groups in the Newsgroups header, article will +# not be gated if exeeds. If zero or umitted - no limit. +# maxgroup 5 + +# Internet -> FidoNet (outgoing) character mapping table (a la mapchan) +# outtab $BINDIR/outkoi8alt + +# FidoNet -> Internet (incoming) character mapping table +# intab $BINDIR/outaltkoi8 + +# Toss program, used by ifunpack +iftoss $BINDIR/iftoss + +EOF + + cat copi.ifmcfg2 >>$FNETCFG + + if [ $[$[SPD] > $[19200]] = 1 ]; then + SPDLOCK="L38400" + elif [ $[$[SPD] > $[9600]] = 1 ]; then + SPDLOCK="L19200" + elif [ $[$[SPD] > $[2400]] = 1 ]; then + SPDLOCK="9600" + elif [ $[$[SPD] > $[1200]] = 1 ]; then + SPDLOCK="2400" + elif [ $[$[SPD] > $[300]] = 1 ]; then + SPDLOCK="1200" + else + SPDLOCK="300" + fi + + echo "ModemPort modem:$SPDLOCK" >>$FNETCFG + cat copi.ifmcfg5 >>$FNETCFG + + echo "PhoneTrans $COUNTRYPREF-$PREF- /" >>$FNETCFG + echo "PhoneTrans $COUNTRYPREF- / $LONG_DIST_PREFIX" >>$FNETCFG + echo "PhoneTrans / $INTERCOUNTRYPREF" >>$FNETCFG + echo "ModemReset ATZ\r" >>$FNETCFG + echo "ModemDial \d$DIALSTRING\T\r" >>$FNETCFG + + cat copi.ifmcfg4 >>$FNETCFG + + echo "Name $SYSNAME" >>$FNETCFG + echo "Location $LOCATION" >>$FNETCFG + echo "SysOp $SYSOP" >>$FNETCFG + echo "Phone $COUNTRYPREF-$PREF-$PHONE" >>$FNETCFG + echo "Speed $SPD" >>$FNETCFG + echo "Flags $NODEFLAGS" >>$FNETCFG + + chown fnet.uucp $FNETCFG +} + +# Args: cfg_dir +configure_smail() { + dialog --backtitle "$TITLE" --infobox "Configuro Smail..." 0 0 + + USER="`cat $COPIUSER`" + FNETHOME=~fnet + + SMAIL=$1 + SMAILCONF=$SMAIL/config + ALIASES=$SMAIL/aliases + DIRECTORS=$SMAIL/directors + ROUTERS=$SMAIL/routers + TRANSPORTS=$SMAIL/transports + FTNPATHS=$SMAIL/ftnpaths + +# File: config + save $SMAILCONF + + cat <<EOF >$SMAILCONF +# +# smail configuration for $HOST.$DOMAIN +# (see smail(5) man page for details and other options) +# +hostnames=$HOST:$HOST.$DOMAIN +domains=$DOMAIN +postmaster=$USER +smtp_banner="\$primary_name Linux Smail\$version #\$compile_num ready at \$date" +spool_mode=0600 +received_field="Received: \\ + \${if def:sender_host \\ + {from \$sender_host by \$primary_name \\ + \${if def:sender_proto: with \$sender_proto}\\ + \n\t(Linux Smail\$version #\$compile_num) }\\ + else{by \$primary_name \${if def:sender_proto:with \$sender_proto }\\ + (Linux Smail\$version #\$compile_num)\n\t}}\\ + id \$message_id; \$spool_date" +trusted_users=root:uucp:daemon:fnet +EOF + + +# File: routers + save $ROUTERS + + cat <<EOF >$ROUTERS +ifmail: driver=pathalias, + transport=ifmail; + + file=ftnpaths, + proto=lsearch, + domain=ftn:org +EOF + + +# File: transports + save $TRANSPORTS + + cat <<EOF >$TRANSPORTS +local: driver = appendfile, + return_path, + local, + from, + unix_from_hack; + + file = /var/spool/mail/\${lc:user}, + group = mail, + mode = 0660, + suffix = "\n", + append_as_user + +ifmail: driver=pipe, + from, + -received, + max_addrs=5, + max_chars=200; + + pipe_as_sender, + cmd="$FNETHOME/ifmail -r\$host \$((\${strip:user})\$)" + +EOF + + +# File: directors + save $DIRECTORS + + +# File: aliases + for i in $ALIASES /etc/aliases /usr/lib/aliases + do + if [ ! -L $i -a -f $i ] + then + mv $i $i~ + fi + done + + USERNAME="`cut /etc/passwd -f1,5 -d: | grep $USER: | cut -f2 -d: | sed y/\" \"/./`" + echo "news: $USER" >> $ALIASES + echo "usenet: $USER" >> $ALIASES + echo "$USERNAME: $USER" >> $ALIASES + + ln -sf $ALIASES /etc/ + ln -sf $ALIASES /usr/lib/ + + cd $SMAIL # is this necessary?? E-mail me if you know,please + mkaliases >/dev/null + +# File: ftnpaths + save $FTNPATHS + + OK=1 + IAKA=1 + while [ $OK != 0 ]; do + AKA="`cut $AKASETUP -f$IAKA -d:`" + IAKA=$[$IAKA+1] + if [ ! "$AKA" ]; then + OK=0 + else + echo -e ".`echo $AKA | cut -f4 -d.`\t\t$AKA!%s" >>$FTNPATHS + fi + done + + +# misc section + + chmod 1775 /var/spool/mail + chgrp mail /var/spool/mail + + cd $SMAIL + touch forward + /usr/lib/smail/mkdbm forward + +# reload sendmail + killall sendmail 2>/dev/null + /usr/sbin/sendmail -bd -q15m # if inetd handles smtp port, this will not load +} diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifman1 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifman1 new file mode 100755 index 00000000000..3e271a532e2 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifman1 @@ -0,0 +1,29 @@ +#! /usr/bin/perl +# +# This is a utility script to manipulate Fidonet-related issues +# using Eugene Crosser's ifmail package +# +# Version 0.1 +# +# (C) Michael Bravo and The Communication Tube, 1994 +# +# You can do whatever you want with this script. I take no responsibility +# whatsoever in anything related to this script. If you make some useful +# additions to this, please think of sending them to me so I could partake +# of your wisdom. +# +# This script was written to help attaching and requesting files from the +# commandline, much like you do with Squish under DOS or OS/2. It is certainly +# not perfect - I used it as an exercise in Perl. It also probably lacks +# some other useful features, like ability to specify trunc/sent or kill/sent +# attributes etc etc. If you really want this or some other features +# implemented, write me at mbravo@tctube.spb.su or mbravo@octopus.spb.su +# and I will try to do what I can. +# +# Note - files don't get copied to any spool dir, so if you move attached +# files somewhere, they won't get sent. +# +# This script is supposed to read ifmail's config to determine where outbound +# directory and logfile are. The only two parameters to modify in most cases +# are below. + diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifman2 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifman2 new file mode 100755 index 00000000000..0b6dbb77ded --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifman2 @@ -0,0 +1,137 @@ +if ( getpwuid($<) ne $ifowner ) { print "You must be owner of ifmail\n"; exit 1; } + +if ( (@ARGV < 3) || $ARGV[0] eq "-?" || $ARGV[0] eq "-h" ) { + &usage; +} + +$ARGV[0] =~ tr/A-Z/a-z/; +$ARGV[3] =~ tr/A-Z/a-z/; + +&parsecfg; + +if ( $logfile ne "" ) { + open(LOG, ">>".$logfile) || die "Can't open logfile"; +} + +if (substr($ARGV[1], 0, 1) ne "/") { + $cwd=`pwd`; + chop $cwd; + $ARGV[1] = $cwd."/".$ARGV[1]; +} + +if ($ARGV[3] eq "" || $ARGV[3] eq "normal") { + $flavour = 'f'; +} elsif ($ARGV[3] eq "crash") { + $flavour = 'c'; +} elsif ($ARGV[3] eq "hold") { + $flavour = 'h'; +} else { + print "Unknown flavour, assuming normal\n"; + $flavour = 'f'; +} + +if ($ARGV[0] eq "send") { + &attach($ARGV[1], $ARGV[2]); +} elsif ($ARGV[0] eq "get") { + &request($ARGV[1], $ARGV[2]); +} else { + print "Unknown command, try ifman -h\n"; + exit 1; +} + +close(LOG); + +exit 0; + +####################################################################### + +sub attach { + local($fspec, $address) = @_; + + $floname = &resolve($address); + + open(FLO, ">>".$outbound."/".$floname) || die "Can't open flo-file $outbound/$floname"; + open(FIND, "find $fspec -print |") || die "Can't generate list of files"; + + if ( eof(FIND) ) { + print "No matching files, nothing to send\n"; + exit 1; + } + + while (<FIND>) { + + chop; + $datestamp = `date \"+%D %T\"`; + chop $datestamp; + printf LOG "%s %s %s\n", $datestamp, $$, "ifman: sending $_ to $address"; + printf FLO "%s\n", $_; + } + + close(FLO); + close(FIND); +} + +sub request { + local($fspec, $address) = @_; + + $reqname = &resolve($address); + + $reqname =~ s/\.[fch]lo/\.req/; + + open(REQ, ">>".$outbound."/".$reqname) || die "Can't open req-file"; + + $datestamp = `date \"+%D %T\"`; + chop $datestamp; + printf LOG "%s %s %s\n", $datestamp, $$, "ifman: requesting $fspec from $address"; + printf REQ "%s\n", $fspec; + + close(REQ); +} + +sub resolve { + local($addr) = @_; + + if ( index($addr, ":") >=0 ) { + print "I cannot resolve addresses with zones!\n"; + exit 1; + } elsif ( index($addr, "/") == -1 ) { + print "Not a valid address!\n"; + exit 1; + } + + ($net, $node, $point) = split(/\/|\./, $addr); + + if ( defined $point ) { + $pointdir = sprintf("%04x%04x.pnt", $net, $node); + if ( ! -e $outbound."/".$pointdir ) { + mkdir ($outbound."/".$pointdir, 0755) || die "Can't create point directory"; + } + $flo = sprintf("0000%04x.%01slo", $point, $flavour); + return $pointdir."/".$flo; + } else { + $flo = sprintf("%04x%04x.%01slo", $net, $node, $flavour); + return $flo; + } +} + +sub usage { + print "ifmail manager script\n"; + print "usage: ifman <cmd> <filespec> <address> [flavour]\n"; + print " commands: send, get\n"; + print " flavours: normal, crash, hold. Default is normal.\n"; + print "Only 2d addresses with points are supported - no zones!\n"; + exit 1; +} + +sub parsecfg { + open(CFG, $cfgfile) || die "Can't open ifmail config file"; + + while (<CFG>) { + chop; + if (/^#/) { next; } + if (/^outbound\s+(\S+)/) { $outbound = $1; } + if (/^logfile\s+(\S+)/) { $logfile = $1; } + } + + close(CFG); +} diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg2 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg2 new file mode 100755 index 00000000000..c8a8c03d664 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg2 @@ -0,0 +1,68 @@ +# Transport programs for mail and news, used by iftoss +sendmail /usr/lib/sendmail -f $F $T +rnews /usr/lib/news/rnews + +# Unpackers, used by ifunpack. +# $F expands to archieve file name +unzip /usr/bin/unzip -oq $F +unarj /usr/bin/unarj e $F +#unarc /usr/bin/unpack $F +unzoo /usr/bin/zoo -extract $F +unlzh /usr/bin/lharc -x $F + +# Packer program, used by ifpack +# $F expands to archieve file name, $P - to list of packet names +packer /usr/bin/zip $F $P + +# Maximum arcmail file size, will start new arcmail file if exceeds +maxfsize 65000 + +# Maximum packet size, ifmail/ifnews will start new packet if exeeds. +# .out files are NOT created if nonzero specified, you must run ifpack +# to make packets out. (unimplemented) +maxpsize 65000 + +# cnews log file and (temporary) database for seen-bys +newslog /usr/lib/news/log +msgidbm /tmp/ifmsgids + +# From this line on, values may be prefixed by a logical expression in +# round brackets. Operators are: '!', '&', '|', 'Xor'. +# Possible elements are: +# - Nodelist flags (like "CM", "MNP", "V32" etc.) +# - speed <operator> <numeric> +# where <operator> is '=', '!=', '<', '>', '<=', '>=' +# - address <wildcard> +# where <wildcard> is an (possibly incomplete) fidonet address, +# e.g. "5020/*" +# - time <interval>[,<interval>,...] +# where <interval> is a day spec. with optional time spec., e.g. +# Wk2000-0900,Sat1800-0000,Sun +# - phone <prefix> +# e.g. "phone 7-095-" + +# Dialing parameters +# of multiple "ModemPort", "ModemReset", "ModemDial", "ModemHangup" lines, +# first matching is used. +# of multiple "PhoneTrans", "ModemConnect", "ModemError" lines, all matching +# are used. +# In send and expect strings, following substitutions are made: +# \\ '\' character +# \r carriage return (0x0d) +# \n new line (0x0a) +# \t tab (0x09) +# \b backspace (0x08) +# \s space (0x20) +# \NNN (where N is an octal digit) - character with octal code NNN +# \d 1 second delay (send strings only) +# \p 1/4 second pause (send strings only) +# \T translated telephone no. (send strings only) +# \D untranslated telephone no. (send strings only) + +# ModemPort present a blank-separated list of ports with possible speed +# extention (separated by colon); if speed is prefixed with 'L', it is +# a "locked" port speed, otherwise it is a maximum speed to be set, while +# actual speed is taken from the nodelist. If speed is omitted (or set +# to zero), previous port speed is not changed. +#ModemPort (time Any0000-0900,Sat,Sun) ttyS0 +#ModemPort cua0:L38400 diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg4 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg4 new file mode 100755 index 00000000000..4cb7a75b1fc --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg4 @@ -0,0 +1,30 @@ +ModemHangup +++ATH\r +ModemOK OK +ModemConnect CONNECT +ModemError BUSY +ModemError NO\sCARRIER +ModemError NO\sDIAL +ModemError RING\r +ModemError ERROR + +# Call options (time, address and nodelist flag dependant) +# All matching are applied in the order they are specified. +# Possible options are "[No]Call", "[No]Hold", "[No]PUA", "[No]EMSI", +# "[No]WaZOO", "[No]Freqs", "[No]Zmodem", "[No]ZedZap", "[No]Janus", +# "[No]Hydra". Here, WaZOO stands for YooHoo/2U2 handshake, not for +# the transfer scheme. FTS-0001 handshake and DietIFNA scheme cannot +# be disallowed (because they are mandatory by standart). "Hold" +# means really hold "hold" type packets and files: do not send them +# if our system initiated the session, "NoHold" means send "hold" +# packets when our system initiated the session. "NoPUA" stands for +# "No PickUp All", i.e. PUP ("Pick Up Primary"). NoCall means do not +# perform outbound call. This flag has no effect on the nodes +# explicitly specified in the command line. +# Default options are "everything allowed". +# options ((!CM) & time Any0700-0200) Nocall +#options (time Any0900-2100 & ! address 2:5020/*) Nocall + +# EMSI data for this node +# From this line on values CANNOT be prefixed with logical expression +# For now, escaping of '}' and ']' unimplemented, try to avoid these +# characters please! diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg5 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg5 new file mode 100755 index 00000000000..8221c1cf160 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifmcfg5 @@ -0,0 +1,14 @@ + +# PhoneTrans lines provide rules to change phone prefixes to make local +# or long-distance calls. In the example below, my country code is 7, +# and local dialing area is 095. From the numbers starting with "7-095-" +# the prefix is stripped and the 7-digit remainder is dialed. For +# the numbers starting with "7-" but not with "7-095-", the country prefix +# "7-" is stripped and the long-distance dialing prefix "8W" substituted. +# For the numbers not matching any of the above, international +# call is performed: international dialing prefix "8W10" is prepended +# to the unmodified 11-digit number. Generally, the syntax is: +# "PhoneTrans <what-to-strip> / <what-to-substitute-instead>" +#PhoneTrans 7-095- / +#PhoneTrans 7- / 8W +#PhoneTrans / 8W10 diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifpoll1 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifpoll1 new file mode 100755 index 00000000000..812c8e9cd0d --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifpoll1 @@ -0,0 +1,9 @@ +#!/bin/sh +# ver 0.7 +# ifpoll, poll my boss node or the node given as argument 1 +# +# i start this shell script every day by crond, but you can +# start it also by hand :) start it as the owner of ifcico. +# rasca, berlin 1993 (Rasca Gmelch, 2:2410/305.4) +# +# where "ifcico" and "ifpack" reside diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifpoll2 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifpoll2 new file mode 100755 index 00000000000..216bff08583 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifpoll2 @@ -0,0 +1,107 @@ + +# Packets backup directory - You have to CREATE this directory +BAK=/var/spool/ifmail/BAK + +# logfile of ifcico +IFLOG=/var/log/ifmail/sysiflog + +# log archive +IFLOGARC=/var/log/ifmail/TheLog + +# owner of "ifcico" +IFCICO_OWNER=fnet + +# how often should i try to call NODE? +MaxTry=30 + +# delay between outgoing calls in seconds +DELAY=10 + +# where to log processing - file or tty/console +INFO_TTY=/dev/console + +# Lets backup the log and use a new one +if [ -e $IFLOG ]; then + echo Rearranging logs... + cat $IFLOG >> $IFLOGARC + cp /dev/null $IFLOG +fi + +echo "`date \"+%b %d %T\"` ifpoll[$$]: starting" # >> $INFO_TTY + +# remember me, not to run as root.. +# +if [ `whoami` != "$IFCICO_OWNER" ]; then + echo "*** run $0 as the owner of ifcico ***" + echo "`date \"+%b %d %T\"` ifpoll[$$]: wrong uid (rc 2)" # >> $INFO_TTY + exit 2 +fi + +# argv[1] is the optional node to call +# +if [ "$1" != "" ]; then + if [ "$1" = "-?" ] || [ "$1" = "-h" ]; then + echo "usage: ifpoll [<node>]" + exit 3 + else + NODE=$1 + fi +fi + +# let's pack the fido stuff.. +# +$FIDOPATH/ifpack + +# loop until ifcico could connect the node or MaxTry is encountered +# +i=1; errlv=1 +while let 'i <= MaxTry' && let 'errlv != 0' +do + echo -n "`date \"+%b %d %T\"` ifpoll[$$]: $i. try ($NODE) " # >> $INFO_TTY + # + # start ifcico in master mode .. + # + $FIDOPATH/ifcico -r 1 $NODE + errlv=$? + if [ $errlv != "0" ]; then + echo "failed" # >> $INFO_TTY + if [ $i != $MaxTry ]; then + sleep $DELAY + fi + let i=i+1 + else + echo "ok :)" # >> $INFO_TTY + fi +done + +# if the poll was fine, unpacking.. +# +if [ $errlv = "0" ]; then + echo "`date \"+%b %d %T\"` ifpoll[$$]: unpacking.. " # >> $INFO_TTY + cp -f /var/spool/ifmail/inb/*.* $BAK + $FIDOPATH/ifunpack + # add here some additional lines for processing tic files or + # incoming file-lists or simular.. +else + # write me a mail about the failed poll + tail --lines=20 $IFLOG | elm -s "ifpoll: failed" $IFCICO_SYSOP >/dev/null +fi + +echo "`date \"+%b %d %T\"` ifpoll[$$]: finished (rc $errlv)" # >> $INFO_TTY + +# Collect some infos... +echo "" +echo "*** Outgoing File Transfer Stats: ***" +grep sent $IFLOG +echo "*** Incoming File Transfer Stats: ***" +grep received $IFLOG +echo "" + +echo "---->> New mail: <<-----" +grep echomail $IFLOG +echo "---->> Personal mail: <<-----" +grep "mail from" $IFLOG +echo "" + +# return the errorlevel of ifcico +exit $errlv diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifreq1 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifreq1 new file mode 100755 index 00000000000..637293954bd --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifreq1 @@ -0,0 +1,20 @@ +#!/usr/bin/perl +$ver = "0.4"; +# +# this perl script is designed for the ifmail package by eugene grosser. +# +# request a file (first argument) from a fido-node (second argument), +# don't forget to quote if you use wildcards, e.g.: + +# ifreq 'files*' 2:2410/305 +# or +# ifreq 'files newfile' 2:2410/305 +# +# this perl script does only add an entry to the corresponding flo-file, +# the mailer ifcico is not started! +# +# rasca, berlin 1994 (rasca@marie.physik.tu-berlin.de, 2:2410/305.4) +# +# multi-zone support added by +# Roland Rosenfeld 15.05.1994 (roland@p13.flokiste.fido.de, 2:2450/300.13) + diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifreq2 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifreq2 new file mode 100755 index 00000000000..9ee78ff73fe --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.ifreq2 @@ -0,0 +1,68 @@ +# this is the base directory, where the req-files are stored and the +# default outbound +$flo_path = "/var/spool/ifmail"; +$outbound = "/outb"; # don't be confused, it means "/var/spool/ifmail/outb" + +# end of configuration ############################################# + +# main() +# +if ((@ARGV < 1) || @ARGV > 2 || $ARGV[0] eq "-?") { + &usage; +} elsif ($ARGV[1] ne "") { + $node = $ARGV[1]; +} +$file = $ARGV[0]; + +if (! ($node =~ /\d+:\d+\/\d+/)) { + die "Wrong address: $node!!!"; +} + +($zone, $netnode) = split (/:/, $node); +$reqfile = sprintf("%04x%04x", split(/\//, $netnode)); + +if ($reqfile eq "00000000") { + print ("can't resolve the fido address \"$node\"\n"); + &usage; +} else { + if ( $zone == 2 ) { + $reqfile = $flo_path . $outbound . "/" . $reqfile . ".req"; + } elsif ( $zone < 7 ) { + $reqfile = $flo_path . $outbound . ".00$zone/" . $reqfile . ".req"; + } else { + $outbound = ""; + open (CONFIG, "< $config") || die "can't open $config"; + while ($_ = <CONFIG>) { + if ( /^address.*$zone:.*\@(\w*)/ ) { $outbound = $1; } + } + if ( $outbound eq "" ) { + die "No Zone $zone found in $config"; + } + $reqfile = $flo_path . "/$outbound/" . $reqfile . ".req"; + } + + # seperate the file names of the first argument + @files = split (/\s+/, $ARGV[0]); + + # open the flofile for appending + open(FLOFILE, ">>" . $reqfile) || die "can't open $reqfile"; + while (@files) { + print (FLOFILE shift(@files), "\n"); + } + close(FLOFILE); + + print ("--- fido request $ver ---------------------------\n"); + print ("requesting \"$file\" from fido-node $node\n"); + print ("--- executing ifstat .. ------------------------\n"); + system("ifstat"); +} + +# +# subroutine "usage" +# +sub usage { + printf ("--- fido request %s -------------\n", $ver); + printf ("usage: ifreq <file> [<3-d address>]\n"); + printf ("e.g. : ifreq FILES 2:2410/305\n"); + exit 1; +} diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.rcnews b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.rcnews new file mode 100755 index 00000000000..957a272ee49 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.rcnews @@ -0,0 +1,79 @@ +#! /bin/sh +## $Revision: 1.1 $ +## News boot script. + +## =()<. @<_PATH_SHELLVARS>@>()= +. /usr/lib/news/innshellvars + +## Pick ${INND} or ${INNDSTART} +WHAT=${INNDSTART} +## Set to true or false +DOINNWATCH=false +MAIL="${MAILCMD} -s 'Boot-time Usenet warning on `hostname`' ${NEWSMASTER}" + +## RFLAG is set below; set FLAGS as appropriate. +RFLAG="" +FLAGS="-i0 -c0" + +## Clean shutdown? +if [ -f ${SERVERPID} ] ; then + ( echo 'INND: PID file exists -- unclean shutdown!' >/dev/console ) + RFLAG="-r" +fi + +if [ ! -f ${NEWSLIB}/.news.daily ] ; then + echo 'No .news.daily file; need to run news.daily?' | eval ${MAIL} +else + case `find ${NEWSLIB} -name .news.daily -mtime +1 -print 2>/dev/null` in + "") + ;; + *) + echo 'Old .news.daily file; need to run news.daily?' | eval ${MAIL} + ;; + esac +fi + +## Active file recovery. +if [ ! -s ${ACTIVE} ] ; then + if [ -s ${NEWACTIVE} ] ; then + mv ${NEWACTIVE} ${ACTIVE} + else + if [ -s ${OLDACTIVE} ] ; then + cp ${OLDACTIVE} ${ACTIVE} + else + ( echo 'INND: No active file!' >/dev/console ) + exit 1 + fi + fi + RFLAG="-r" + # You might want to rebuild the DBZ database, too: + #echo "cd ${NEWSLIB} \ + # && makehistory -r \ + # && mv history.n.dir history.dir \ + # && mv history.n.pag history.pag" | su ${NEWSUSER} +fi + +## Remove temporary batchfiles and lock files. +( cd ${BATCH} && rm -f bch* ) +( cd ${LOCKS} && rm -f LOCK* ) +( cd ${TEMPSOCKDIR} && rm -f ${TEMPSOCK} ) +rm -f ${NEWSCONTROL} ${NNTPCONNECT} ${SERVERPID} + +## Start the show. +( echo 'Starting innd.' >/dev/console ) +eval ${WHAT} ${RFLAG} ${FLAGS} + +# Gee, looks like lisp, doesn't it? +${DOINNWATCH} && { + echo "( ( sleep 60 ; ${INNWATCH} ) & )" | su ${NEWSUSER} +} + +RMFILE=${MOST_LOGS}/expire.rm +if [ -s ${MOST_LOGS}/expire.rm ] ; then + ( echo "Removing articles from pre-downtime expire run." >/dev/console ) + ( + echo 'System shut down during expire. Unlinking articles listed in' + echo ${RMFILE} + ) | eval ${MAIL} + echo "${NEWSBIN}/expirerm ${RMFILE}" | su ${NEWSUSER} & +fi diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.sendifm1 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.sendifm1 new file mode 100755 index 00000000000..564b9c60533 --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.sendifm1 @@ -0,0 +1,74 @@ +#! /bin/sh +## $Revision: 1.1 $ +## SH script to send UUCP batches out. + +## =()<. @<_PATH_SHELLVARS>@>()= +. ~news/innshellvars + +PROGNAME=`basename $0` +LOCK=${LOCKS}/LOCK.${PROGNAME} +LOG=${MOST_LOGS}/${PROGNAME}.log + +MAXJOBS=200 +UUXFLAGS="- -r -gd" + +## Start logging. +test ! -f ${LOG} && touch ${LOG} +chmod 0660 ${LOG} +exec >>${LOG} 2>&1 +echo "${PROGNAME}: [$$] begin `date`" +cd ${BATCH} + +## Anyone else there? +trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15 +shlock -p $$ -f ${LOCK} || { + echo "${PROGNAME}: [$$] locked by [`cat ${LOCK}`]" + exit 0 +} + +## Who are we sending to? +if [ -n "$1" ] ; then + LIST="$*" +else + LIST=`ls /usr/spool/news/out.going|egrep "f[0-9]*.n[0-9]*$"` +fi + +case ${HAVE_UUSTAT} in +DONT) + TEMP=${TMPDIR}/uuq$$ + uuq -h |tr -d : >${TEMP} + ;; +esac + +## Do the work... + +for SITE in ${LIST}; do + + ## See if any data is ready for host. + BATCHFILE=${SITE}.uucp + if [ -f ${SITE}.work ] ; then + cat ${SITE}.work >>${BATCHFILE} + rm -f ${SITE}.work + fi + mv ${SITE} ${SITE}.work + ctlinnd -s -t30 flush ${SITE} || continue + cat ${SITE}.work >>${BATCHFILE} + rm -f ${SITE}.work + if [ ! -s ${BATCHFILE} ] ; then + echo "${PROGNAME}: [$$] no articles for ${SITE}" + rm -f ${BATCHFILE} + continue + fi + + ## Get the compression flags. + echo "${PROGNAME}: [$$] begin ${SITE}" + case "${SITE}" in + phreak) + COMPRESS="compress" + ;; + *) + COMPRESS="gzip" + ;; + esac + + time batcher \ diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.sendifm2 b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.sendifm2 new file mode 100755 index 00000000000..1a34a1fabbc --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.sendifm2 @@ -0,0 +1,15 @@ + ${SITE} ${BATCHFILE} + + echo "${PROGNAME}: [$$] end ${SITE}" +done + +case ${HAVE_UUSTAT} in +DONT) + rm -f ${TEMP} + ;; +esac + +## Remove the lock file. +rm -f ${LOCK} + +echo "${PROGNAME}: [$$] end `date`" diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.trnrc b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.trnrc new file mode 100644 index 00000000000..7be596f74db --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.trnrc @@ -0,0 +1,13 @@ +TRNINIT="-x -e -X -F\" :> \"" +HIDELINE="^X-FTN" +NEWSHEADER="Newsgroups: %(%F=^\$?%C:%F) +Subject: %(%S=^\$?%\"\n\nSubject: \":%S) +%(%R=^\$?:References: %R +)Sender: +Distribution: %(%i=^\$?%\"\nDistribution: \":%D) +Organization: %o +X-Comment-To: %f\n\n" +ATTRIBUTION="%f writes:\n" +YOUSAID="In article %i \n of newsgroup %C you write about \"%s\":\n" +MAILCALL="(New Mail)" +export NEWSHEADER HIDELINE TRNINIT ATTRIBUTION MAILCALL YOUSAID EDITOR diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.wheel b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.wheel new file mode 100755 index 00000000000..567e559a5ab --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/copi.wheel @@ -0,0 +1,54 @@ +#!/bin/bash +# $Id: copi.wheel,v 1.2 2001/01/15 22:26:33 tom Exp $ + +mkstemp size +dialog --print-maxsize 2>$tmp_size +ROWS="`cut $tmp_size -f1 -d, | cut -f2 -d:`" +COLS="`cut $tmp_size -f2 -d,`" +rm $tmp_size + +# Takes an integer, multiplies it for COLS, divides for 132 +scalex() { + echo $[$1*$COLS/132] +} +scaley() { + echo $[$1*$ROWS/60] +} + +dialog --backtitle "$TITLE" --no-shadow \ +--begin `scaley 27` `scalex 98` --infobox "pushd /var/log >/dev/null" 0 0 --and-widget \ +--begin `scaley 35` `scalex 95` --infobox "mkdir -p news -m 755" 0 0 --and-widget \ +--begin `scaley 45` `scalex 86` --infobox "chown news.news news" 0 0 --and-widget \ +--begin `scaley 48` `scalex 78` --infobox "cd /var/log/news" 0 0 --and-widget \ +--begin `scaley 51` `scalex 61` --infobox "mkdir -p OLD -m 755" 0 0 --and-widget \ +--begin `scaley 52` `scalex 47` --infobox "chown news.news OLD" 0 0 --and-widget \ +--begin `scaley 51` `scalex 40` --infobox "cd /var/spool" 0 0 --and-widget \ +--begin `scaley 48` `scalex 25` --infobox "mkdir -p news -m 775" 0 0 --and-widget \ +--begin `scaley 42` `scalex 13` --infobox "chown news.news news" 0 0 --and-widget \ +--begin `scaley 35` `scalex 4` --infobox "cd /var/spool/news" 0 0 --and-widget \ +--begin `scaley 27` `scalex 2` --infobox "CURMASK=`umask`" 0 0 --and-widget \ +--begin `scaley 19` `scalex 4` --infobox "umask 02" 0 0 --and-widget \ +--begin `scaley 11` `scalex 13` --infobox "mkdir -p out.going control junk in.coming" 0 0 --and-widget \ +--begin `scaley 5` `scalex 25` --infobox "chown news.news out.going control junk in.coming" 0 0 --and-widget \ +--begin `scaley 2` `scalex 37` --infobox "cd in.coming" 0 0 --and-widget \ +--begin `scaley 1` `scalex 46` --infobox "mkdir -p bad tmp" 0 0 --and-widget \ +--begin `scaley 2` `scalex 61` --infobox "chown news.news bad tmp" 0 0 --and-widget \ +--begin `scaley 5` `scalex 76` --infobox "umask $CURMASK" 0 0 --and-widget \ +--begin `scaley 11` `scalex 87` --infobox "ln -sf ~news /usr/local/lib/" 0 0 --and-widget \ +--begin `scaley 18` `scalex 95` --infobox "ln -sf ~news/inews /usr/bin/" 0 0 --and-widget \ +--begin `scaley 26` `scalex 97` --infobox "chmod 1777 /var/tmp" 0 0 --and-widget \ +--begin `scaley 34` `scalex 95` --infobox "cd ~news" 0 0 --and-widget \ +--begin `scaley 42` `scalex 87` --infobox "touch history history.dir history.pag errlog log" 0 0 --and-widget \ +--begin `scaley 47` `scalex 76` --infobox "chown news.news history* log errlog" 0 0 --and-widget \ +--sleep 1 --infobox "Creating spooling and logging directories and files..." 0 0 --and-widget \ +--begin `scaley 51` `scalex 78` --infobox "chmod 664 history* log errlog" 0 0 --and-widget \ +--begin `scaley 52` `scalex 60` --infobox "echo \"control 0000000000 0000000001 y\" > active" 0 0 --and-widget \ +--begin `scaley 51` `scalex 42` --infobox "echo \"junk 0000000000 0000000001 y\" >> active" 0 0 --and-widget \ +--begin `scaley 48` `scalex 26` --infobox "chown news.news active" 0 0 --and-widget \ +--begin `scaley 42` `scalex 13` --infobox "echo \"control 814573260 usenet\" > active.times" 0 0 --and-widget \ +--begin `scaley 35` `scalex 4` --infobox "echo \"junk 814573260 usenet\" >> active.times" 0 0 --and-widget \ +--begin `scaley 27` `scalex 2` --infobox "chown news.news active.times" 0 0 --and-widget \ +--begin `scaley 19` `scalex 4` --infobox ":>newsgroups" 0 0 --and-widget \ +--begin `scaley 11` `scalex 12` --infobox "chown news.news newsgroups" 0 0 --and-widget \ +--begin `scaley 6` `scalex 25` --infobox "popd >/dev/null" 0 0 +sleep 1 diff --git a/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/ifpatch b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/ifpatch new file mode 100644 index 00000000000..1e7c7ee510e --- /dev/null +++ b/Build/source/utils/dialog/dialog-1.1-20110302/samples/copifuncs/ifpatch @@ -0,0 +1,101 @@ +--- ifgate/message.c.orig Mon Jul 24 15:17:47 1995 ++++ ifgate/message.c Mon Jul 24 15:18:00 1995 +@@ -48,12 +48,26 @@ + if (!strcasecmp(msg->key,"X-UUCP-From")) return 0; + if (!strcasecmp(msg->key,"X-Body-Start")) return 0; + if (!strncasecmp(msg->key,"X-FTN-",6)) return 0; +- if (!strcasecmp(msg->key,"Path")) return isftnpath(msg->val)?0:1; ++ if (!strcasecmp(msg->key,"Path")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return isftnpath(msg->val)?0:1; ++#endif ++ + if (!strcasecmp(msg->key,"Newsgroups")) return newsmode?0:2; + if (!strcasecmp(msg->key,"Xref")) return 0; + if (!strcasecmp(msg->key,"Return-Receipt-To")) return 1; + if (!strcasecmp(msg->key,"Received")) return newsmode?0:2; +- if (!strcasecmp(msg->key,"From")) return ftnorigin?0:2; ++ if (!strcasecmp(msg->key,"From")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return ftnorigin?0:2; ++#endif ++ + if (!strcasecmp(msg->key,"To")) + { + if (newsmode) return 0; +@@ -66,7 +80,14 @@ + } + if (!strcasecmp(msg->key,"Cc")) return 2; + if (!strcasecmp(msg->key,"Bcc")) return 2; +- if (!strcasecmp(msg->key,"Reply-To")) return 2; ++ if (!strcasecmp(msg->key,"Reply-To")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return 2; ++#endif ++ + if (!strcasecmp(msg->key,"Lines")) return 0; + if (!strcasecmp(msg->key,"Date")) return 0; + if (!strcasecmp(msg->key,"Subject")) +@@ -77,8 +98,22 @@ + if (!strcasecmp(msg->key,"Organization")) return removeorg?0:1; + if (!strcasecmp(msg->key,"Comment-To")) return 0; + if (!strcasecmp(msg->key,"X-Comment-To")) return 0; +- if (!strcasecmp(msg->key,"Keywords")) return 2; +- if (!strcasecmp(msg->key,"Summary")) return 2; ++ if (!strcasecmp(msg->key,"Keywords")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return 2; ++#endif ++ ++ if (!strcasecmp(msg->key,"Summary")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return 2; ++#endif ++ + if (!strcasecmp(msg->key,"MIME-Version")) return removemime?0:1; + if (!strcasecmp(msg->key,"Content-Type")) return removemime?0:1; + if (!strcasecmp(msg->key,"Content-Length")) return removemime?0:1; +@@ -86,8 +121,26 @@ + if (!strcasecmp(msg->key,"Content-Name")) return 2; + if (!strcasecmp(msg->key,"Content-Description")) return 2; + if (!strcasecmp(msg->key,"Message-ID")) return ftnorigin?0:1; +- if (!strcasecmp(msg->key,"References")) return removeref?0:1; +- if (!strcasecmp(msg->key,"Distribution")) return ftnorigin?0:1; ++ if (!strcasecmp(msg->key,"References")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return removeref?0:1; ++#endif ++ ++ if (!strcasecmp(msg->key,"Distribution")) ++ ++#ifdef LESS_RFC_KLUDGES ++ return 0; ++#else ++ return ftnorigin?0:1; ++#endif ++ ++#ifdef LESS_RFC_KLUDGES ++ if (!strcasecmp(msg->key,"NNTP-Posting-Host")) return 0; ++#endif ++ + /*if (!strcasecmp(msg->key,"")) return ;*/ + return 1; + } |