Fix serialization/deserialization of ppp hostuniq and provider attributes
When these two properties were added, the form handling set their config valuesto boolean true if empty, leading to empty tags in the config.xml which would beserialized to the config.cache as empty strings. As a result, later fetches of a...
if_pppoe: Resolve endless loop on dhcp6c
When using if_pppoe, the use of ppp-ipv6 to up the pppoe interface on ADDR_ADDcauses a loop of calling interface_dhcp6_configure(), whichrestarts dhcp6c, which acquires a lease and assigns an address, which emits an...
Remove the pppoe reset cron job when the interface is disabled or with if_pppoe
Correct DHCP6 client log
This function is called regardleass of the "without RA" option. Followupto dd3d48af87c892a070210f0064e589157868e7c2.
Add the description (interface name) to the if_pppoe interfaces.
(cherry picked from commit 2cd86e498122da4b43feb041f442967efebdcdba)
Change the mpd5/if_pppoe knob back to a global setting.
They cannot cooexist, so makes no sense have it as a per connection setting.
Enforce a few protections and warnings when the user switch from mpd5 with aMLPP setup to if_pppoe, which do not support MLPPP....
Do not allow the selection of more than one NIC with if_pppoe.
Effectively disable the MLPPP support with if_pppoe.
(cherry picked from commit 00c6e25f2ce6d793680dbe01053ec84c7cba500b)
Change the knob to select mpd5/kernel PPPoE to a per-connection setting.
Replaces the original global setting.
Ticket: #18294(cherry picked from commit e52a8eda6fa90e613f940553cfe438baafc7e7ea)
pppoe: Configure PPPoE interface using if_pppoe
Introduce the new kernel module if_pppoe and start using it by defaultto configure PPPoE client interfaces.
(cherry picked from commit 09537b486e731f3061f7e13d33214e6560b3f2f4)
pppoe: Destroy PPPoE interface when using if_pppoe
Change interface_bring_down() to destroy pppoe interface instead ofdealing with mpd stuff if system is using if_pppoe.
(cherry picked from commit d6d167222c010516e1a7644622f5d5cc0e04c95f)
Reduce rc.newwanipv6 actions on RENEW
This change passes the dhcp6c REASON to the script. The script uses thisto retain the previous behavior for REASONs other than RENEW. If thereason is RENEW, action is only taken when there has been a change. Alsoinclude the REASON in the info log message....
Trigger rc.newwanipv6 on dhcp6c RENEW
The upstream DHCPv6 server may respond to the RENEW with a differentprefix hence the rc.newwanipv6 script should be called. The script shouldavoid taking action as appropriate when the address has not changed.
Part of https://redmine.pfsense.org/issues/12947
Fix regression when configuring the interface MAC address
Followup to dbb8c4840dbd75f28528a3ce4a0070091d95336a
Handle a null return from pfSense_get_ifaddrs()
- Update the usage of get_interface_addresses() to handle a null return- Update the usage of get_interface_mac() to handle an empty string- Remove unused argument from interface_qinq2_configure()
Fix the case where pfSense_get_ifaddrs() returns NULL.
It happens when the interface has no address (triggered with pppoe).
Consider the linklocal_fallback value when checking the interface cache
This is needed to make sure that callers to find_interface_ipv6() usingdifferent linklocal_fallback values receive the correct data.
Followup to ec7c1879da64f8a39e4aa8103c351768118af03d...
Fix condition check in get_interface_addresses()
Followup to ec7c1879da64f8a39e4aa8103c351768118af03d
Don't include LL addresses by default in get_interface_addresses()
- Update get_interface_addresses() to make including the IPv6 LL address optional. It defaults to the function's previous behavior.- Update find_interface_ipv6() to pass the $linklocal_fallback preference...
Fix regression with IPv6 LL addresses
- Update does_vip_exist() to correctly compare LL VIPs that include the interface in the address (e.g. '%lo0').- Return the previous find_interface_ipv6_ll() behavior of including the the interface in the LL address....
Include all IPv6 address flags in get_interface_addresses()
Select an interface IPv6 address based on priority
pfSense_getall_interface_addresses() is deprecated
Use pfSense_get_ifaddrs() instead which now includes LL addresses.
Fix typo in function name on log error message
Style fixes
Bump up the year in the Copyright notice.
dhcp: fix static arp config access
Revert "dhcp: fix static arp config access"
This reverts commit c31cc5d0e1121e973abc0d58b4808f6d90762dba.
remove rogue character
Add some function descriptions
Remove unnecessary config_init_path() calls
Add check for empty interface
Callers may call get_real_interface() with an empty interface;bail early if so.
Handle empty variable
Callers of these functions may send null variabes; bail early if so.
Additional safety checks for explode()
See 8c81cad531b1dd43a6514604091b3c4a6932d715
Fix config paths with leading slash
A single or a leading forwward-slash is not supported.
Skip ppp modem interfaces where appropriate
Add safety checks for calls to convert_real_interface_to_friendly_interface_name()
The function will return null for unassigned interfaces. Add checksfor this where appropriate.
Filter out empty array values for explode()
Calling explode() with an empty string will return a single-elementarray with an empty value. This change filters out empty valueswhere appropriate - i.e. where it's not already a condition check forit and the value should not be empty.
This avoids calling e.g. get_real_interface() for a modem device.
Don't try to configure interface groups without members
Add defaults to config_get_path where needed in select files
Some calls to config_get_path may introduce errors if the key does not exist andthe default of null is returned. This commit changes some defaults in these files:
src/etc/inc/auth.inc...
Handle failures to create an interface. Fix #14708
The function pfSense_interface_create2() may fail to create therequested interface, in which case it returns the array:['error'=>'Could not create interface']
Add a helper function for unserialize(). Fix #15423
For calls to unserialize() which do not check for errors, use thehelper function instead.
Update the interface cache when configuring IPsec. Fix #15449
Avoid configuration loop with LAGG interfaces. Fix #14083
The fix to #9453 introduced a loop when configuring LAGG interfaces.This happens when interface_lagg_configure() ultimately callsset_interface_mtu() which also calls interface_lagg_configure(). Since...
Default to an empty array for functions expecting a countable value
Do this for foreach() and count().
Update all direct config access with accessor functions
Use config accessors in certificate functions
Move to is_platform_booting()
The function platform_booting() is deprecated.
Move from ${var} to {$var}
The use of ${var} has been deprecated since PHP 8.2
Fix PHP linter issues
Update the years in the Copyright notice.
Strip the prefix size from the VTI remote address. Fix #15124
Reconfigure VLANs after recreating LAGG interfaces. Fix #9453
Handle IPv6 GUA and ULA in get_interface_track6ip(). Fix #15057
Refactor use of return_gateways_array() with get_gateways(). Fix #14893
Most calls to return_gateways_array() do not need the gateway list to berecreated. get_gateways() can filter the gateway list, and indexing ismoved from return_gateways_array() to get_gateways() to avoid using...
Fix some syntax/logic errors in interface config.
Uncompress IPv6 before filtering interface addresses. Fix #14785
Remove the cached interface address when killing the dhcp client. Fix #14616
Prioritize the first GUA when selecting the primary IPv6 address. Fix #14725
Return the first interface address instead of the last. Fix #14623
Correct IPv6 LL addr locate behavior. Fixes #14392
Comments said it should take the first but it was taking the last.
Make that behavior optional but default to taking the first as wasoriginally intended.
Simplify interface_find_child_cfgmtu(). Fixes #13218
Fix static ARP interface check. Fixes #14374
Improve GIF/GRE interface handling. Fixes #14549
Add "ixv" to the list of capable ALTQ interfaces.
Ticket: #14408
Don't modify routes when adding or removing DNS IP addresses that exist on interfaces. Fix #14288
Disable CARP until services have started and before shutdown/reboot. Fixes #2218
CARP has historically been enabled as part of interface bringup and sync setupfairly early in rc.bootup. This change intentionally shuts down CARP frominterface bringup all the way until services have been started to ensure that a...
Have rtsold always call the script, even if 'M' or 'O' bits are not set
Load if_gif if needed when creating a gif interface. Fixes #14035
Remove sleep from Do Not Wait for RA code path. Fixes #13492
The purpose of the sleep was never documented as far back as I couldtell, and it appears to cause more harm than good on modern systems.
Improve validation and escaping of bridge interfaces. Fixes #14052
Fix DNS override enable test. Fixes #13962
Update copyright years to include 2023
Revert "Pass reloadall flag to dhcp6c config. Fixes #13253"
This reverts commit 8e88bd48a22b55d213ac7613be74c651706cfa0d.
Remove trailing whitespace
Remove cxl from altq capable interfaces list
Rector direct global g accesses
Add ovpn qinqs to bridges instead of rebuilding them. Fixes #13666
qinq interfaces defined with parent openvpn interfaces are configured late inrc.bootup, after qinqs for other physical and logical interfaces and bridges areconfigured. The resolution to #13225 ensured that these late interfaces were...
Pass reloadall flag to dhcp6c config. Fixes #13253
This ensures that if the interface is being configured in a way that requires a reload, that the DHCP6 client is also restarted. This allows the DHCP6 client to restart when applying settings and during other necessary events.
Fix gif interface _routerv6 files not being created. Fixes #11545
interface_gif_configure() uses the global variable $g to look up the tempdirectory in which to write the router/gateway files used for gatewaymonitoring. The declaration of $g in this scope was inadvertently removed in...
Add iface to some resolver restarts. Fixes #12612
A few interface-specific calls to restart the resolver were not passingthe interface name to ensure it was only restarted when necessary.
Fix PPP reset hr/min blank vs 0. Fixes #13307
Fix Adv DHCP6 f/multiple interfaces. Fixes #13462
Spelling fixes. Fix #13357
Correct typo. Fixes #13663
Add bxe to the ALTQ capable interfaces list
Redmine: #13304
Remove cxgbe (cc) from the ALTQ capable list
Despite what the relevant man page claimed (now fixed) the cxgbe driverhas not supported ALTQ since 2012. Do not allow ALTQ to be enabled onthose interfaces.
This reverts b3979f4abe9ecb2bdd59cbbcb61e3eccf9180b79....
qinq: use if_vlan rather than netgraph
if_vlan now supports QinQ, so use that rather than netgraph. This isexpected to perform better, removes a subsystem dependency andsimplifies the php code as well.
Note that this is not possible on stable/12.
Remove unused argument from interface_qinq_configure()
$fd is always NULL, so there's no point in having branches for it.
Update external http links
Replace all direct $config accesses in interfaces.inc. #13446
Fixes some PHP81 related config access issues related to interfaces and interface assignments for #13446
Fix PHP error building if list. Issue #13446
dhclient pid path fix. Issue #13217
Make array/config_set_path() create intermediary paths
Rename run_dhcp6client_process param to debugOption
Correct a stray single quote in a config path
Remove '/enable' from a path given to config_path_enabled()
Fix unexpected type string for exec output