QuickSwitch 1.02 (quickswitch.sourceforge.net)
Mohit Muthanna (www.muthanna.com)
Paul Seamons (www.seamons.com) (perl@seamons.com)

$Id: README,v 1.9 2003/01/23 16:03:53 muthanna Exp $

Introduction
------------

QuickSwitch is a little utility that lets linux/Unix laptop users create and 
use roaming network profiles. Instead of individually reconfiguring the network 
card, changing DNS entries, hosts files etc. it lets you create one centralized 
file for all your different profiles. So if you keep moving around with your 
laptop (like myself) and have to keep reconfiguring everything over and over 
again; this might just make your life a wee bit easier. QuickSwitch also lets 
you configure all your network settings over the command line (in one line), 
including the default route and DNS addresses. This saves you the hassle 
of going out and editing files one by one.

New in version 1.02
-------------------

- Fixed 'route add' bug. Specifies interface in route.
- Fixed command line switching docs. Requires '-a'.

New in version 1.01
-------------------

- DHCP bugs and issued fixed.
- dhcpkill option.

New in version 0.16
-------------------

- Code Rewrite in both switcher and switchto
- Strict, warn, and taint safe.
- Moved switch.conf to switchto.conf
- Use new Curses libraries in switcher
- Safe for setuid execution.


New in version 0.14
-------------------

- All file switching operations changed from copying to 
  symbolic linking. Saves some administrative burden,
- Funky new ANSI colors. Makes it easy to decipher the
  messages.

New in version 0.12
-------------------

- Dynamic file-switching configuration. A simple mechanism by which
  other configuration files can be switched, eg., printers, X configs, etc.
- Wireless LAN bug fix

New in version 0.10
-------------------

- A new web page... for a start. See quickswitch.sourceforge.net.
- Wireless LAN configuration.
- Save last good known configuration.
- Configure via kernel parameter.


Installing
----------

Prerequsites: Perl 5, Awk and root access.

Untar the distribution package:

> cd /usr/local
> su -
(Type root password here)
> tar -zxvf quickswitch-0.1.2-linux-intel.tar.gz

Run the Installation script:

> ./INSTALL.sh

Configuring QuickSwitch
-----------------------

Setting up QuickSwitch is a piece of cake. Just edit the /etc/switchto.conf file 
using the sample provided and you're ready to go. Remember to switch to root 
before using it.

Using QuickSwitch
-----------------

Setting a profile:
> switchto MyProfile

QuickSwitch options are detailed as follows:

-l: Lists all available service profiles setup in the configuration file. eg:

> switchto -l
QuickSwitch v0.1 Mohit Muthanna 2000
Available service profiles:
Home
ITS
Prodigy

-d: Set debug (logging) level. Logs are sent to standard output. Levels can be 1 or 2. 2 just produces more output. eg:

> switchto -d 2 ITS

QuickSwitch v0.1 Mohit Muthanna 2000
Using service: ITS
Configuring device...
/sbin/ifconfig eth0 192.168.1.119 netmask 255.255.255.0
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFNETMASK: Permission denied
Checking for default route...
/bin/netstat -nr |awk '{print $1;}' | grep '0.0.0.0'
Match. Removing default route: /sbin/route del default
SIOCDELRT: Operation not permitted
Setting default route...
/sbin/route add default gw 192.168.1.137
SIOCADDRT: Operation not permitted
Setting hostname...
/bin/hostname vera.itsits.com
hostname: you must be root to change the host name
Setting up DNS...
Writing to /etc/resolv.conf...
Configuring /etc/hosts...
Writing to /etc/hosts...

Note: All those error messages are due to not being logged in as root.

-b: Backs up original files. (At the time of this writing, /etc/hosts and /etc/resolv.conf).

Using QuickSwitch in Commandline Mode
-------------------------------------

Using the commandline feature is great for one-time configs. Here's an example:

 switchto -a ip:192.168.1.12 netmask:255.255.255.0 gw:192.168.1.51 \
	dns1:192.168.1.51

The understood parameters are:

 ip: Ip Address (eg. ip:192.168.1.12)
 netmask: Subnet mask (if any)
 gw: Default gateway
 domain: Domain Name
 dns1/dns2: Pri / sec DNS address
 host: Hostname
 essid: Wireless LAN ESSID
 key: Wireless LAN key
 fqhost: Fully Qualified hostname

Note: If you don't specify a hostname or Fully qualified hostname, the /etc/hosts file is left untouched.

Using the new kernel parameter feature
--------------------------------------

Quickswitch can select a profile based on a supplied kernel
parameter. Eg., in the LILO prompt on startup, you can type 
"linux SWITCHTO=home".
Optionally you can add the following line to your lilo.conf
append="SWITCHTO=home"
Some sample lilo.conf entries would be:
image="/boot/vmlinuz-2.4.7-10"
	label="linux home"
        append="SWITCHTO=home"
	initrd="/boot/initrd-2.4.7-10.img"
	read-only
	root="/dev/hda2"

image="/boot/vmlinuz-2.4.7-10"
	label="linux work"
        append="SWITCHTO=work"
	initrd="/boot/initrd-2.4.7-10.img"
	read-only
	root="/dev/hda2"


To enable reading of the passed parameters, add the line
"/usr/bin/switchto -s"
into your /etc/rc.d/rc.local or similar startup file.  You may optionally
pass the -d2 paramter to enable debugging and the -p2 parameter
to pause for 2 seconds to view the status of the switch.

If no parameter is supplied during startup, quickswitch uses the
last working configuraions. See "servicefilename"
in switchto.conf for details on this.

It is suggested that you set ONBOOT=no in the config file for your
device in /etc/sysconfig/network-scripts

And that's about it. If you spot any bugs, or are interested in porting it to 
BSD or Solaris mail me at bugs@muthanna.com.

Using the Dynamic file switching feature
----------------------------------------

With version 0.12 there is a new [files] section where you can 
add named of files you want dynamically switched. Here you can add the
original names of the files you want switched in the following format:

[files]
samba=/etc/smb.conf
printcap=/etc/printcap

If inside a profile you want a file switched, simply enter the same
informaion in the profile using the NEW file name, eg.,

[home]
ip=192.168.0.232
netmask=255.255.255.0
...
...
printcap=/etc/printcap.home

Only names entered in the profile will be switched with the original names
in the files section.


Credits
-------

Quickswitch core code - Mohit Muthanna
Kernel params hack - Stuart Menefy
Wireless LAN hack - NeilFred Picciotto
Core code modifications and enhancements - Paul Seamons

-fin-



