Source File section
File deleted: Versuche/Gimp/popt-1.7.tar.gz (Size: 574549, Created: Feb 26 18:59 )
File deleted: Versuche/Asterisk/config/eins.pl (Size: 19947, Created: Aug 18 21:24 )
File deleted: Old-Packages/clamav-0.67-1.tar.gz (Size: 2282367, Created: Feb 20 12:55 )
File created: Versuche/Gimp/popt-1.7.tar.gz (Size: 574549, Created: Feb 26 2004 )
File created: Versuche/Asterisk/config/Wuppertal.conf (Size: 1258, Created: Aug 24 20:45 )
File created: Versuche/Asterisk/config/create-conf.pl (Size: 14860, Created: Aug 24 18:07 )
File created: Versuche/Asterisk/config/Muenchen.conf (Size: 1227, Created: Aug 24 16:27 )
File created: Versuche/Asterisk/config/locationlist.conf (Size: 62, Created: Aug 24 20:38 )
File created: Versuche/Asterisk/config/cfedit.pl (Size: 10594, Created: Aug 24 18:17 )
File created: Versuche/Asterisk/config/asterisk-conf.pl (Size: 5047, Created: Aug 24 20:56 )
File created: Versuche/Asterisk/config/testfork.pl (Size: 1741, Created: Aug 23 02:49 )
File created: Versuche/Asterisk/config/Koeln.conf (Size: 1465, Created: Aug 24 20:39 )
File created: Versuche/Asterisk/config/Duesseldorf.conf (Size: 1273, Created: Aug 24 16:27 )
File created: Versuche/Asterisk/config/New_York.conf (Size: 1115, Created: Aug 24 16:28 )
File created: Old-Packages/clamav-0.67-1.tar.gz (Size: 2282367, Created: Feb 20 2004 )
File created: changelogs/changes-20040821-till-20040827.html (Size: 337, Created: Aug 28 23:46 )
Usermanager Section
File created: mylinux-usermanager-0.98/compile-scripts/x
#!/bin/bash
########################################################################
# File: compile-scripts/MAIN-PACKAGE #
# myLinux Server: Copyright (c) 2004 Michael Oberg #
# Version: 0.98 #
# Author: Michael Oberg <michael.oberg@mylinuxproject.de> #
# #
# 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 Public License along #
# with this package; if not, write to the Free Software Foundation, #
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
########################################################################
# Warning: You have to make sure that setup/mylinux.conf is correct.
MYLINUXMGR=`dirname $0`
if echo $MYLINUXMGR | grep '^[^/]' > /dev/null
then
# MYLINUXMGR is not an absolute path, but relative to pwd;
# change it into an absolute path
MYLINUXMGR=`pwd`/`dirname $0`
fi
MYLINUXPACKAGE=`echo $MYLINUXMGR | sed 's|/compile-scripts||'`
MYLINUXPACKAGENAME=`echo $MYLINUXPACKAGE | sed 's|.*/\([^/]*\)|\1|'`
cp $MYLINUXMGR/{COMPILE-*,STARTPACKAGE,CREATEPACKAGE} $LFS/MyLinux-Sources
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile doxygen"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-DOXYGEN || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE doxygen" || exit 1
##############################################################
# Package Asterisk #
##############################################################
echo "Unpacking Asterisk Sources"
mkdir $LFS/Asterisk-Sources
cd $LFS/Asterisk-Sources
$MYLINUXMGR/UNPACK Versuche/Asterisk
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile Asterisk"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-ASTERISK || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE asterisk" || exit 1
##############################################################
# Package Kernel 2.6.x #
##############################################################
echo "Unpacking Kernel Sources"
mkdir $LFS/Kernel-Sources
cd $LFS/Kernel-Sources
$MYLINUXMGR/UNPACK Versuche/Kernel
cp $LFS/Versuche/Kernel/FullInstallKernel26 $LFS/Kernel-Sources/
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile Kernel"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-KERNEL26 || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE kernel26" || exit 1
##############################################################
# Package Kaffeine Media Player #
##############################################################
echo "Unpacking Kaffeine Sources"
mkdir $LFS/Kaffeine-Sources
cd $LFS/Kaffeine-Sources
$MYLINUXMGR/UNPACK Versuche/Video
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile Kaffeine"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-KAFFEINE || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE kaffeine" || exit 1
##############################################################
# Package Kaffeine Media Player Codecs #
##############################################################
cd $LFS/Kaffeine-Sources
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
mkdir $LFS/usr/lib/win32
cp -Rdp $LFS/Kaffeine-Sources/all-*/* $LFS/usr/lib/win32/
chown -R root.root $LFS/usr/lib/win32/
cat << "EOF1" > $LFS/package-runonce.sh
cat << EOF
Warning: The codecs in this package are not freeware. By installing
them you agree to many commercial licenses. Look at
http://www.mplayerhq.hu/MPlayer/releases/codecs/ for further
information.
You may delete codecs in /usr/lib/win32/ after package installation,
if you cannot agree with their licenses.
Press <enter> to continue with installation.
EOF
read
EOF1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE wincodecs" || exit 1
##############################################################
# Package Gimp #
##############################################################
echo "Unpacking Gimp Sources"
mkdir $LFS/Gimp-Sources
cd $LFS/Gimp-Sources
$MYLINUXMGR/UNPACK Versuche/Gimp
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile Gimp"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-GIMP || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE gimp" || exit 1
##############################################################
# Package tcsh #
##############################################################
echo "Unpacking tcsh Sources"
mkdir $LFS/TCSH-Sources
cd $LFS/TCSH-Sources
$MYLINUXMGR/UNPACK Versuche/csh
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile tcsh"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-TCSH || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE tcsh" || exit 1
##############################################################
# Package OpenOffice.org #
##############################################################
echo "Unpacking OpenOffice.org Sources"
mkdir $LFS/OOO-Sources
cd $LFS/OOO-Sources
$MYLINUXMGR/UNPACK Versuche/OpenOffice
echo "Start Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/STARTPACKAGE" || exit 1
echo "Compile OpenOffice.org"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c /MyLinux-Sources/COMPILE-OOO || exit 1
echo "Create Package"
chroot $LFS /usr/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
/bin/bash --login \
-c "/MyLinux-Sources/CREATEPACKAGE openoffice" || exit 1
##############################################################
# Package Compiler 340 #
##############################################################
#echo "Start Package"
#chroot $LFS /usr/bin/env -i \
# HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
# PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
# /bin/bash --login \
# -c "/MyLinux-Sources/STARTPACKAGE" || exit 1
#
#echo "Compile GCC 3.4.0"
#chroot $LFS /usr/bin/env -i \
# HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
# PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
# /bin/bash --login \
# -c /MyLinux-Sources/COMPILE-COMPILERS340 || exit 1
#
#echo "Create Package"
#chroot $LFS /usr/bin/env -i \
# HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
# PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/kde/bin:/usr/local/qt/bin \
# /bin/bash --login \
# -c "/MyLinux-Sources/CREATEPACKAGE gcc340" || exit 1
##############################################################
# End Installation #
##############################################################
# since .profile sets a PATH, it has to be moved while compiling -
# restoring it now
mv $LFS/root/profile-backup $LFS/root/.profile
# reactivate ldap in nsswitch.conf
mv $LFS/etc/nsswitch.bak $LFS/etc/nsswitch.conf
File created: mylinux-usermanager-0.98/rootfiles/ssh_trustaccount.pl
#!/usr/bin/perl
########################################################################
# File: rootfiles/useradd.pl #
# myLinux Server: Copyright (c) 2004 Michael Oberg #
# Version: 0.98 #
# Author: Michael Oberg <michael.oberg@mylinuxproject.de> #
# #
# 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 Public License along #
# with this package; if not, write to the Free Software Foundation, #
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
########################################################################
use mylinux::usermanager;
print "This program creates a trust account for SSH login.\n";
print "Use it with care. The file \$HOME/.ssh/id_rsa makes it\n";
print "possible to log in this account without using a password.\n";
print "The file MUST NOT be compromised by anyone!\n\n";
print "Remote machine name or IP address: ";
$MACHINENAME = <STDIN>;
chomp $MACHINENAME;
if (!$MACHINENAME) {
die ("You have to specify the machine name!\n");
}
print "Login Name on the remote machine: ";
$LOGINNAME = <STDIN>;
chomp $LOGINNAME;
if (!$LOGINNAME) {
die ("You have to specify the account name!\n");
}
&usermanager::ssh_trustaccount ($LOGINNAME, $MACHINE);
File changed: mylinux-usermanager-0.98/compile-scripts/COMPILE-OOO
113a114
> mkdir OOO-InstallSets
117c118
< mv $i /oo-install-$NUM
---
> mv $i /OOO-InstallSets/oo-install-$NUM
File changed: mylinux-usermanager-0.98/rootfiles/cfedit.pl
22a23,25
> $editor = "mc -e"; # text editor used for multiple line text boxes
> # Alternatives: vi, emacs, joe (if installed)
>
84,85c87,88
< $line =~ /[ \t]*([^ \t]*)[ \t]+"([^"]*)"[ \t]*(VAL):([^ \t]+)[ \t]*(CHECK):"([^"]*)"[ \t]*(([^ \t]+))?$/
< || $line =~ /[ \t]*([^ \t]*)[ \t]+"([^"]*)"[ \t]*(VAL|SUB|KEY):([^ \t]+)[ \t]*(([^ \t]+))?$/
---
> $line =~ /[ \t]*([^ \t]*)[ \t]+"([^"]*)"[ \t]*(VAL|TXT):([^ \t]+)[ \t]*(CHECK):"([^"]*)"[ \t]*(([^ \t]+))?$/
> || $line =~ /[ \t]*([^ \t]*)[ \t]+"([^"]*)"[ \t]*(VAL|SUB|KEY|TXT):([^ \t]+)[ \t]*(([^ \t]+))?$/
104c107
< if (($action eq "VAL") || ($action eq "KEY")) {
---
> if (($action eq "VAL") || ($action eq "KEY") || ($action eq "TXT")) {
173,174d175
< # my $keyval = $value{$entrykey{$menu}[$i]};
< # if (!$keyval || ($keyval =~ /^yes$/i)) {
248a250,274
> sub settext {
> my ($varname) = @_;
>
> my $name = $valuename[$valuenum{$varname}];
> my $val = $value{$name};
>
> $val =~ s/\\n/\n/g;
> open (FILE, "> /tmp/cfedit.tmp");
> print FILE $val;
> close FILE;
>
> system ("$editor /tmp/cfedit.tmp");
>
> $val = `cat /tmp/cfedit.tmp`;
> $val =~ s/\n/\\n/g;
>
> if (system ("dialog --yesno 'Save changes?' 5 30") == 0) {
> $value{$name} = $val;
> }
> else {
> $ret = "Cancel";
> }
> `rm -f /tmp/cfedit.tmp`;
> }
>
273a300,308
> elsif ($action eq "TXT") {
> &settext ($entryval{$menu}[$num]);
> if ($entrycheck{$menu}[$num]) {
> while (system (&getvariables ($entrycheck{$menu}[$num]))) {
> `dialog --msgbox "Invalid value" 5 20`;
> &settext ($entryval{$menu}[$num]);
> }
> }
> }
File changed: mylinux-usermanager-0.98/usermanager.pm
25a26,28
> use FileHandle;
> use IPC::Open2;
>
793a797,843
> sub ssh_trustaccount {
> my ($remoteuser, $remote) = @_;
>
> # RSA key of THIS machine
> my $hostname = `hostname -f`;
> $hostname =~ /([a-zA-Z0-9._-]*)/; $hostname = $1;
> my $rsalocal = `cat /etc/ssh/ssh_host_rsa_key.pub | sed 's/\\([^=]*==*\\) .*/$hostname \\1/'`;
> $rsalocal =~ /(.*)/; $rsalocal = $1;
>
> # generate key pair for local user
> # (who will be the trusted user on the REMOTE machine)
> my $HOME = `echo \$HOME`;
> $HOME =~ /(.*)/; $HOME = $1;
> if (! -d "$HOME/.ssh") {
> mkdir ("$HOME/.ssh", 0700);
> }
> if ((! -e "$HOME/.ssh/id_rsa") || (! -e "$HOME/.ssh/id_rsa.pub")) {
> `ssh-keygen -b 2048 -t rsa -N "" -f \$HOME/.ssh/id_rsa`;
> }
> my $rsauser = `cat \$HOME/.ssh/id_rsa.pub`;
> $rsauser =~ /(.*)/; $rsauser = $1;
> $rsauser =~ /.* ([^ ]*)$/;
> my $rsaid = $1;
>
> # open connection; prompt for password and host authenticity, if trust
> # is not already established
> $pid = open2(*R, *W, "ssh -l $remoteuser $remote" );
>
> # add host and user public RSA key to the appropriate files
> print W qq|if [ ! -d "\$HOME/.ssh" ]; |
> . qq|then mkdir -m 700 "\$HOME/.ssh"; |
> . qq|fi\n|;
> print W qq|if grep $hostname \$HOME/.ssh/known_hosts > /dev/null 2>&1; |
> . qq|then echo "Host already known"; else cat << "EOF" |
> . qq|>> \$HOME/.ssh/known_hosts\n$rsalocal\nEOF\n|
> . qq|fi\n|;
> print W qq|if grep $rsaid \$HOME/.ssh/authorized_keys > /dev/null 2>&1; |
> . qq|then echo "User already known"; else cat << "EOF" |
> . qq|>> \$HOME/.ssh/authorized_keys\n$rsauser\nEOF\n|
> . qq|fi\n|;
> print W qq|chmod 600 \$HOME/.ssh/*\n|;
> print W "exit\n";
> while ($got = <R>) {
> print ":: $got";
> }
> }
>