This PR takes advantage of modifications and additions to dhcp6c.
Firstly, a fix has been made to dhcp6c where the pid was being deleted
before all processes had completed; this could leave dhcp6c sending
release signals but any check for the process using the pid would return
false; thus if the server was not responding or the WAN was down then
dhcp6c could sit there for tens of seconds even though it appeared to
have exited.
The env var REASON has been updated to provide information as to why the
script has been called. These can be one of the following:
REASON=INFO
REASON=REPLY
REASON=RENEW
REASON=RELEASE
REASON=REBIND
REASON=EXIT
REASON=OTHER
The OTHER is a final catch and should never happen.
The scripts take advantage of these vars, for example a renew no longer
calls rc.newwanipv6.
The use of SIGUSR1 and SIGUSR2 to terminate dhcp6c results in different
exits. SIGUSR1 will force an exit without sending a release to the
server, this is used in the case of a WAN down event to prevent dhcp6c
from hanging on a release signal. SIGUSR2 is used to send a relase
signal overiding the no-release flag ( if set ), no code or GUI
additions have been added to make use of this signal in this PR. The
existing SIGTERM will cause dhcp6c to exit normally obeying the
no-release flag if set.
NOTE - The code for SIGUSR2 is in place in this file but as yet it is not
included in dhcp6c. In the event of SIGUSR2 being called, it will fall
through to a standard SIGTERM exit.
Debugging messages have been added to the scripts
dhcp6c_{$interface}dhcp6withoutra_script.sh and
dhcp6c{$interface}_script.sh. These debug messages only appear if the
debug setting for dhcp6c has been set in the config, they also appear in
the dhcp log rather than the main system log.
This PR is dependant on PR#5 at hrs-allbsd:freebsd or
pfsense/FreeBSD-ports #299
These changes are in response to Redmine 5993, 6944, 7145 and 7185.
Updated to match new upstream dhcp6c
changed REASON=REPLY to REASON=REQUEST.
K&R Corrections
|
||
|---|---|---|
| build/scripts | ||
| src | ||
| tools | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| BOOTSTRAP.md | ||
| build.conf.sample | ||
| build.sh | ||
| LICENSE | ||
| README.md | ||
| zanata.xml | ||
pfSense
Overview
The pfSense project is a free network firewall distribution, based on the FreeBSD operating system with a custom kernel and including third party free software packages for additional functionality. pfSense software, with the help of the package system, is able to provide the same functionality or more of common commercial firewalls, without any of the artificial limitations. It has successfully replaced every big name commercial firewall you can imagine in numerous installations around the world, including Check Point, Cisco PIX, Cisco ASA, Juniper, Sonicwall, Netgear, Watchguard, Astaro, and more.
pfSense software includes a web interface for the configuration of all included components. There is no need for any UNIX knowledge, no need to use the command line for anything, and no need to ever manually edit any rule sets. Users familiar with commercial firewalls catch on to the web interface quickly, though there can be a learning curve for users not familiar with commercial-grade firewalls.
pfSense started in 2004 as a fork of the m0n0wall Project (which ended 2015/02/15), though has diverged significantly since.
pfSense is Copyright 2004-2016 Rubicon Communications, LLC (Netgate) and published under an open source license. Read more at https://pfsense.org/ and support the team by buying a Gold Membership Subscription, bundled hardware appliances or commercial support.
Contribute
The pfSense project welcomes contributions, big or small. Members of the pfSense community frequently contribute bug fixes, enhancements, and documentation changes to improve the functionality and usability of the software.
All of the pfSense project source code is on Github. We recommend potential contributors familiarize themselves with the pfSense project git repositories and Github in general
For legal reasons, we require those seeking to contribute source code changes to review and sign the license agreement (LA) and either the Individual or Corporate CLA.
If you want to contribute but do not have a specific topic in mind, review the list of open bug reports and other issues that are in need of attention.
Before making source code changes, be sure to review our Developer Style Guide so that the submitted code matches our preferred coding style.
Changes may be submitted as pull requests on github once the LA and CLA signing process has been completed. After being submitted, our developers will review the requests, offer feedback, and merge the changes if they are acceptable.
Contact coreteam@pfsense.org with any additional questions or concerns.