RTSOLD lock creation, dhcp6c launch & kill changes #3
RTSOLD lock creation, dhcp6c launch & kill changes #3

Added lock file creation and check to RTSOLD script creation. This is to
prevent mutliple launches of dhcp6c, this appears to happen when
multiple RA's are received in rapid succession at the start of a
session. Once created dhcp6c cannot be launched again until the lock
file is deleted, this is done within the kill_dhcp6_client process
locking the two together.
The kill vlaue used to kill the dhcp6c client is now variable.  The
value -9 causes the process to exit without sending a release if
required, and if the timing is just rignt can cause the pid file to be
left behind; -15 allows for a graceful exit and if the release flag is
not set then it sends and waits for the release confirnation, the value
now switches between those depending on the configuration option 'No
Release'. If no release is true then -9 is used as the type. Any left
behind pid is removed automatically. This change will make it possible
to stop the use of the -n flag, thus allowing the dcp6c to send a
release manually, if so required.

The launch of dhcp6c when in dhcp6withoutRA is moved to its own
function, as uch as anything this makes the code tidy around the bottom
of nterface_dhcpv6_configure().
A completely new method of implimenting dhcp6wihtoutRA is used. In
default mode RTSOLD launches dhcp6c. In dhcp6wihtoutRA mode dhcp6
aunches RTSOLD.

New scripts are created and old ones modified to handle this mode, the
dhcp6 conf file changes depending on the mode calling a different script
for each mode. In simple terms its dcp6->rtsold- lan_configure. Whenever
dhcp6 gets a response that launches its script then it will run rtsold,
the RA in turn will cause the wan6 configure script to run. This method
also means the script only ever runs once and no modified dhcp6c is
required.

The scripts are dynamic and change depending on the mode. Creation takes
into account that the domain-name-server variables created by dhcp6 and
passed to the script it calls are passed on. In default mode this is
simple as it calls the dhcp6c_*_script which calls the rc.newwanipv6
script directly, in dhcp6withoutRA its RTSOLD that calls the
dhcp6c_*_script, so in order to make this change work the variables are
echoed to the tmp folder and retreived by the dhcp6withoutRA version of
dhcp6c_*_script when that calls rc.newwanip.

NOYB/pfsense,dennypage/pfsense,pfsense/pfsense,dennypage/pfsense,ptorsten/pfsense,jxmx/pfsense,phil-davis/pfsense,jxmx/pfsense,pfsense/pfsense,NOYB/pfsense,NewEraCracker/pfsense,ptorsten/pfsense,phil-davis/pfsense,jxmx/pfsense,dennypage/pfsense,phil-davis/pfsense,NOYB/pfsense,pfsense/pfsense,NewEraCracker/pfsense,phil-davis/pfsense,NewEraCracker/pfsense,dennypage/pfsense,brunostein/pfsense,ptorsten/pfsense,brunostein/pfsense,NewEraCracker/pfsense,brunostein/pfsense,pfsense/pfsense