DISCLAIMER: Some of this may be wrong, if so, feel free to ask questions in 
the mailing list at our project site on sourceforge.  Thanks.

------------------
INSTALLING:
------------------
First of all you will need the Intel Linux UPnP SDK which can be downloaded 
from sourceforge here:

http://upnp.sourceforge.net/

Before you compile and install this SDK from Intel, you will need
to make one change for Windows Messenger to work properly.  Under
the upnpsdk tree, the file src/ssdp/ssdplib.c, on line 406, the following 
line needs to be changed from:

   SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);

   to:

   SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);

Now just run "make" and "make install" in the Linux IGD directory.
This will copy the program files into /usr/bin/ and
the configuration files into /etc/linuxigd. 

Also, you will need to make sure you have a route in your routing table for the 
multicast address.  The following line should work:

   route add -net 239.0.0.0 netmask 255.0.0.0 int_if

Just replace int_if with the name of your internal interface
(i.e., route add -net 239.0.0.0 netmask 255.0.0.0 eth1)


-----------------
STARTING:
-----------------
NOTE: the file has /usr/sbin/iptables as the location of the iptables 
executable.  If yours is different, either add a symbolic link here for 
it, or just change the references in gateway.h for the variable IPTABLES.

To run, type:

   upnpd <extif> <intif>

Where <extif> and <intif> are the names of your external interface and internal
interface respectively.  The daemon will fork into the background and begin
running.  Debug messages go to /var/log/debug and Error messages go to 
/var/log/messages.  Upon successful start up, the last line you should see
in /var/log/debug is Advertisements Sent.  This means the program is loaded 
and the upnp service is initialized.  Any other problems would most likely be
due to your existing firewall rules or routes.  See README included with this
distribution for more information on the details of running the daemon.


-------------------------
STOPPING
-------------------------
To stop the upnpd process the easiest way is to run:

killall upnpd

at a shell prompt.  Also, it may be killed by doing:

kill <process_id> 

where process_id is the inital process id of the program.  However, since
there are many of them, it's usually just easiest to run killall.  This
will cause all portmappings to be closed cleanly and advertisements to be
sent to clients telling them the daemon is no longer available.

NOTE:  This program basically assumes that you have a DEFAULT policy of ACCEPT
on your FORWARD chain in iptables, as well as an ACCEPT verdict on the input 
chain for your client machine to the firewall for all tcp and udp. (Actually, 
it really only uses ports up above 1024, but which ones are completely random).

See the README file for additonal info regarding running the program.

-- Glover George <dime@gulfsales.com>

