From afb191091d343a5b396de690cd1432fca238adc9 Mon Sep 17 00:00:00 2001 From: Apple Date: Fri, 31 Jan 2020 02:19:03 +0000 Subject: [PATCH] configd-1061.0.2.tar.gz --- EventFactory/EventFactory.h | 36 +- EventFactory/EventFactory.m | 257 +- EventFactory/IPConfigurationParser.h | 27 + EventFactory/IPConfigurationParser.m | 105 + EventFactory/IPMonitorParser.h | 27 + EventFactory/IPMonitorParser.m | 148 + EventFactory/Info.plist | 8 +- EventFactory/InterfaceNamerParser.h | 27 + .../InterfaceNamerParser.m | 38 +- EventFactory/KernelEventMonitorParser.h | 28 + EventFactory/KernelEventMonitorParser.m | 91 + EventFactory/PreferencesMonitorParser.h | 27 + .../PreferencesMonitorParser.m | 55 +- EventFactory/SCLogParser.h | 50 + EventFactory/SCLogParser.m | 178 + EventFactory/StateDumpParser.h | 27 + EventFactory/StateDumpParser.m | 315 + .../IPMonitor/Info-EmbeddedSimulator.plist | 4 +- Plugins/IPMonitor/Info.plist | 4 +- Plugins/IPMonitor/Makefile | 42 +- Plugins/IPMonitor/agent-monitor.m | 33 +- Plugins/IPMonitor/configAgent.m | 8 +- Plugins/IPMonitor/dns-configuration.c | 65 +- Plugins/IPMonitor/dns-configuration.h | 12 +- Plugins/IPMonitor/ip_plugin.c | 566 +- Plugins/IPMonitor/ip_plugin.h | 2 +- Plugins/IPMonitor/nat64-configuration.c | 506 +- Plugins/IPMonitor/nat64-configuration.h | 10 +- Plugins/IPMonitor/routelist_output_filter.sh | 6 +- Plugins/IPMonitor/serviceIDNumber.c | 241 + Plugins/IPMonitor/serviceIDNumber.h | 90 + Plugins/IPMonitor/set-hostname.c | 3 +- Plugins/IPMonitor/smb-configuration.c | 3 +- .../test_ipv4_routelist_reference.txt | 13128 ++++++++++++---- .../test_ipv6_routelist_reference.txt | 182 +- Plugins/InterfaceNamer/Info.plist | 4 +- Plugins/InterfaceNamer/ifnamer.c | 303 +- Plugins/KernelEventMonitor/Info.plist | 4 +- Plugins/KernelEventMonitor/ev_dlil.c | 69 +- Plugins/KernelEventMonitor/ev_dlil.h | 10 +- Plugins/KernelEventMonitor/ev_extra.m | 17 +- Plugins/KernelEventMonitor/ev_ipv4.c | 27 +- Plugins/KernelEventMonitor/ev_ipv6.c | 17 +- Plugins/KernelEventMonitor/eventmon.c | 49 +- Plugins/KernelEventMonitor/eventmon.h | 4 +- Plugins/LinkConfiguration/Info.plist | 4 +- Plugins/LinkConfiguration/linkconfig.c | 20 +- Plugins/PreferencesMonitor/Info.plist | 4 +- Plugins/PreferencesMonitor/prefsmon.c | 32 +- Plugins/QoSMarking/Info-Embedded.plist | 4 +- Plugins/QoSMarking/Info.plist | 4 +- Plugins/QoSMarking/qos-marking.m | 40 +- Plugins/SimulatorSupport/Info.plist | 4 +- Plugins/SimulatorSupport/simulator_support.c | 14 +- Plugins/common/IPMonitorControlPrefs.c | 13 +- Plugins/common/InterfaceNamerControlPrefs.c | 13 +- Plugins/common/cache.c | 190 - Plugins/common/plugin_shared.h | 6 +- SCMonitor/Info.plist | 4 +- .../Localizable.strings | Bin SCMonitor/monitor.c | 8 +- SCTest-ObjC/test-objC.m | 117 +- SCTest-Swift/main.swift | 132 +- SystemConfiguration.fproj/AppWorkaround.plist | 26 - SystemConfiguration.fproj/BondConfiguration.c | 18 +- .../BridgeConfiguration.c | 14 +- SystemConfiguration.fproj/CaptiveNetwork.c | 120 +- SystemConfiguration.fproj/CaptiveNetwork.h | 20 +- SystemConfiguration.fproj/Info-Embedded.plist | 6 +- SystemConfiguration.fproj/Info.plist | 6 +- SystemConfiguration.fproj/LinkConfiguration.c | 6 +- ...odulemap => SystemConfiguration.modulemap} | 3 +- .../SystemConfiguration.private.modulemap | 76 + .../NetworkConfiguration.plist | 53 + SystemConfiguration.fproj/SCD.c | 6 +- SystemConfiguration.fproj/SCDAdd.c | 10 +- SystemConfiguration.fproj/SCDCache.c | 152 + SystemConfiguration.fproj/SCDGet.c | 57 +- SystemConfiguration.fproj/SCDList.c | 6 +- SystemConfiguration.fproj/SCDNotifierAdd.c | 6 +- SystemConfiguration.fproj/SCDNotifierCancel.c | 13 +- .../SCDNotifierGetChanges.c | 6 +- .../SCDNotifierInformViaCallback.c | 183 +- .../SCDNotifierInformViaFD.c | 13 +- .../SCDNotifierInformViaSignal.c | 94 - SystemConfiguration.fproj/SCDNotifierRemove.c | 6 +- .../SCDNotifierSetKeys.c | 5 +- SystemConfiguration.fproj/SCDNotifierWait.c | 10 +- SystemConfiguration.fproj/SCDNotify.c | 22 +- SystemConfiguration.fproj/SCDOpen.c | 152 +- SystemConfiguration.fproj/SCDPlugin.c | 2 +- SystemConfiguration.fproj/SCDPlugin.h | 2 +- SystemConfiguration.fproj/SCDPrivate.c | 144 +- SystemConfiguration.fproj/SCDRemove.c | 26 +- SystemConfiguration.fproj/SCDSet.c | 33 +- SystemConfiguration.fproj/SCDSnapshot.c | 6 +- .../SCDynamicStoreInternal.h | 22 +- .../SCDynamicStorePrivate.h | 42 +- SystemConfiguration.fproj/SCNetwork.c | 10 +- .../SCNetworkConfiguration.h | 9 +- .../SCNetworkConfigurationInternal.c | 4 +- .../SCNetworkConfigurationInternal.h | 21 +- .../SCNetworkConfigurationPrivate.h | 11 +- .../SCNetworkConnection.c | 189 +- .../SCNetworkConnectionInternal.h | 3 +- .../SCNetworkConnectionPrivate.c | 12 +- .../SCNetworkInterface.c | 140 +- .../SCNetworkMigration.c | 6 +- SystemConfiguration.fproj/SCNetworkProtocol.c | 28 +- .../SCNetworkReachability.c | 124 +- .../SCNetworkReachabilityInternal.h | 4 - SystemConfiguration.fproj/SCNetworkService.c | 201 +- SystemConfiguration.fproj/SCNetworkSet.c | 451 +- .../SCNetworkSignature.c | 14 +- SystemConfiguration.fproj/SCP.c | 20 +- SystemConfiguration.fproj/SCPCommit.c | 13 +- SystemConfiguration.fproj/SCPLock.c | 11 +- SystemConfiguration.fproj/SCPOpen.c | 126 +- SystemConfiguration.fproj/SCPUnlock.c | 7 +- .../SCPreferencesInternal.h | 12 +- .../SCPreferencesKeychainPrivate.h | 6 +- SystemConfiguration.fproj/SCPrivate.h | 41 +- .../SCSchemaDefinitions.c | 13 +- .../SCSchemaDefinitions.h | 24 +- .../SCSchemaDefinitionsPrivate.h | 105 +- SystemConfiguration.fproj/SNHelper.c | 1 - .../SystemConfiguration.h | 5 +- .../SystemConfigurationInternal.h | 3 - SystemConfiguration.fproj/VLANConfiguration.c | 14 +- SystemConfiguration.fproj/VPNAppLayer.c | 2 +- SystemConfiguration.fproj/config.defs | 8 +- .../Localizable.strings | Bin .../NetworkInterface.strings | Bin SystemConfiguration.fproj/genSCPreferences.c | 68 +- .../helper/SCHelper_client.c | 22 +- .../helper/SCHelper_server.c | 2 +- .../restore-temporary-headers | 6 +- SystemConfiguration.fproj/scprefs_observer.c | 30 +- configd.tproj/_SCD.c | 62 +- configd.tproj/_SCD.h | 28 +- configd.tproj/_configadd.c | 1 - configd.tproj/_configclose.c | 50 +- configd.tproj/_configopen.c | 67 +- configd.tproj/_configset.c | 37 +- configd.tproj/_configunlock.c | 93 +- configd.tproj/_notifycancel.c | 12 +- configd.tproj/_notifychanges.c | 36 +- configd.tproj/_notifyviafd.c | 11 +- configd.tproj/_notifyviaport.c | 11 +- configd.tproj/_notifyviasignal.c | 134 - configd.tproj/_snapshot.c | 23 +- configd.tproj/configd.h | 4 +- configd.tproj/configd.m | 11 +- configd.tproj/configd_server.c | 252 +- configd.tproj/configd_server.h | 26 +- configd.tproj/entitlements-ios.plist | 12 +- configd.tproj/notify_server.c | 74 - configd.tproj/plugin_support.c | 17 +- configd.tproj/session.c | 718 +- configd.tproj/session.h | 32 +- configd.xcodeproj/project.pbxproj | 1311 +- dnsinfo/dnsinfo_copy.c | 28 +- dnsinfo/dnsinfo_create.c | 24 +- dnsinfo/dnsinfo_create.h | 14 +- dnsinfo/dnsinfo_flatfile.c | 8 +- dnsinfo/dnsinfo_internal.h | 4 +- dnsinfo/dnsinfo_server.c | 2 +- get-mobility-info | 4 +- get-network-info | 223 +- .../libSystemConfiguration_client.c | 1 - .../libSystemConfiguration_internal.h | 3 - .../libSystemConfiguration_server.c | 5 +- logging/liblog_SystemConfiguration_internal.h | 3 - nwi/network_information.c | 45 +- nwi/network_information.h | 3 +- nwi/network_information_server.c | 2 +- nwi/network_state_information_logging.h | 4 +- nwi/network_state_information_priv.c | 53 +- nwi/network_state_information_priv.h | 16 +- scselect.tproj/scselect.c | 4 +- scutil.tproj/cache.c | 293 +- scutil.tproj/cache.h | 2 - scutil.tproj/commands.c | 9 +- scutil.tproj/entitlements.plist | 8 + scutil.tproj/nc.c | 23 +- scutil.tproj/net_interface.c | 8 +- scutil.tproj/net_protocol.c | 20 +- scutil.tproj/notifications.c | 88 +- scutil.tproj/notifications.h | 11 +- scutil.tproj/scutil.h | 2 +- scutil.tproj/session.c | 12 +- scutil.tproj/tests.c | 10 +- 192 files changed, 17016 insertions(+), 7532 deletions(-) create mode 100644 EventFactory/IPConfigurationParser.h create mode 100644 EventFactory/IPConfigurationParser.m create mode 100644 EventFactory/IPMonitorParser.h create mode 100644 EventFactory/IPMonitorParser.m create mode 100644 EventFactory/InterfaceNamerParser.h rename configd.tproj/notify_server.h => EventFactory/InterfaceNamerParser.m (64%) create mode 100644 EventFactory/KernelEventMonitorParser.h create mode 100644 EventFactory/KernelEventMonitorParser.m create mode 100644 EventFactory/PreferencesMonitorParser.h rename Plugins/common/cache.h => EventFactory/PreferencesMonitorParser.m (50%) create mode 100644 EventFactory/SCLogParser.h create mode 100644 EventFactory/SCLogParser.m create mode 100644 EventFactory/StateDumpParser.h create mode 100644 EventFactory/StateDumpParser.m create mode 100644 Plugins/IPMonitor/serviceIDNumber.c create mode 100644 Plugins/IPMonitor/serviceIDNumber.h delete mode 100644 Plugins/common/cache.c rename SCMonitor/{English.lproj => en.lproj}/Localizable.strings (100%) delete mode 100644 SystemConfiguration.fproj/AppWorkaround.plist rename SystemConfiguration.fproj/Modules/{sc_modules.modulemap => SystemConfiguration.modulemap} (86%) create mode 100644 SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap create mode 100644 SystemConfiguration.fproj/SCDCache.c delete mode 100644 SystemConfiguration.fproj/SCDNotifierInformViaSignal.c rename SystemConfiguration.fproj/{English.lproj => en.lproj}/Localizable.strings (100%) rename SystemConfiguration.fproj/{English.lproj => en.lproj}/NetworkInterface.strings (100%) delete mode 100644 configd.tproj/_notifyviasignal.c delete mode 100644 configd.tproj/notify_server.c create mode 100644 scutil.tproj/entitlements.plist diff --git a/EventFactory/EventFactory.h b/EventFactory/EventFactory.h index 5ccf3b9..3fdbb6e 100644 --- a/EventFactory/EventFactory.h +++ b/EventFactory/EventFactory.h @@ -1,10 +1,32 @@ -// -// EventFactory.h -// SystemConfigurationNetworkEventFactory -// -// Created by Allan Nathanson on 11/15/17. -// -// +/* + * Copyright (c) 2017-2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +/* + * Modification History + * + * November 15, 2017 Allan Nathanson + * - initial revision + */ #import diff --git a/EventFactory/EventFactory.m b/EventFactory/EventFactory.m index 1886b5d..d1eb8e6 100644 --- a/EventFactory/EventFactory.m +++ b/EventFactory/EventFactory.m @@ -1,18 +1,47 @@ -// -// EventFactory.m -// SystemConfigurationNetworkEventFactory -// -// Created by Allan Nathanson on 11/15/17. -// -// +/* + * Copyright (c) 2017-2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +/* + * Modification History + * + * November 15, 2017 Allan Nathanson + * - initial revision + */ -#import "EventFactory.h" #import +#import "EventFactory.h" +#import "SCLogParser.h" +#import "InterfaceNamerParser.h" +#import "IPMonitorParser.h" +#import "KernelEventMonitorParser.h" +#import "PreferencesMonitorParser.h" +#import "StateDumpParser.h" +#import "IPConfigurationParser.h" #pragma mark - #pragma mark Logging -static os_log_t +os_log_t __log_Spectacles(void) { static os_log_t log = NULL; @@ -24,201 +53,75 @@ __log_Spectacles(void) return log; } -#define specs_log_err(format, ...) os_log_error(__log_Spectacles(), format, ##__VA_ARGS__) -#define specs_log_notice(format, ...) os_log (__log_Spectacles(), format, ##__VA_ARGS__) -#define specs_log_info(format, ...) os_log_info (__log_Spectacles(), format, ##__VA_ARGS__) -#define specs_log_debug(format, ...) os_log_debug(__log_Spectacles(), format, ##__VA_ARGS__) - -#pragma mark - -#pragma mark Matching - -#define REMatched(re_matches, args) \ - ((re_matches != nil) && (re_matches.count == 1) && (re_matches[0].numberOfRanges == (args + 1))) - -#define REMatchRange(re_matches, arg) \ - [re_matches[0] rangeAtIndex:arg] - #pragma mark - #pragma mark SystemConfiguratioin Network Event Factory @interface EventFactory () - -@property (readonly, nonatomic) NSRegularExpression *kevExpressionInterfaceAttach; -@property (readonly, nonatomic) NSRegularExpression *kevExpressionLink; -@property (readonly, nonatomic) NSRegularExpression *kevExpressionLinkQuality; - +@property NSDictionary *parserMap; @end @implementation EventFactory -- (instancetype)init +- (void)startWithLogSourceAttributes:(__unused NSDictionary *)attributes { - self = [super init]; - if (self) { - NSError *expressionError; - - expressionError = nil; - _kevExpressionInterfaceAttach = [[NSRegularExpression alloc] initWithPattern:@"Process interface (attach|detach): (\\w+)" options:0 error:&expressionError]; - if (expressionError != nil) { - specs_log_info("Failed to create a regular expression: %@", expressionError); - } - - expressionError = nil; - _kevExpressionLink = [[NSRegularExpression alloc] initWithPattern:@"Process interface link (down|up): (\\w+)" options:0 error:&expressionError]; - if (expressionError != nil) { - specs_log_info("Failed to create a regular expression: %@", expressionError); - } - - expressionError = nil; - _kevExpressionLinkQuality = [[NSRegularExpression alloc] initWithPattern:@"Process interface quality: (\\w+) \\(q=([-\\d]+)\\)" options:0 error:&expressionError]; - if (expressionError != nil) { - specs_log_info("Failed to create a regular expression: %@", expressionError); - } - } + NSMutableDictionary *newParserMap = [[NSMutableDictionary alloc] init]; + SCLogParser *parser; - return self; -} + parser = [[InterfaceNamerParser alloc] init]; + newParserMap[parser.category] = parser; -- (void)startWithLogSourceAttributes:(NSDictionary *)attributes -{ - // - // Prepare for parsing logs - // - specs_log_info("Event factory is starting with attributes: %@", attributes); + parser = [[IPConfigurationParser alloc] init]; + newParserMap[parser.category] = parser; + + parser = [[IPMonitorParser alloc] init]; + newParserMap[parser.category] = parser; + + parser = [[KernelEventMonitorParser alloc] init]; + newParserMap[parser.category] = parser; + + parser = [[PreferencesMonitorParser alloc] init]; + newParserMap[parser.category] = parser; + + parser = [[StateDumpParser alloc] init]; + newParserMap[parser.category] = parser; + + _parserMap = [[NSDictionary alloc] initWithDictionary:newParserMap]; } - (void)handleLogEvent:(EFLogEvent *)logEvent completionHandler:(void (^)(NSArray * _Nullable))completionHandler { - NSString *category; - NSString *message; - EFNetworkControlPathEvent *newNetworkEvent = nil; - - message = logEvent.eventMessage; - if (message == nil) { - return; + NSString *category = nil; + if ([logEvent.eventType isEqualToString:@"stateEvent"]) { + category = @"StateDump"; + logEvent.subsystem = @"com.apple.SystemConfiguration"; + logEvent.category = category; + } else if ([logEvent.subsystem isEqualToString:@"com.apple.IPConfiguration"]) { + logEvent.category = @"IPConfiguration"; } - // - // Parse logEvent and continue constructing SpectaclesNetworkEvent objects - // - // Note: if one or more NetworkEvent objects are complete, send them to the - // app in the completion handler block. - // - - - category = logEvent.category; - if ([category isEqualToString:@"InterfaceNamer"]) { - - do { - } while (false); - - specs_log_debug("Skipped [%@] message: %@", category, message); - - } else if ([category isEqualToString:@"IPMonitor"]) { - - do { - } while (false); - - specs_log_debug("Skipped [%@] message: %@", category, message); - - } else if ([category isEqualToString:@"KernelEventMonitor"]) { - - do { - NSArray *matches; - NSRange range = NSMakeRange(0, message.length); - - // - // interface attach/detach - // - matches = [_kevExpressionInterfaceAttach matchesInString:message - options:NSMatchingReportProgress - range:range]; - if (REMatched(matches, 2)) { - NSString *event; - NSString *interface; - - interface = [message substringWithRange:REMatchRange(matches, 2)]; - event = [message substringWithRange:REMatchRange(matches, 1)]; - specs_log_debug("interface attach/detach: %@ --> %@", interface, event); - - newNetworkEvent = [[EFNetworkControlPathEvent alloc] initWithLogEvent:logEvent subsystemIdentifier:[[NSData alloc] init]]; - newNetworkEvent.interfaceBSDName = interface; - newNetworkEvent.interfaceStatus = [event isEqualToString:@"attach"] ? @"interface attached" : @"interface detached"; - break; - } - - // - // interface link up/down - // - matches = [_kevExpressionLink matchesInString:message - options:NSMatchingReportProgress - range:range]; - if (REMatched(matches, 2)) { - NSString *event; - NSString *interface; - - interface = [message substringWithRange:REMatchRange(matches, 2)]; - event = [message substringWithRange:REMatchRange(matches, 1)]; - specs_log_debug("link change: %@ --> %@", interface, event); - - newNetworkEvent = [[EFNetworkControlPathEvent alloc] initWithLogEvent:logEvent subsystemIdentifier:[[NSData alloc] init]]; - newNetworkEvent.interfaceBSDName = interface; - newNetworkEvent.interfaceStatus = [event isEqualToString:@"up"] ? @"link up" : @"link down"; - break; - } - - // - // interface link quality - // - matches = [_kevExpressionLinkQuality matchesInString:message - options:NSMatchingReportProgress - range:range]; - if (REMatched(matches, 2)) { - NSString *interface; - NSString *quality; - - interface = [message substringWithRange:REMatchRange(matches, 1)]; - quality = [message substringWithRange:REMatchRange(matches, 2)]; - specs_log_debug("link quality: %@ --> %@", interface, quality); - - newNetworkEvent = [[EFNetworkControlPathEvent alloc] initWithLogEvent:logEvent subsystemIdentifier:[[NSData alloc] init]]; - newNetworkEvent.interfaceBSDName = interface; - newNetworkEvent.interfaceStatus = [NSString stringWithFormat:@"link quality = %@", quality]; - break; - } - - specs_log_debug("Skipped [%@] message: %@", category, message); - } while (false); - - } else if ([category isEqualToString:@"PreferencesMonitor"]) { - - do { - } while (false); - - specs_log_debug("Skipped [%@] message: %@", category, message); - - } else { - // if we have no handler for this category - specs_log_debug("Skipped [%@] message: %@", category, message); + if (logEvent.category.length == 0) { + specs_log_debug("Skipped message without a category: %@", logEvent.eventMessage); + completionHandler(nil); + return; } - if (newNetworkEvent != nil) { - completionHandler(@[ newNetworkEvent ]); - } else { + SCLogParser *parser = _parserMap[logEvent.category]; + if (parser == nil) { + specs_log_debug("Skipped message with an unknown category (%@): %@", logEvent.category, logEvent.eventMessage); completionHandler(nil); + return; } + + NSArray *completeEvents = [parser.eventParser parseLogEventIntoMultipleEvents:logEvent]; + completionHandler(completeEvents); } - (void)finishWithCompletionHandler:(void (^)(NSArray * _Nullable))completionHandler { - // - // Clean up - // - // Note: if one or more SpectaclesNetworkEvent objects are in the process of - // being built, return them in the completion handler block. - // specs_log_notice("Event factory is finishing"); completionHandler(nil); } @end + + diff --git a/EventFactory/IPConfigurationParser.h b/EventFactory/IPConfigurationParser.h new file mode 100644 index 0000000..0dc0a28 --- /dev/null +++ b/EventFactory/IPConfigurationParser.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import "SCLogParser.h" + +@interface IPConfigurationParser : SCLogParser +@end diff --git a/EventFactory/IPConfigurationParser.m b/EventFactory/IPConfigurationParser.m new file mode 100644 index 0000000..32717a9 --- /dev/null +++ b/EventFactory/IPConfigurationParser.m @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import +#import +#import "IPConfigurationParser.h" + +#define TokenLinkStatus "linkStatus" +#define TokenSSID "ssid" +#define TokenMessage "message" +#define TokenAddress "address" +#define TokenComponentName "component" + +@implementation IPConfigurationParser + +- (instancetype)init +{ + NSArray *matches = @[ + [[EFLogEventMatch alloc] initWithPattern:@"(?<"TokenInterfaceName">\\w+) link (?<"TokenLinkStatus">ACTIVE|INACTIVE)" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + NSString *statusString = [logEvent substringForCaptureGroup:@TokenLinkStatus inMatchResult:matchResult]; + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + if ([statusString isEqualToString:@"ACTIVE"]) { + newEvent.link = @"link up"; + } else { + newEvent.link = @"link down"; + } + *isComplete = YES; + return newEvent; + }], + [[EFLogEventMatch alloc] initWithPattern:@"(?<"TokenInterfaceName">\\w+): SSID (?<"TokenSSID">\\S+) BSSID" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + NSString *ssid = [logEvent substringForCaptureGroup:@TokenSSID inMatchResult:matchResult]; + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + EFSubEvent *subEvent = [[EFSubEvent alloc] initWithTimestamp:logEvent.date textDescription:ssid]; + [newEvent addSubEvent:subEvent]; + *isComplete = YES; + return newEvent; + }], + [[EFLogEventMatch alloc] initWithPattern:@"\\[(?<"TokenComponentName">\\w+ )?(?<"TokenInterfaceName">\\w+)\\] (?<"TokenMessage">(?:Transmit|Receive) \\d+ byte packet xid \\w+ (?:to|from) .*)" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + NSString *message = [logEvent substringForCaptureGroup:@TokenMessage inMatchResult:matchResult]; + NSString *component = [logEvent substringForCaptureGroup:@TokenComponentName inMatchResult:matchResult]; + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + NSString *description = [[NSString alloc] initWithFormat:@"%@ %@", component, message]; + EFSubEvent *subEvent = [[EFSubEvent alloc] initWithTimestamp:logEvent.date textDescription:description]; + [newEvent addSubEvent:subEvent]; + *isComplete = YES; + return newEvent; + }], + [[EFLogEventMatch alloc] initWithPattern:@"\\w+ (?<"TokenInterfaceName">\\w+): setting (?<"TokenAddress">\\S+) netmask \\S+ broadcast \\S+" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + *isComplete = YES; + NSString *addressString = [logEvent substringForCaptureGroup:@TokenAddress inMatchResult:matchResult]; + if (addressString.length > 0) { + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + [self addAddress:addressString toInterfaceEvent:newEvent]; + return newEvent; + } + return nil; + }], + [[EFLogEventMatch alloc] initWithPattern:@"\\w+ (?<"TokenInterfaceName">\\w+): removing (?<"TokenAddress">.+)" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + *isComplete = YES; + NSString *addressString = [logEvent substringForCaptureGroup:@TokenAddress inMatchResult:matchResult]; + if (addressString.length > 0) { + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + if ([self removeAddress:addressString fromInterfaceEvent:newEvent]) { + return newEvent; + } + } + return nil; + }] + ]; + + EFLogEventParser *parser = [[EFLogEventParser alloc] initWithMatches:matches]; + return [super initWithCategory:@"IPConfiguration" eventParser:parser]; +} + +@end diff --git a/EventFactory/IPMonitorParser.h b/EventFactory/IPMonitorParser.h new file mode 100644 index 0000000..4a31210 --- /dev/null +++ b/EventFactory/IPMonitorParser.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import "SCLogParser.h" + +@interface IPMonitorParser: SCLogParser +@end diff --git a/EventFactory/IPMonitorParser.m b/EventFactory/IPMonitorParser.m new file mode 100644 index 0000000..ecc1151 --- /dev/null +++ b/EventFactory/IPMonitorParser.m @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import +#import + +#import "IPMonitorParser.h" + +#define TokenInterfaceNameV6 "interfaceNameV6" +#define TokenAddressAction "addressAction" +#define TokenAddressAction6 "addressAction6" +#define TokenAddress "address" +#define TokenAddress6 "address6" +#define TokenServiceID "serviceID" +#define TokenV4Changes "v4Changes" +#define TokenV6Changes "v6Changes" + +@interface IPMonitorParser () +@property (readonly, nonatomic) NSRegularExpression *netChangeRegex; +@end + +@implementation IPMonitorParser + +- (instancetype)init +{ + NSError *regexError = nil; + _netChangeRegex = [[NSRegularExpression alloc] initWithPattern:@"(?<"TokenInterfaceName">\\w+)(?<"TokenAddressAction">[\\+\\-\\!\\/\\\\]?)(:(?<"TokenAddress">[:.0-9a-f]+))?" options:0 error:®exError]; + if (_netChangeRegex == nil) { + specs_log_err("Failed to create the network change regex: %@", regexError); + return nil; + } + + NSArray *matches = @[ + [[EFLogEventMatch alloc] initWithPattern:@"\\d+. (?<"TokenInterfaceName">\\w+) serviceID=(?<"TokenServiceID">[-\\w]+) addr=(?<"TokenAddress">) rank=\\w+" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + *isComplete = YES; + EFNetworkControlPathEvent *newEvent = nil; + NSString *serviceID = [logEvent substringForCaptureGroup:@TokenServiceID inMatchResult:matchResult]; + NSString *addressString = [logEvent substringForCaptureGroup:@TokenAddress inMatchResult:matchResult]; + if (serviceID != nil && addressString != nil) { + newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + if (newEvent != nil) { + newEvent.serviceID = serviceID; + [self addAddress:addressString toInterfaceEvent:newEvent]; + } + } + return newEvent; + }], + [[EFLogEventMatch alloc] initWithPattern:@"network changed:( v4\\((?<"TokenV4Changes">[^\\)]+)\\))?( v6\\((?<"TokenV6Changes">[^\\)]+)\\))?" + multipleNewEventHandler: + ^NSArray *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent) { + NSMutableDictionary *newEventsMap = nil; + NSArray *tokens = @[ @TokenV4Changes, @TokenV6Changes ]; + for (NSString *token in tokens) { + BOOL isIPv4 = [token isEqualToString:@TokenV4Changes]; + NSString *changes = [logEvent substringForCaptureGroup:token inMatchResult:matchResult]; + if (changes == nil) { + continue; + } + NSArray *matches = [self.netChangeRegex matchesInString:changes options:0 range:NSMakeRange(0, changes.length)]; + BOOL isPrimary = YES; + for (NSTextCheckingResult *match in matches) { + NSString *interfaceName = [self substringOfString:changes forCaptureGroup:@TokenInterfaceName inMatchResult:match]; + NSString *addressAction = [self substringOfString:changes forCaptureGroup:@TokenAddressAction inMatchResult:match]; + NSString *address = [self substringOfString:changes forCaptureGroup:@TokenAddress inMatchResult:match]; + + if (interfaceName == nil || address.length == 0) { + continue; + } + + EFNetworkControlPathEvent *event = newEventsMap[interfaceName]; + if (event == nil) { + event = [self createInterfaceEventWithLogEvent:logEvent interfaceName:interfaceName]; + if (newEventsMap == nil) { + newEventsMap = [[NSMutableDictionary alloc] init]; + } + newEventsMap[interfaceName] = event; + } + + if (addressAction.length > 0 && [addressAction isEqualToString:@"-"]) { + if (isPrimary) { + if (isIPv4) { + event.primaryStateIPv4 = EFPrimaryStateNotPrimary; + } else { + event.primaryStateIPv6 = EFPrimaryStateNotPrimary; + } + } + [self removeAddress:address fromInterfaceEvent:event]; + } else { + if (isPrimary) { + if (isIPv4) { + event.primaryStateIPv4 = EFPrimaryStatePrimary; + } else { + event.primaryStateIPv6 = EFPrimaryStatePrimary; + } + for (NSString *otherInterfaceName in SCLogParser.interfaceMap) { + if ([otherInterfaceName isEqualToString:interfaceName]) { + continue; + } + EFNetworkControlPathEvent *otherEvent = newEventsMap[otherInterfaceName]; + if (otherEvent == nil) { + otherEvent = [self createInterfaceEventWithLogEvent:logEvent interfaceName:otherInterfaceName]; + if (newEventsMap == nil) { + newEventsMap = [[NSMutableDictionary alloc] init]; + } + newEventsMap[otherInterfaceName] = otherEvent; + } + if (isIPv4) { + otherEvent.primaryStateIPv4 = EFPrimaryStateNotPrimary; + } else { + otherEvent.primaryStateIPv6 = EFPrimaryStateNotPrimary; + } + } + isPrimary = NO; + } + [self addAddress:address toInterfaceEvent:event]; + } + } + } + return newEventsMap.allValues; + }], + ]; + EFLogEventParser *parser = [[EFLogEventParser alloc] initWithMatches:matches]; + return [super initWithCategory:@"IPMonitor" eventParser:parser]; +} + +@end diff --git a/EventFactory/Info.plist b/EventFactory/Info.plist index 8978e66..b76c329 100644 --- a/EventFactory/Info.plist +++ b/EventFactory/Info.plist @@ -15,16 +15,12 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.0 + 1.19 CFBundleVersion 1 - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - Copyright © 2017 Apple Inc. All rights reserved. NSPrincipalClass EventFactory LogEventPredicate - subsystem == "com.apple.SystemConfiguration" + subsystem == "com.apple.SystemConfiguration" || (processImagePath contains "configd" && eventType == "stateEvent") || subsystem == "com.apple.IPConfiguration" diff --git a/EventFactory/InterfaceNamerParser.h b/EventFactory/InterfaceNamerParser.h new file mode 100644 index 0000000..ae15baf --- /dev/null +++ b/EventFactory/InterfaceNamerParser.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import "SCLogParser.h" + +@interface InterfaceNamerParser: SCLogParser +@end diff --git a/configd.tproj/notify_server.h b/EventFactory/InterfaceNamerParser.m similarity index 64% rename from configd.tproj/notify_server.h rename to EventFactory/InterfaceNamerParser.m index f1b46ec..d68b6c7 100644 --- a/configd.tproj/notify_server.h +++ b/EventFactory/InterfaceNamerParser.m @@ -1,15 +1,15 @@ /* - * Copyright (c) 2000, 2001 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,30 +17,22 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * Modification History - * - * June 1, 2001 Allan Nathanson - * - public API conversion * - * March 24, 2000 Allan Nathanson - * - initial revision + * @APPLE_LICENSE_HEADER_END@ */ -#ifndef _S_NOTIFY_SERVER_H -#define _S_NOTIFY_SERVER_H - -#include -#include +#import +#import -__BEGIN_DECLS +#import "InterfaceNamerParser.h" -boolean_t notify_server (mach_msg_header_t *request, mach_msg_header_t *reply); +@implementation InterfaceNamerParser -__END_DECLS +- (instancetype)init +{ + NSArray *matches = @[]; + EFLogEventParser *parser = [[EFLogEventParser alloc] initWithMatches:matches]; + return [super initWithCategory:@"InterfaceNamer" eventParser:parser]; +} -#endif /* !_S_NOTIFY_SERVER_H */ +@end diff --git a/EventFactory/KernelEventMonitorParser.h b/EventFactory/KernelEventMonitorParser.h new file mode 100644 index 0000000..7fa79ca --- /dev/null +++ b/EventFactory/KernelEventMonitorParser.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import "SCLogParser.h" + +@interface KernelEventMonitorParser: SCLogParser +@end + diff --git a/EventFactory/KernelEventMonitorParser.m b/EventFactory/KernelEventMonitorParser.m new file mode 100644 index 0000000..3b856a5 --- /dev/null +++ b/EventFactory/KernelEventMonitorParser.m @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import +#import + +#import "KernelEventMonitorParser.h" + +#define TokenStatus "status" +#define TokenLinkStatus "linkStatus" +#define TokenLinkQuality "linkQuality" + +@implementation KernelEventMonitorParser + +- (instancetype)init +{ + NSArray *matches = @[ + [[EFLogEventMatch alloc] initWithPattern:@"Process interface (?<"TokenStatus">attach|detach): (?<"TokenInterfaceName">\\w+)" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + *isComplete = YES; + EFNetworkControlPathEvent *newEvent = nil; + NSString *statusString = [logEvent substringForCaptureGroup:@TokenStatus inMatchResult:matchResult]; + if (statusString != nil) { + newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + if (newEvent != nil) { + newEvent.interfaceStatus = statusString; + } + } + return newEvent; + }], + [[EFLogEventMatch alloc] initWithPattern:@"Process interface link (?<"TokenLinkStatus">down|up): (?<"TokenInterfaceName">\\w+)" + newEventHandler: + ^EFEvent *(NSTextCheckingResult *matchResult, EFLogEvent *logEvent, BOOL *isComplete) { + *isComplete = YES; + EFNetworkControlPathEvent *newEvent = nil; + NSString *linkStatusString = [logEvent substringForCaptureGroup:@TokenLinkStatus inMatchResult:matchResult]; + if (linkStatusString != nil) { + newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + if (newEvent != nil) { + if ([linkStatusString isEqualToString:@"up"]) { + newEvent.link = @"link up"; + } else if ([linkStatusString isEqualToString:@"down"]) { + newEvent.link = @"link down"; + } else { + newEvent.link = linkStatusString; + } + } + } + return newEvent; + }], + [[EFLogEventMatch alloc] initWithPattern:@"Process interface quality: (?<"TokenInterfaceName">\\w+) \\(q=(?<"TokenLinkQuality">[-\\d]+)\\)" + newEventHandler: + ^EFEvent * _Nullable(NSTextCheckingResult * _Nonnull matchResult, EFLogEvent * _Nonnull logEvent, BOOL * _Nonnull isComplete) { + *isComplete = YES; + EFNetworkControlPathEvent *newEvent = nil; + NSString *qualityString = [logEvent substringForCaptureGroup:@TokenLinkQuality inMatchResult:matchResult]; + if (qualityString != nil) { + newEvent = [self createInterfaceEventWithLogEvent:logEvent matchResult:matchResult]; + if (newEvent != nil) { + newEvent.linkQuality = qualityString.integerValue; + } + } + return newEvent; + }], + ]; + EFLogEventParser *parser = [[EFLogEventParser alloc] initWithMatches:matches]; + return [super initWithCategory:@"KernelEventMonitor" eventParser:parser]; +} + +@end diff --git a/EventFactory/PreferencesMonitorParser.h b/EventFactory/PreferencesMonitorParser.h new file mode 100644 index 0000000..bd4205d --- /dev/null +++ b/EventFactory/PreferencesMonitorParser.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import "SCLogParser.h" + +@interface PreferencesMonitorParser: SCLogParser +@end diff --git a/Plugins/common/cache.h b/EventFactory/PreferencesMonitorParser.m similarity index 50% rename from Plugins/common/cache.h rename to EventFactory/PreferencesMonitorParser.m index f8efe16..8b10acd 100644 --- a/Plugins/common/cache.h +++ b/EventFactory/PreferencesMonitorParser.m @@ -1,15 +1,15 @@ /* - * Copyright (c) 2003, 2004, 2006 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,47 +17,22 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * Modification History * - * May 1, 2003 Allan Nathanson - * - initial revision + * @APPLE_LICENSE_HEADER_END@ */ +#import +#import -#ifndef _CACHE_H -#define _CACHE_H - - -#include -#include - - -__BEGIN_DECLS - -void cache_open (void); - -CFPropertyListRef cache_SCDynamicStoreCopyValue (SCDynamicStoreRef store, - CFStringRef key); - -void cache_SCDynamicStoreSetValue (SCDynamicStoreRef store, - CFStringRef key, - CFPropertyListRef value); - -void cache_SCDynamicStoreRemoveValue (SCDynamicStoreRef store, - CFStringRef key); - -void cache_SCDynamicStoreNotifyValue (SCDynamicStoreRef store, - CFStringRef key); - -void cache_write (SCDynamicStoreRef store); +#import "PreferencesMonitorParser.h" -void cache_close (void); +@implementation PreferencesMonitorParser -__END_DECLS +- (instancetype)init +{ + NSArray *matches = @[]; + EFLogEventParser *parser = [[EFLogEventParser alloc] initWithMatches:matches]; + return [super initWithCategory:@"PreferencesMonitor" eventParser:parser]; +} -#endif /* _CACHE_H */ +@end diff --git a/EventFactory/SCLogParser.h b/EventFactory/SCLogParser.h new file mode 100644 index 0000000..099def9 --- /dev/null +++ b/EventFactory/SCLogParser.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import + +@class EFLogEventParser; + +os_log_t __log_Spectacles(void); +#define specs_log_err(format, ...) os_log_error(__log_Spectacles(), format, ##__VA_ARGS__) +#define specs_log_notice(format, ...) os_log (__log_Spectacles(), format, ##__VA_ARGS__) +#define specs_log_info(format, ...) os_log_info (__log_Spectacles(), format, ##__VA_ARGS__) +#define specs_log_debug(format, ...) os_log_debug(__log_Spectacles(), format, ##__VA_ARGS__) + +#define TokenInterfaceName "ifname" + +@interface SCLogParser: NSObject +- (instancetype)initWithCategory:(NSString *)category eventParser:(EFLogEventParser *)eventParser; +- (NSData *)createSubsystemIdentifier; +- (NSArray *)addUniqueString:(NSString *)newString toArray:(NSArray *)array; +- (NSArray *)addUniqueStrings:(NSArray *)strings toArray:(NSArray *)array; +- (EFNetworkControlPathEvent *)createInterfaceEventWithLogEvent:(EFLogEvent *)logEvent matchResult:(NSTextCheckingResult *)matchResult; +- (EFNetworkControlPathEvent *)createInterfaceEventWithLogEvent:(EFLogEvent *)logEvent interfaceName:(NSString *)interfaceName; +- (void)addAddress:(NSString *)addressString toInterfaceEvent:(EFNetworkControlPathEvent *)event; +- (BOOL)removeAddress:(NSString *)addressString fromInterfaceEvent:(EFNetworkControlPathEvent *)event; +- (NSString *)substringOfString:(NSString *)matchedString forCaptureGroup:(NSString *)groupName inMatchResult:(NSTextCheckingResult *)result; +- (sa_family_t)getAddressFamilyOfAddress:(NSString *)addressString; +@property (readonly) EFLogEventParser *eventParser; +@property (readonly) NSString *category; +@property (class, readonly) NSMutableDictionary *> *interfaceMap; +@end diff --git a/EventFactory/SCLogParser.m b/EventFactory/SCLogParser.m new file mode 100644 index 0000000..17bcf59 --- /dev/null +++ b/EventFactory/SCLogParser.m @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import +#import +#import + +#import "SCLogParser.h" + +@interface SCLogParser () +@property uint64_t nextEventCounter; +@end + +@implementation SCLogParser + +- (instancetype)initWithCategory:(NSString *)category eventParser:(EFLogEventParser *)eventParser +{ + self = [super init]; + if (self) { + _category = category; + _eventParser = eventParser; + _nextEventCounter = 1; + } + return self; +} + ++ (NSMutableDictionary *> *)interfaceMap +{ + static NSMutableDictionary *> *_interfaceMap = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _interfaceMap = [[NSMutableDictionary alloc] init]; + }); + return _interfaceMap; +} + +- (NSData *)createSubsystemIdentifier +{ + NSString *identifierString = [[NSString alloc] initWithFormat:@"%@.%llu", _category, _nextEventCounter]; + _nextEventCounter++; + const char *utf8String = identifierString.UTF8String; + return [[NSData alloc] initWithBytes:utf8String length:strlen(utf8String)]; +} + +- (NSArray *)addUniqueString:(NSString *)newString toArray:(NSArray *)array +{ + if (array.count > 0) { + NSInteger index = [array indexOfObject:newString]; + return (index == NSNotFound ? [array arrayByAddingObject:newString] : array); + } else { + return @[ newString ]; + } +} + +- (NSArray *)addUniqueStrings:(NSArray *)strings toArray:(NSArray *)array +{ + if (array == nil) { + return strings; + } + + NSMutableArray *uniqueStrings = [[NSMutableArray alloc] init]; + for (NSString *string in strings) { + NSInteger index = [array indexOfObject:string]; + if (index == NSNotFound) { + [uniqueStrings addObject:string]; + } + } + if (uniqueStrings.count > 0) { + return [array arrayByAddingObjectsFromArray:uniqueStrings]; + } else { + return array; + } +} + +- (EFNetworkControlPathEvent *)createInterfaceEventWithLogEvent:(EFLogEvent *)logEvent matchResult:(NSTextCheckingResult *)matchResult +{ + EFNetworkControlPathEvent *newEvent = nil; + NSString *interfaceName = [logEvent substringForCaptureGroup:@TokenInterfaceName inMatchResult:matchResult]; + if (interfaceName != nil) { + if (SCLogParser.interfaceMap[interfaceName] == nil) { + SCLogParser.interfaceMap[interfaceName] = @[]; + } + NSData *identifier = [self createSubsystemIdentifier]; + newEvent = [[EFNetworkControlPathEvent alloc] initWithLogEvent:logEvent subsystemIdentifier:identifier]; + newEvent.interfaceBSDName = interfaceName; + } + return newEvent; +} + +- (EFNetworkControlPathEvent *)createInterfaceEventWithLogEvent:(EFLogEvent *)logEvent interfaceName:(NSString *)interfaceName +{ + EFNetworkControlPathEvent *newEvent = nil; + if (SCLogParser.interfaceMap[interfaceName] == nil) { + SCLogParser.interfaceMap[interfaceName] = @[]; + } + NSData *identifier = [self createSubsystemIdentifier]; + newEvent = [[EFNetworkControlPathEvent alloc] initWithLogEvent:logEvent subsystemIdentifier:identifier]; + newEvent.interfaceBSDName = interfaceName; + return newEvent; +} + +- (void)addAddress:(NSString *)addressString toInterfaceEvent:(EFNetworkControlPathEvent *)event +{ + if (event.interfaceBSDName != nil) { + NSArray *addresses = SCLogParser.interfaceMap[event.interfaceBSDName]; + event.addresses = [self addUniqueString:addressString toArray:addresses]; + SCLogParser.interfaceMap[event.interfaceBSDName] = event.addresses; + } +} + +- (BOOL)removeAddress:(NSString *)addressString fromInterfaceEvent:(EFNetworkControlPathEvent *)event +{ + if (event.interfaceBSDName != nil) { + NSArray *addresses = SCLogParser.interfaceMap[event.interfaceBSDName]; + if (addresses.count > 0) { + NSPredicate *matchPredicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, __unused NSDictionary *bindings) { + NSString *matchString = (NSString *)evaluatedObject; + if (matchString != nil) { + return ![matchString isEqualToString:addressString]; + } else { + return NO; + } + }]; + event.addresses = [addresses filteredArrayUsingPredicate:matchPredicate]; + SCLogParser.interfaceMap[event.interfaceBSDName] = event.addresses; + return YES; + } + } + + return NO; +} + +- (NSString *)substringOfString:(NSString *)matchedString forCaptureGroup:(NSString *)groupName inMatchResult:(NSTextCheckingResult *)result +{ + NSString *substring = nil; + NSRange groupRange = [result rangeWithName:groupName]; + if (!NSEqualRanges(groupRange, NSMakeRange(NSNotFound, 0))) { + substring = [matchedString substringWithRange:groupRange]; + } + return substring; +} + +- (sa_family_t)getAddressFamilyOfAddress:(NSString *)addressString +{ + sa_family_t af = AF_UNSPEC; + struct in6_addr v6addr; + struct in_addr v4addr; + + if (inet_pton(AF_INET6, addressString.UTF8String, &v6addr) == 1) { + af = AF_INET6; + } else if (inet_pton(AF_INET, addressString.UTF8String, &v4addr)) { + af = AF_INET; + } + + return af; +} + +@end diff --git a/EventFactory/StateDumpParser.h b/EventFactory/StateDumpParser.h new file mode 100644 index 0000000..af2c745 --- /dev/null +++ b/EventFactory/StateDumpParser.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import "SCLogParser.h" + +@interface StateDumpParser : SCLogParser +@end diff --git a/EventFactory/StateDumpParser.m b/EventFactory/StateDumpParser.m new file mode 100644 index 0000000..ef223dd --- /dev/null +++ b/EventFactory/StateDumpParser.m @@ -0,0 +1,315 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#import +#import +#import + +#import "StateDumpParser.h" + +#define TokenFlagsDescription "flagsDescription" +#define TokenAddress "address" +#define TokenReachabilityDescription "reachabilityDescription" +#define TokenRank "rank" +#define TokenOrder "order" +#define TokenDomain "domain" +#define TokenSearchDomains "searchDomains" +#define TokenNameServers "nameServers" + +#define ResolverSearchDomainsKey @"searchDomains" +#define ResolverNameServersKey @"nameServers" +#define ResolverInterfaceNameKey @"interfaceName" +#define ResolverFlagsDescriptionKey @"flagsDescription" +#define ResolverReachabilityDescriptionKey @"reachabilityDescription" +#define ResolverMatchDomainsKey @"matchDomains" + +@interface StateDumpParser () +@property (readonly, nonatomic) NSRegularExpression *nwiRegex; +@property (readonly, nonatomic) NSRegularExpression *dnsRegex; +@property (readonly, nonatomic) NSRegularExpression *nameserverRegex; +@property (readonly, nonatomic) NSRegularExpression *searchDomainRegex; +@end + +@implementation StateDumpParser + +- (instancetype)init +{ + NSError *regexError = nil; + + _nwiRegex = [[NSRegularExpression alloc] initWithPattern:@"\\s+(?<"TokenInterfaceName">\\w+) : flags\\s+: \\w+ \\(.+\\)\\n" + "\\s+address\\s+: (?<"TokenAddress">\\S+)\\n" + "(\\s+VPN server\\s+: \\S+\\n)?" + "\\s+reach\\s+: \\w+ \\(.+\\)\\n" + "\\s+rank\\s+: \\w+ \\((?<"TokenRank">\\w+), (?<"TokenOrder">\\w+)\\)" + options:0 + error:®exError]; + if (_nwiRegex == nil || regexError != nil) { + specs_log_err("Failed to create NWI regex: %@", regexError); + return nil; + } + + regexError = nil; + _dnsRegex = [[NSRegularExpression alloc] initWithPattern:@"resolver #\\d+\\n" + "( domain : (?<"TokenDomain">\\S+)\\n)?" + "(?<"TokenSearchDomains">(?: search domain\\[\\d+\\] : \\S+\\n)*)" + "(?<"TokenNameServers">(?: nameserver\\[\\d+\\] : \\S+\\n)*)" + "( if_index : \\d+ \\((?<"TokenInterfaceName">\\w+)\\)\\n)" + "( flags : \\w+ \\((?<"TokenFlagsDescription">.+)\\)\\n)" + "( reach : \\w+ \\((?<"TokenReachabilityDescription">.+)\\)\\n)" + options:0 + error:®exError]; + if (_dnsRegex == nil || regexError != nil) { + specs_log_err("Failed to create DNS configuration regex: %@", regexError); + return nil; + } + + regexError = nil; + _nameserverRegex = [[NSRegularExpression alloc] initWithPattern:@" nameserver\\[\\d+\\] : (?<"TokenAddress">\\S+)\\n" + options:0 + error:®exError]; + if (_nameserverRegex == nil || regexError != nil) { + specs_log_err("Failed to create the nameserver regex: %@", regexError); + return nil; + } + + regexError = nil; + _searchDomainRegex = [[NSRegularExpression alloc] initWithPattern:@" search domain\\[\\d+\\] : (?<"TokenDomain">\\S+)\\n" + options:0 + error:®exError]; + if (_searchDomainRegex == nil || regexError != nil) { + specs_log_err("Failed to create the search domain regex: %@", regexError); + return nil; + } + + NSArray *matches = @[ + [[EFLogEventMatch alloc] initWithPattern:@"^Network information" + multipleNewEventHandler: + ^NSArray *(__unused NSTextCheckingResult *matchResult, EFLogEvent *logEvent) { + NSMutableDictionary *newEvents = nil; + NSArray *matches = [self.nwiRegex matchesInString:logEvent.eventMessage options:0 range:NSMakeRange(0, logEvent.eventMessage.length)]; + BOOL primaryV4 = YES; + BOOL primaryV6 = YES; + + for (NSString *interfaceName in SCLogParser.interfaceMap.allKeys) { + SCLogParser.interfaceMap[interfaceName] = @[ ]; + } + + for (NSTextCheckingResult *match in matches) { + NSString *interfaceName = [logEvent substringForCaptureGroup:@TokenInterfaceName inMatchResult:match]; + if (interfaceName == nil) { + continue; + } + EFNetworkControlPathEvent *event = newEvents[interfaceName]; + if (event == nil) { + event = [self createInterfaceEventWithLogEvent:logEvent matchResult:match]; + if (newEvents == nil) { + newEvents = [[NSMutableDictionary alloc] init]; + } + newEvents[event.interfaceBSDName] = event; + event.primaryStateIPv4 = EFPrimaryStateNotPrimary; + event.primaryStateIPv6 = EFPrimaryStateNotPrimary; + } + NSString *addressString = [logEvent substringForCaptureGroup:@TokenAddress inMatchResult:match]; + if (addressString.length > 0) { + if (primaryV4 || primaryV6) { + sa_family_t addressFamily = [self getAddressFamilyOfAddress:addressString]; + if (primaryV4 && addressFamily == AF_INET) { + event.primaryStateIPv4 = EFPrimaryStatePrimary; + primaryV4 = NO; + } else if (primaryV6 && addressFamily == AF_INET6) { + event.primaryStateIPv6 = EFPrimaryStatePrimary; + primaryV6 = NO; + } + } + [self addAddress:addressString toInterfaceEvent:event]; + } + NSString *rankString = [logEvent substringForCaptureGroup:@TokenRank inMatchResult:match]; + if (rankString.length > 0) { + event.rank = rankString; + } + NSString *orderString = [logEvent substringForCaptureGroup:@TokenOrder inMatchResult:match]; + if (orderString.length > 0) { + if ([orderString isEqualToString:@"Last"]) { + event.order = -1; + } else { + event.order = orderString.integerValue; + } + } + } + return newEvents.allValues; + }], + [[EFLogEventMatch alloc] initWithPattern:@"^DNS Configuration" + multipleNewEventHandler: + ^NSArray *(__unused NSTextCheckingResult *matchResult, EFLogEvent *logEvent) { + NSMutableArray *newEvents = nil; + NSArray *matches = [self.dnsRegex matchesInString:logEvent.eventMessage options:0 range:NSMakeRange(0, logEvent.eventMessage.length)]; + NSMutableDictionary *> *interfaceDNSConfigurations = nil; + NSMutableArray *> *orderedDNSConfigurations = nil; + + for (NSTextCheckingResult *match in matches) { + NSMutableDictionary *dnsConfiguration = [[NSMutableDictionary alloc] init]; + NSString *matchDomain = [logEvent substringForCaptureGroup:@TokenDomain inMatchResult:match]; + BOOL scoped = NO; + if (matchDomain.length > 0) { + NSArray *domains = (NSArray *)dnsConfiguration[ResolverMatchDomainsKey]; + dnsConfiguration[ResolverMatchDomainsKey] = [self addUniqueString:matchDomain toArray:domains]; + } + NSString *searchDomainsString = [logEvent substringForCaptureGroup:@TokenSearchDomains inMatchResult:match]; + if (searchDomainsString.length > 0) { + [self addSubstringsFromString:searchDomainsString + forCaptureGroup:@TokenDomain + inRegex:self.searchDomainRegex + toArrayAtKey:ResolverSearchDomainsKey + inDictionary:dnsConfiguration]; + } + NSString *nameServersString = [logEvent substringForCaptureGroup:@TokenNameServers inMatchResult:match]; + if (nameServersString.length > 0) { + [self addSubstringsFromString:nameServersString + forCaptureGroup:@TokenAddress + inRegex:self.nameserverRegex + toArrayAtKey:ResolverNameServersKey + inDictionary:dnsConfiguration]; + } + NSString *flagsDescription = [logEvent substringForCaptureGroup:@TokenFlagsDescription inMatchResult:match]; + if (flagsDescription.length > 0) { + dnsConfiguration[ResolverFlagsDescriptionKey] = flagsDescription; + if ([flagsDescription containsString:@"Scoped"]) { + scoped = YES; + } + } + NSString *reachabilityDescription = [logEvent substringForCaptureGroup:@TokenReachabilityDescription inMatchResult:match]; + if (reachabilityDescription.length > 0) { + dnsConfiguration[ResolverReachabilityDescriptionKey] = reachabilityDescription; + } + + NSString *interfaceName = [logEvent substringForCaptureGroup:@TokenInterfaceName inMatchResult:match]; + if (interfaceName != nil) { + dnsConfiguration[ResolverInterfaceNameKey] = interfaceName; + } + + NSDictionary *newConfiguration = nil; + if (interfaceName != nil && (scoped || matchDomain.length > 0)) { + NSDictionary *existingConfiguration = interfaceDNSConfigurations[interfaceName]; + if (existingConfiguration != nil) { + if (matchDomain.length > 0) { + NSArray *matchDomains = (NSArray *)existingConfiguration[ResolverMatchDomainsKey]; + dnsConfiguration[ResolverMatchDomainsKey] = [self addUniqueString:matchDomain toArray:matchDomains]; + } else { + dnsConfiguration[ResolverMatchDomainsKey] = existingConfiguration[ResolverMatchDomainsKey]; + } + } + newConfiguration = [[NSDictionary alloc] initWithDictionary:dnsConfiguration]; + if (interfaceDNSConfigurations == nil) { + interfaceDNSConfigurations = [[NSMutableDictionary alloc] init]; + } + interfaceDNSConfigurations[interfaceName] = newConfiguration; + } else { + newConfiguration = [[NSDictionary alloc] initWithDictionary:dnsConfiguration]; + } + + if (!scoped) { + if (orderedDNSConfigurations == nil) { + orderedDNSConfigurations = [[NSMutableArray alloc] init]; + } + NSUInteger existingIndex = [orderedDNSConfigurations indexOfObjectPassingTest: + ^BOOL(NSDictionary *obj, __unused NSUInteger idx, __unused BOOL *stop) { + NSString *existingInterfaceName = (NSString *)obj[ResolverInterfaceNameKey]; + return (existingInterfaceName != nil && [interfaceName isEqualToString:existingInterfaceName]); + }]; + if (existingIndex == NSNotFound) { + [orderedDNSConfigurations addObject:newConfiguration]; + } else { + orderedDNSConfigurations[existingIndex] = newConfiguration; + } + } + } + + for (NSString *interfaceName in interfaceDNSConfigurations) { + NSDictionary *dnsConfiguration = interfaceDNSConfigurations[interfaceName]; + if (dnsConfiguration == nil || ![NSJSONSerialization isValidJSONObject:dnsConfiguration]) { + specs_log_err("DNS configuration is not valid JSON: %@", dnsConfiguration); + continue; + } + NSError *jsonError = nil; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dnsConfiguration options:NSJSONWritingPrettyPrinted error:&jsonError]; + if (jsonData == nil) { + specs_log_err("Failed to generate JSON from %@: %@", dnsConfiguration, jsonError); + continue; + } + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent interfaceName:interfaceName]; + newEvent.dnsConfiguration = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + + if (newEvents == nil) { + newEvents = [[NSMutableArray alloc] init]; + } + [newEvents addObject:newEvent]; + } + if (orderedDNSConfigurations.count > 0) { + NSError *jsonError = nil; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:orderedDNSConfigurations options:NSJSONWritingPrettyPrinted error:&jsonError]; + if (jsonData != nil) { + NSData *subsystemIdentifier = [self createSubsystemIdentifier]; + EFNetworkControlPathEvent *newEvent = [[EFNetworkControlPathEvent alloc] initWithLogEvent:logEvent subsystemIdentifier:subsystemIdentifier]; + newEvent.interfaceBSDName = @"system"; + newEvent.interfaceDescription = @"System Configuration"; + newEvent.dnsConfiguration = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + + if (newEvents == nil) { + newEvents = [[NSMutableArray alloc] init]; + } + [newEvents addObject:newEvent]; + } + } + for (NSString *interfaceName in SCLogParser.interfaceMap) { + if (interfaceDNSConfigurations[interfaceName] == nil) { + EFNetworkControlPathEvent *newEvent = [self createInterfaceEventWithLogEvent:logEvent interfaceName:interfaceName]; + newEvent.dnsConfiguration = EFNetworkControlPathEvent.configurationNotSet; + if (newEvents == nil) { + newEvents = [[NSMutableArray alloc] init]; + } + [newEvents addObject:newEvent]; + } + } + return newEvents; + }], + ]; + EFLogEventParser *parser = [[EFLogEventParser alloc] initWithMatches:matches]; + return [super initWithCategory:@"StateDump" eventParser:parser]; +} + +- (void)addSubstringsFromString:(NSString *)string forCaptureGroup:(NSString *)groupName inRegex:(NSRegularExpression *)regex toArrayAtKey:(NSString *)configKey inDictionary:(NSMutableDictionary *)dictionary +{ + NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)]; + for (NSTextCheckingResult *match in matches) { + NSRange groupRange = [match rangeWithName:groupName]; + if (!NSEqualRanges(groupRange, NSMakeRange(NSNotFound, 0))) { + NSString *substring = [string substringWithRange:groupRange]; + if (substring.length > 0) { + NSArray *existingList = (NSArray *)dictionary[configKey]; + dictionary[configKey] = [self addUniqueString:substring toArray:existingList]; + } + } + } +} + +@end diff --git a/Plugins/IPMonitor/Info-EmbeddedSimulator.plist b/Plugins/IPMonitor/Info-EmbeddedSimulator.plist index 4065076..b5f8f83 100644 --- a/Plugins/IPMonitor/Info-EmbeddedSimulator.plist +++ b/Plugins/IPMonitor/Info-EmbeddedSimulator.plist @@ -19,11 +19,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 MachServices com.apple.SystemConfiguration.DNSConfiguration_sim diff --git a/Plugins/IPMonitor/Info.plist b/Plugins/IPMonitor/Info.plist index 6c63c55..3bd882d 100644 --- a/Plugins/IPMonitor/Info.plist +++ b/Plugins/IPMonitor/Info.plist @@ -19,11 +19,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 MachServices com.apple.SystemConfiguration.DNSConfiguration diff --git a/Plugins/IPMonitor/Makefile b/Plugins/IPMonitor/Makefile index 7517809..1214754 100644 --- a/Plugins/IPMonitor/Makefile +++ b/Plugins/IPMonitor/Makefile @@ -1,6 +1,6 @@ ifeq ($(PLATFORM),iphoneos) # iOS internal SDK -ARCHS=armv7 +ARCHS=arm64 endif ifeq ($(PLATFORM),) @@ -21,7 +21,7 @@ PF_INC = -F$(SYSROOT)/System/Library/PrivateFrameworks ARCH_FLAGS=$(foreach a,$(ARCHS),-arch $(a)) EXTRA_CFLAGS= -TEST_INCLUDE=-I. -I../common -I../../dnsinfo -I../../nwi -I../../libSystemConfiguration -I../../SystemConfiguration.fproj -I../../IPMonitorControl -I$(SYSROOT)/System/Library/Frameworks/System.framework/PrivateHeaders +TEST_INCLUDE=-I. -I../common -I../../dnsinfo -I../../nwi -I../../libSystemConfiguration -I../../SystemConfiguration.fproj -I../../IPMonitorControl -I../../IPMonitorControl/AWD -I$(SYSROOT)/System/Library/Frameworks/System.framework/PrivateHeaders REFERENCE_OUTPUT=../../common/reference_output.sh @@ -83,6 +83,9 @@ IPMonitorControlPrefs.o: ../common/IPMonitorControlPrefs.h ../common/IPMonitorCo IPMonitorControlServer.o: ../../IPMonitorControl/IPMonitorControlServer.c $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) ${TEST_INCLUDE} -Wall -O0 -g -c $^ +serviceIDNumber.o: serviceIDNumber.c + $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) ${TEST_INCLUDE} -Wall -O0 -g -c $^ + # ---------- ip_pluginX.o: Makefile ip_plugin.c @@ -129,38 +132,37 @@ test_dns_order: test_dns_order.o IPMonitorControlPrefs.o agent-monitor.o configA $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -Wall -O0 -g -o test_dns_order test_dns_order.o IPMonitorControlPrefs.o agent-monitor.o configAgent.o controller.o dnsAgent.o proxyAgent.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o network_state_information_priv.o network_information_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o IPMonitorControlServer.o libSystemConfiguration_client.o libSystemConfiguration_server.o ${EXTRA_CFLAGS} -lnetwork -framework SystemConfiguration -framework CoreFoundation -framework Foundation -framework Network -framework NetworkExtension # ---------- - test_ipv4_routelist.o: ip_plugin.c $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -DTEST_IPV4_ROUTELIST ${TEST_INCLUDE} ${EXTRA_CFLAGS} -Wall -O0 -g -c -o $@ $^ -test_ipv4_routelist: test_ipv4_routelist.o IPMonitorControlPrefs.o agent-monitor.o configAgent.o controller.o dnsAgent.o proxyAgent.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o network_state_information_priv.o network_information_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o IPMonitorControlServer.o libSystemConfiguration_client.o libSystemConfiguration_server.o - $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -Wall -O0 -g -o test_ipv4_routelist test_ipv4_routelist.o IPMonitorControlPrefs.o agent-monitor.o configAgent.o controller.o dnsAgent.o proxyAgent.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o network_state_information_priv.o network_information_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o IPMonitorControlServer.o libSystemConfiguration_client.o libSystemConfiguration_server.o ${EXTRA_CFLAGS} -lnetwork -framework SystemConfiguration -framework CoreFoundation -framework Foundation -framework Network -framework NetworkExtension +test_ipv4_routelist: test_ipv4_routelist.o IPMonitorControlPrefs.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o libSystemConfiguration_client.o libSystemConfiguration_server.o serviceIDNumber.o + $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -Wall -O0 -g -o test_ipv4_routelist $^ ${EXTRA_CFLAGS} -lnetwork -framework SystemConfiguration -framework CoreFoundation -framework Foundation -framework Network -framework NetworkExtension test_ipv4_routelist_reference.txt: test_ipv4_routelist - sh $(REFERENCE_OUTPUT) create test_ipv4_routelist test_ipv4_routelist_reference.txt routelist_output_filter.sh + sh $(REFERENCE_OUTPUT) create ./test_ipv4_routelist test_ipv4_routelist_reference.txt routelist_output_filter.sh test_ipv4_routelist_test: test_ipv4_routelist - sh $(REFERENCE_OUTPUT) test test_ipv4_routelist test_ipv4_routelist_reference.txt routelist_output_filter.sh + sh $(REFERENCE_OUTPUT) test ./test_ipv4_routelist test_ipv4_routelist_reference.txt routelist_output_filter.sh test_ipv4_routelist_coverage: test_ipv4_routelist - test_ipv4_routelist -1 | grep Hit | awk '{print $$2}' | sort | uniq + ./test_ipv4_routelist -1 | grep Hit | awk '{print $$2}' | sort | uniq # ---------- test_ipv6_routelist.o: ip_plugin.c - $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -DTEST_IPV6_ROUTELIST ${TEST_INCLUDE} ${EXTRA_CFLAGS} -Wall -O0 -g -c -o $@ $^ + $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -DTEST_IPV6_ROUTELIST=1 ${TEST_INCLUDE} ${EXTRA_CFLAGS} -Wall -O0 -g -c -o $@ $^ -test_ipv6_routelist: test_ipv6_routelist.o IPMonitorControlPrefs.o agent-monitor.o configAgent.o controller.o dnsAgent.o proxyAgent.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o network_state_information_priv.o network_information_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o IPMonitorControlServer.o libSystemConfiguration_client.o libSystemConfiguration_server.o - $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -Wall -O0 -g -o test_ipv6_routelist test_ipv6_routelist.o IPMonitorControlPrefs.o agent-monitor.o configAgent.o controller.o dnsAgent.o proxyAgent.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o network_state_information_priv.o network_information_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o IPMonitorControlServer.o libSystemConfiguration_client.o libSystemConfiguration_server.o ${EXTRA_CFLAGS} -lnetwork -framework SystemConfiguration -framework CoreFoundation -framework Foundation -framework Network -framework NetworkExtension +test_ipv6_routelist: test_ipv6_routelist.o IPMonitorControlPrefs.o dnsinfo_create.o dnsinfo_flatfile.o dnsinfo_server.o dns-configuration.o proxy-configuration.o set-hostname.o smb-configuration.o libSystemConfiguration_client.o libSystemConfiguration_server.o serviceIDNumber.o + $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -Wall -O0 -g -o test_ipv6_routelist $^ ${EXTRA_CFLAGS} -lnetwork -framework SystemConfiguration -framework CoreFoundation -framework Foundation -framework Network -framework NetworkExtension test_ipv6_routelist_reference.txt: test_ipv6_routelist - sh $(REFERENCE_OUTPUT) create test_ipv6_routelist test_ipv6_routelist_reference.txt routelist_output_filter.sh + sh $(REFERENCE_OUTPUT) create ./test_ipv6_routelist test_ipv6_routelist_reference.txt routelist_output_filter.sh test_ipv6_routelist_test: test_ipv6_routelist - sh $(REFERENCE_OUTPUT) test test_ipv6_routelist test_ipv6_routelist_reference.txt routelist_output_filter.sh + sh $(REFERENCE_OUTPUT) test ./test_ipv6_routelist test_ipv6_routelist_reference.txt routelist_output_filter.sh test_ipv6_routelist_coverage: test_ipv6_routelist - test_ipv6_routelist -1 | grep Hit | awk '{print $$2}' | sort | uniq + ./test_ipv6_routelist -1 | grep Hit | awk '{print $$2}' | sort | uniq # ---------- @@ -172,5 +174,15 @@ IPMonitor: IPMonitor.o IPMonitorControlPrefs.o agent-monitor.o configAgent.o con # ---------- +serviceIDNumberTest: serviceIDNumber.c + $(CC) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -DTEST_SERVICEID_NUMBER=1 ${TEST_INCLUDE} ${EXTRA_CFLAGS} -Wall -O0 -g -o $@ $^ -framework SystemConfiguration -framework CoreFoundation + +# ---------- + +nat64: nat64-configuration.c + $(CC) -DTEST_NAT64_CONFIGURATION $(TEST_INCLUDE) $(PF_INC) $(ARCH_FLAGS) -isysroot $(SYSROOT) -lnetwork -framework CoreFoundation -framework SystemConfiguration -Wall -O0 -g -o $@ $^ + +# ---------- + clean: - rm -rf *.dSYM *.o test_dns test_hostname test_proxy test_smb test_ipv4_routelist test_ipv6_routelist test_dns_order IPMonitor + rm -rf *.dSYM *.o test_dns test_hostname test_proxy test_smb test_ipv4_routelist test_ipv6_routelist test_dns_order serviceIDNumberTest IPMonitor nat64 diff --git a/Plugins/IPMonitor/agent-monitor.m b/Plugins/IPMonitor/agent-monitor.m index e53d3a6..9c329c4 100644 --- a/Plugins/IPMonitor/agent-monitor.m +++ b/Plugins/IPMonitor/agent-monitor.m @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2015-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -23,9 +23,22 @@ #import "controller.h" +static Boolean +haveNetworkExtensionFramework() +{ + Boolean haveFramework; + + haveFramework = ([NEPolicy class] != nil); + return haveFramework; +} + void process_AgentMonitor(void) { + if (!haveNetworkExtensionFramework()) { + return; + } + SC_log(LOG_DEBUG, "Triggering AgentMonitor"); @autoreleasepool { AgentController *controller = [AgentController sharedController]; @@ -46,6 +59,10 @@ process_AgentMonitor(void) void process_AgentMonitor_DNS(void) { + if (!haveNetworkExtensionFramework()) { + return; + } + SC_log(LOG_DEBUG, "Triggering AgentMonitor for DNS"); @autoreleasepool { AgentController *controller = [AgentController sharedController]; @@ -65,6 +82,10 @@ process_AgentMonitor_DNS(void) void process_AgentMonitor_Proxy(void) { + if (!haveNetworkExtensionFramework()) { + return; + } + SC_log(LOG_DEBUG, "Triggering AgentMonitor for Proxy"); @autoreleasepool { AgentController *controller = [AgentController sharedController]; @@ -85,6 +106,11 @@ const void * copy_proxy_information_for_agent_uuid(uuid_t uuid, uint64_t *length) { __block const void *buffer = NULL; + + if (!haveNetworkExtensionFramework()) { + return NULL; + } + @autoreleasepool { AgentController *controller = [AgentController sharedController]; if (controller == nil) { @@ -105,6 +131,11 @@ const void * copy_dns_information_for_agent_uuid(uuid_t uuid, uint64_t *length) { __block const void *buffer = NULL; + + if (!haveNetworkExtensionFramework()) { + return NULL; + } + @autoreleasepool { AgentController *controller = [AgentController sharedController]; if (controller == nil) { diff --git a/Plugins/IPMonitor/configAgent.m b/Plugins/IPMonitor/configAgent.m index 8b57188..5af5b47 100644 --- a/Plugins/IPMonitor/configAgent.m +++ b/Plugins/IPMonitor/configAgent.m @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2015-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -183,10 +183,10 @@ - So for a name, we would always have the same UUID. */ - unsigned char hashValue[CC_MD5_DIGEST_LENGTH]; + unsigned char hashValue[CC_SHA256_DIGEST_LENGTH]; const char *strForHash = [agentName UTF8String]; - CC_MD5(strForHash, (CC_LONG)strlen(strForHash), hashValue); - + CC_SHA256(strForHash, (CC_LONG)strlen(strForHash), hashValue); + return [[NSUUID alloc] initWithUUIDBytes:hashValue]; } diff --git a/Plugins/IPMonitor/dns-configuration.c b/Plugins/IPMonitor/dns-configuration.c index 8fc79cc..3d0121f 100644 --- a/Plugins/IPMonitor/dns-configuration.c +++ b/Plugins/IPMonitor/dns-configuration.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2018 Apple Inc. All rights reserved. + * Copyright (c) 2004-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -41,10 +41,8 @@ #include #include #include -#if !TARGET_OS_IPHONE #include extern uint32_t notify_monitor_file(int token, const char *name, int flags); -#endif // !TARGET_OS_IPHONE #include #include @@ -97,13 +95,13 @@ dns_resolver_flags_service(CFDictionaryRef service, uint32_t resolver_flags) // check if the service has v4 configured if (((resolver_flags & DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS) == 0) && - service_contains_protocol(service, AF_INET)) { + service_is_routable(service, AF_INET)) { resolver_flags |= DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS; } // check if the service has v6 configured if (((resolver_flags & DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS) == 0) && - service_contains_protocol(service, AF_INET6)) { + service_is_routable(service, AF_INET6)) { resolver_flags |= DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS; } @@ -1321,7 +1319,7 @@ create_resolver(CFDictionaryRef dns) *slash = '\0'; } - bzero(&sortaddr, sizeof(sortaddr)); + memset(&sortaddr, 0, sizeof(sortaddr)); if (inet_aton(buf, &sortaddr.address) != 1) { /* if address not valid */ continue; @@ -1564,8 +1562,8 @@ dns_configuration_set(CFDictionaryRef defaultResolver, CFArrayRef mySearchDomains = NULL; CFIndex n_resolvers; CFMutableArrayRef resolvers; - unsigned char signature[CC_SHA1_DIGEST_LENGTH]; - static unsigned char signature_last[CC_SHA1_DIGEST_LENGTH]; + unsigned char signature[CC_SHA256_DIGEST_LENGTH]; + static unsigned char signature_last[CC_SHA256_DIGEST_LENGTH]; // establish list of resolvers @@ -1700,19 +1698,17 @@ dns_configuration_set(CFDictionaryRef defaultResolver, } } -#if !TARGET_OS_IPHONE // add flatfile resolvers _dnsinfo_flatfile_set_flags(default_resolver_flags); _dnsinfo_flatfile_add_resolvers(&dns_create_config); -#endif // !TARGET_OS_IPHONE } // check if the configuration changed _dns_configuration_signature(&dns_create_config, signature, sizeof(signature)); if (bcmp(signature, signature_last, sizeof(signature)) != 0) { // save [new] signature - bcopy(signature, signature_last, sizeof(signature)); + memcpy(signature_last, signature, sizeof(signature)); my_log(LOG_INFO, "Updating DNS configuration"); if (dns_create_config != NULL) { @@ -1757,7 +1753,6 @@ dns_configuration_set(CFDictionaryRef defaultResolver, } -#if !TARGET_OS_IPHONE static SCDynamicStoreRef dns_configuration_store; static SCDynamicStoreCallBack dns_configuration_callout; @@ -1768,24 +1763,18 @@ dns_configuration_changed(CFMachPortRef port, void *msg, CFIndex size, void *inf #pragma unused(msg) #pragma unused(size) #pragma unused(info) - os_activity_t activity; static const CFStringRef key = CFSTR(_PATH_RESOLVER_DIR); CFArrayRef keys; Boolean resolvers_now; static Boolean resolvers_save = FALSE; struct stat statbuf; - activity = os_activity_create("processing DNS configuration change", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - resolvers_now = (stat(_PATH_RESOLVER_DIR, &statbuf) == 0); if (!resolvers_save && (resolvers_save == resolvers_now)) { // if we did not (and still do not) have an "/etc/resolvers" // directory than this notification is the result of a change // to the "/etc" directory. - goto done; + return; } resolvers_save = resolvers_now; @@ -1796,11 +1785,34 @@ dns_configuration_changed(CFMachPortRef port, void *msg, CFIndex size, void *inf (*dns_configuration_callout)(dns_configuration_store, keys, NULL); CFRelease(keys); - done : + return; +} - os_release(activity); - return; +static Boolean +normalize_path(const char *file_name, char resolved_name[PATH_MAX]) +{ + char *ch; + char path[PATH_MAX]; + + strlcpy(path, file_name, sizeof(path)); + if (realpath(path, resolved_name) != NULL) { + // if the path exists + return TRUE; + } + + ch = strrchr(path, '/'); + if (ch != NULL) { + *ch = '\0'; + if (realpath(path, resolved_name) != NULL) { + // if a parent path exists + strlcat(resolved_name, "/", PATH_MAX); + strlcat(resolved_name, ch+1, PATH_MAX); + return TRUE; + } + } + + return FALSE; } @@ -1811,9 +1823,15 @@ dns_configuration_monitor(SCDynamicStoreRef store, SCDynamicStoreCallBack callou CFMachPortRef mp; mach_port_t notify_port; int notify_token; + char resolver_directory_path[PATH_MAX]; CFRunLoopSourceRef rls; uint32_t status; + if (!normalize_path(_PATH_RESOLVER_DIR, resolver_directory_path)) { + my_log(LOG_ERR, "Not monitoring \"%s\", could not resolve directory path", _PATH_RESOLVER_DIR); + return; + } + dns_configuration_store = store; dns_configuration_callout = callout; @@ -1823,7 +1841,7 @@ dns_configuration_monitor(SCDynamicStoreRef store, SCDynamicStoreCallBack callou return; } - status = notify_monitor_file(notify_token, "/private" _PATH_RESOLVER_DIR, 0); + status = notify_monitor_file(notify_token, resolver_directory_path, 0); if (status != NOTIFY_STATUS_OK) { my_log(LOG_ERR, "notify_monitor_file() failed"); (void)notify_cancel(notify_token); @@ -1848,7 +1866,6 @@ dns_configuration_monitor(SCDynamicStoreRef store, SCDynamicStoreCallBack callou CFRelease(mp); return; } -#endif // !TARGET_OS_IPHONE __private_extern__ diff --git a/Plugins/IPMonitor/dns-configuration.h b/Plugins/IPMonitor/dns-configuration.h index e047cb1..1753f70 100644 --- a/Plugins/IPMonitor/dns-configuration.h +++ b/Plugins/IPMonitor/dns-configuration.h @@ -1,15 +1,15 @@ /* - * Copyright (c) 2006, 2008, 2009, 2011, 2012, 2015 Apple Inc. All rights reserved. + * Copyright (c) 2006, 2008, 2009, 2011, 2012, 2015, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -37,10 +37,8 @@ __BEGIN_DECLS void dns_configuration_init (CFBundleRef bundle); -#if !TARGET_OS_IPHONE void dns_configuration_monitor (SCDynamicStoreRef store, SCDynamicStoreCallBack callout); -#endif // !TARGET_OS_IPHONE Boolean dns_configuration_set (CFDictionaryRef defaultResolver, CFDictionaryRef services, @@ -50,5 +48,5 @@ Boolean dns_configuration_set (CFDictionaryRef defaultResolver, __END_DECLS -#endif /* _DNS_CONFIGURATION_H */ +#endif /* _DNS_CONFIGURATION_H */ diff --git a/Plugins/IPMonitor/ip_plugin.c b/Plugins/IPMonitor/ip_plugin.c index 7f5f479..97d14d0 100644 --- a/Plugins/IPMonitor/ip_plugin.c +++ b/Plugins/IPMonitor/ip_plugin.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2018 Apple Inc. All Rights Reserved. + * Copyright (c) 2000-2019 Apple Inc. All Rights Reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -86,11 +86,7 @@ #include #include #include -#if __has_include() -#include -#else // __has_include() -#include -#endif // __has_include() +#include #include #include #include @@ -100,6 +96,7 @@ #include #include "ip_plugin.h" +#include "serviceIDNumber.h" #include #include @@ -121,22 +118,15 @@ #include "network_state_information_logging.h" #include "network_information_server.h" #include -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST #include "set-hostname.h" -#endif /* !TARGET_OS_SIMULATOR */ - -#include "dns-configuration.h" - -#if !TARGET_OS_SIMULATOR #include "nat64-configuration.h" -#endif /* !TARGET_OS_SIMULATOR */ +#include "agent-monitor.h" +#endif /* TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ +#include "dns-configuration.h" #include "proxy-configuration.h" -#if !TARGET_OS_SIMULATOR -#include "agent-monitor.h" -#endif // !TARGET_OS_SIMULATOR - #if !TARGET_OS_IPHONE #include "smb-configuration.h" #endif /* !TARGET_OS_IPHONE */ @@ -159,7 +149,7 @@ enum { kDebugFlagAll = 0xffffffff }; -typedef unsigned int IFIndex; +typedef unsigned int IFIndex; /* interface index */ static dispatch_queue_t __network_change_queue(void); @@ -180,7 +170,6 @@ __log_IPMonitor(void) return log; } - #pragma mark - #pragma mark interface index @@ -426,7 +415,8 @@ typedef CF_ENUM(uint16_t, ControlFlags) { IFIndex exclude_ifindex; \ Rank rank; \ RouteFlags flags; \ - ControlFlags control_flags; + ControlFlags control_flags; \ + serviceIDNumber sidn; typedef struct { ROUTE_COMMON @@ -600,11 +590,13 @@ static Boolean S_IPMonitor_verbose = FALSE; static boolean_t S_netboot = FALSE; /* dictionary to hold per-service state: key is the serviceID */ -static CFMutableDictionaryRef S_service_state_dict = NULL; -static CFMutableDictionaryRef S_ipv4_service_rank_dict = NULL; -static CFMutableDictionaryRef S_ipv6_service_rank_dict = NULL; +static CFMutableDictionaryRef S_service_state_dict; + +/* dictionaries to hold per-service rank: key is the serviceID */ +static CFMutableDictionaryRef S_ipv4_service_rank_dict; +static CFMutableDictionaryRef S_ipv6_service_rank_dict; -/* dictionary to hold per-interface rank information */ +/* dictionary to hold per-interface rank information: key is the ifname */ static CFDictionaryRef S_if_rank_dict; /* if set, a PPP interface overrides the primary */ @@ -628,6 +620,8 @@ static CFStringRef S_state_service_prefix = NULL; static CFStringRef S_setup_global_ipv4 = NULL; static CFStringRef S_setup_service_prefix = NULL; +static CFStringRef S_interface_delegation_prefix = NULL; + static CFStringRef S_multicast_resolvers = NULL; static CFStringRef S_private_resolvers = NULL; @@ -642,12 +636,6 @@ static CFDictionaryRef S_dns_dict = NULL; static Boolean S_dnsinfo_synced = TRUE; -#if !TARGET_OS_SIMULATOR -// Note: access should be gated with __network_change_queue() -static CFMutableSetRef S_nat64_prefix_changes = NULL; -static CFMutableSetRef S_nat64_prefix_requests = NULL; -#endif /* !TARGET_OS_SIMULATOR */ - static nwi_state_t S_nwi_state = NULL; static Boolean S_nwi_synced = TRUE; @@ -707,6 +695,7 @@ static const CFStringRef *entityTypeNames[ENTITY_TYPES_COUNT] = { #endif /* !TARGET_OS_IPHONE */ }; + static Boolean S_dict_get_boolean(CFDictionaryRef dict, CFStringRef key, Boolean def_value); @@ -976,7 +965,7 @@ siocdradd_in6(int s, int if_index, const struct in6_addr * addr, u_char flags) struct in6_defrouter dr; struct sockaddr_in6 * sin6; - bzero(&dr, sizeof(dr)); + memset(&dr, 0, sizeof(dr)); sin6 = &dr.rtaddr; sin6->sin6_len = sizeof(struct sockaddr_in6); sin6->sin6_family = AF_INET6; @@ -992,7 +981,7 @@ siocdrdel_in6(int s, int if_index, const struct in6_addr * addr) struct in6_defrouter dr; struct sockaddr_in6 * sin6; - bzero(&dr, sizeof(dr)); + memset(&dr, 0, sizeof(dr)); sin6 = &dr.rtaddr; sin6->sin6_len = sizeof(struct sockaddr_in6); sin6->sin6_family = AF_INET6; @@ -1060,16 +1049,83 @@ my_CFDictionaryGetArray(CFDictionaryRef dict, CFStringRef key) } #if !TARGET_OS_SIMULATOR + +typedef CF_ENUM(uint16_t, PLATDiscoveryOption) { + kPLATDiscoveryOptionStart, + kPLATDiscoveryOptionUpdate, + kPLATDiscoveryOptionCancel +}; + static void -my_CFSetAddValue_async(dispatch_queue_t queue, CFMutableSetRef *set, CFTypeRef value) +my_CFSetAddValue(CFMutableSetRef * set_p, CFTypeRef value) { - CFRetain(value); - dispatch_async(queue, ^{ - if (*set == NULL) { - *set = CFSetCreateMutable(NULL, 0, &kCFTypeSetCallBacks); + if (*set_p == NULL) { + *set_p = CFSetCreateMutable(NULL, 0, &kCFTypeSetCallBacks); } - CFSetAddValue(*set, value); - CFRelease(value); + CFSetAddValue(*set_p, value); +} + +static void +my_CFSetRemoveValue(CFMutableSetRef * set_p, CFTypeRef value) +{ + if (*set_p == NULL) { + return; + } + CFSetRemoveValue(*set_p, value); + if (CFSetGetCount(*set_p) == 0) { + my_CFRelease(set_p); + } +} + +static Boolean +my_CFSetContainsValue(CFSetRef set, CFTypeRef value) +{ + if (set == NULL) { + return (FALSE); + } + return (CFSetContainsValue(set, value)); +} + +// Note: must only accessed on __network_change_queue() +static CFMutableSetRef S_nat64_cancel_prefix_requests; +static CFMutableSetRef S_nat64_prefix_updates; +static CFMutableSetRef S_nat64_prefix_requests; + +static void +set_plat_discovery_locked(PLATDiscoveryOption option, CFStringRef interface) +{ + switch (option) { + case kPLATDiscoveryOptionStart: + my_log(LOG_DEBUG, "NAT64 Start %@", interface); + my_CFSetAddValue(&S_nat64_prefix_requests, interface); + my_CFSetRemoveValue(&S_nat64_prefix_updates, interface); + my_CFSetRemoveValue(&S_nat64_cancel_prefix_requests, interface); + break; + case kPLATDiscoveryOptionUpdate: + my_log(LOG_DEBUG, "NAT64 Update %@", interface); + if (!my_CFSetContainsValue(S_nat64_prefix_requests, interface)) { + my_CFSetAddValue(&S_nat64_prefix_updates, interface); + } + my_CFSetRemoveValue(&S_nat64_cancel_prefix_requests, interface); + break; + case kPLATDiscoveryOptionCancel: + my_log(LOG_DEBUG, "NAT64 Cancel %@", interface); + my_CFSetRemoveValue(&S_nat64_prefix_requests, interface); + my_CFSetRemoveValue(&S_nat64_prefix_updates, interface); + my_CFSetAddValue(&S_nat64_cancel_prefix_requests, interface); + break; + default: + break; + } +} + +static void +set_plat_discovery(PLATDiscoveryOption option, CFStringRef interface) +{ + CFRetain(interface); + dispatch_async(__network_change_queue(), ^{ + set_plat_discovery_locked(option, interface); + CFRelease(interface); }); return; @@ -1104,7 +1160,7 @@ cfstring_to_ipvx(int family, CFStringRef str, void * addr, size_t addr_size) return (TRUE); } done: - bzero(addr, addr_size); + memset(addr, 0, addr_size); return (FALSE); } @@ -1465,12 +1521,12 @@ RouteListAddRouteAtIndex(RouteListInfoRef info, RouteListRef routes, else { /* make space at [where] */ insert_route = RouteListGetRouteAtIndexSimple(info, routes, where); - bcopy(insert_route, - (void *)insert_route + info->element_size, - info->element_size * (routes->count - where)); + memcpy((void *)insert_route + info->element_size, + insert_route, + info->element_size * (routes->count - where)); } /* copy the route */ - bcopy(this_route, insert_route, info->element_size); + memcpy(insert_route, this_route, info->element_size); routes->count++; return (insert_route); } @@ -1491,9 +1547,9 @@ RouteListRemoveRouteAtIndex(RouteListInfoRef info, RouteListRef routes, RouteRef remove_route; remove_route = RouteListGetRouteAtIndexSimple(info, routes, where); - bcopy((void *)remove_route + info->element_size, - remove_route, - info->element_size * (routes->count - where)); + memcpy(remove_route, + (void *)remove_route + info->element_size, + info->element_size * (routes->count - where)); } return; } @@ -1535,7 +1591,7 @@ RouteListAddRoute(RouteListInfoRef info, size_t alloc_size = (*info->list_compute_size)(init_size); routes = (RouteListRef)malloc(alloc_size); - bzero(routes, sizeof(*routes)); + memset(routes, 0, alloc_size); routes->size = init_size; } for (i = 0, scan = RouteListGetFirstRoute(info, routes); @@ -1610,7 +1666,7 @@ RouteListAddRoute(RouteListInfoRef info, else if (this_route->ifindex != 0) { ifindex = this_route->ifindex; } - bcopy(this_route, scan, info->element_size); + memcpy(scan, this_route, info->element_size); scan->rank = this_rank; scan->ifindex = ifindex; scan->exclude_ifindex = 0; @@ -2006,7 +2062,7 @@ RouteListApply(RouteListInfoRef info, /* both old and new are NULL, so there's nothing to do */ return; } - bzero(&context, sizeof(context)); + memset(&context, 0, sizeof(context)); context.old_routes = old_routes; context.new_routes = new_routes; context.sockfd = sockfd; @@ -2036,7 +2092,7 @@ RouteListApply(RouteListInfoRef info, RouteRef old_route = NULL; old_route = RouteListFindRoute(info, old_routes, scan); - if (old_route != NULL) { + if (old_route != NULL && scan->sidn == old_route->sidn) { /* preserve the control state in the new route */ scan->control_flags = old_route->control_flags; } @@ -2164,6 +2220,11 @@ IPv4RouteCopyDescriptionWithString(IPv4RouteRef r, CFMutableStringRef str) CFSTR(" Ifa " IP_FORMAT), IP_LIST(&r->ifa)); } +#if !TEST_IPV4_ROUTELIST + CFStringAppendFormat(str, NULL, + CFSTR(" "), + r->sidn); +#endif RouteAddFlagsToDescription((RouteRef)r, str); return; } @@ -2552,7 +2613,7 @@ IPv4RouteListFinalize(IPv4RouteListRef routes) } #endif /* !TARGET_OS_SIMULATOR */ -#ifdef TEST_IPV4_ROUTELIST +#if TEST_IPV4_ROUTELIST static IPv4RouteListRef IPv4RouteListAddRouteList(IPv4RouteListRef routes, int init_size, IPv4RouteListRef service_routes, Rank rank) @@ -2588,6 +2649,7 @@ typedef struct { IPv4RouteRef * route_p; Rank rank; const char * descr; + serviceIDNumber sidn; } AddIPv4RouteContext, * AddIPv4RouteContextRef; static void @@ -2619,6 +2681,7 @@ AddIPv4Route(const void * value, void * context) } r->rank = ctx->rank; r->exclude_ifindex = ctx->exclude_ifindex; + r->sidn = ctx->sidn; if (ctx->ifindex != 0) { r->ifindex = ctx->ifindex; r->ifa = ctx->addr; @@ -2696,7 +2759,8 @@ confirm_interface_name(CFDictionaryRef dict, CFStringRef ifname) static IPv4RouteListRef IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, CFDictionaryRef dict, - CFNumberRef rank_assertion) + CFNumberRef rank_assertion, + serviceIDNumber sidn) { boolean_t add_broadcast_multicast = FALSE; boolean_t add_default = FALSE; @@ -2848,11 +2912,11 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, } if (routes == NULL || routes->size < n) { routes = (IPv4RouteListRef)malloc(IPv4RouteListComputeSize(n)); - bzero(routes, IPv4RouteListComputeSize(n)); + memset(routes, 0, IPv4RouteListComputeSize(n)); routes->size = n; } else { - bzero(routes->list, sizeof(routes->list[0]) * n); + memset(routes->list, 0, sizeof(routes->list[0]) * n); } routes->count = n; if (exclude_from_nwi) { @@ -2868,6 +2932,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, if (add_default) { /* add the default route */ routes->flags |= kRouteListFlagsHasDefault; + r->sidn = sidn; r->ifindex = ifindex; r->ifa = addr; r->flags = flags; @@ -2889,6 +2954,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, r->mask.s_addr = INADDR_BROADCAST; r->prefix_length = IPV4_ROUTE_ALL_BITS_SET; r->ifindex = ifindex; + r->sidn = sidn; r->ifa = addr; r->rank = rank; r++; @@ -2901,6 +2967,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, r->mask.s_addr = htonl(IN_CLASSD_NET); r->prefix_length = PREFIX_LENGTH_IN_CLASSD; r->ifindex = ifindex; + r->sidn = sidn; r->ifa = addr; r->rank = rank; r++; @@ -2913,6 +2980,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, r->flags |= kRouteFlagsIsNULL; } r->ifindex = ifindex; + r->sidn = sidn; r->gateway = addr; r->dest = subnet; r->mask = mask; @@ -2928,6 +2996,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, r->flags |= kRouteFlagsIsNULL; } r->ifindex = ifindex; + r->sidn = sidn; r->gateway = addr; r->dest = router; r->mask.s_addr = INADDR_BROADCAST; @@ -2940,7 +3009,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, if (additional_routes != NULL || excluded_routes != NULL) { AddIPv4RouteContext context; - bzero(&context, sizeof(context)); + memset(&context, 0, sizeof(context)); context.count_p = &routes->count; context.route_p = &r; context.rank = rank; @@ -2950,6 +3019,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, context.ifindex = ifindex; context.addr = addr; context.descr = "AdditionalRoutes"; + context.sidn = sidn; CFArrayApplyFunction(additional_routes, CFRangeMake(0, additional_routes_count), AddIPv4Route, &context); @@ -2960,6 +3030,7 @@ IPv4RouteListCreateWithDictionary(IPv4RouteListRef routes, /* exclude this interface */ context.ifindex = 0; context.exclude_ifindex = ifindex; + context.sidn = sidn; CFArrayApplyFunction(excluded_routes, CFRangeMake(0, excluded_routes_count), AddIPv4Route, &context); @@ -2976,7 +3047,7 @@ IPv4RouteListCopyMulticastLoopback(void) IPv4RouteListRef routes; routes = (IPv4RouteListRef)malloc(IPv4RouteListComputeSize(1)); - bzero(routes, IPv4RouteListComputeSize(1)); + memset(routes, 0, IPv4RouteListComputeSize(1)); routes->count = routes->size = 1; r = routes->list; @@ -2984,6 +3055,7 @@ IPv4RouteListCopyMulticastLoopback(void) r->mask.s_addr = htonl(IN_CLASSC_NET); r->prefix_length = PREFIX_LENGTH_IN_CLASSC; r->ifindex = lo0_ifindex(); + r->sidn = kserviceIDNumberZero; return (routes); } #endif /* !TARGET_OS_SIMULATOR */ @@ -3010,7 +3082,7 @@ in6_len2mask(struct in6_addr * mask, int len) { int i; - bzero(mask, sizeof(*mask)); + memset(mask, 0, sizeof(*mask)); for (i = 0; i < len / 8; i++) mask->s6_addr[i] = 0xff; if (len % 8) @@ -3078,6 +3150,11 @@ IPv6RouteCopyDescriptionWithString(IPv6RouteRef r, CFMutableStringRef str) CFStringAppend(str, CFSTR(" Ifa ")); string_append_in6_addr(str, &r->ifa); } +#if !TEST_IPV6_ROUTELIST + CFStringAppendFormat(str, NULL, + CFSTR(" "), + r->sidn); +#endif RouteAddFlagsToDescription((RouteRef)r, str); return; } @@ -3110,7 +3187,7 @@ IPv6RouteListCopyDescription(IPv6RouteListRef routes) return (str); } -#ifdef TEST_IPV6_ROUTELIST +#if TEST_IPV6_ROUTELIST static void IPv6RouteLog(int level, RouteRef route, const char * msg) @@ -3171,6 +3248,7 @@ typedef struct { IPv6RouteRef * route_p; Rank rank; const char * descr; + serviceIDNumber sidn; } AddIPv6RouteContext, * AddIPv6RouteContextRef; static void @@ -3199,6 +3277,7 @@ AddIPv6Route(const void * value, void * context) } r->rank = ctx->rank; r->exclude_ifindex = ctx->exclude_ifindex; + r->sidn = ctx->sidn; if (ctx->ifindex != 0) { r->ifindex = ctx->ifindex; r->ifa = *ctx->addr; @@ -3257,7 +3336,8 @@ AddIPv6Route(const void * value, void * context) static IPv6RouteListRef IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, CFDictionaryRef dict, - CFNumberRef rank_assertion) + CFNumberRef rank_assertion, + serviceIDNumber sidn) { boolean_t add_default = FALSE; boolean_t add_prefix = FALSE; @@ -3387,11 +3467,11 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, if (routes == NULL || routes->size < n) { routes = (IPv6RouteListRef)malloc(IPv6RouteListComputeSize(n)); - bzero(routes, IPv6RouteListComputeSize(n)); + memset(routes, 0, IPv6RouteListComputeSize(n)); routes->size = n; } else { - bzero(routes->list, sizeof(routes->list[0]) * n); + memset(routes->list, 0, sizeof(routes->list[0]) * n); } routes->count = n; if (exclude_from_nwi) { @@ -3407,6 +3487,7 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, /* add the default route */ routes->flags |= kRouteListFlagsHasDefault; r->ifindex = ifindex; + r->sidn = sidn; r->ifa = addr; r->flags = flags; if ((flags & kRouteFlagsHasGateway) != 0) { @@ -3423,6 +3504,7 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, /* add IPv6LL route */ r->ifindex = ifindex; + r->sidn = sidn; r->dest.s6_addr[0] = 0xfe; r->dest.s6_addr[1] = 0x80; r->prefix_length = 64; @@ -3438,6 +3520,7 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, r->flags |= kRouteFlagsIsNULL; } r->ifindex = ifindex; + r->sidn = sidn; r->gateway = addr; r->dest = addr; in6_netaddr(&r->dest, prefix_length); @@ -3450,7 +3533,7 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, if (additional_routes != NULL || excluded_routes != NULL) { AddIPv6RouteContext context; - bzero(&context, sizeof(context)); + memset(&context, 0, sizeof(context)); context.count_p = &routes->count; context.route_p = &r; context.rank = rank; @@ -3460,6 +3543,7 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, context.ifindex = ifindex; context.addr = &addr; context.descr = "AdditionalRoutes"; + context.sidn = sidn; CFArrayApplyFunction(additional_routes, CFRangeMake(0, additional_routes_count), AddIPv6Route, &context); @@ -3471,6 +3555,7 @@ IPv6RouteListCreateWithDictionary(IPv6RouteListRef routes, context.ifindex = 0; context.exclude_ifindex = ifindex; context.addr = NULL; + context.sidn = sidn; CFArrayApplyFunction(excluded_routes, CFRangeMake(0, excluded_routes_count), AddIPv6Route, &context); @@ -3573,7 +3658,7 @@ IPv6RouteApply(RouteRef r_route, int cmd, int sockfd) return (ENXIO); } if (sockfd == -1) { -#ifdef TEST_IPV6_ROUTELIST +#if TEST_IPV6_ROUTELIST return (0); #else /* TEST_IPV6_ROUTELIST */ return (EBADF); @@ -3680,7 +3765,7 @@ static const RouteListInfo IPv6RouteListInfo = { IPV6_ROUTE_ALL_BITS_SET }; -#ifdef TEST_IPV6_ROUTELIST +#if TEST_IPV6_ROUTELIST static IPv6RouteListRef IPv6RouteListAddRouteList(IPv6RouteListRef routes, int init_size, IPv6RouteListRef service_routes, Rank rank) @@ -3759,7 +3844,7 @@ parse_component(CFStringRef key, CFStringRef prefix) static boolean_t -entity_routes_protocol(CFDictionaryRef entity_dict) +ipdict_is_routable(CFDictionaryRef entity_dict) { RouteListRef routes; @@ -3784,7 +3869,7 @@ entity_routes_protocol(CFDictionaryRef entity_dict) __private_extern__ boolean_t -service_contains_protocol(CFDictionaryRef service_dict, int af) +service_is_routable(CFDictionaryRef service_dict, int af) { boolean_t contains_protocol; CFStringRef entity; @@ -3796,7 +3881,7 @@ service_contains_protocol(CFDictionaryRef service_dict, int af) return FALSE; } - contains_protocol = entity_routes_protocol(entity_dict); + contains_protocol = ipdict_is_routable(entity_dict); return contains_protocol; } @@ -3821,7 +3906,6 @@ service_dict_copy(CFStringRef serviceID) return (service_dict); } - __private_extern__ boolean_t service_is_scoped_only(CFDictionaryRef service_dict) { @@ -3882,7 +3966,8 @@ static void log_service_entity(int level, CFStringRef serviceID, CFStringRef entity, CFStringRef operation, CFTypeRef val) { - CFMutableStringRef this_val = NULL; + serviceIDNumber service_number; + CFMutableStringRef this_val = NULL; if (val != NULL) { boolean_t is_ipv4; @@ -3915,8 +4000,14 @@ log_service_entity(int level, CFStringRef serviceID, CFStringRef entity, if (val == NULL) { val = CFSTR(""); } - my_log(level, "serviceID %@ %@ %@ value = %@", - serviceID, operation, entity, val); + if (serviceIDNumberGetIfPresent(serviceID, &service_number)) { + my_log(level, "serviceID %@ %@ %@ value = %@", + serviceID, service_number, operation, entity, val); + } + else { + my_log(level, "serviceID %@ %@ %@ value = %@", + serviceID, operation, entity, val); + } my_CFRelease(&this_val); return; } @@ -3955,6 +4046,7 @@ service_dict_set(CFStringRef serviceID, CFStringRef entity, } if (CFDictionaryGetCount(service_dict) == 0) { CFDictionaryRemoveValue(S_service_state_dict, serviceID); + serviceIDNumberRemove(serviceID); } else { CFDictionarySetValue(S_service_state_dict, serviceID, service_dict); @@ -4282,13 +4374,15 @@ pick_prop(CFMutableDictionaryRef dict, routes->flags = 0; static CFDataRef -IPv4RouteListDataCreate(CFDictionaryRef dict, CFNumberRef rank_assertion) +IPv4RouteListDataCreate(CFDictionaryRef dict, CFNumberRef rank_assertion, + serviceIDNumber sidn) { IPv4RouteListRef r; CFDataRef routes_data; IPV4_ROUTES_BUF_DECL(routes); - r = IPv4RouteListCreateWithDictionary(routes, dict, rank_assertion); + r = IPv4RouteListCreateWithDictionary(routes, dict, rank_assertion, + sidn); if (r != NULL) { routes_data = CFDataCreate(NULL, (const void *)r, @@ -4318,13 +4412,15 @@ IPv4RouteListDataCreate(CFDictionaryRef dict, CFNumberRef rank_assertion) routes->flags = 0; static CFDataRef -IPv6RouteListDataCreate(CFDictionaryRef dict, CFNumberRef rank_assertion) +IPv6RouteListDataCreate(CFDictionaryRef dict, CFNumberRef rank_assertion, + serviceIDNumber sidn) { IPv6RouteListRef r; CFDataRef routes_data; IPV6_ROUTES_BUF_DECL(routes); - r = IPv6RouteListCreateWithDictionary(routes, dict, rank_assertion); + r = IPv6RouteListCreateWithDictionary(routes, dict, rank_assertion, + sidn); if (r != NULL) { routes_data = CFDataCreate(NULL, (const void *)r, @@ -4340,22 +4436,25 @@ IPv6RouteListDataCreate(CFDictionaryRef dict, CFNumberRef rank_assertion) } static CFDictionaryRef -IPDictCreate(int af, CFDictionaryRef state_dict, CFDictionaryRef setup_dict, - CFNumberRef rank_assertion) +IPDictCreate(int af, _Nonnull CFDictionaryRef state_dict, + CFDictionaryRef setup_dict, + CFNumberRef rank_assertion, CFStringRef serviceID) { CFDictionaryRef aggregated_dict = NULL; CFDictionaryRef dict; CFMutableDictionaryRef modified_dict = NULL; CFDataRef routes_data; + serviceIDNumber sidn; + sidn = serviceIDNumberGet(serviceID); dict = state_dict; - if (dict != NULL && setup_dict != NULL) { + if (setup_dict != NULL) { /* look for keys in Setup: that override/merge with State: */ CFArrayRef additional_routes; + CFStringRef route_list_prop; CFStringRef router; in_addr router_ip; CFStringRef router_prop; - CFStringRef route_list_prop; /* Router */ switch (af) { @@ -4412,11 +4511,11 @@ IPDictCreate(int af, CFDictionaryRef state_dict, CFDictionaryRef setup_dict, } switch (af) { case AF_INET: - routes_data = IPv4RouteListDataCreate(dict, rank_assertion); + routes_data = IPv4RouteListDataCreate(dict, rank_assertion, sidn); break; default: case AF_INET6: - routes_data = IPv6RouteListDataCreate(dict, rank_assertion); + routes_data = IPv6RouteListDataCreate(dict, rank_assertion, sidn); break; } if (routes_data != NULL) { @@ -4448,7 +4547,8 @@ get_ipv4_changes(CFStringRef serviceID, CFDictionaryRef state_dict, = CFDictionaryGetValue(service_options, kServiceOptionRankAssertion); } - dict = IPDictCreate(AF_INET, state_dict, setup_dict, rank_assertion); + dict = IPDictCreate(AF_INET, state_dict, setup_dict, rank_assertion, + serviceID); done: changed = service_dict_set(serviceID, kSCEntNetIPv4, dict); @@ -4475,10 +4575,8 @@ get_ipv6_changes(CFStringRef serviceID, CFDictionaryRef state_dict, CFDictionaryRef service_options; if (state_dict == NULL) { - // if no State: goto done; } - service_options = service_dict_get(serviceID, kSCEntNetService); if (service_options != NULL) { rank_assertion @@ -4486,15 +4584,13 @@ get_ipv6_changes(CFStringRef serviceID, CFDictionaryRef state_dict, kServiceOptionRankAssertion); } - dict = IPDictCreate(AF_INET6, state_dict, setup_dict, rank_assertion); + dict = IPDictCreate(AF_INET6, state_dict, setup_dict, rank_assertion, + serviceID); done: #if !TARGET_OS_SIMULATOR interface = service_copy_interface(serviceID, dict); -#endif /* !TARGET_OS_SIMULATOR */ - -#if !TARGET_OS_SIMULATOR ipv6_service_update_router(serviceID, dict); #endif /* !TARGET_OS_SIMULATOR */ @@ -4505,17 +4601,20 @@ get_ipv6_changes(CFStringRef serviceID, CFDictionaryRef state_dict, if (changed) { CFBooleanRef needs_plat = NULL; - if ((state_dict != NULL) && + if (dict == NULL) { + // if service is unpublished, cancel the request + set_plat_discovery(kPLATDiscoveryOptionCancel, interface); + } else if ((state_dict != NULL) && CFDictionaryGetValueIfPresent(state_dict, kSCPropNetIPv6PerformPLATDiscovery, (const void **)&needs_plat) && - isA_CFBoolean(needs_plat) && + isA_CFBoolean(needs_plat) && CFBooleanGetValue(needs_plat)) { // perform PLAT discovery - my_CFSetAddValue_async(__network_change_queue(), &S_nat64_prefix_requests, interface); + set_plat_discovery(kPLATDiscoveryOptionStart, interface); } else { // IPv6 configuration changed for this interface, poke NAT64 - my_CFSetAddValue_async(__network_change_queue(), &S_nat64_prefix_changes, interface); + set_plat_discovery(kPLATDiscoveryOptionUpdate, interface); } } CFRelease(interface); @@ -4535,13 +4634,13 @@ get_ipv6_changes(CFStringRef serviceID, CFDictionaryRef state_dict, __private_extern__ CFDictionaryRef ipv4_dict_create(CFDictionaryRef state_dict) { - return (IPDictCreate(AF_INET, state_dict, NULL, NULL)); + return (IPDictCreate(AF_INET, state_dict, NULL, NULL, NULL)); } __private_extern__ CFDictionaryRef ipv6_dict_create(CFDictionaryRef state_dict) { - return (IPDictCreate(AF_INET6, state_dict, NULL, NULL)); + return (IPDictCreate(AF_INET6, state_dict, NULL, NULL, NULL)); } #endif /* TEST_DNS */ @@ -4654,7 +4753,7 @@ order_dns_servers(CFArrayRef servers, ProtocolFlags active_protos) } else if (cfstring_to_ip6(server, &ia6)) { proto = kProtocolFlagsIPv6; if (v6_n++ == 0) { - bcopy(&ia6, &v6_dns1.sin6_addr, sizeof(ia6)); + memcpy(&v6_dns1.sin6_addr, &ia6, sizeof(ia6)); } } else { CFRelease(ordered_servers); @@ -4666,13 +4765,8 @@ order_dns_servers(CFArrayRef servers, ProtocolFlags active_protos) if (((proto == kProtocolFlagsIPv4) && (v4_n == 1)) || ((proto == kProtocolFlagsIPv6) && (v6_n == 1))) { /* if we now have the 1st server address of another protocol */ -#if __has_include() - favor_v4 = (si_destination_compare_no_dependencies((struct sockaddr *)&v4_dns1, - (struct sockaddr *)&v6_dns1) >= 0); -#else // __has_include() favor_v4 = (sa_dst_compare_no_dependencies((struct sockaddr *)&v4_dns1, (struct sockaddr *)&v6_dns1) >= 0); -#endif // __has_include() #ifdef TEST_DNS_ORDER char v4_buf[INET_ADDRSTRLEN]; char v6_buf[INET6_ADDRSTRLEN]; @@ -4825,7 +4919,7 @@ get_dns_changes(CFStringRef serviceID, CFDictionaryRef state_dict, } ipv4 = service_dict_get(serviceID, kSCEntNetIPv4); - if (entity_routes_protocol(ipv4)) { + if (ipdict_is_routable(ipv4)) { if (get_service_setup_entity(info, serviceID, kSCEntNetIPv4) != NULL) { have_setup = TRUE; } @@ -4834,7 +4928,7 @@ get_dns_changes(CFStringRef serviceID, CFDictionaryRef state_dict, } ipv6 = service_dict_get(serviceID, kSCEntNetIPv6); - if (entity_routes_protocol(ipv6)) { + if (ipdict_is_routable(ipv6)) { if (!have_setup && (get_service_setup_entity(info, serviceID, kSCEntNetIPv6) != NULL)) { have_setup = TRUE; @@ -4982,7 +5076,9 @@ get_dns_changes(CFStringRef serviceID, CFDictionaryRef state_dict, if (interface != NULL) { if (changed) { // DNS configuration changed for this interface, poke NAT64 - my_CFSetAddValue_async(__network_change_queue(), &S_nat64_prefix_changes, interface); + if ((active_protos & kProtocolFlagsIPv6) != 0) { + set_plat_discovery(kPLATDiscoveryOptionUpdate, interface); + } } CFRelease(interface); } @@ -5102,12 +5198,12 @@ get_proxies_changes(CFStringRef serviceID, CFDictionaryRef state_dict, goto done; } ipv4 = service_dict_get(serviceID, kSCEntNetIPv4); - if (entity_routes_protocol(ipv4)) { + if (ipdict_is_routable(ipv4)) { active_protos |= kProtocolFlagsIPv4; interface = ipdict_get_ifname(ipv4); } ipv6 = service_dict_get(serviceID, kSCEntNetIPv6); - if (entity_routes_protocol(ipv6)) { + if (ipdict_is_routable(ipv6)) { active_protos |= kProtocolFlagsIPv6; if (interface == NULL) { interface = ipdict_get_ifname(ipv6); @@ -5521,11 +5617,12 @@ get_rank_changes(CFStringRef serviceID, CFDictionaryRef state_options, CFStringRef interface; boolean_t ip_is_coupled = FALSE; CFMutableDictionaryRef new_dict = NULL; - Rank rank_assertion = kRankAssertionDefault; + Rank rank_assertion = kRankAssertionDefault; Boolean rank_assertion_is_set = FALSE; CFStringRef setup_rank = NULL; CFStringRef state_rank = NULL; CFNumberRef service_index = NULL; + boolean_t use_setup_rank = TRUE; if (setup_options != NULL) { @@ -5534,6 +5631,11 @@ get_rank_changes(CFStringRef serviceID, CFDictionaryRef state_options, setup_rank = CFDictionaryGetValue(setup_options, kSCPropNetServicePrimaryRank); setup_rank = isA_CFString(setup_rank); + if (setup_rank != NULL && !use_setup_rank) { + my_log(LOG_DEBUG, "%@ ignoring Setup PrimaryRank = %@", + serviceID, setup_rank); + setup_rank = NULL; + } coupled = CFDictionaryGetValue(setup_options, kIPIsCoupled); if (isA_CFBoolean(coupled) != NULL && CFBooleanGetValue(coupled)) { ip_is_coupled = TRUE; @@ -5653,8 +5755,9 @@ get_rank_changes(CFStringRef serviceID, CFDictionaryRef state_options, } static void -add_service_keys(CFStringRef serviceID, - CFMutableArrayRef keys, CFMutableArrayRef patterns) +add_service_keys(CFStringRef serviceID, + CFMutableArrayRef keys, + CFMutableArrayRef patterns) { int i; CFStringRef key; @@ -5667,37 +5770,43 @@ add_service_keys(CFStringRef serviceID, CFStringRef name = *entityTypeNames[i]; key = setup_service_key(serviceID, name); - CFArrayAppendValue(keys, key); + my_CFArrayAppendUniqueValue(keys, key); CFRelease(key); key = state_service_key(serviceID, name); - CFArrayAppendValue(keys, key); + my_CFArrayAppendUniqueValue(keys, key); CFRelease(key); } key = state_service_key(serviceID, kSCEntNetDHCP); - CFArrayAppendValue(patterns, key); + my_CFArrayAppendUniqueValue(keys, key); CFRelease(key); key = setup_service_key(serviceID, NULL); - CFArrayAppendValue(patterns, key); + my_CFArrayAppendUniqueValue(keys, key); CFRelease(key); key = state_service_key(serviceID, NULL); - CFArrayAppendValue(patterns, key); + my_CFArrayAppendUniqueValue(keys, key); CFRelease(key); return; } static void -add_transient_status_keys(CFStringRef service_id, CFMutableArrayRef patterns) +add_transient_status_keys(CFStringRef serviceID, + CFMutableArrayRef keys, + CFMutableArrayRef patterns) { + if (CFEqual(serviceID, kSCCompAnyRegex)) { + keys = patterns; + } + for (size_t i = 0; i < countof(transientServiceInfo); i++) { - CFStringRef pattern; + CFStringRef key; - pattern = state_service_key(service_id, - *transientServiceInfo[i].entityName); - CFArrayAppendValue(patterns, pattern); - CFRelease(pattern); + key = state_service_key(serviceID, + *transientServiceInfo[i].entityName); + my_CFArrayAppendUniqueValue(keys, key); + CFRelease(key); } return; @@ -5717,7 +5826,7 @@ add_reachability_patterns(CFMutableArrayRef patterns) for (size_t i = 0; i < countof(reachabilitySetupKeys); i++) { CFStringRef pattern; pattern = setup_service_key(kSCCompAnyRegex, *reachabilitySetupKeys[i]); - CFArrayAppendValue(patterns, pattern); + my_CFArrayAppendUniqueValue(patterns, pattern); CFRelease(pattern); } } @@ -5729,7 +5838,7 @@ add_vpn_pattern(CFMutableArrayRef patterns) CFStringRef pattern; pattern = setup_service_key(kSCCompAnyRegex, kSCEntNetVPN); - CFArrayAppendValue(patterns, pattern); + my_CFArrayAppendUniqueValue(patterns, pattern); CFRelease(pattern); } @@ -5739,7 +5848,7 @@ add_interface_link_pattern(CFMutableArrayRef patterns) CFStringRef pattern; pattern = interface_entity_key_copy(kSCCompAnyRegex, kSCEntNetLink); - CFArrayAppendValue(patterns, pattern); + my_CFArrayAppendUniqueValue(patterns, pattern); CFRelease(pattern); } @@ -5747,34 +5856,34 @@ static CFDictionaryRef services_info_copy(SCDynamicStoreRef session, CFArrayRef service_list) { CFIndex count; - CFMutableArrayRef get_keys; - CFMutableArrayRef get_patterns; + CFMutableArrayRef keys; CFDictionaryRef info; + CFMutableArrayRef patterns; - count = CFArrayGetCount(service_list); - get_keys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - get_patterns = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + keys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + patterns = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - CFArrayAppendValue(get_keys, S_setup_global_ipv4); - CFArrayAppendValue(get_keys, S_multicast_resolvers); - CFArrayAppendValue(get_keys, S_private_resolvers); + CFArrayAppendValue(keys, S_setup_global_ipv4); + CFArrayAppendValue(keys, S_multicast_resolvers); + CFArrayAppendValue(keys, S_private_resolvers); + count = CFArrayGetCount(service_list); for (CFIndex s = 0; s < count; s++) { CFStringRef serviceID = CFArrayGetValueAtIndex(service_list, s); - add_service_keys(serviceID, get_keys, get_patterns); - add_transient_status_keys(serviceID, get_keys); + add_service_keys(serviceID, keys, patterns); + add_transient_status_keys(serviceID, keys, patterns); } - add_reachability_patterns(get_patterns); + add_reachability_patterns(patterns); - add_vpn_pattern(get_patterns); + add_vpn_pattern(patterns); - add_interface_link_pattern(get_patterns); + add_interface_link_pattern(patterns); - info = SCDynamicStoreCopyMultiple(session, get_keys, get_patterns); - my_CFRelease(&get_keys); - my_CFRelease(&get_patterns); + info = SCDynamicStoreCopyMultiple(session, keys, patterns); + my_CFRelease(&keys); + my_CFRelease(&patterns); return (info); } @@ -5787,7 +5896,7 @@ set_ipv6_default_interface(IFIndex ifindex) int sock; boolean_t success = FALSE; - bzero((char *)&ndifreq, sizeof(ndifreq)); + memset((char *)&ndifreq, 0, sizeof(ndifreq)); strlcpy(ndifreq.ifname, kLoopbackInterface, sizeof(ndifreq.ifname)); if (ifindex != 0) { ndifreq.ifindex = ifindex; @@ -6225,25 +6334,27 @@ update_dnsinfo(CFDictionaryRef services_info, static Boolean update_nwi(nwi_state_t state) { - unsigned char signature[CC_SHA1_DIGEST_LENGTH]; - static unsigned char signature_last[CC_SHA1_DIGEST_LENGTH]; + unsigned char signature[CC_SHA256_DIGEST_LENGTH]; + static unsigned char signature_last[CC_SHA256_DIGEST_LENGTH]; - _nwi_state_compute_sha1_hash(state, signature); + _nwi_state_compute_sha256_hash(state, signature); if (bcmp(signature, signature_last, sizeof(signature)) == 0) { my_log(LOG_DEBUG, "Not updating network information"); return FALSE; } // save [new] signature - bcopy(signature, signature_last, sizeof(signature)); + memcpy(signature_last, signature, sizeof(signature)); // save [new] configuration my_log(LOG_INFO, "Updating network information"); _nwi_state_log(state, TRUE, NULL); +#if !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST if (!_nwi_state_store(state)) { my_log(LOG_ERR, "Notifying nwi_state_store failed"); } +#endif /* !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ return TRUE; } @@ -6425,7 +6536,7 @@ CollectTransientServices(const void * key, for (size_t i = 0; i < countof(transientInterfaceEntityNames); i++) { if (CFStringHasSuffix(service, *transientInterfaceEntityNames[i])) { - CFArrayAppendValue(vif_setup_keys, service); + my_CFArrayAppendUniqueValue(vif_setup_keys, service); break; } } @@ -6997,22 +7108,22 @@ ElectionResultsCandidateNeedsDemotion(CandidateRef other_candidate, static void -get_signature_sha1(CFStringRef signature, - unsigned char * sha1) +get_signature_sha256(CFStringRef signature, + unsigned char * sha256) { - CC_SHA1_CTX ctx; - CFDataRef signature_data; + CC_SHA256_CTX ctx; + CFDataRef signature_data; signature_data = CFStringCreateExternalRepresentation(NULL, signature, kCFStringEncodingUTF8, 0); - CC_SHA1_Init(&ctx); - CC_SHA1_Update(&ctx, + CC_SHA256_Init(&ctx); + CC_SHA256_Update(&ctx, CFDataGetBytePtr(signature_data), (CC_LONG)CFDataGetLength(signature_data)); - CC_SHA1_Final(sha1, &ctx); + CC_SHA256_Final(sha256, &ctx); CFRelease(signature_data); @@ -7064,9 +7175,9 @@ add_candidate_to_nwi_state(nwi_state_t nwi_state, int af, (void *)&candidate->vpn_server_addr, candidate->reachability_flags); if (ifstate != NULL && candidate->signature) { - uint8_t hash[CC_SHA1_DIGEST_LENGTH]; + uint8_t hash[CC_SHA256_DIGEST_LENGTH]; - get_signature_sha1(candidate->signature, hash); + get_signature_sha256(candidate->signature, hash); nwi_ifstate_set_signature(ifstate, hash); } return; @@ -7076,8 +7187,8 @@ add_candidate_to_nwi_state(nwi_state_t nwi_state, int af, static void add_reachability_flags_to_candidate(CandidateRef candidate, CFDictionaryRef services_info, int af) { - SCNetworkReachabilityFlags flags = kSCNetworkReachabilityFlagsReachable; - CFStringRef vpn_server_address = NULL; + SCNetworkReachabilityFlags flags = kSCNetworkReachabilityFlagsReachable; + CFStringRef vpn_server_address = NULL; assert(candidate != NULL); assert(services_info != NULL); @@ -7091,7 +7202,7 @@ add_reachability_flags_to_candidate(CandidateRef candidate, CFDictionaryRef serv candidate->reachability_flags = flags; if (vpn_server_address == NULL) { - bzero(&candidate->vpn_server_addr, sizeof(candidate->vpn_server_addr)); + memset(&candidate->vpn_server_addr, 0, sizeof(candidate->vpn_server_addr)); } else { char buf[128]; @@ -7291,7 +7402,7 @@ elect_ip(const void * key, const void * value, void * context) /* don't process loopback */ return; } - bzero(&candidate, sizeof(candidate)); + memset(&candidate, 0, sizeof(candidate)); candidate.serviceID = (CFStringRef)key; if ((routelist.common->flags & kRouteListFlagsHasDefault) == 0) { /* no default route means it's ineligible to become primary */ @@ -7644,7 +7755,7 @@ siocsifnetsignature(int s, const char * ifname, int af, { struct if_nsreq nsreq; - bzero(&nsreq, sizeof(nsreq)); + memset(&nsreq, 0, sizeof(nsreq)); strlcpy(nsreq.ifnsr_name, ifname, sizeof(nsreq.ifnsr_name)); nsreq.ifnsr_family = af; if (signature_length > 0) { @@ -7940,7 +8051,7 @@ post_network_change_when_ready() /* We are about to post a network change to everyone, get the agents up to date */ -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST if ((S_network_change_needed & NETWORK_CHANGE_DNS) != 0) { /* Setup or Update config agents */ process_AgentMonitor_DNS(); @@ -7964,7 +8075,7 @@ post_network_change_when_ready() } if ((S_network_change_needed & NETWORK_CHANGE_PROXY) != 0) { -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST /* Setup or Update config agents */ process_AgentMonitor_Proxy(); #endif //!TARGET_OS_SIMULATOR @@ -7976,14 +8087,18 @@ post_network_change_when_ready() } if ((S_network_change_needed & NETWORK_CHANGE_NAT64) != 0) { -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST // process any NAT64 prefix update requests (and refresh existing prefixes on change) - if ((S_nat64_prefix_requests != NULL) || (S_nat64_prefix_changes != NULL)) { - nat64_configuration_update(S_nat64_prefix_requests, S_nat64_prefix_changes); + if (S_nat64_prefix_requests != NULL || S_nat64_prefix_updates != NULL + || S_nat64_cancel_prefix_requests != NULL) { + nat64_configuration_update(S_nat64_prefix_requests, + S_nat64_prefix_updates, + S_nat64_cancel_prefix_requests); my_CFRelease(&S_nat64_prefix_requests); - my_CFRelease(&S_nat64_prefix_changes); + my_CFRelease(&S_nat64_prefix_updates); + my_CFRelease(&S_nat64_cancel_prefix_requests); } -#endif /* !TARGET_OS_SIMULATOR */ +#endif /* TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ S_network_change_needed &= ~(NETWORK_CHANGE_NAT64); } @@ -8032,17 +8147,8 @@ post_network_change(uint32_t change) 0, __network_change_queue()); dispatch_source_set_event_handler(S_network_change_timer, ^{ - os_activity_t activity; - - activity = os_activity_create("posting delayed network change", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - S_network_change_timeout = TRUE; post_network_change_when_ready(); - - os_release(activity); }); dispatch_source_set_timer(S_network_change_timer, dispatch_time(DISPATCH_TIME_NOW, @@ -8135,9 +8241,9 @@ IPMonitorProcessChanges(SCDynamicStoreRef session, CFArrayRef changed_keys, for (CFIndex i = 0; i < count; i++) { CFStringRef change; -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST CFStringRef interface = NULL; -#endif /* !TARGET_OS_SIMULATOR */ +#endif /* TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ change = CFArrayGetValueAtIndex(changed_keys, i); if (CFEqual(change, S_setup_global_ipv4)) { @@ -8150,24 +8256,27 @@ IPMonitorProcessChanges(SCDynamicStoreRef session, CFArrayRef changed_keys, else if (CFEqual(change, S_private_resolvers)) { dnsinfo_changed = TRUE; } -#if !TARGET_OS_IPHONE else if (CFEqual(change, CFSTR(_PATH_RESOLVER_DIR))) { dnsinfo_changed = TRUE; } -#endif /* !TARGET_OS_IPHONE */ + else if (CFStringHasPrefix(change, S_interface_delegation_prefix) && + CFStringHasSuffix(change, kSCEntNetInterfaceDelegation)) { + reachability_changed = TRUE; + } else if (CFStringHasPrefix(change, S_state_service_prefix)) { CFStringRef serviceID; serviceID = parse_component(change, S_state_service_prefix); - if (serviceID) { + if (serviceID != NULL) { my_CFArrayAppendUniqueValue(service_changes, serviceID); CFRelease(serviceID); } } else if (CFStringHasPrefix(change, S_setup_service_prefix)) { - CFStringRef serviceID = parse_component(change, - S_setup_service_prefix); - if (serviceID) { + CFStringRef serviceID; + + serviceID = parse_component(change, S_setup_service_prefix); + if (serviceID != NULL) { my_CFArrayAppendUniqueValue(service_changes, serviceID); CFRelease(serviceID); } @@ -8184,12 +8293,12 @@ IPMonitorProcessChanges(SCDynamicStoreRef session, CFArrayRef changed_keys, reachability_changed = TRUE; } } -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST else if (is_nat64_prefix_request(change, &interface)) { - my_CFSetAddValue_async(__network_change_queue(), &S_nat64_prefix_requests, interface); + set_plat_discovery(kPLATDiscoveryOptionStart, interface); nat64_changed = TRUE; } -#endif /* !TARGET_OS_SIMULATOR */ +#endif /* TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ } /* determine which serviceIDs are impacted by the interface rank changes */ @@ -8566,7 +8675,7 @@ watch_proxies() proxy_cb_queue, ^{ SCDynamicStoreNotifyValue(NULL, S_state_global_proxies); -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST /* Setup or Update config agents */ process_AgentMonitor_Proxy(); #endif //!TARGET_OS_SIMULATOR @@ -8577,6 +8686,15 @@ watch_proxies() return; } +#if TEST_IPV4_ROUTELIST || TEST_IPV6_ROUTELIST + +static void +prefs_changed_callback_init(void) +{ +} + +#else /* TEST_IPV4_ROUTELIST || TEST_IPV6_ROUTELIST */ + #include "IPMonitorControlPrefs.h" static void @@ -8595,6 +8713,17 @@ prefs_changed(SCPreferencesRef prefs) return; } +static void +prefs_changed_callback_init(void) +{ + IPMonitorControlPrefsInit(CFRunLoopGetCurrent(), prefs_changed); + prefs_changed(NULL); + return; +} + + +#endif /* TEST_IPV4_ROUTELIST || TEST_IPV6_ROUTELIST */ + #if !TARGET_OS_SIMULATOR static int flush_routes(int s) @@ -8752,6 +8881,10 @@ ip_plugin_init() kSCDynamicStoreDomainSetup, CFSTR(""), NULL); + S_interface_delegation_prefix + = SCDynamicStoreKeyCreateNetworkInterface(NULL, + kSCDynamicStoreDomainState); + S_service_state_dict = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, @@ -8786,7 +8919,7 @@ ip_plugin_init() CFRelease(pattern); /* register for State: per-service PPP/VPN/IPSec status notifications */ - add_transient_status_keys(kSCCompAnyRegex, patterns); + add_transient_status_keys(kSCCompAnyRegex, NULL, patterns); /* add notifier for ServiceOrder/PPPOverridePrimary changes for IPv4 */ CFArrayAppendValue(keys, S_setup_global_ipv4); @@ -8805,10 +8938,15 @@ ip_plugin_init() CFSTR(kDNSServiceCompPrivateDNS)); CFArrayAppendValue(keys, S_private_resolvers); -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST /* add NAT64 prefix request pattern */ nat64_prefix_request_add_pattern(patterns); -#endif /* !TARGET_OS_SIMULATOR */ +#endif /* TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ + + /* add interface delegation pattern */ + pattern = interface_entity_key_copy(kSCCompAnyRegex, kSCEntNetInterfaceDelegation); + CFArrayAppendValue(patterns, pattern); + CFRelease(pattern); if (!SCDynamicStoreSetNotificationKeys(S_session, keys, patterns)) { my_log(LOG_ERR, @@ -8828,6 +8966,8 @@ ip_plugin_init() CFRunLoopAddSource(CFRunLoopGetCurrent(), rls, kCFRunLoopDefaultMode); CFRelease(rls); + serviceIDNumberInit(); + /* initialize dns configuration */ (void)dns_configuration_set(NULL, NULL, NULL, NULL, NULL); #if !TARGET_OS_IPHONE @@ -8855,7 +8995,7 @@ prime_IPMonitor() /* initialize multicast route */ update_ipv4(NULL, NULL, NULL); -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST process_AgentMonitor(); #endif // !TARGET_OS_SIMULATOR @@ -8876,22 +9016,16 @@ S_get_plist_boolean(CFDictionaryRef plist, CFStringRef key, return (ret); } -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST #include "IPMonitorControlServer.h" static void InterfaceRankChanged(void * info) { #pragma unused(info) - os_activity_t activity; CFDictionaryRef assertions = NULL; CFArrayRef changes; - activity = os_activity_create("processing IPMonitor [rank] change", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - changes = IPMonitorControlServerCopyInterfaceRankInformation(&assertions); if (S_if_rank_dict != NULL) { CFRelease(S_if_rank_dict); @@ -8902,8 +9036,6 @@ InterfaceRankChanged(void * info) CFRelease(changes); } - os_release(activity); - return; } @@ -8913,7 +9045,7 @@ StartIPMonitorControlServer(void) CFRunLoopSourceContext context; CFRunLoopSourceRef rls; - bzero(&context, sizeof(context)); + memset(&context, 0, sizeof(context)); context.perform = InterfaceRankChanged; rls = CFRunLoopSourceCreate(NULL, 0, &context); if (!IPMonitorControlServerStart(CFRunLoopGetCurrent(), @@ -8952,9 +9084,9 @@ load_IPMonitor(CFBundleRef bundle, Boolean bundleVerbose) } /* register to receive changes to the "verbose" flag and read the initial setting */ - IPMonitorControlPrefsInit(CFRunLoopGetCurrent(), prefs_changed); - prefs_changed(NULL); + prefs_changed_callback_init(); +#if !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST /* start DNS configuration (dnsinfo) server */ load_DNSConfiguration(bundle, // bundle ^(Boolean inSync) { // syncHandler @@ -8980,8 +9112,9 @@ load_IPMonitor(CFBundleRef bundle, Boolean bundleVerbose) post_network_change_when_ready(); }); }); +#endif /* !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST /* start IPMonitor Control (InterfaceRank) server */ StartIPMonitorControlServer(); #endif /* !TARGET_OS_IPHONE */ @@ -8989,25 +9122,18 @@ load_IPMonitor(CFBundleRef bundle, Boolean bundleVerbose) /* initialize DNS configuration */ dns_configuration_init(bundle); -#if !TARGET_OS_SIMULATOR - /* initialize NAT64 configuration */ - nat64_configuration_init(bundle); -#endif /* !TARGET_OS_SIMULATOR */ - /* initialize proxy configuration */ proxy_configuration_init(bundle); ip_plugin_init(); -#if !TARGET_OS_IPHONE if (S_session != NULL) { dns_configuration_monitor(S_session, IPMonitorNotify); } -#endif /* !TARGET_OS_IPHONE */ -#if !TARGET_OS_SIMULATOR +#if !TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST load_hostname(TRUE); -#endif /* !TARGET_OS_SIMULATOR */ +#endif /* TARGET_OS_SIMULATOR && !TEST_IPV4_ROUTELIST && !TEST_IPV6_ROUTELIST */ #if !TARGET_OS_IPHONE load_smb_configuration(TRUE); @@ -9054,7 +9180,7 @@ struct route { #endif -#ifdef TEST_IPV4_ROUTELIST +#if TEST_IPV4_ROUTELIST typedef struct { const char * addr; @@ -9651,8 +9777,7 @@ make_IPv4RouteList_for_test(IPv4RouteListRef list, = CFNumberCreate(NULL, kCFNumberSInt32Type, &rank_assertion); } } - r = IPv4RouteListCreateWithDictionary(routes, dict, - rank_assertion_cf); + r = IPv4RouteListCreateWithDictionary(routes, dict, rank_assertion_cf, 0); my_CFRelease(&rank_assertion_cf); if (r == NULL) { fprintf(stderr, "IPv4RouteListCreateWithDictionary failed\n"); @@ -9668,7 +9793,7 @@ make_IPv4RouteList_for_test(IPv4RouteListRef list, CFStringRef descr; descr = IPv4RouteListCopyDescription(r); - SCPrint(TRUE, stdout, CFSTR("Adding %@"), descr); + SCPrint(TRUE, stdout, CFSTR("Adding %@\n"), descr); CFRelease(descr); } ret = IPv4RouteListAddRouteList(list, 1, r, rank); @@ -9866,7 +9991,7 @@ main(int argc, char **argv) #endif /* TEST_IPV4_ROUTELIST */ -#ifdef TEST_IPV6_ROUTELIST +#if TEST_IPV6_ROUTELIST typedef struct { const char * addr; @@ -10319,8 +10444,7 @@ make_IPv6RouteList_for_test(IPv6RouteListRef list, = CFNumberCreate(NULL, kCFNumberSInt32Type, &rank_assertion); } } - r = IPv6RouteListCreateWithDictionary(routes, dict, - rank_assertion_cf); + r = IPv6RouteListCreateWithDictionary(routes, dict, rank_assertion_cf, 0); my_CFRelease(&rank_assertion_cf); if (r == NULL) { fprintf(stderr, "IPv6RouteListCreateWithDictionary failed\n"); @@ -10336,7 +10460,7 @@ make_IPv6RouteList_for_test(IPv6RouteListRef list, CFStringRef descr; descr = IPv6RouteListCopyDescription(r); - SCPrint(TRUE, stdout, CFSTR("Adding %@"), descr); + SCPrint(TRUE, stdout, CFSTR("Adding %@\n"), descr); CFRelease(descr); } ret = IPv6RouteListAddRouteList(list, 1, r, rank); diff --git a/Plugins/IPMonitor/ip_plugin.h b/Plugins/IPMonitor/ip_plugin.h index bf0b54b..83970e2 100644 --- a/Plugins/IPMonitor/ip_plugin.h +++ b/Plugins/IPMonitor/ip_plugin.h @@ -72,7 +72,7 @@ const char * my_if_indextoname(unsigned int idx, char if_name[IFNAMSIZ]); boolean_t -service_contains_protocol(CFDictionaryRef service_dict, int af); +service_is_routable(CFDictionaryRef service_dict, int af); boolean_t service_is_scoped_only(CFDictionaryRef service_dict); diff --git a/Plugins/IPMonitor/nat64-configuration.c b/Plugins/IPMonitor/nat64-configuration.c index 80ec61d..02e6160 100644 --- a/Plugins/IPMonitor/nat64-configuration.c +++ b/Plugins/IPMonitor/nat64-configuration.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2017-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -35,7 +35,12 @@ #include #include #include +#if TEST_NAT64_CONFIGURATION +static Boolean G_set_prefixes_force_failure; +#define my_if_nametoindex if_nametoindex +#else #include "ip_plugin.h" +#endif #define INET6 1 @@ -44,18 +49,16 @@ #include #include #include -#if __has_include() +#include #include -#else // __has_include() -#include -#endif // __has_include() - - -static CFMutableSetRef nat64_prefix_requests = NULL; +#include +/** + ** Support functions + **/ static dispatch_queue_t -nat64_dispatch_queue() +nat64_dispatch_queue(void) { static dispatch_once_t once; static dispatch_queue_t q; @@ -67,7 +70,6 @@ nat64_dispatch_queue() return q; } - static Boolean _nat64_prefix_set(const char *if_name, int32_t num_prefixes, @@ -77,27 +79,25 @@ _nat64_prefix_set(const char *if_name, int ret; int s; - SC_log(LOG_DEBUG, "%s: _nat64_prefix_set", if_name); - // pass NAT64 prefixes to the kernel - bzero(&req, sizeof(req)); + memset(&req, 0, sizeof(req)); strlcpy(req.ifnat64_name, if_name, sizeof(req.ifnat64_name)); if (num_prefixes == 0) { - SC_log(LOG_INFO, "%s: nat64 prefix not (or no longer) available", if_name); + SC_log(LOG_NOTICE, "%s: nat64 prefix unavailable", if_name); } for (int32_t i = 0; i < num_prefixes; i++) { char prefix_str[NW_NAT64_PREFIX_STR_LENGTH] = {0}; nw_nat64_write_prefix_to_string(&prefixes[i], prefix_str, sizeof(prefix_str)); - SC_log(LOG_DEBUG, "%s: nat64 prefix[%d] = %s", if_name, i, prefix_str); + SC_log(LOG_NOTICE, "%s: nat64 prefix[%d] = %s", if_name, i, prefix_str); if (i < NAT64_MAX_NUM_PREFIXES) { req.ifnat64_prefixes[i].prefix_len = prefixes[i].length; - bcopy(&prefixes[i].data, - &req.ifnat64_prefixes[i].ipv6_prefix, - MIN(sizeof(req.ifnat64_prefixes[i].ipv6_prefix), sizeof(prefixes[i].data))); // MIN(16, 12) + memcpy(&req.ifnat64_prefixes[i].ipv6_prefix, + &prefixes[i].data, + MIN(sizeof(req.ifnat64_prefixes[i].ipv6_prefix), sizeof(prefixes[i].data))); // MIN(16, 12) } } @@ -115,7 +115,7 @@ _nat64_prefix_set(const char *if_name, return (FALSE); } - SC_log(LOG_INFO, "%s: nat64 prefix%s updated", if_name, (num_prefixes != 1) ? "es" : ""); + SC_log(LOG_NOTICE, "%s: nat64 prefix%s updated", if_name, (num_prefixes != 1) ? "es" : ""); return (TRUE); } @@ -126,6 +126,14 @@ _nat64_prefix_post(CFStringRef interface, nw_nat64_prefix_t *prefixes, CFAbsoluteTime start_time) { +#if TEST_NAT64_CONFIGURATION +#pragma unused(interface) +#pragma unused(num_prefixes) +#pragma unused(prefixes) +#pragma unused(start_time) + return; +#else /* TEST_NAT64_CONFIGURATION */ + CFStringRef key; key = SCDynamicStoreKeyCreateNetworkInterfaceEntity(NULL, @@ -172,113 +180,334 @@ _nat64_prefix_post(CFStringRef interface, CFRelease(date); (void)SCDynamicStoreSetValue(NULL, key, plat_dict); - SC_log(LOG_INFO, "%@: PLAT discovery complete %@", + SC_log(LOG_NOTICE, "%@: PLAT discovery complete %@", interface, plat_dict); CFRelease(plat_dict); } else { (void)SCDynamicStoreRemoveValue(NULL, key); } CFRelease(key); +#endif /* TEST_NAT64_CONFIGURATION */ return; } +static nw_nat64_prefixes_resolver_t +_nat64_resolver_create(unsigned int if_index) +{ + nw_interface_t interface; + nw_parameters_t params; + nw_nat64_prefixes_resolver_t resolver; + + params = nw_parameters_create(); + interface = nw_interface_create_with_index(if_index); + if (interface == NULL) { + SC_log(LOG_NOTICE, + "nw_interface_create_with_index(%u) failed", + if_index); + return (NULL); + } + nw_parameters_require_interface(params, interface); + nw_parameters_set_required_address_family(params, AF_INET6); + nw_release(interface); + resolver = nw_nat64_prefixes_resolver_create(params); + nw_release(params); + return (resolver); +} + +/** + ** NAT64PrefixRequest + **/ +struct NAT64PrefixRequest; +typedef struct NAT64PrefixRequest NAT64PrefixRequest, * NAT64PrefixRequestRef; +#define NAT64PrefixRequest_LIST_ENTRY LIST_ENTRY(NAT64PrefixRequest) +#define NAT64PrefixRequest_LIST_HEAD LIST_HEAD(NAT64PrefixRequestHead, \ + NAT64PrefixRequest) +static NAT64PrefixRequest_LIST_HEAD S_request_head; +static struct NAT64PrefixRequestHead * S_request_head_p = &S_request_head; + +typedef CF_ENUM(uint16_t, RequestFlags) { + kRequestFlagsNone = 0x0000, + kRequestFlagsValid = 0x0001, +}; + +struct NAT64PrefixRequest { + NAT64PrefixRequest_LIST_ENTRY link; + nw_nat64_prefixes_resolver_t resolver; + const char * if_name; + CFStringRef if_name_cf; + unsigned int if_index; + unsigned int retain_count; + RequestFlags flags; +}; + +static Boolean +NAT64PrefixRequestFlagsIsSet(NAT64PrefixRequestRef request, RequestFlags flags) +{ + return ((request->flags & flags) != 0); +} static void -_nat64_prefix_request_start(const void *value) +NAT64PrefixRequestFlagsSet(NAT64PrefixRequestRef request, RequestFlags flags) { - unsigned int if_index; - char *if_name; - CFStringRef interface = (CFStringRef)value; - bool ok; - CFAbsoluteTime start_time; + request->flags |= flags; +} - SC_log(LOG_DEBUG, "%@: _nat64_prefix_request_start", interface); +static void +NAT64PrefixRequestFlagsClear(NAT64PrefixRequestRef request, RequestFlags flags) +{ + request->flags &= ~flags; +} - if_name = _SC_cfstring_to_cstring(interface, NULL, 0, kCFStringEncodingASCII); - if (if_name == NULL) { - SC_log(LOG_NOTICE, "%@: could not convert interface name", interface); - return; +static NAT64PrefixRequestRef +NAT64PrefixRequestFindInterface(CFStringRef if_name_cf) +{ + NAT64PrefixRequestRef scan; + + LIST_FOREACH(scan, S_request_head_p, link) { + if (CFEqual(if_name_cf, scan->if_name_cf)) { + return (scan); + } } + return (NULL); +} + +static void +NAT64PrefixRequestRetain(NAT64PrefixRequestRef request) +{ + request->retain_count++; + SC_log(LOG_DEBUG, "%s: %s %p %u", + request->if_name, __FUNCTION__, + request, request->retain_count); + return; +} +static NAT64PrefixRequestRef +NAT64PrefixRequestCreate(CFStringRef if_name_cf) +{ + unsigned int if_index; + char * if_name; + NAT64PrefixRequestRef request; + + if_name = _SC_cfstring_to_cstring(if_name_cf, NULL, 0, + kCFStringEncodingASCII); + if (if_name == NULL) { + SC_log(LOG_ERR, + "%@: could not convert interface name", + if_name_cf); + return (NULL); + } if_index = my_if_nametoindex(if_name); if (if_index == 0) { - SC_log(LOG_NOTICE, "%s: no interface index", if_name); + SC_log(LOG_NOTICE, + "%s: interface does not exist", if_name); CFAllocatorDeallocate(NULL, if_name); - return; + return (NULL); } + request = malloc(sizeof(*request)); + SC_log(LOG_DEBUG, "%@: %s %p", if_name_cf, __FUNCTION__, request); + bzero(request, sizeof(*request)); + request->if_name_cf = CFRetain(if_name_cf); + request->if_name = if_name; + request->if_index = if_index; + LIST_INSERT_HEAD(S_request_head_p, request, link); + NAT64PrefixRequestFlagsSet(request, kRequestFlagsValid); + NAT64PrefixRequestRetain(request); + return (request); +} - // keep track of interfaces with active nat64 prefix requests - CFSetAddValue(nat64_prefix_requests, interface); +static void +NAT64PrefixRequestStopResolver(NAT64PrefixRequestRef request) +{ + if (request->resolver != NULL) { + SC_log(LOG_DEBUG, "%s: %s", + request->if_name, __FUNCTION__); + nw_nat64_prefixes_resolver_cancel(request->resolver); + nw_release(request->resolver); + request->resolver = NULL; + } + return; +} - CFRetain(interface); - start_time = CFAbsoluteTimeGetCurrent(); - ok = nw_nat64_copy_prefixes_async(&if_index, - nat64_dispatch_queue(), - ^(int32_t num_prefixes, nw_nat64_prefix_t *prefixes) { - if (num_prefixes >= 0) { - // update interface - if (!_nat64_prefix_set(if_name, num_prefixes, prefixes)) { - num_prefixes = -1; - } - } else { - SC_log(LOG_ERR, - "%s: nw_nat64_copy_prefixes_async() num_prefixes(%d) < 0", - if_name, - num_prefixes); - } - - if (num_prefixes <= 0) { - // remove from active list - CFSetRemoveValue(nat64_prefix_requests, interface); - } - - _nat64_prefix_post(interface, num_prefixes, prefixes, start_time); - - // cleanup - CFRelease(interface); - CFAllocatorDeallocate(NULL, if_name); - }); - if (!ok) { - SC_log(LOG_ERR, "%s: nw_nat64_copy_prefixes_async() failed", if_name); - - // remove from active list - CFSetRemoveValue(nat64_prefix_requests, interface); - - CFRelease(interface); - CFAllocatorDeallocate(NULL, if_name); +static void +NAT64PrefixRequestInvalidate(NAT64PrefixRequestRef request) +{ + SC_log(LOG_DEBUG, "%s: %s", request->if_name, __FUNCTION__); + NAT64PrefixRequestStopResolver(request); + if (NAT64PrefixRequestFlagsIsSet(request, kRequestFlagsValid)) { + NAT64PrefixRequestFlagsClear(request, kRequestFlagsValid); + LIST_REMOVE(request, link); } + return; +} +static void +NAT64PrefixRequestRelease(NAT64PrefixRequestRef request) +{ + if (request->retain_count == 0) { + SC_log(LOG_ERR, "%s: retain count is zero %p", + __FUNCTION__, request); + return; + } + request->retain_count--; + SC_log(LOG_DEBUG, + "%s: %s %p %u", + request->if_name, __FUNCTION__, request, request->retain_count); + if (request->retain_count != 0) { + return; + } + NAT64PrefixRequestInvalidate(request); + SC_log(LOG_DEBUG, "%s %s: deallocate %p", + request->if_name, __FUNCTION__, request); + if (request->if_name_cf != NULL) { + CFRelease(request->if_name_cf); + request->if_name_cf = NULL; + } + if (request->if_name != NULL) { + CFAllocatorDeallocate(NULL, (void *)request->if_name); + request->if_name = NULL; + } + free(request); return; } +static void +NAT64PrefixRequestStart(NAT64PrefixRequestRef request) +{ + dispatch_block_t cancel_handler; + nw_nat64_copy_prefixes_block_t handler; + nw_nat64_prefixes_resolver_t resolver; + CFAbsoluteTime start_time; + + SC_log(LOG_INFO, "%s: %s", request->if_name, __FUNCTION__); + if (request->resolver != NULL) { + SC_log(LOG_DEBUG, "%s %s: resolver is already active", + request->if_name, __FUNCTION__); + return; + } + resolver = _nat64_resolver_create(request->if_index); + if (resolver == NULL) { + return; + } + NAT64PrefixRequestRetain(request); + cancel_handler = ^{ + SC_log(LOG_DEBUG, "%s: NAT64 resolver cancelled", + request->if_name); + NAT64PrefixRequestRelease(request); + return; + }; + start_time = CFAbsoluteTimeGetCurrent(); + handler = ^(int32_t num_prefixes, nw_nat64_prefix_t *prefixes) { + Boolean set_prefix_failed = FALSE; + + if (!NAT64PrefixRequestFlagsIsSet(request, + kRequestFlagsValid)) { + SC_log(LOG_INFO, "%s: NAT64 request is stale %p", + request->if_name, request); + return; + } + if (prefixes != NULL) { + /* set prefixes on the interface */ + if (!_nat64_prefix_set(request->if_name, + num_prefixes, prefixes)) { + set_prefix_failed = TRUE; + } + } else { + SC_log(LOG_ERR, "%s: NAT64 no prefixes", + request->if_name); + } + _nat64_prefix_post(request->if_name_cf, + num_prefixes, prefixes, start_time); +#if TEST_NAT64_CONFIGURATION + if (G_set_prefixes_force_failure) { + set_prefix_failed = TRUE; + } +#endif /* TEST_NAT64_CONFIGURATION */ + if (set_prefix_failed) { + /* remove resolver */ + NAT64PrefixRequestInvalidate(request); + NAT64PrefixRequestRelease(request); + return; + } + }; + nw_nat64_prefixes_resolver_set_cancel_handler(resolver, cancel_handler); + nw_nat64_prefixes_resolver_set_update_handler(resolver, + nat64_dispatch_queue(), + handler); + nw_nat64_prefixes_resolver_start(resolver); + request->resolver = resolver; + return; +} +/** + ** Set iterators + **/ static void -_nat64_prefix_request(const void *value, void *context) +_nat64_process_prefix_request(const void *value, void *context) { - CFSetRef changes = (CFSetRef)context; - CFStringRef interface = (CFStringRef)value; +#pragma unused(context) + CFStringRef interface = (CFStringRef)value; + NAT64PrefixRequestRef request; - if (!CFSetContainsValue(nat64_prefix_requests, interface) || - ((changes != NULL) && CFSetContainsValue(changes, interface))) { - // if new request - // ... or a [refresh] request that hasn't already been started - _nat64_prefix_request_start(interface); + request = NAT64PrefixRequestFindInterface(interface); + if (request != NULL) { + return; } + /* start a new request */ + request = NAT64PrefixRequestCreate(interface); + if (request != NULL) { + NAT64PrefixRequestStart(request); + } return; } - static void -_nat64_prefix_update(const void *value, void *context) +_nat64_process_prefix_update(const void *value, void *context) { #pragma unused(context) - CFStringRef interface = (CFStringRef)value; + CFStringRef interface = (CFStringRef)value; + NAT64PrefixRequestRef request; - if (CFSetContainsValue(nat64_prefix_requests, interface)) { - _nat64_prefix_request_start(interface); + request = NAT64PrefixRequestFindInterface(interface); + if (request == NULL) { + SC_log(LOG_DEBUG, "%@ %s: no existing request", + interface, __FUNCTION__); + return; } + /* destroy the old one, start a new one */ + SC_log(LOG_INFO, "%@: %s", interface, __FUNCTION__); + NAT64PrefixRequestInvalidate(request); + NAT64PrefixRequestRelease(request); + + /* start a new request */ + request = NAT64PrefixRequestCreate(interface); + if (request != NULL) { + NAT64PrefixRequestStart(request); + } + return; +} + +static void +_nat64_process_cancel_request(const void * value, void * context) +{ +#pragma unused(context) + CFStringRef interface = (CFStringRef)value; + NAT64PrefixRequestRef request; + + /* if there's an in-flight request, remove it */ + request = NAT64PrefixRequestFindInterface(interface); + if (request == NULL) { + /* no resolver */ + SC_log(LOG_DEBUG, "%@ %s: no active NAT64 request", + interface, __FUNCTION__); + return; + } + SC_log(LOG_DEBUG, "%s %s: removing NAT64 request", + request->if_name, __FUNCTION__); + _nat64_prefix_set(request->if_name, 0, NULL); + NAT64PrefixRequestInvalidate(request); + NAT64PrefixRequestRelease(request); return; } @@ -332,30 +561,109 @@ nat64_prefix_request_add_pattern(CFMutableArrayRef patterns) return; } - -__private_extern__ -void -nat64_configuration_init(CFBundleRef bundle) +static void +nat64_configuration_update_locked(CFSetRef requests, CFSetRef updates, + CFSetRef cancellations) { -#pragma unused(bundle) - nat64_prefix_requests = CFSetCreateMutable(NULL, 0, &kCFTypeSetCallBacks); + if (cancellations != NULL) { + CFSetApplyFunction(cancellations, + _nat64_process_cancel_request, + NULL); + } + // for any interface that changed, refresh the nat64 prefix + if (updates != NULL) { + CFSetApplyFunction(updates, _nat64_process_prefix_update, NULL); + } + + // for any requested interface, query the nat64 prefix + if (requests != NULL) { + CFSetApplyFunction(requests, _nat64_process_prefix_request, + NULL); + } return; } - __private_extern__ void -nat64_configuration_update(CFSetRef requests, CFSetRef changes) +nat64_configuration_update(CFSetRef requests, CFSetRef updates, + CFSetRef cancellations) { - // for any interface that changed, refresh the nat64 prefix - if (changes != NULL) { - CFSetApplyFunction(changes, _nat64_prefix_update, NULL); - } + dispatch_block_t update_block; - // for any requested interface, query the nat64 prefix if (requests != NULL) { - CFSetApplyFunction(requests, _nat64_prefix_request, (void *)changes); + CFRetain(requests); } - + if (updates != NULL) { + CFRetain(updates); + } + if (cancellations != NULL) { + CFRetain(cancellations); + } + update_block = ^{ + SC_log(LOG_DEBUG, + "NAT64 requests %@ updates %@ cancellations %@", + requests, updates, cancellations); + nat64_configuration_update_locked(requests, updates, + cancellations); + if (requests != NULL) { + CFRelease(requests); + } + if (updates != NULL) { + CFRelease(updates); + } + if (cancellations != NULL) { + CFRelease(cancellations); + } + }; + dispatch_async(nat64_dispatch_queue(), update_block); return; } + +#if TEST_NAT64_CONFIGURATION +int +main(int argc, char * argv[]) +{ + CFStringRef if_name_cf; + CFMutableSetRef set; + + set = CFSetCreateMutable(NULL, 0, &kCFTypeSetCallBacks); + for (int i = 1; i < argc; i++) { + if_name_cf = CFStringCreateWithCString(NULL, + argv[i], + kCFStringEncodingASCII); + CFSetAddValue(set, if_name_cf); + CFRelease(if_name_cf); + } + if (CFSetGetCount(set) == 0) { + fprintf(stderr, "nothing to do\n"); + exit(0); + } + SC_log(LOG_NOTICE, "Starting %@", set); + nat64_configuration_update(set, NULL, NULL); + sleep(2); + + SC_log(LOG_NOTICE, "Starting 2 %@", set); + nat64_configuration_update(set, NULL, NULL); + sleep(2); + + SC_log(LOG_NOTICE, "Updating"); + nat64_configuration_update(NULL, set, NULL); + sleep(2); + + SC_log(LOG_NOTICE, "Cancelling"); + nat64_configuration_update(NULL, NULL, set); + sleep(2); + + G_set_prefixes_force_failure = TRUE; + SC_log(LOG_NOTICE, "Starting (with forced failure) %@", set); + nat64_configuration_update(set, NULL, NULL); + sleep(2); + + SC_log(LOG_NOTICE, "Starting (with forced failure 2) %@", set); + nat64_configuration_update(set, NULL, NULL); + + dispatch_main(); + exit(0); + return (0); +} +#endif /* TEST_NAT64_CONFIGURATION */ diff --git a/Plugins/IPMonitor/nat64-configuration.h b/Plugins/IPMonitor/nat64-configuration.h index eea5652..aa6ebb2 100644 --- a/Plugins/IPMonitor/nat64-configuration.h +++ b/Plugins/IPMonitor/nat64-configuration.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Apple Inc. All rights reserved. + * Copyright (c) 2017-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -39,11 +39,9 @@ void nat64_prefix_request_add_pattern (CFMutableArrayRef patterns); void -nat64_configuration_init (CFBundleRef bundle); - -void -nat64_configuration_update (CFSetRef interface_changes, - CFSetRef interface_requests); +nat64_configuration_update (CFSetRef updates, + CFSetRef requests, + CFSetRef cancellations); __END_DECLS diff --git a/Plugins/IPMonitor/routelist_output_filter.sh b/Plugins/IPMonitor/routelist_output_filter.sh index 6e5d7f7..e53f71c 100644 --- a/Plugins/IPMonitor/routelist_output_filter.sh +++ b/Plugins/IPMonitor/routelist_output_filter.sh @@ -9,4 +9,8 @@ sed -e 's/^\(Process:.*\[\)[0-9][0-9]*/\1XXXX/' \ -e '/Process [0-9][0-9]*: [0-9][0-9]* nodes malloced/d' \ -e 's/^\(Process \)[0-9][0-9]*:\(.*\)/\1XXXX\2/' \ -e 's/^\(Path: \)\(.*$\)/\1XXXX/' \ - -e 's/^\(OS Version: \)\(.*$\)/\1XXXX/' + -e 's/^\(OS Version: \)\(.*$\)/\1XXXX/' \ + -e '/^Load Address:.*/d' \ + -e '/^Launch Time:.*/d' \ + -e '/^Physical footprint:.*/d' \ + -e '/^Physical footprint (peak):.*/d' diff --git a/Plugins/IPMonitor/serviceIDNumber.c b/Plugins/IPMonitor/serviceIDNumber.c new file mode 100644 index 0000000..240748d --- /dev/null +++ b/Plugins/IPMonitor/serviceIDNumber.c @@ -0,0 +1,241 @@ +/* + * Copyright (c) 2019 Apple Inc. All Rights Reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +/* + * serviceID_number.c + * - assigns numbers to serviceID strings + */ + +#include +#include +#include + +#include "serviceIDNumber.h" +#include + +#if TEST_SERVICEID_NUMBER +#include +#endif /* TEST_SERVICEID_NUMBER */ + + +/* dictionary to hold serviceIDNumber: key is the serviceID */ +static CFMutableDictionaryRef S_serviceID_to_number_dict; + +/* dictionary to hold serviceID: key is the serviceIDNumber */ +static CFMutableDictionaryRef S_number_to_serviceID_dict; + +static Boolean +serviceIDNumberEqual(const void * ptr1, const void * ptr2) +{ + return (((serviceIDNumber)ptr1) == ((serviceIDNumber)ptr2)); +} + +static CFStringRef +serviceIDNumberCopyDescription(const void * ptr) +{ + return CFStringCreateWithFormat(NULL, NULL, CFSTR("%ld"), + (serviceIDNumber)ptr); +} + +static CFHashCode +serviceIDNumberHash(const void * ptr) { + return (CFHashCode)((serviceIDNumber)ptr); +} + +static const CFDictionaryValueCallBacks kserviceIDNumberValueCallBacks = { + 0, NULL, NULL, serviceIDNumberCopyDescription, serviceIDNumberEqual +}; + +static const CFDictionaryKeyCallBacks kserviceIDNumberKeyCallBacks = { + 0, NULL, NULL, serviceIDNumberCopyDescription, serviceIDNumberEqual, + serviceIDNumberHash +}; + +/** + ** S_serviceID_numbers + **/ + +__private_extern__ Boolean +serviceIDNumberGetIfPresent(CFStringRef serviceID, serviceIDNumber *sidn) +{ + Boolean has_number; + const void * val; + + has_number = CFDictionaryGetValueIfPresent(S_serviceID_to_number_dict, + serviceID, &val); + if (has_number) { + *sidn = (serviceIDNumber)val; + } + return (has_number); +} + +/* + * Function: serviceIDNumberGet + * Purpose: + * Return the currently assigned serviceIDNumber for the given serviceID. + * If one is already assigned, return that. If one isn't assigned, check + * the next integer value after 'current_sidn', but skip zero. + * If that number is assigned, pick the next one. + */ +static serviceIDNumber S_current_sidn; + +__private_extern__ serviceIDNumber +serviceIDNumberGet(CFStringRef serviceID) +{ + serviceIDNumber sidn; + + if (serviceIDNumberGetIfPresent(serviceID, &sidn)) { + return (sidn); + } + while (1) { + /* assign a number to the serviceID */ + S_current_sidn++; + if (S_current_sidn == kserviceIDNumberZero) { + /* skip zero */ + S_current_sidn++; + } + /* if it's in use, skip to the next value */ + if (CFDictionaryContainsKey(S_number_to_serviceID_dict, + (const void *)S_current_sidn)) { + continue; + } + /* it's not in use, use it */ + sidn = S_current_sidn; + CFDictionarySetValue(S_serviceID_to_number_dict, + serviceID, (const void *)sidn); + CFDictionarySetValue(S_number_to_serviceID_dict, + (const void *)sidn, serviceID); + break; + } + return (sidn); +} + + +__private_extern__ void +serviceIDNumberRemove(CFStringRef serviceID) +{ + const void * val; + + if (CFDictionaryGetValueIfPresent(S_serviceID_to_number_dict, serviceID, + &val)) { +#if TEST_SERVICEID_NUMBER + SCPrint(TRUE, stdout, CFSTR("Removing %@ %ld\n"), + serviceID, (serviceIDNumber)val); +#endif + CFDictionaryRemoveValue(S_serviceID_to_number_dict, serviceID); + CFDictionaryRemoveValue(S_number_to_serviceID_dict, val); + } +} + +__private_extern__ void +serviceIDNumberInit(void) +{ + S_serviceID_to_number_dict + = CFDictionaryCreateMutable(NULL, 0, + &kCFTypeDictionaryKeyCallBacks, + &kserviceIDNumberValueCallBacks); + S_number_to_serviceID_dict + = CFDictionaryCreateMutable(NULL, 0, + &kserviceIDNumberKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); +} + +#if TEST_SERVICEID_NUMBER + +static CFStringRef +my_CFUUIDStringCreate(CFAllocatorRef alloc) +{ + CFUUIDRef uuid; + CFStringRef uuid_str; + + uuid = CFUUIDCreate(alloc); + uuid_str = CFUUIDCreateString(alloc, uuid); + CFRelease(uuid); + return (uuid_str); +} + +int +main() +{ +#define N_LIST 10 + CFStringRef serviceID_list[N_LIST]; + + serviceIDNumberInit(); + for (int i = 0; i < N_LIST; i++) { + CFStringRef serviceID = my_CFUUIDStringCreate(NULL); + serviceIDNumber sidn; + + /* force a collision */ + S_current_sidn = -1; + + sidn = serviceIDNumberGet(serviceID); + SCPrint(TRUE, stdout, CFSTR("%d: %@ %ld\n"), + i, serviceID, sidn); + serviceID_list[i] = serviceID; + + } + for (int i = 0; i < N_LIST; i++) { + CFStringRef serviceID = serviceID_list[i]; + serviceIDNumber sidn; + + if (!serviceIDNumberGetIfPresent(serviceID, &sidn)) { + SCPrint(TRUE, stderr, CFSTR("Failed to find %@\n"), + serviceID); + exit(1); + } + SCPrint(TRUE, stdout, CFSTR("%@ => %ld\n"), serviceID, sidn); + } + { + serviceIDNumber sidn; + + if (serviceIDNumberGetIfPresent(CFSTR("blah"), &sidn)) { + fprintf(stderr, + "Shouldn't have been able to look that up\n"); + exit(1); + } + } + + for (int i = 0; i < N_LIST / 2; i++) { + CFStringRef serviceID = serviceID_list[i]; + serviceIDNumber sidn; + + serviceIDNumberRemove(serviceID); + if (serviceIDNumberGetIfPresent(serviceID, &sidn)) { + SCPrint(TRUE, stderr, + CFSTR("Found %@, but shouldn't have\n"), + serviceID); + exit(1); + } + } + + for (int i = 0; i < N_LIST; i++) { + CFStringRef serviceID = serviceID_list[i]; + serviceIDNumber sidn; + + sidn = serviceIDNumberGet(serviceID); + SCPrint(TRUE, stdout, CFSTR("%d: %@ %ld\n"), + i, serviceID, sidn); + } + exit(0); +} +#endif /* TEST_SERVICEID_NUMBER */ diff --git a/Plugins/IPMonitor/serviceIDNumber.h b/Plugins/IPMonitor/serviceIDNumber.h new file mode 100644 index 0000000..1d02021 --- /dev/null +++ b/Plugins/IPMonitor/serviceIDNumber.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2019 Apple Inc. All Rights Reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +/* + * serviceID_number.h + * - assigns numbers to serviceID strings + */ + +#ifndef _SERVICEID_NUMBER_H +#define _SERVICEID_NUMBER_H + +#include +#include + +/* + * Type: serviceIDNumber + * Purpose: + * A compact way to represent a serviceID that doesn't involve needing + * to worry about memory allocation or large comparisions. + */ +typedef u_long serviceIDNumber, *serviceIDNumberRef; + +/* + * Const: kserviceIDNumberZero + * + * Purpose: + * The zero value for serviceIDNumber. It will never be returned, + * it is a reserved value. + */ +#define kserviceIDNumberZero (serviceIDNumber)(0) + +/* + * Function: serviceIDNumberGetIfPresent + * + * Purpose: + * Returns TRUE and the serviceIDNumber for the given serviceID, if it + * is present, FALSE otherwise. + */ +Boolean +serviceIDNumberGetIfPresent(CFStringRef serviceID, serviceIDNumberRef sidn); + +/* + * Function: serviceIDNumberGet + * + * Purpose: + * Returns a unique serviceIDNumber for the given serviceID. + */ +serviceIDNumber +serviceIDNumberGet(CFStringRef serviceID); + +/* + * Function: serviceIDNumberRemove + * + * Purpose: + * Removes the assigned serviceIDNumber for the given serviceID. + */ +void +serviceIDNumberRemove(CFStringRef serviceID); + + +/* + * Function: serviceIDNumberInit + * + * Purpose: + * Initialize the serviceID number database. + */ +void +serviceIDNumberInit(void); + +#endif /* _SERVICEID_NUMBER_H */ diff --git a/Plugins/IPMonitor/set-hostname.c b/Plugins/IPMonitor/set-hostname.c index d91c409..b97697e 100644 --- a/Plugins/IPMonitor/set-hostname.c +++ b/Plugins/IPMonitor/set-hostname.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2017 Apple Inc. All rights reserved. + * Copyright (c) 2004-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -433,6 +433,7 @@ ptr_query_start(CFStringRef address) my_log(LOG_INFO, "hostname: ptr query start"); + (void) gettimeofday(&ptrQueryStart, NULL); (void) SCNetworkReachabilitySetCallback(ptrTarget, ptr_query_callback, NULL); (void) SCNetworkReachabilityScheduleWithRunLoop(ptrTarget, rl, kCFRunLoopDefaultMode); diff --git a/Plugins/IPMonitor/smb-configuration.c b/Plugins/IPMonitor/smb-configuration.c index a6ac14e..2bb434a 100644 --- a/Plugins/IPMonitor/smb-configuration.c +++ b/Plugins/IPMonitor/smb-configuration.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2017 Apple Inc. All rights reserved. + * Copyright (c) 2006-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -613,6 +613,7 @@ ptr_query_start(CFStringRef address) my_log(LOG_INFO, "NetBIOS name: ptr query start"); + (void) gettimeofday(&ptrQueryStart, NULL); (void) SCNetworkReachabilitySetCallback(ptrTarget, ptr_query_callback, NULL); (void) SCNetworkReachabilityScheduleWithRunLoop(ptrTarget, rl, kCFRunLoopDefaultMode); diff --git a/Plugins/IPMonitor/test_ipv4_routelist_reference.txt b/Plugins/IPMonitor/test_ipv4_routelist_reference.txt index 19f84cf..e0e9210 100644 --- a/Plugins/IPMonitor/test_ipv4_routelist_reference.txt +++ b/Plugins/IPMonitor/test_ipv4_routelist_reference.txt @@ -1,41 +1,55 @@ =================> RouteList Build 'test1' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.19 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.19 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.19 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.19 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.19 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.19 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.19 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.13 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.13 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.13 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -45,43 +59,63 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.13 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.13 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.13 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.19 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.19 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.19 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.19 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.19 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.19 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.19 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -91,42 +125,60 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test1': PASSED <================= =================> RouteList Build 'test2' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.13 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.13 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.13 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -136,38 +188,56 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.13 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.13 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.13 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -177,62 +247,88 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test2': PASSED <================= =================> RouteList Build 'test3' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.13 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.13 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.13 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en0 Ifa 192.168.2.10 - 1. Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 - 2. Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.2.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.2.10 + 3. Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 + 4. Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.20 - 1. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 - 2. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.20 + 3. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 + 4. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 - 1. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 - 2. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 + 3. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 + 4. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -248,58 +344,84 @@ Routes are = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 -} -Adding = { +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +} +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 - 1. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 - 2. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 + 3. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 + 4. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.20 - 1. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 - 2. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.20 + 3. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 + 4. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en0 Ifa 192.168.2.10 - 1. Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 - 2. Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.2.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.2.10 + 3. Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 + 4. Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.13 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.13 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.13 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.13 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.13 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -315,37 +437,53 @@ Routes are = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test3': PASSED <================= =================> RouteList Build 'test4' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 - 2. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 + 4. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 - 2. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 + 4. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -356,33 +494,47 @@ Routes are = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 - 2. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 + 4. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 - 2. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 + 4. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -393,41 +545,57 @@ Routes are = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test4': PASSED <================= =================> RouteList Build 'test5' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 - 1. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 + 1. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 + 2. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 + 3. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 - 2. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 + 4. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 - 2. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 + 4. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -440,37 +608,55 @@ Routes are = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 -} -Adding = { +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +} +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 - 2. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 + 4. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.11 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.11 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.11 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.12 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.12 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.12 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.12 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.12 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 - 2. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 + 4. Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 - 1. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 + 1. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 + 2. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 + 3. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -483,195 +669,287 @@ Routes are = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test5': PASSED <================= =================> RouteList Build 'test6' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 2. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 2. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 - 1. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 2. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 1. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 + 2. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 4. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 } -Adding = { - 0. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [last] +Adding = { + 0. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] + 1. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] + 2. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Adding = { - 0. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [last] + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Adding = { + 0. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] + 1. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] + 2. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +} +Adding = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 - 1. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 2. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 1. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 + 2. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 4. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 2. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 2. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test6': PASSED <================= =================> RouteList Build 'test7' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 2. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 2. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 - 1. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 2. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 1. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 + 2. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 4. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 } -Adding = { - 0. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [last] +Adding = { + 0. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] + 1. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] + 2. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Adding = { - 0. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [last] + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Adding = { + 0. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] + 1. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] + 2. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +} +Adding = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 - 1. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 2. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 1. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 + 2. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 4. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 - 1. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 2. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 - 1. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 2. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test7': PASSED <================= =================> RouteList Build 'test8' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test8': PASSED <================= =================> RouteList Build 'test9' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -681,23 +959,35 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Adding = { + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +} +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -707,27 +997,39 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test9': PASSED <================= =================> RouteList Build 'test10' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -737,23 +1039,35 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Adding = { + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +} +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -763,27 +1077,39 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test10': PASSED <================= =================> RouteList Build 'test11' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -793,23 +1119,35 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Adding = { + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +} +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 - 1. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 - 2. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 1. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 + 2. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 + 3. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 + 4. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -819,187 +1157,245 @@ Routes are = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test11': PASSED <================= =================> RouteList Build 'test12' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test12': PASSED <================= =================> RouteList Build 'test13' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test13': PASSED <================= =================> RouteList Build 'test14' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] - 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] - 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } routes1 and routes2 are the same =================> RouteList Build 'test14': PASSED <================= =================> RouteList Build 'test15' <================= -Adding = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 [last] +Adding = { + 0. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] } -Routes are = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Routes are = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Adding = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 [last] +Adding = { + 0. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] } -Routes are = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Routes are = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } routes1 and routes2 are the same =================> RouteList Build 'test15': PASSED <================= =================> RouteList Build 'test16' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 - 1. Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 2. Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 3. Net 10.1.5.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 4. Net 10.1.6.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 5. Net 10.1.7.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 6. Net 10.16.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 7. Net 10.45.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 8. Net 10.53.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 9. Net 10.70.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -10. Net 10.74.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -11. Net 10.90.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -12. Net 10.91.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -13. Net 10.100.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -14. Net 10.113.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -15. Net 10.128.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -16. Net 17.0.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -17. Net 17.34.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -18. Host 17.112.156.53 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -19. Net 17.128.0.0/10 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -20. Host 17.149.0.121 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -21. Host 17.149.7.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -22. Host 17.153.46.24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -23. Net 17.192.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -24. Net 17.208.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -25. Net 17.211.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -26. Net 17.212.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -27. Net 17.216.0.0/13 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -28. Net 17.224.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -29. Net 17.240.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -30. Net 17.241.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -31. Net 17.248.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -32. Host 17.251.104.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -33. Net 17.252.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -34. Net 17.253.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -35. Net 17.254.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -36. Net 17.255.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -37. Net 151.193.141.0/27 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -38. Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -39. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -40. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -41. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -42. Net 17.151.63.82/32 Ifp en0 !Ifp utun0 -43. Net 17.151.63.81/32 Ifp en0 !Ifp utun0 -44. Net 17.151.63.80/32 !Ifp utun0 -45. Net 17.1.0.0/16 !Ifp utun0 -46. Net 17.2.0.0/24 !Ifp utun0 -47. Net 10.0.0.0/24 !Ifp utun0 -} -Routes are = { + 1. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 + 2. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 + 3. Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 4. Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 5. Net 10.1.5.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 6. Net 10.1.6.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 7. Net 10.1.7.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 8. Net 10.16.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 9. Net 10.45.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +10. Net 10.53.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +11. Net 10.70.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +12. Net 10.74.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +13. Net 10.90.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +14. Net 10.91.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +15. Net 10.100.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +16. Net 10.113.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +17. Net 10.128.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +18. Net 17.0.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +19. Net 17.34.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +20. Host 17.112.156.53 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +21. Net 17.128.0.0/10 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +22. Host 17.149.0.121 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +23. Host 17.149.7.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +24. Host 17.153.46.24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +25. Net 17.192.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +26. Net 17.208.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +27. Net 17.211.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +28. Net 17.212.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +29. Net 17.216.0.0/13 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +30. Net 17.224.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +31. Net 17.240.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +32. Net 17.241.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +33. Net 17.248.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +34. Host 17.251.104.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +35. Net 17.252.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +36. Net 17.253.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +37. Net 17.254.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +38. Net 17.255.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +39. Net 151.193.141.0/27 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +40. Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +41. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +42. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +43. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +44. Net 17.151.63.82/32 Ifp en0 !Ifp utun0 +45. Net 17.151.63.81/32 Ifp en0 !Ifp utun0 +46. Net 17.151.63.80/32 !Ifp utun0 +47. Net 17.1.0.0/16 !Ifp utun0 +48. Net 17.2.0.0/24 !Ifp utun0 +49. Net 10.0.0.0/24 !Ifp utun0 +} +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -1050,63 +1446,71 @@ Routes are = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 - 1. Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 2. Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 3. Net 10.1.5.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 4. Net 10.1.6.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 5. Net 10.1.7.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 6. Net 10.16.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 7. Net 10.45.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 8. Net 10.53.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 - 9. Net 10.70.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -10. Net 10.74.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -11. Net 10.90.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -12. Net 10.91.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -13. Net 10.100.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -14. Net 10.113.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -15. Net 10.128.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -16. Net 17.0.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -17. Net 17.34.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -18. Host 17.112.156.53 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -19. Net 17.128.0.0/10 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -20. Host 17.149.0.121 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -21. Host 17.149.7.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -22. Host 17.153.46.24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -23. Net 17.192.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -24. Net 17.208.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -25. Net 17.211.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -26. Net 17.212.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -27. Net 17.216.0.0/13 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -28. Net 17.224.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -29. Net 17.240.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -30. Net 17.241.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -31. Net 17.248.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -32. Host 17.251.104.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -33. Net 17.252.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -34. Net 17.253.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -35. Net 17.254.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -36. Net 17.255.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -37. Net 151.193.141.0/27 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -38. Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -39. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -40. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -41. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -42. Net 17.151.63.82/32 Ifp en0 !Ifp utun0 -43. Net 17.151.63.81/32 Ifp en0 !Ifp utun0 -44. Net 17.151.63.80/32 !Ifp utun0 -45. Net 17.1.0.0/16 !Ifp utun0 -46. Net 17.2.0.0/24 !Ifp utun0 -47. Net 10.0.0.0/24 !Ifp utun0 -} -Adding = { - 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 + 2. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 + 3. Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 4. Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 5. Net 10.1.5.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 6. Net 10.1.6.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 7. Net 10.1.7.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 8. Net 10.16.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 + 9. Net 10.45.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +10. Net 10.53.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +11. Net 10.70.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +12. Net 10.74.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +13. Net 10.90.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +14. Net 10.91.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +15. Net 10.100.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +16. Net 10.113.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +17. Net 10.128.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +18. Net 17.0.0.0/9 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +19. Net 17.34.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +20. Host 17.112.156.53 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +21. Net 17.128.0.0/10 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +22. Host 17.149.0.121 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +23. Host 17.149.7.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +24. Host 17.153.46.24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +25. Net 17.192.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +26. Net 17.208.0.0/15 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +27. Net 17.211.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +28. Net 17.212.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +29. Net 17.216.0.0/13 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +30. Net 17.224.0.0/12 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +31. Net 17.240.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +32. Net 17.241.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +33. Net 17.248.0.0/14 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +34. Host 17.251.104.200 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +35. Net 17.252.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +36. Net 17.253.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +37. Net 17.254.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +38. Net 17.255.0.0/16 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +39. Net 151.193.141.0/27 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +40. Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +41. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +42. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +43. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +44. Net 17.151.63.82/32 Ifp en0 !Ifp utun0 +45. Net 17.151.63.81/32 Ifp en0 !Ifp utun0 +46. Net 17.151.63.80/32 !Ifp utun0 +47. Net 17.1.0.0/16 !Ifp utun0 +48. Net 17.2.0.0/24 !Ifp utun0 +49. Net 10.0.0.0/24 !Ifp utun0 +} +Adding = { + 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -1157,68 +1561,90 @@ Routes are = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test16': PASSED <================= =================> RouteList Build 'test17' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] - 1. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] - 2. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] + 3. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] + 4. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] - 1. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] - 2. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 1. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] + 2. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] + 3. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] + 4. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 - 1. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 - 2. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 + 1. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 3. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 + 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 } -Routes are = { +Routes are = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } routes1 and routes2 are the same =================> RouteList Build 'test17': PASSED <================= =================> RouteList Build 'test18' <================= -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 - 1. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 - 2. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 - 3. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 - 4. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 - 5. Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 - 6. Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 - 7. Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 - 8. Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 - 9. Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -10. Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -11. Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -12. Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -13. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -} -Routes are = { + 1. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 + 3. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 + 4. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 + 5. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 + 6. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 + 7. Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 + 8. Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 + 9. Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +10. Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +11. Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +12. Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +13. Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +14. Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +15. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +} +Routes are = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -1233,24 +1659,28 @@ Routes are = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } -Adding = { +Adding = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 - 1. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 - 2. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 - 3. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 - 4. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 - 5. Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 - 6. Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 - 7. Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 - 8. Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 - 9. Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -10. Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -11. Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -12. Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -13. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -} -Routes are = { + 1. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 + 2. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 + 3. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 + 4. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 + 5. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 + 6. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 + 7. Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 + 8. Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 + 9. Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +10. Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +11. Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +12. Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +13. Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +14. Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +15. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +} +Routes are = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -1265,12 +1695,14 @@ Routes are = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } routes1 and routes2 are the same =================> RouteList Build 'test18': PASSED <================= =================> Apply 'test1', 'test2' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1280,6 +1712,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1290,7 +1728,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test2') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1300,11 +1744,17 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } =================> Apply 'test1', 'test2' End <================= =================> Apply 'test2', 'test1' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1314,6 +1764,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1324,7 +1780,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test1') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1334,11 +1796,17 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } =================> Apply 'test2', 'test1' End <================= =================> Apply 'test1', 'test3' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1348,6 +1816,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1358,7 +1832,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test3') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -1374,8 +1854,16 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[8]: Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 [SCOPED] @@ -1383,10 +1871,12 @@ Add new[9]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test1', 'test3' End <================= =================> Apply 'test3', 'test1' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -1402,6 +1892,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1418,7 +1914,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test1') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1428,6 +1930,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Remove old[8]: Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 [SCOPED] @@ -1436,11 +1944,15 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test3', 'test1' End <================= =================> Apply 'test1', 'test4' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1450,6 +1962,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1460,7 +1978,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test4') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -1471,6 +1995,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1481,6 +2009,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -1491,10 +2025,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test1', 'test4' End <================= =================> Apply 'test4', 'test1' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -1505,6 +2043,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -1516,7 +2058,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test1') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1526,6 +2072,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -1537,6 +2089,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1546,10 +2102,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test4', 'test1' End <================= =================> Apply 'test1', 'test5' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1559,6 +2121,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1569,7 +2137,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test5') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -1582,6 +2156,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1592,6 +2172,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -1604,10 +2190,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test1', 'test5' End <================= =================> Apply 'test5', 'test1' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -1620,6 +2212,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -1633,7 +2231,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test1') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1643,6 +2247,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -1656,6 +2266,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1665,10 +2281,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test5', 'test1' End <================= =================> Apply 'test1', 'test6' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1678,6 +2300,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1688,17 +2316,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test6') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1709,42 +2351,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test1', 'test6' End <================= =================> Apply 'test6', 'test1' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test1') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1754,17 +2426,31 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1774,10 +2460,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test6', 'test1' End <================= =================> Apply 'test1', 'test7' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1787,6 +2479,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1797,17 +2495,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test7') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1818,42 +2530,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test1', 'test7' End <================= =================> Apply 'test7', 'test1' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test1') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1863,17 +2605,31 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1883,10 +2639,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test7', 'test1' End <================= =================> Apply 'test1', 'test8' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1896,6 +2658,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1906,27 +2674,43 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test8') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test1', 'test8' End <================= =================> Apply 'test8', 'test1' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1934,7 +2718,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test1') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1944,14 +2732,22 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test8', 'test1' End <================= =================> Apply 'test1', 'test9' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1961,6 +2757,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -1971,7 +2773,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test9') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -1981,6 +2789,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -1988,16 +2802,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] =================> Apply 'test1', 'test9' End <================= =================> Apply 'test9', 'test1' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2007,6 +2829,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -2017,7 +2845,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test1') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2027,6 +2861,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -2034,16 +2874,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test9', 'test1' End <================= =================> Apply 'test1', 'test10' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2053,6 +2901,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2063,7 +2917,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test10') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -2073,6 +2933,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -2080,16 +2946,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test1', 'test10' End <================= =================> Apply 'test10', 'test1' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -2099,6 +2973,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -2109,7 +2989,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test1') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2119,6 +3005,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -2126,16 +3018,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test10', 'test1' End <================= =================> Apply 'test1', 'test11' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2145,6 +3045,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2155,7 +3061,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test11') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -2165,6 +3077,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -2172,16 +3090,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test1', 'test11' End <================= =================> Apply 'test11', 'test1' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -2191,6 +3117,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -2201,7 +3133,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test1') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2211,6 +3149,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -2218,16 +3162,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test11', 'test1' End <================= =================> Apply 'test1', 'test12' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2237,6 +3189,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2247,27 +3205,43 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test12') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test1', 'test12' End <================= =================> Apply 'test12', 'test1' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2275,7 +3249,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test1') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2285,14 +3263,22 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test12', 'test1' End <================= =================> Apply 'test1', 'test13' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2302,6 +3288,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2312,27 +3304,43 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test13') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test1', 'test13' End <================= =================> Apply 'test13', 'test1' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2340,7 +3348,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test1') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2350,14 +3362,22 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test13', 'test1' End <================= =================> Apply 'test1', 'test14' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2367,6 +3387,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2377,10 +3403,18 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test14') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2390,20 +3424,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test1', 'test14' End <================= =================> Apply 'test14', 'test1' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test1') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2413,9 +3459,17 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -2424,10 +3478,16 @@ Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test14', 'test1' End <================= =================> Apply 'test1', 'test15' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2437,6 +3497,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2447,8 +3513,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -2459,15 +3533,27 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test1', 'test15' End <================= =================> Apply 'test15', 'test1' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test1') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2477,8 +3563,16 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -2488,10 +3582,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test15', 'test1' End <================= =================> Apply 'test1', 'test16' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2501,6 +3601,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2511,7 +3617,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test16') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -2562,6 +3674,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2569,6 +3685,10 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -2616,10 +3736,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test1', 'test16' End <================= =================> Apply 'test16', 'test1' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -2670,6 +3792,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2721,7 +3847,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test1') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2731,6 +3861,12 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -2779,16 +3915,22 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test16', 'test1' End <================= =================> Apply 'test1', 'test17' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2798,6 +3940,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2808,13 +3956,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test17') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2822,19 +3980,29 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test1', 'test17' End <================= =================> Apply 'test17', 'test1' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2842,7 +4010,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test1') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2852,20 +4024,32 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test17', 'test1' End <================= =================> Apply 'test1', 'test18' Begin <================= -Old routes ('test1') = = { +Old routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2875,6 +4059,12 @@ Old routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -2885,7 +4075,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test18') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -2900,6 +4096,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -2910,24 +4108,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test1', 'test18' End <================= =================> Apply 'test18', 'test1' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -2942,22 +4148,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test1') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test1') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2967,10 +4177,18 @@ New Routes ('test1') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -2980,10 +4198,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test18', 'test1' End <================= =================> Apply 'test2', 'test3' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -2993,6 +4217,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3003,7 +4233,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test3') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -3019,8 +4255,16 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[8]: Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 [SCOPED] @@ -3028,10 +4272,12 @@ Add new[9]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test2', 'test3' End <================= =================> Apply 'test3', 'test2' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -3047,6 +4293,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3063,7 +4315,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test2') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3073,6 +4331,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Remove old[8]: Net 192.168.2.0/24 Ifp en0 Ifa 192.168.2.10 [SCOPED] @@ -3081,11 +4345,15 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test3', 'test2' End <================= =================> Apply 'test2', 'test4' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3095,6 +4363,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3105,7 +4379,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test4') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -3116,6 +4396,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3126,6 +4410,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -3136,10 +4426,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test2', 'test4' End <================= =================> Apply 'test4', 'test2' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -3150,6 +4444,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -3161,7 +4459,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test2') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3171,6 +4473,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -3182,6 +4490,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3191,10 +4503,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test4', 'test2' End <================= =================> Apply 'test2', 'test5' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3204,6 +4522,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3214,7 +4538,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test5') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -3227,6 +4557,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3237,6 +4573,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -3249,10 +4591,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test2', 'test5' End <================= =================> Apply 'test5', 'test2' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -3265,6 +4613,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -3278,7 +4632,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test2') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3288,6 +4648,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -3301,6 +4667,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3310,10 +4682,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test5', 'test2' End <================= =================> Apply 'test2', 'test6' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3323,6 +4701,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3333,17 +4717,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test6') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3354,42 +4752,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test2', 'test6' End <================= =================> Apply 'test6', 'test2' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test2') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3399,17 +4827,31 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3419,10 +4861,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test6', 'test2' End <================= =================> Apply 'test2', 'test7' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3432,6 +4880,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3442,17 +4896,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test7') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3463,42 +4931,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test2', 'test7' End <================= =================> Apply 'test7', 'test2' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test2') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3508,17 +5006,31 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3528,10 +5040,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test7', 'test2' End <================= =================> Apply 'test2', 'test8' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3541,6 +5059,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3551,27 +5075,43 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test8') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test2', 'test8' End <================= =================> Apply 'test8', 'test2' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3579,7 +5119,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test2') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3589,14 +5133,22 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test8', 'test2' End <================= =================> Apply 'test2', 'test9' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3606,6 +5158,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3616,7 +5174,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test9') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3626,6 +5190,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3633,16 +5203,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] =================> Apply 'test2', 'test9' End <================= =================> Apply 'test9', 'test2' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3652,6 +5230,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -3662,7 +5246,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test2') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3672,6 +5262,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -3679,16 +5275,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test9', 'test2' End <================= =================> Apply 'test2', 'test10' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3698,6 +5302,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3708,7 +5318,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test10') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -3718,6 +5334,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3725,16 +5347,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test2', 'test10' End <================= =================> Apply 'test10', 'test2' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -3744,6 +5374,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -3754,7 +5390,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test2') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3764,6 +5406,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -3771,16 +5419,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test10', 'test2' End <================= =================> Apply 'test2', 'test11' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3790,6 +5446,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3800,7 +5462,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test11') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -3810,6 +5478,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -3817,16 +5491,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test2', 'test11' End <================= =================> Apply 'test11', 'test2' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -3836,6 +5518,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -3846,7 +5534,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test2') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3856,6 +5550,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -3863,16 +5563,24 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test11', 'test2' End <================= =================> Apply 'test2', 'test12' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3882,6 +5590,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3892,27 +5606,43 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test12') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test2', 'test12' End <================= =================> Apply 'test12', 'test2' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3920,7 +5650,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test2') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3930,14 +5664,22 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test12', 'test2' End <================= =================> Apply 'test2', 'test13' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3947,6 +5689,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3957,27 +5705,43 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test13') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test2', 'test13' End <================= =================> Apply 'test13', 'test2' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -3985,7 +5749,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test2') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -3995,14 +5763,22 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test13', 'test2' End <================= =================> Apply 'test2', 'test14' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4012,6 +5788,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4022,10 +5804,18 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test14') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4035,20 +5825,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test2', 'test14' End <================= =================> Apply 'test14', 'test2' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test2') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4058,9 +5860,17 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -4069,10 +5879,16 @@ Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test14', 'test2' End <================= =================> Apply 'test2', 'test15' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4082,6 +5898,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4092,8 +5914,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4104,15 +5934,27 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test2', 'test15' End <================= =================> Apply 'test15', 'test2' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test2') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4122,8 +5964,16 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4133,10 +5983,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test15', 'test2' End <================= =================> Apply 'test2', 'test16' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4146,6 +6002,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4156,7 +6018,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test16') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -4207,6 +6075,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4214,6 +6086,10 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -4261,10 +6137,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test2', 'test16' End <================= =================> Apply 'test16', 'test2' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -4315,6 +6193,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4366,7 +6248,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test2') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4376,6 +6262,12 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -4424,16 +6316,22 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test16', 'test2' End <================= =================> Apply 'test2', 'test17' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4443,6 +6341,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4453,13 +6357,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test17') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4467,19 +6381,29 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test2', 'test17' End <================= =================> Apply 'test17', 'test2' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4487,7 +6411,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test2') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4497,20 +6425,32 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test17', 'test2' End <================= =================> Apply 'test2', 'test18' Begin <================= -Old routes ('test2') = = { +Old routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4520,6 +6460,12 @@ Old routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4530,7 +6476,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test18') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -4545,6 +6497,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4555,24 +6509,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test2', 'test18' End <================= =================> Apply 'test18', 'test2' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -4587,22 +6549,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test2') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test2') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -4612,10 +6578,18 @@ New Routes ('test2') = = { 6. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +10. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +13. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4625,10 +6599,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[10]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test18', 'test2' End <================= =================> Apply 'test3', 'test4' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -4644,6 +6624,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4660,7 +6646,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test4') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -4671,6 +6663,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4687,6 +6683,12 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -4697,10 +6699,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test3', 'test4' End <================= =================> Apply 'test4', 'test3' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -4711,6 +6717,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -4722,7 +6732,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test3') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -4738,6 +6752,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -4749,6 +6769,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4764,10 +6788,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test4', 'test3' End <================= =================> Apply 'test3', 'test5' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -4783,6 +6813,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4799,7 +6835,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test5') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -4812,6 +6854,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4828,6 +6876,12 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -4840,10 +6894,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test3', 'test5' End <================= =================> Apply 'test5', 'test3' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -4856,6 +6916,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -4869,7 +6935,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test3') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -4885,6 +6957,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -4898,6 +6976,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4913,10 +6997,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test5', 'test3' End <================= =================> Apply 'test3', 'test6' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -4932,6 +7022,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -4948,17 +7044,31 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test6') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -4975,42 +7085,72 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test3', 'test6' End <================= =================> Apply 'test6', 'test3' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test3') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5026,17 +7166,31 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5052,10 +7206,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test6', 'test3' End <================= =================> Apply 'test3', 'test7' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5071,6 +7231,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5087,17 +7253,31 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test7') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5114,42 +7294,72 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test3', 'test7' End <================= =================> Apply 'test7', 'test3' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test3') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5165,17 +7375,31 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5191,10 +7415,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test7', 'test3' End <================= =================> Apply 'test3', 'test8' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5210,6 +7440,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5226,13 +7462,23 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test8') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 @@ -5243,16 +7489,22 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test3', 'test8' End <================= =================> Apply 'test8', 'test3' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5260,7 +7512,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test3') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5276,6 +7532,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5286,10 +7548,12 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test8', 'test3' End <================= =================> Apply 'test3', 'test9' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5305,6 +7569,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5321,7 +7591,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test9') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -5331,6 +7607,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5345,6 +7627,12 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -5352,10 +7640,16 @@ Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test3', 'test9' End <================= =================> Apply 'test9', 'test3' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -5365,6 +7659,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -5375,7 +7675,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test3') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5391,6 +7697,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -5399,6 +7711,12 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5412,10 +7730,16 @@ Add new[9]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test9', 'test3' End <================= =================> Apply 'test3', 'test10' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5431,6 +7755,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5447,7 +7777,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test10') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -5457,6 +7793,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5471,6 +7813,12 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -5478,10 +7826,16 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test3', 'test10' End <================= =================> Apply 'test10', 'test3' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -5491,6 +7845,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -5501,7 +7861,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test3') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5517,6 +7883,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -5525,6 +7897,12 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5538,10 +7916,16 @@ Add new[9]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test10', 'test3' End <================= =================> Apply 'test3', 'test11' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5557,6 +7941,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5573,7 +7963,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test11') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -5583,6 +7979,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5597,6 +7999,12 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -5604,10 +8012,16 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test3', 'test11' End <================= =================> Apply 'test11', 'test3' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -5617,6 +8031,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -5627,7 +8047,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test3') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5643,6 +8069,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -5651,6 +8083,12 @@ Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -5664,10 +8102,16 @@ Add new[9]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test11', 'test3' End <================= =================> Apply 'test3', 'test12' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5683,6 +8127,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5699,13 +8149,23 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test12') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 @@ -5716,16 +8176,22 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test3', 'test12' End <================= =================> Apply 'test12', 'test3' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5733,7 +8199,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test3') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5749,6 +8219,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5759,10 +8235,12 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test12', 'test3' End <================= =================> Apply 'test3', 'test13' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5778,6 +8256,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5794,13 +8278,23 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test13') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 @@ -5811,16 +8305,22 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test3', 'test13' End <================= =================> Apply 'test13', 'test3' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5828,7 +8328,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test3') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5844,6 +8348,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5854,10 +8364,12 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test13', 'test3' End <================= =================> Apply 'test3', 'test14' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5873,6 +8385,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5889,10 +8407,18 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test14') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5908,20 +8434,32 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test3', 'test14' End <================= =================> Apply 'test14', 'test3' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test3') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5937,9 +8475,17 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 @@ -5954,10 +8500,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test14', 'test3' End <================= =================> Apply 'test3', 'test15' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -5973,6 +8525,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -5989,8 +8547,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -6007,15 +8573,27 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test3', 'test15' End <================= =================> Apply 'test15', 'test3' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test3') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6031,8 +8609,16 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -6048,10 +8634,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test15', 'test3' End <================= =================> Apply 'test3', 'test16' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6067,6 +8659,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -6083,7 +8681,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test16') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -6134,6 +8738,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6147,6 +8755,10 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -6194,10 +8806,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test3', 'test16' End <================= =================> Apply 'test16', 'test3' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -6248,6 +8862,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -6299,7 +8917,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test3') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6315,6 +8937,12 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -6363,6 +8991,8 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 @@ -6375,10 +9005,14 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test16', 'test3' End <================= =================> Apply 'test3', 'test17' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6394,6 +9028,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -6410,13 +9050,23 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test17') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6430,19 +9080,29 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test3', 'test17' End <================= =================> Apply 'test17', 'test3' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -6450,7 +9110,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test3') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6466,10 +9130,18 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 @@ -6482,10 +9154,14 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test17', 'test3' End <================= =================> Apply 'test3', 'test18' Begin <================= -Old routes ('test3') = = { +Old routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6501,6 +9177,12 @@ Old routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -6517,7 +9199,13 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 -New Routes ('test18') = = { +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -6532,6 +9220,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -6548,24 +9238,32 @@ Remove old[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Remove old[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Remove old[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 Remove old[14]: Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +Remove old[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Remove old[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test3', 'test18' End <================= =================> Apply 'test18', 'test3' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -6580,22 +9278,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test3') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test3') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.3.1 Ifp fw0 Ifa 192.168.3.30 [SCOPED] @@ -6611,10 +9313,18 @@ New Routes ('test3') = = { 12. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] 13. Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 14. Net 192.168.3.1/32 Ifp fw0 Ifa 192.168.3.30 +15. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +16. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +17. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +18. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +19. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +20. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[6]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -6630,10 +9340,16 @@ Add new[10]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[11]: Net 192.168.2.1/32 Ifp en0 Ifa 192.168.2.10 [SCOPED] Add new[12]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.20 [SCOPED] Add new[13]: Net 192.168.3.0/24 Ifp fw0 Ifa 192.168.3.30 +Add new[15]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[16]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[17]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.3.30 [SCOPED] +Add new[18]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[19]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[20]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.3.30 [SCOPED] =================> Apply 'test18', 'test3' End <================= =================> Apply 'test4', 'test5' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6644,6 +9360,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -6655,7 +9375,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test5') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6668,15 +9392,27 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] =================> Apply 'test4', 'test5' End <================= =================> Apply 'test5', 'test4' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6689,6 +9425,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -6702,7 +9444,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test4') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6713,15 +9461,25 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 =================> Apply 'test5', 'test4' End <================= =================> Apply 'test4', 'test6' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6732,6 +9490,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -6743,17 +9505,29 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test6') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6765,42 +9539,70 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test4', 'test6' End <================= =================> Apply 'test6', 'test4' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test4') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6811,17 +9613,29 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6832,10 +9646,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test6', 'test4' End <================= =================> Apply 'test4', 'test7' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6846,6 +9664,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -6857,17 +9679,29 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test7') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6879,42 +9713,70 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test4', 'test7' End <================= =================> Apply 'test7', 'test4' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test4') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6925,17 +9787,29 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6946,10 +9820,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test7', 'test4' End <================= =================> Apply 'test4', 'test8' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -6960,6 +9838,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -6971,13 +9853,21 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test8') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -6989,22 +9879,34 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test4', 'test8' End <================= =================> Apply 'test8', 'test4' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -7012,7 +9914,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test4') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7023,6 +9929,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -7030,6 +9940,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7040,10 +9954,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test8', 'test4' End <================= =================> Apply 'test4', 'test9' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7054,6 +9972,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7065,7 +9987,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test9') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -7075,6 +10001,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7084,6 +10016,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -7091,10 +10027,16 @@ Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test4', 'test9' End <================= =================> Apply 'test9', 'test4' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -7104,6 +10046,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -7114,7 +10062,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test4') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7125,6 +10079,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -7133,6 +10091,12 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7141,10 +10105,14 @@ Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test9', 'test4' End <================= =================> Apply 'test4', 'test10' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7155,6 +10123,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7166,7 +10138,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test10') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -7176,6 +10152,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7185,6 +10167,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -7192,10 +10178,16 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test4', 'test10' End <================= =================> Apply 'test10', 'test4' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -7205,6 +10197,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -7215,7 +10213,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test4') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7226,6 +10230,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -7234,6 +10242,12 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7242,10 +10256,14 @@ Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test10', 'test4' End <================= =================> Apply 'test4', 'test11' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7256,6 +10274,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7267,7 +10289,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test11') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -7277,6 +10303,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7286,6 +10318,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -7293,10 +10329,16 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test4', 'test11' End <================= =================> Apply 'test11', 'test4' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -7306,6 +10348,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -7316,7 +10364,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test4') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7327,6 +10381,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -7335,6 +10393,12 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7343,10 +10407,14 @@ Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test11', 'test4' End <================= =================> Apply 'test4', 'test12' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7357,6 +10425,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7368,13 +10440,21 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test12') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7386,22 +10466,34 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test4', 'test12' End <================= =================> Apply 'test12', 'test4' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -7409,7 +10501,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test4') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7420,6 +10516,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -7427,6 +10527,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7437,10 +10541,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test12', 'test4' End <================= =================> Apply 'test4', 'test13' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7451,6 +10559,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7462,13 +10574,21 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test13') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7480,22 +10600,34 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test4', 'test13' End <================= =================> Apply 'test13', 'test4' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -7503,7 +10635,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test4') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7514,6 +10650,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -7521,6 +10661,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7531,10 +10675,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test13', 'test4' End <================= =================> Apply 'test4', 'test14' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7545,6 +10693,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7556,10 +10708,16 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test14') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7569,19 +10727,29 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test4', 'test14' End <================= =================> Apply 'test14', 'test4' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test4') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7592,8 +10760,14 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7602,10 +10776,14 @@ Add new[3]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test14', 'test4' End <================= =================> Apply 'test4', 'test15' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7616,6 +10794,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7627,8 +10809,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7640,15 +10828,25 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test4', 'test15' End <================= =================> Apply 'test15', 'test4' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test4') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7659,8 +10857,14 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7671,10 +10875,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test15', 'test4' End <================= =================> Apply 'test4', 'test16' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7685,6 +10893,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -7696,7 +10908,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test16') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -7747,6 +10963,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7758,6 +10978,10 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -7808,10 +11032,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test4', 'test16' End <================= =================> Apply 'test16', 'test4' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -7862,6 +11090,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -7913,7 +11145,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test4') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7924,6 +11160,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -7975,6 +11215,10 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -7985,10 +11229,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test16', 'test4' End <================= =================> Apply 'test4', 'test17' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -7999,6 +11247,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -8010,13 +11262,21 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test17') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8028,22 +11288,34 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test4', 'test17' End <================= =================> Apply 'test17', 'test4' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -8051,7 +11323,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test4') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -8062,6 +11338,10 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -8069,6 +11349,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8079,10 +11363,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test17', 'test4' End <================= =================> Apply 'test4', 'test18' Begin <================= -Old routes ('test4') = = { +Old routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -8093,6 +11381,10 @@ Old routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 @@ -8104,7 +11396,11 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test18') = = { +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -8119,6 +11415,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8130,24 +11428,30 @@ Remove old[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Remove old[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Remove old[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test4', 'test18' End <================= =================> Apply 'test18', 'test4' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -8162,22 +11466,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test4') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test4') = = { 0. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 @@ -8188,10 +11496,16 @@ New Routes ('test4') = = { 7. Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] 8. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 9. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +10. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +12. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +13. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[6]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 Add new[0]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 Add new[7]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8202,10 +11516,14 @@ Add new[4]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[5]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[8]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[9]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 +Add new[13]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test18', 'test4' End <================= =================> Apply 'test5', 'test6' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8218,6 +11536,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8231,17 +11555,31 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test6') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8255,42 +11593,72 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test5', 'test6' End <================= =================> Apply 'test6', 'test5' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test5') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8303,17 +11671,31 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8326,10 +11708,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test6', 'test5' End <================= =================> Apply 'test5', 'test7' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8342,6 +11730,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8355,17 +11749,31 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test7') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8379,42 +11787,72 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test5', 'test7' End <================= =================> Apply 'test7', 'test5' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test5') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8427,17 +11865,31 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8450,10 +11902,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test7', 'test5' End <================= =================> Apply 'test5', 'test8' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8466,6 +11924,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8479,13 +11943,23 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test8') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8499,22 +11973,36 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test5', 'test8' End <================= =================> Apply 'test8', 'test5' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -8522,7 +12010,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test5') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8535,6 +12027,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -8542,6 +12040,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8554,10 +12056,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test8', 'test5' End <================= =================> Apply 'test5', 'test9' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8570,6 +12078,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8583,7 +12097,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test9') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -8593,6 +12113,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8604,6 +12130,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -8611,10 +12143,16 @@ Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test5', 'test9' End <================= =================> Apply 'test9', 'test5' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -8624,6 +12162,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -8634,7 +12178,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test5') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8647,6 +12197,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -8655,6 +12211,12 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8665,10 +12227,16 @@ Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test9', 'test5' End <================= =================> Apply 'test5', 'test10' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8681,6 +12249,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8694,7 +12268,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test10') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -8704,6 +12284,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8715,6 +12301,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -8722,10 +12314,16 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test5', 'test10' End <================= =================> Apply 'test10', 'test5' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -8735,6 +12333,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -8745,7 +12349,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test5') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8758,6 +12368,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -8766,6 +12382,12 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8776,10 +12398,16 @@ Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test10', 'test5' End <================= =================> Apply 'test5', 'test11' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8792,6 +12420,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8805,7 +12439,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test11') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -8815,6 +12455,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8826,6 +12472,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -8833,10 +12485,16 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test5', 'test11' End <================= =================> Apply 'test11', 'test5' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -8846,6 +12504,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -8856,7 +12520,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test5') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8869,6 +12539,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -8877,6 +12553,12 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8887,10 +12569,16 @@ Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test11', 'test5' End <================= =================> Apply 'test5', 'test12' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8903,6 +12591,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -8916,13 +12610,23 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test12') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -8936,22 +12640,36 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test5', 'test12' End <================= =================> Apply 'test12', 'test5' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -8959,7 +12677,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test5') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -8972,6 +12694,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -8979,6 +12707,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -8991,10 +12723,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test12', 'test5' End <================= =================> Apply 'test5', 'test13' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9007,6 +12745,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -9020,13 +12764,23 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test13') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -9040,22 +12794,36 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test5', 'test13' End <================= =================> Apply 'test13', 'test5' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -9063,7 +12831,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test5') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9076,6 +12848,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -9083,6 +12861,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -9095,10 +12877,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test13', 'test5' End <================= =================> Apply 'test5', 'test14' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9111,6 +12899,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -9124,10 +12918,18 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test14') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -9139,19 +12941,31 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test5', 'test14' End <================= =================> Apply 'test14', 'test5' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test5') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9164,8 +12978,16 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -9176,10 +12998,16 @@ Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test14', 'test5' End <================= =================> Apply 'test5', 'test15' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9192,6 +13020,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -9205,8 +13039,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -9220,15 +13062,27 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test5', 'test15' End <================= =================> Apply 'test15', 'test5' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test5') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9241,8 +13095,16 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -9255,10 +13117,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test15', 'test5' End <================= =================> Apply 'test5', 'test16' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9271,6 +13139,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -9284,7 +13158,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test16') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -9335,6 +13215,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -9348,6 +13232,12 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -9398,10 +13288,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test5', 'test16' End <================= =================> Apply 'test16', 'test5' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -9452,6 +13346,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -9503,7 +13401,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test5') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9516,6 +13418,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -9567,6 +13475,10 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -9579,10 +13491,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test16', 'test5' End <================= =================> Apply 'test5', 'test17' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9595,6 +13513,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -9608,13 +13532,23 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test17') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -9628,22 +13562,36 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test5', 'test17' End <================= =================> Apply 'test17', 'test5' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -9651,7 +13599,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test5') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9664,6 +13616,12 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -9671,6 +13629,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -9683,10 +13645,16 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test17', 'test5' End <================= =================> Apply 'test5', 'test18' Begin <================= -Old routes ('test5') = = { +Old routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9699,6 +13667,12 @@ Old routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 @@ -9712,7 +13686,13 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] -New Routes ('test18') = = { +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -9727,6 +13707,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] @@ -9740,24 +13722,32 @@ Remove old[8]: Net 17.202.20.1/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Remove old[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] Remove old[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Remove old[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Remove old[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test5', 'test18' End <================= =================> Apply 'test18', 'test5' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -9772,22 +13762,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test5') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test5') = = { 0. Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 1. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en0 Ifa 17.202.40.191 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.20.1 Ifp en1 Ifa 17.202.42.24 [SCOPED] @@ -9800,10 +13794,18 @@ New Routes ('test5') = = { 9. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 10. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] 11. Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 +12. Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +13. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +14. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +15. Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +17. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[11]: Net 17.219.156.1/32 Ifp ppp0 Ifa 17.219.156.22 Add new[0]: Net 0.0.0.0/0 Gate 17.219.156.1 Ifp ppp0 Ifa 17.219.156.22 Add new[7]: Net 17.202.20.1/32 Ifp en0 Ifa 17.202.40.191 @@ -9816,155 +13818,245 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.11 [SCOPED] Add new[9]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.40.191 Add new[10]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp ppp0 Ifa 17.219.156.22 +Add new[13]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[14]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.24 [SCOPED] +Add new[15]: Net 255.255.255.255/32 Ifp ppp0 Ifa 17.219.156.22 +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.40.191 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.24 [SCOPED] =================> Apply 'test18', 'test5' End <================= =================> Apply 'test6', 'test7' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test7') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] =================> Apply 'test6', 'test7' End <================= =================> Apply 'test7', 'test6' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test6') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] =================> Apply 'test7', 'test6' End <================= =================> Apply 'test6', 'test8' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test8') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test6', 'test8' End <================= =================> Apply 'test8', 'test6' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -9972,17 +14064,29 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test6') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -9990,42 +14094,70 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test8', 'test6' End <================= =================> Apply 'test6', 'test9' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test9') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -10035,17 +14167,31 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -10055,10 +14201,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test6', 'test9' End <================= =================> Apply 'test9', 'test6' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -10068,6 +14220,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -10078,17 +14236,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test6') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -10099,42 +14271,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test9', 'test6' End <================= =================> Apply 'test6', 'test10' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test10') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -10144,17 +14346,31 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -10164,10 +14380,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test6', 'test10' End <================= =================> Apply 'test10', 'test6' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -10177,6 +14399,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -10187,17 +14415,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test6') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -10208,42 +14450,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test10', 'test6' End <================= =================> Apply 'test6', 'test11' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test11') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -10253,17 +14525,31 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -10273,10 +14559,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test6', 'test11' End <================= =================> Apply 'test11', 'test6' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -10286,6 +14578,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -10296,17 +14594,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test6') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -10317,75 +14629,125 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test11', 'test6' End <================= =================> Apply 'test6', 'test12' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test12') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test6', 'test12' End <================= =================> Apply 'test12', 'test6' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -10393,17 +14755,29 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test6') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -10411,75 +14785,123 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test12', 'test6' End <================= =================> Apply 'test6', 'test13' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test13') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test6', 'test13' End <================= =================> Apply 'test13', 'test6' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -10487,17 +14909,29 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test6') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -10505,190 +14939,318 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test13', 'test6' End <================= =================> Apply 'test6', 'test14' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test14') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test6', 'test14' End <================= =================> Apply 'test14', 'test6' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test6') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test14', 'test6' End <================= =================> Apply 'test6', 'test15' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test6', 'test15' End <================= =================> Apply 'test15', 'test6' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test6') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test15', 'test6' End <================= =================> Apply 'test6', 'test16' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test16') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -10739,17 +15301,29 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -10800,10 +15374,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test6', 'test16' End <================= =================> Apply 'test16', 'test6' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -10854,6 +15432,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -10905,17 +15487,29 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test6') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -10967,75 +15561,123 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test16', 'test6' End <================= =================> Apply 'test6', 'test17' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test17') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test6', 'test17' End <================= =================> Apply 'test17', 'test6' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -11043,17 +15685,29 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test6') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -11061,42 +15715,70 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test17', 'test6' End <================= =================> Apply 'test6', 'test18' Begin <================= -Old routes ('test6') = = { +Old routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test18') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -11111,35 +15793,47 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Remove old[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 -Remove old[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test6', 'test18' End <================= =================> Apply 'test18', 'test6' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -11154,105 +15848,163 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test6') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test6') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 - 5. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 - 7. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 + 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 + 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +12. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +16. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 +Add new[5]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 -Add new[5]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 +Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test18', 'test6' End <================= =================> Apply 'test7', 'test8' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test8') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test7', 'test8' End <================= =================> Apply 'test8', 'test7' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -11260,17 +16012,29 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test7') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -11278,42 +16042,70 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test8', 'test7' End <================= =================> Apply 'test7', 'test9' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test9') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -11323,17 +16115,31 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -11343,10 +16149,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test7', 'test9' End <================= =================> Apply 'test9', 'test7' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -11356,6 +16168,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -11366,17 +16184,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test7') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -11387,42 +16219,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test9', 'test7' End <================= =================> Apply 'test7', 'test10' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test10') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -11432,17 +16294,31 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -11452,10 +16328,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test7', 'test10' End <================= =================> Apply 'test10', 'test7' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -11465,6 +16347,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -11475,17 +16363,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test7') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -11496,42 +16398,72 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test10', 'test7' End <================= =================> Apply 'test7', 'test11' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test11') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -11541,17 +16473,31 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -11561,10 +16507,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test7', 'test11' End <================= =================> Apply 'test11', 'test7' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -11574,6 +16526,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -11584,17 +16542,31 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test7') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -11605,75 +16577,125 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test11', 'test7' End <================= =================> Apply 'test7', 'test12' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test12') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test7', 'test12' End <================= =================> Apply 'test12', 'test7' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -11681,17 +16703,29 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test7') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -11699,75 +16733,123 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test12', 'test7' End <================= =================> Apply 'test7', 'test13' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test13') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test7', 'test13' End <================= =================> Apply 'test13', 'test7' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -11775,17 +16857,29 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test7') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -11793,190 +16887,318 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test13', 'test7' End <================= =================> Apply 'test7', 'test14' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test14') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test7', 'test14' End <================= =================> Apply 'test14', 'test7' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test7') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test14', 'test7' End <================= =================> Apply 'test7', 'test15' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test7', 'test15' End <================= =================> Apply 'test15', 'test7' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test7') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test15', 'test7' End <================= =================> Apply 'test7', 'test16' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test16') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -12027,17 +17249,29 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -12088,10 +17322,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test7', 'test16' End <================= =================> Apply 'test16', 'test7' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -12142,6 +17380,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12193,17 +17435,29 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test7') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -12255,75 +17509,123 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test16', 'test7' End <================= =================> Apply 'test7', 'test17' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test17') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test7', 'test17' End <================= =================> Apply 'test17', 'test7' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12331,17 +17633,29 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test7') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -12349,42 +17663,70 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test17', 'test7' End <================= =================> Apply 'test7', 'test18' Begin <================= -Old routes ('test7') = = { +Old routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 -} -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +} +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -New Routes ('test18') = = { +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -12399,35 +17741,47 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 Remove old[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] Remove old[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Remove old[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Remove old[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 -Remove old[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Remove old[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 -Remove old[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Remove old[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Remove old[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Remove old[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Remove old[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Remove old[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Remove old[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Remove old[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Remove old[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test7', 'test18' End <================= =================> Apply 'test18', 'test7' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -12442,56 +17796,82 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test7') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test7') = = { 0. Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 1. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] 2. Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 3. Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] - 4. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 - 5. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 6. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 - 7. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] - 8. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 - 9. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 3. Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 + 4. Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 5. Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 + 6. Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] + 7. Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 + 8. Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 + 9. Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +10. Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +11. Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +12. Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +13. Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +14. Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +15. Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +16. Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +17. Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 -Add new[9]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +Add new[8]: Net 17.255.96.1/32 Ifp en2 Ifa 17.255.98.164 Add new[0]: Net 0.0.0.0/0 Gate 17.255.96.1 Ifp en2 Ifa 17.255.98.164 -Add new[6]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 +Add new[5]: Net 17.202.40.1/32 Ifp en1 Ifa 17.202.42.111 Add new[1]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en1 Ifa 17.202.42.111 [SCOPED] -Add new[7]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[6]: Net 17.202.40.1/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 17.202.40.1 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[3]: Net 0.0.0.0/0 Ifp fw0 Ifa 169.254.11.33 [SCOPED] -Add new[4]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 -Add new[5]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] -Add new[8]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[3]: Net 17.202.40.0/22 Ifp en1 Ifa 17.202.42.111 +Add new[4]: Net 17.202.40.0/22 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[7]: Net 17.255.96.0/20 Ifp en2 Ifa 17.255.98.164 +Add new[9]: Net 169.254.0.0/16 Ifp fw0 Ifa 169.254.11.33 [last] +Add new[10]: Net 224.0.0.0/4 Ifp en2 Ifa 17.255.98.164 +Add new[11]: Net 224.0.0.0/4 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[12]: Net 224.0.0.0/4 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[13]: Net 224.0.0.0/4 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en2 Ifa 17.255.98.164 +Add new[15]: Net 255.255.255.255/32 Ifp en1 Ifa 17.202.42.111 [SCOPED] +Add new[16]: Net 255.255.255.255/32 Ifp en0 Ifa 17.202.42.113 [SCOPED] +Add new[17]: Net 255.255.255.255/32 Ifp fw0 Ifa 169.254.11.33 [last] [SCOPED] =================> Apply 'test18', 'test7' End <================= =================> Apply 'test8', 'test9' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12499,7 +17879,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test9') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -12509,6 +17893,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -12516,6 +17906,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -12525,10 +17919,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test8', 'test9' End <================= =================> Apply 'test9', 'test8' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -12538,6 +17938,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -12548,13 +17954,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test8') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -12565,22 +17981,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test9', 'test8' End <================= =================> Apply 'test8', 'test10' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12588,7 +18018,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test10') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -12598,6 +18032,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -12605,6 +18045,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -12614,10 +18058,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test8', 'test10' End <================= =================> Apply 'test10', 'test8' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -12627,6 +18077,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -12637,13 +18093,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test8') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -12654,22 +18120,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test10', 'test8' End <================= =================> Apply 'test8', 'test11' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12677,7 +18157,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test11') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -12687,6 +18171,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -12694,6 +18184,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -12703,10 +18197,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test8', 'test11' End <================= =================> Apply 'test11', 'test8' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -12716,6 +18216,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -12726,13 +18232,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test8') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -12743,22 +18259,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test11', 'test8' End <================= =================> Apply 'test8', 'test12' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12766,24 +18296,36 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test12') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } =================> Apply 'test8', 'test12' End <================= =================> Apply 'test12', 'test8' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12791,24 +18333,36 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test8') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } =================> Apply 'test12', 'test8' End <================= =================> Apply 'test8', 'test13' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12816,24 +18370,36 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test13') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } =================> Apply 'test8', 'test13' End <================= =================> Apply 'test13', 'test8' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12841,24 +18407,36 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test8') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } =================> Apply 'test13', 'test8' End <================= =================> Apply 'test8', 'test14' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12866,54 +18444,84 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test14') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test8', 'test14' End <================= =================> Apply 'test14', 'test8' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test8') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test14', 'test8' End <================= =================> Apply 'test8', 'test15' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12921,8 +18529,14 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -12930,39 +18544,63 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test8', 'test15' End <================= =================> Apply 'test15', 'test8' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test8') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test15', 'test8' End <================= =================> Apply 'test8', 'test16' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -12970,7 +18608,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test16') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -13021,10 +18663,16 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -13072,10 +18720,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test8', 'test16' End <================= =================> Apply 'test16', 'test8' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -13126,6 +18776,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -13177,13 +18831,21 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test8') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -13232,19 +18894,27 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test16', 'test8' End <================= =================> Apply 'test8', 'test17' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -13252,30 +18922,46 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test17') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test8', 'test17' End <================= =================> Apply 'test17', 'test8' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -13283,30 +18969,46 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test8') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test17', 'test8' End <================= =================> Apply 'test8', 'test18' Begin <================= -Old routes ('test8') = = { +Old routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -13314,7 +19016,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test18') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -13329,6 +19035,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -13336,24 +19044,30 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test8', 'test18' End <================= =================> Apply 'test18', 'test8' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -13368,42 +19082,56 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test8') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test8') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test18', 'test8' End <================= =================> Apply 'test9', 'test10' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13413,6 +19141,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13423,7 +19157,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test10') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -13433,11 +19173,17 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } =================> Apply 'test9', 'test10' End <================= =================> Apply 'test10', 'test9' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -13447,6 +19193,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -13457,7 +19209,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test9') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13467,11 +19225,17 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } =================> Apply 'test10', 'test9' End <================= =================> Apply 'test9', 'test11' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13481,6 +19245,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13491,7 +19261,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test11') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -13501,11 +19277,17 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } =================> Apply 'test9', 'test11' End <================= =================> Apply 'test11', 'test9' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -13515,6 +19297,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -13525,7 +19313,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test9') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13535,11 +19329,17 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } =================> Apply 'test11', 'test9' End <================= =================> Apply 'test9', 'test12' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13549,6 +19349,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13559,13 +19365,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test12') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13576,22 +19392,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test9', 'test12' End <================= =================> Apply 'test12', 'test9' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -13599,7 +19429,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test9') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13609,6 +19443,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -13616,6 +19456,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13625,10 +19469,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test12', 'test9' End <================= =================> Apply 'test9', 'test13' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13638,6 +19488,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13648,13 +19504,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test13') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13665,22 +19531,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test9', 'test13' End <================= =================> Apply 'test13', 'test9' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -13688,7 +19568,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test9') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13698,6 +19582,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -13705,6 +19595,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13714,10 +19608,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test13', 'test9' End <================= =================> Apply 'test9', 'test14' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13727,6 +19627,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13737,10 +19643,18 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test14') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13749,19 +19663,27 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] =================> Apply 'test9', 'test14' End <================= =================> Apply 'test14', 'test9' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test9') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13771,6 +19693,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13780,10 +19708,14 @@ Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test14', 'test9' End <================= =================> Apply 'test9', 'test15' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13793,6 +19725,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13803,8 +19741,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13815,15 +19761,27 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test9', 'test15' End <================= =================> Apply 'test15', 'test9' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test9') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13833,8 +19791,16 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13844,10 +19810,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test15', 'test9' End <================= =================> Apply 'test9', 'test16' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -13857,6 +19829,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -13867,7 +19845,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test16') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -13918,6 +19902,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -13928,6 +19916,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -13978,10 +19972,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test9', 'test16' End <================= =================> Apply 'test16', 'test9' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -14032,6 +20030,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -14083,7 +20085,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test9') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14093,6 +20099,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -14144,6 +20156,10 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -14153,10 +20169,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test16', 'test9' End <================= =================> Apply 'test9', 'test17' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14166,6 +20188,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -14176,13 +20204,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test17') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -14193,22 +20231,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test9', 'test17' End <================= =================> Apply 'test17', 'test9' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -14216,7 +20268,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test9') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14226,6 +20282,12 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -14233,6 +20295,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -14242,10 +20308,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test17', 'test9' End <================= =================> Apply 'test9', 'test18' Begin <================= -Old routes ('test9') = = { +Old routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14255,6 +20327,12 @@ Old routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] @@ -14265,7 +20343,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test18') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -14280,6 +20364,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -14290,24 +20376,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Remove old[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test9', 'test18' End <================= =================> Apply 'test18', 'test9' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -14322,22 +20416,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test9') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test9') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [SCOPED] 2. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14347,10 +20445,18 @@ New Routes ('test9') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +10. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +11. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +13. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +14. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [first] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [first] Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] @@ -14360,10 +20466,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [first] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [first] +Add new[10]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [first] +Add new[13]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] =================> Apply 'test18', 'test9' End <================= =================> Apply 'test10', 'test11' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14373,6 +20485,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14383,7 +20501,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test11') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -14393,11 +20517,17 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } =================> Apply 'test10', 'test11' End <================= =================> Apply 'test11', 'test10' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -14407,6 +20537,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14417,7 +20553,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test10') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14427,11 +20569,17 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } =================> Apply 'test11', 'test10' End <================= =================> Apply 'test10', 'test12' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14441,6 +20589,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14451,13 +20605,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test12') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14468,22 +20632,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test10', 'test12' End <================= =================> Apply 'test12', 'test10' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -14491,7 +20669,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test10') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14501,6 +20683,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -14508,6 +20696,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -14517,10 +20709,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test12', 'test10' End <================= =================> Apply 'test10', 'test13' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14530,6 +20728,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14540,13 +20744,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test13') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14557,22 +20771,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test10', 'test13' End <================= =================> Apply 'test13', 'test10' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -14580,7 +20808,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test10') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14590,6 +20822,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -14597,6 +20835,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -14606,10 +20848,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test13', 'test10' End <================= =================> Apply 'test10', 'test14' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14619,6 +20867,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14629,10 +20883,18 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test14') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14641,19 +20903,27 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] =================> Apply 'test10', 'test14' End <================= =================> Apply 'test14', 'test10' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test10') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14663,6 +20933,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14672,10 +20948,14 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test14', 'test10' End <================= =================> Apply 'test10', 'test15' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14685,6 +20965,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14695,8 +20981,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14707,15 +21001,27 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test10', 'test15' End <================= =================> Apply 'test15', 'test10' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test10') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14725,8 +21031,16 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -14736,10 +21050,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test15', 'test10' End <================= =================> Apply 'test10', 'test16' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14749,6 +21069,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -14759,7 +21085,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test16') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -14810,6 +21142,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -14820,6 +21156,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -14870,10 +21212,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test10', 'test16' End <================= =================> Apply 'test16', 'test10' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -14924,6 +21270,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -14975,7 +21325,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test10') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -14985,6 +21339,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -15036,6 +21396,10 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15045,10 +21409,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test16', 'test10' End <================= =================> Apply 'test10', 'test17' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -15058,6 +21428,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15068,13 +21444,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test17') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15085,22 +21471,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test10', 'test17' End <================= =================> Apply 'test17', 'test10' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -15108,7 +21508,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test10') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -15118,6 +21522,12 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -15125,6 +21535,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15134,10 +21548,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test17', 'test10' End <================= =================> Apply 'test10', 'test18' Begin <================= -Old routes ('test10') = = { +Old routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -15147,6 +21567,12 @@ Old routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15157,7 +21583,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test18') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -15172,6 +21604,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15182,24 +21616,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test10', 'test18' End <================= =================> Apply 'test18', 'test10' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -15214,22 +21656,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test10') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test10') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] @@ -15239,10 +21685,18 @@ New Routes ('test10') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15252,10 +21706,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test18', 'test10' End <================= =================> Apply 'test11', 'test12' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15265,6 +21725,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15275,13 +21741,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test12') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15292,22 +21768,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test11', 'test12' End <================= =================> Apply 'test12', 'test11' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -15315,7 +21805,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test11') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15325,6 +21819,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -15332,6 +21832,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15341,10 +21845,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test12', 'test11' End <================= =================> Apply 'test11', 'test13' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15354,6 +21864,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15364,13 +21880,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test13') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15381,22 +21907,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test11', 'test13' End <================= =================> Apply 'test13', 'test11' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -15404,7 +21944,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test11') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15414,6 +21958,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -15421,6 +21971,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15430,10 +21984,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test13', 'test11' End <================= =================> Apply 'test11', 'test14' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15443,6 +22003,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15453,10 +22019,18 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test14') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15465,19 +22039,27 @@ Remove old[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] =================> Apply 'test11', 'test14' End <================= =================> Apply 'test14', 'test11' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test11') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15487,6 +22069,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15496,10 +22084,14 @@ Add new[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test14', 'test11' End <================= =================> Apply 'test11', 'test15' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15509,6 +22101,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15519,8 +22117,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15531,15 +22137,27 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test11', 'test15' End <================= =================> Apply 'test15', 'test11' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test11') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15549,8 +22167,16 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15560,10 +22186,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test15', 'test11' End <================= =================> Apply 'test11', 'test16' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15573,6 +22205,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15583,7 +22221,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test16') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -15634,6 +22278,10 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15644,6 +22292,12 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -15694,10 +22348,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test11', 'test16' End <================= =================> Apply 'test16', 'test11' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -15748,6 +22406,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -15799,7 +22461,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test11') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15809,6 +22475,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -15860,6 +22532,10 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15869,10 +22545,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test16', 'test11' End <================= =================> Apply 'test11', 'test17' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15882,6 +22564,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15892,13 +22580,23 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test17') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -15909,22 +22607,36 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test11', 'test17' End <================= =================> Apply 'test17', 'test11' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -15932,7 +22644,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test11') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15942,6 +22658,12 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -15949,6 +22671,10 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -15958,10 +22684,16 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test17', 'test11' End <================= =================> Apply 'test11', 'test18' Begin <================= -Old routes ('test11') = = { +Old routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -15971,6 +22703,12 @@ Old routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 @@ -15981,7 +22719,13 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 -New Routes ('test18') = = { +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -15996,6 +22740,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] @@ -16006,24 +22752,32 @@ Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Remove old[6]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Remove old[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 Remove old[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 +Remove old[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Remove old[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Remove old[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Remove old[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Remove old[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test11', 'test18' End <================= =================> Apply 'test18', 'test11' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -16038,22 +22792,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test11') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test11') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp fw0 Ifa 192.168.2.30 [SCOPED] 2. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] @@ -16063,10 +22821,18 @@ New Routes ('test11') = = { 6. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] 7. Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 8. Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 + 9. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +10. Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +11. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +12. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +13. Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +14. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 Add new[8]: Net 192.168.2.1/32 Ifp fw0 Ifa 192.168.2.30 @@ -16076,16 +22842,26 @@ Add new[2]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 Add new[4]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] Add new[7]: Net 192.168.2.0/24 Ifp fw0 Ifa 192.168.2.30 +Add new[9]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 +Add new[10]: Net 224.0.0.0/4 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[11]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] +Add new[12]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 +Add new[13]: Net 255.255.255.255/32 Ifp fw0 Ifa 192.168.2.30 [SCOPED] +Add new[14]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 [last] [SCOPED] =================> Apply 'test18', 'test11' End <================= =================> Apply 'test12', 'test13' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16093,24 +22869,36 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test13') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } =================> Apply 'test12', 'test13' End <================= =================> Apply 'test13', 'test12' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16118,24 +22906,36 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test12') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } =================> Apply 'test13', 'test12' End <================= =================> Apply 'test12', 'test14' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16143,54 +22943,84 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test14') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test12', 'test14' End <================= =================> Apply 'test14', 'test12' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test12') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test14', 'test12' End <================= =================> Apply 'test12', 'test15' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16198,8 +23028,14 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -16207,39 +23043,63 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test12', 'test15' End <================= =================> Apply 'test15', 'test12' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test12') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test15', 'test12' End <================= =================> Apply 'test12', 'test16' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16247,7 +23107,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test16') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -16298,10 +23162,16 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -16349,10 +23219,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test12', 'test16' End <================= =================> Apply 'test16', 'test12' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -16403,6 +23275,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16454,13 +23330,21 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test12') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -16509,19 +23393,27 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test16', 'test12' End <================= =================> Apply 'test12', 'test17' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16529,30 +23421,46 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test17') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test12', 'test17' End <================= =================> Apply 'test17', 'test12' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16560,30 +23468,46 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test12') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test17', 'test12' End <================= =================> Apply 'test12', 'test18' Begin <================= -Old routes ('test12') = = { +Old routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16591,7 +23515,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] -New Routes ('test18') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -16606,6 +23534,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] @@ -16613,24 +23543,30 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test12', 'test18' End <================= =================> Apply 'test18', 'test12' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -16645,48 +23581,66 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test12') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test12') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [SCOPED] =================> Apply 'test18', 'test12' End <================= =================> Apply 'test13', 'test14' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16694,54 +23648,84 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test14') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test13', 'test14' End <================= =================> Apply 'test14', 'test13' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test13') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test14', 'test13' End <================= =================> Apply 'test13', 'test15' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16749,8 +23733,14 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -16758,39 +23748,63 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test13', 'test15' End <================= =================> Apply 'test15', 'test13' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test13') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test15', 'test13' End <================= =================> Apply 'test13', 'test16' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -16798,7 +23812,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test16') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -16849,10 +23867,16 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -16900,10 +23924,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test13', 'test16' End <================= =================> Apply 'test16', 'test13' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -16954,6 +23980,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17005,13 +24035,21 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test13') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -17060,19 +24098,27 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test16', 'test13' End <================= =================> Apply 'test13', 'test17' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17080,30 +24126,46 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test17') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test13', 'test17' End <================= =================> Apply 'test17', 'test13' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17111,30 +24173,46 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test13') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test17', 'test13' End <================= =================> Apply 'test13', 'test18' Begin <================= -Old routes ('test13') = = { +Old routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17142,7 +24220,11 @@ Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] -New Routes ('test18') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -17157,6 +24239,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] @@ -17164,24 +24248,30 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Remove old[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test13', 'test18' End <================= =================> Apply 'test18', 'test13' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -17196,84 +24286,122 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test13') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test13') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] 4. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 5. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[4]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[3]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] [SCOPED] =================> Apply 'test18', 'test13' End <================= =================> Apply 'test14', 'test15' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test14', 'test15' End <================= =================> Apply 'test15', 'test14' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test14') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test15', 'test14' End <================= =================> Apply 'test14', 'test16' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test16') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -17324,10 +24452,16 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -17378,10 +24512,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test14', 'test16' End <================= =================> Apply 'test16', 'test14' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -17432,6 +24570,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17483,10 +24625,16 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test14') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -17538,47 +24686,71 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test16', 'test14' End <================= =================> Apply 'test14', 'test17' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test17') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test14', 'test17' End <================= =================> Apply 'test17', 'test14' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17586,10 +24758,16 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test14') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -17597,21 +24775,31 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test17', 'test14' End <================= =================> Apply 'test14', 'test18' Begin <================= -Old routes ('test14') = = { +Old routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] -New Routes ('test18') = = { +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -17626,28 +24814,34 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Remove old[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] Remove old[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Remove old[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test14', 'test18' End <================= =================> Apply 'test18', 'test14' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -17662,40 +24856,54 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test14') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test14') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] 1. Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] 2. Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] + 3. Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] + 4. Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[2]: Net 10.0.0.1/32 Ifp en1 Ifa 10.0.0.20 [last] Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en1 Ifa 10.0.0.20 [never] [SCOPED] Add new[1]: Net 10.0.0.0/24 Ifp en1 Ifa 10.0.0.20 [last] +Add new[3]: Net 224.0.0.0/4 Ifp en1 Ifa 10.0.0.20 [last] +Add new[4]: Net 255.255.255.255/32 Ifp en1 Ifa 10.0.0.20 [last] =================> Apply 'test18', 'test14' End <================= =================> Apply 'test15', 'test16' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test16') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -17746,8 +24954,14 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -17798,10 +25012,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test15', 'test16' End <================= =================> Apply 'test16', 'test15' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -17852,6 +25070,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17903,8 +25125,14 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -17956,39 +25184,63 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test16', 'test15' End <================= =================> Apply 'test15', 'test17' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test17') = = { +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] -} -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +} +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test15', 'test17' End <================= =================> Apply 'test17', 'test15' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -17996,8 +25248,14 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -18005,15 +25263,25 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test17', 'test15' End <================= =================> Apply 'test15', 'test18' Begin <================= -Old routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -} -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 -New Routes ('test18') = = { +Old routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +} +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -18028,26 +25296,32 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } -Remove old[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Remove old[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test15', 'test18' End <================= =================> Apply 'test18', 'test15' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -18062,32 +25336,42 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test15') = = { - 0. Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test15') = = { + 0. Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] + 1. Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] + 2. Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 -Add new[0]: Net 0.0.0.0/0 Ifp en0 Ifa 169.254.22.44 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +Add new[0]: Net 169.254.0.0/16 Ifp en0 Ifa 169.254.22.44 [last] +Add new[1]: Net 224.0.0.0/4 Ifp en0 Ifa 169.254.22.44 [last] +Add new[2]: Net 255.255.255.255/32 Ifp en0 Ifa 169.254.22.44 [last] =================> Apply 'test18', 'test15' End <================= =================> Apply 'test16', 'test17' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -18138,6 +25422,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -18189,13 +25477,21 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test17') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Remove old[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -18244,19 +25540,27 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test16', 'test17' End <================= =================> Apply 'test17', 'test16' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -18264,7 +25568,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test16') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -18315,10 +25623,16 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[4]: Net 10.1.3.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[5]: Net 10.1.4.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 @@ -18366,10 +25680,12 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test17', 'test16' End <================= =================> Apply 'test16', 'test18' Begin <================= -Old routes ('test16') = = { +Old routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -18420,6 +25736,10 @@ Old routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -18471,7 +25791,11 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 -New Routes ('test18') = = { +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -18486,6 +25810,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -18537,24 +25863,30 @@ Remove old[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Remove old[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Remove old[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Remove old[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test16', 'test18' End <================= =================> Apply 'test18', 'test16' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -18569,22 +25901,26 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test16') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test16') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 @@ -18635,10 +25971,16 @@ New Routes ('test16') = = { 47. Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 48. Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 49. Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +50. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +51. Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +52. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +53. Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[1]: Net 0.0.0.0/0 Ifp utun0 Ifa 17.153.46.24 [SCOPED] @@ -18689,16 +26031,24 @@ Add new[46]: Net 172.16.2.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[47]: Net 192.35.50.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[48]: Net 204.179.20.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 Add new[49]: Net 206.112.116.0/24 Gate 17.153.46.24 Ifp utun0 Ifa 17.153.46.24 +Add new[50]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[51]: Net 224.0.0.0/4 Ifp utun0 Ifa 17.153.46.24 [SCOPED] +Add new[52]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[53]: Net 255.255.255.255/32 Ifp utun0 Ifa 17.153.46.24 [SCOPED] =================> Apply 'test18', 'test16' End <================= =================> Apply 'test17', 'test18' Begin <================= -Old routes ('test17') = = { +Old routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 @@ -18706,7 +26056,11 @@ Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] -New Routes ('test18') = = { +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +New Routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -18721,6 +26075,8 @@ New Routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Remove old[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Remove old[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] @@ -18728,24 +26084,30 @@ Remove old[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Remove old[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Remove old[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] Remove old[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] +Remove old[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Remove old[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Remove old[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Remove old[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 =================> Apply 'test17', 'test18' End <================= =================> Apply 'test18', 'test17' Begin <================= -Old routes ('test18') = = { +Old routes ('test18') = = { 0. Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 1. Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 2. Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 @@ -18760,44 +26122,57 @@ Old routes ('test18') = = { 11. Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 12. Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 13. Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +14. Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +15. Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 } Add new[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 Add new[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 -IPMonitor RouteProcess: failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 +routing loop detected, not adding: Host 1.1.1.11 Gate 1.1.1.1 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.10 Gate 1.1.1.11 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.9 Gate 1.1.1.10 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.8 Gate 1.1.1.9 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.7 Gate 1.1.1.8 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.6 Gate 1.1.1.7 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.5 Gate 1.1.1.6 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.4 Gate 1.1.1.5 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.3 Gate 1.1.1.4 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.2 Gate 1.1.1.3 Ifp en0 Ifa 192.168.130.16 +failed to add: Host 1.1.1.1 Gate 1.1.1.2 Ifp en0 Ifa 192.168.130.16 Add new[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 -New Routes ('test17') = = { +Add new[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Add new[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 +New Routes ('test17') = = { 0. Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 1. Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] 2. Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 3. Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 4. Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] 5. Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] + 6. Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 + 7. Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] + 8. Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 + 9. Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] } Remove old[0]: Net 0.0.0.0/0 Gate 192.168.130.1 Ifp en0 Ifa 192.168.130.16 Remove old[12]: Net 192.168.130.0/24 Ifp en0 Ifa 192.168.130.16 Remove old[13]: Net 192.168.130.1/32 Ifp en0 Ifa 192.168.130.16 +Remove old[14]: Net 224.0.0.0/4 Ifp en0 Ifa 192.168.130.16 +Remove old[15]: Net 255.255.255.255/32 Ifp en0 Ifa 192.168.130.16 Add new[3]: Net 10.0.0.1/32 Ifp en0 Ifa 10.0.0.10 Add new[0]: Net 0.0.0.0/0 Gate 10.0.0.1 Ifp en0 Ifa 10.0.0.10 Add new[5]: Net 192.168.2.1/32 Ifp en1 Ifa 192.168.2.50 [last] Add new[1]: Net 0.0.0.0/0 Gate 192.168.2.1 Ifp en1 Ifa 192.168.2.50 [never] [SCOPED] Add new[2]: Net 10.0.0.0/24 Ifp en0 Ifa 10.0.0.10 Add new[4]: Net 192.168.2.0/24 Ifp en1 Ifa 192.168.2.50 [last] +Add new[6]: Net 224.0.0.0/4 Ifp en0 Ifa 10.0.0.10 +Add new[7]: Net 224.0.0.0/4 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] +Add new[8]: Net 255.255.255.255/32 Ifp en0 Ifa 10.0.0.10 +Add new[9]: Net 255.255.255.255/32 Ifp en1 Ifa 192.168.2.50 [last] [SCOPED] =================> Apply 'test18', 'test17' End <================= Checking for leaks Process: test_ipv4_routelist [XXXX] Path: XXXX -Load Address: 0xXXXX Identifier: test_ipv4_routelist Code Type: X86-64 Parent Process: sh [XXXX] @@ -18805,6 +26180,9 @@ Parent Process: sh [XXXX] Date/Time: XXXX OS Version: XXXX Report Version: 7 +Analysis Tool Version: Xcode 11.0 (11M275m) -leaks Report Version: 2.0 + +leaks Report Version: 4.0 Process XXXX 0 leaks for 0 total leaked bytes. + diff --git a/Plugins/IPMonitor/test_ipv6_routelist_reference.txt b/Plugins/IPMonitor/test_ipv6_routelist_reference.txt index 5679d1b..34fb330 100644 --- a/Plugins/IPMonitor/test_ipv6_routelist_reference.txt +++ b/Plugins/IPMonitor/test_ipv6_routelist_reference.txt @@ -579,17 +579,17 @@ New Routes ('test4') = = { !Remove old[2]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp fw0 Ifa 2011:470:1f05:3cb:cabc:c8ff:fe96:ab01 [kern] [SCOPED] !Remove old[5]: Net 2011:470:1f05:3cb::/64 Ifp fw0 Ifa 2011:470:1f05:3cb:cabc:c8ff:fe96:ab01 [kern] !Remove old[8]: Net fe80::/64 Ifp fw0 [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 =================> Apply 'test1', 'test4' End <================= =================> Apply 'test4', 'test1' Begin <================= @@ -618,17 +618,17 @@ Old routes ('test4') = = { !Add new[1]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] !Add new[2]: Net 2001:470:1f05:3cb::/64 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] !Add new[3]: Net 2001:470:1f05:3cb::/64 Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 New Routes ('test1') = = { 0. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] 1. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] @@ -870,17 +870,17 @@ New Routes ('test4') = = { !Remove old[2]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp fw0 Ifa 2011:470:1f05:3cb:cabc:c8ff:fe96:ab01 [kern] [SCOPED] !Remove old[5]: Net 2011:470:1f05:3cb::/64 Ifp fw0 Ifa 2011:470:1f05:3cb:cabc:c8ff:fe96:ab01 [kern] !Remove old[8]: Net fe80::/64 Ifp fw0 [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 =================> Apply 'test2', 'test4' End <================= =================> Apply 'test4', 'test2' Begin <================= @@ -909,17 +909,17 @@ Old routes ('test4') = = { !Add new[1]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] !Add new[2]: Net 2001:470:1f05:3cb::/64 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] !Add new[3]: Net 2001:470:1f05:3cb::/64 Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 New Routes ('test2') = = { 0. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] 1. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] @@ -1081,17 +1081,17 @@ New Routes ('test4') = = { !Add new[0]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] !Add new[2]: Net 2001:470:1f05:3cb::/64 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] !Add new[3]: Net 2001:470:1f05:3cb::/64 Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 =================> Apply 'test3', 'test4' End <================= =================> Apply 'test4', 'test3' Begin <================= @@ -1120,17 +1120,17 @@ Old routes ('test4') = = { !Add new[1]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] !Add new[2]: Net 2001:470:1f05:3cb::/64 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] !Add new[3]: Net 2001:470:1f05:3cb::/64 Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 New Routes ('test3') = = { 0. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en0 Ifa 2020:299:abcd:ef12:1:2:3:4 [kern] 1. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] @@ -1275,17 +1275,17 @@ Old routes ('test4') = = { !Add new[1]: Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] !Add new[2]: Net 2001:470:1f05:3cb::/64 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] !Add new[3]: Net 2001:470:1f05:3cb::/64 Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 New Routes ('test5') = = { 0. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 [kern] 1. Net ::/0 Gate fe80::21f:f3ff:fe43:1abf Ifp en1 Ifa 2001:470:1f05:3cb:cabc:c8ff:fed9:125a [kern] [SCOPED] @@ -1370,23 +1370,22 @@ Remove old[8]: Net 2010:470:1f05:3cb::/64 Gate fe80::2d0:bcff:fe3d:8c00 Ifp utun Remove old[9]: Host 2020:299:a:e02:825:1ed:fecc:abab Gate fe80::21f:f3ff:fe43:1abf Ifp en0 !Ifp utun0 !Remove old[10]: Net 2620:149:4:f01::/64 Ifp utun0 Ifa 2620:149:4:f01:225:ff:fecc:89aa [kern] !Remove old[13]: Net fe80::/64 Ifp utun0 [kern] [SCOPED] -IPMonitor RouteProcess: routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 -IPMonitor RouteProcess: failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +routing loop detected, not adding: Host 2620:149:4:f01:225:ff:fecc:89ab Gate 2620:149:4:f01:225:ff:fecc:89a1 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89aa Gate 2620:149:4:f01:225:ff:fecc:89ab Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a9 Gate 2620:149:4:f01:225:ff:fecc:89aa Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a8 Gate 2620:149:4:f01:225:ff:fecc:89a9 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a7 Gate 2620:149:4:f01:225:ff:fecc:89a8 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a6 Gate 2620:149:4:f01:225:ff:fecc:89a7 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a5 Gate 2620:149:4:f01:225:ff:fecc:89a6 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a4 Gate 2620:149:4:f01:225:ff:fecc:89a5 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a3 Gate 2620:149:4:f01:225:ff:fecc:89a4 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a2 Gate 2620:149:4:f01:225:ff:fecc:89a3 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 +failed to add: Host 2620:149:4:f01:225:ff:fecc:89a1 Gate 2620:149:4:f01:225:ff:fecc:89a2 Ifp en0 Ifa 2001:470:1f05:3cb:cabc:c8ff:fe96:9601 =================> Apply 'test5', 'test4' End <================= Checking for leaks Process: test_ipv6_routelist [XXXX] Path: XXXX -Load Address: 0xXXXX Identifier: test_ipv6_routelist Code Type: X86-64 Parent Process: sh [XXXX] @@ -1394,6 +1393,9 @@ Parent Process: sh [XXXX] Date/Time: XXXX OS Version: XXXX Report Version: 7 +Analysis Tool Version: Xcode 11.0 (11M275m) -leaks Report Version: 2.0 + +leaks Report Version: 4.0 Process XXXX 0 leaks for 0 total leaked bytes. + diff --git a/Plugins/InterfaceNamer/Info.plist b/Plugins/InterfaceNamer/Info.plist index 22ed8d9..d354d5a 100644 --- a/Plugins/InterfaceNamer/Info.plist +++ b/Plugins/InterfaceNamer/Info.plist @@ -17,10 +17,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 diff --git a/Plugins/InterfaceNamer/ifnamer.c b/Plugins/InterfaceNamer/ifnamer.c index bccc4b3..010f3f8 100644 --- a/Plugins/InterfaceNamer/ifnamer.c +++ b/Plugins/InterfaceNamer/ifnamer.c @@ -607,17 +607,10 @@ updateVirtualNetworkInterfaceConfiguration(SCPreferencesRef prefs, void *info) { #pragma unused(info) - os_activity_t activity; - if ((notificationType & kSCPreferencesNotificationApply) != kSCPreferencesNotificationApply) { return; } - activity = os_activity_create("check/update virtual network interface configuration", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - if (prefs == NULL) { // if a new interface has been "named" prefs = S_prefs; @@ -644,8 +637,6 @@ updateVirtualNetworkInterfaceConfiguration(SCPreferencesRef prefs, // we are finished with current prefs, wait for changes SCPreferencesSynchronize(prefs); - os_release(activity); - return; } @@ -1668,7 +1659,7 @@ watcherCreate(SCNetworkInterfaceRef interface, InterfaceUpdateCallBack callback) watched = CFDataCreateMutable(NULL, sizeof(WatchedInfo)); CFDataSetLength(watched, sizeof(WatchedInfo)); watchedInfo = (WatchedInfo *)(void *)CFDataGetBytePtr(watched); - bzero(watchedInfo, sizeof(*watchedInfo)); + memset(watchedInfo, 0, sizeof(*watchedInfo)); // retain interface watchedInfo->interface = CFRetain(interface); @@ -1894,14 +1885,8 @@ lockedNotification_reply(CFUserNotificationRef userNotification, CFOptionFlags r { #pragma unused(userNotification) - os_activity_t activity; CFIndex n; - activity = os_activity_create("process locked interface notification", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - n = (S_locked != NULL) ? CFArrayGetCount(S_locked) : 0; for (CFIndex i = 0; i < n; i++) { CFDataRef watched = CFArrayGetValueAtIndex(S_locked, i); @@ -1946,8 +1931,6 @@ lockedNotification_reply(CFUserNotificationRef userNotification, CFOptionFlags r updateInterfaces(); } - os_release(activity); - return; } @@ -2159,6 +2142,16 @@ watchLockedInterface(SCNetworkInterfaceRef interface) #if TARGET_OS_IPHONE +static Boolean +haveLockdown() +{ + void * volatile fn_WeakFunction = (void *)&(lockdown_is_host_trusted); + Boolean haveLibrary; + + haveLibrary = (fn_WeakFunction != NULL) ? TRUE : FALSE; + return haveLibrary; +} + static void shareExcluded() { @@ -2412,6 +2405,118 @@ updateTrustRequiredInterfaces(CFArrayRef interfaces) #endif // TARGET_OS_IPHONE +#pragma mark - +#pragma mark Pre-configured interface support + + +static void +sharePreconfigured() +{ + CFIndex n; + + n = (S_preconfigured != NULL) ? CFArrayGetCount(S_preconfigured) : 0; + if (n > 0) { + CFMutableArrayRef preconfigured; + + preconfigured = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + + for (CFIndex i = 0; i < n; i++) { + CFStringRef bsdName; + CFDataRef watched = CFArrayGetValueAtIndex(S_preconfigured, i); + WatchedInfo *watchedInfo = (WatchedInfo *)(void *)CFDataGetBytePtr(watched); + + bsdName = SCNetworkInterfaceGetBSDName(watchedInfo->interface); + CFArrayAppendValue(preconfigured, bsdName); + } + + CFDictionarySetValue(S_state, kInterfaceNamerKey_PreConfiguredInterfaces, preconfigured); + CFRelease(preconfigured); + } else { + CFDictionaryRemoveValue(S_state, kInterfaceNamerKey_PreConfiguredInterfaces); + } + + updateStore(); + + return; +} + +static void +preconfiguredInterfaceUpdated(CFDataRef watched, natural_t messageType, void *messageArgument) +{ + Boolean updated = FALSE; + WatchedInfo *watchedInfo = (WatchedInfo *)(void *)CFDataGetBytePtr(watched); + +#pragma unused(messageArgument) + switch (messageType) { + case kIOMessageServiceIsTerminated : { // if [locked] interface yanked + SC_log(LOG_INFO, "[pre-configured] interface removed: %@", + SCNetworkInterfaceGetBSDName(watchedInfo->interface)); + + if (S_preconfigured != NULL) { + CFIndex i; + CFIndex n = CFArrayGetCount(S_preconfigured); + + i = CFArrayGetFirstIndexOfValue(S_preconfigured, CFRangeMake(0, n), watched); + if (i != kCFNotFound) { + CFArrayRemoveValueAtIndex(S_preconfigured, i); + if (CFArrayGetCount(S_preconfigured) == 0) { + CFRelease(S_preconfigured); + S_preconfigured = NULL; + } + updated = TRUE; + } + } + + break; + } + + default : + return; + } + + if (updated) { + sharePreconfigured(); + } + + return; +} + +static void +updatePreConfiguredInterfaces(CFArrayRef interfaces) +{ + CFIndex n; + Boolean updated = FALSE; + + n = (interfaces != NULL) ? CFArrayGetCount(interfaces) : 0; + for (CFIndex i = 0; i < n; i++) { + SCNetworkInterfaceRef interface; + + interface = CFArrayGetValueAtIndex(interfaces, i); + if (_SCNetworkInterfaceIsApplePreconfigured(interface)) { + CFDataRef watched; + + watched = watcherCreate(interface, preconfiguredInterfaceUpdated); + if (watched != NULL) { + SC_log(LOG_INFO, "watching [pre-configured] interface: %@", + SCNetworkInterfaceGetBSDName(interface)); + + if (S_preconfigured == NULL) { + S_preconfigured = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + } + CFArrayAppendValue(S_preconfigured, watched); + updated = TRUE; + } + } + } + + if (updated) { + sharePreconfigured(); + } + + return; +} + + #pragma mark - #pragma mark Interface naming @@ -2725,6 +2830,9 @@ nameInterfaces(CFMutableArrayRef if_list) } #if !TARGET_OS_IPHONE + +#define INSTALL_ENVIRONMENT "__OSINSTALL_ENVIRONMENT" + static Boolean isRecoveryOS() { @@ -2732,12 +2840,12 @@ isRecoveryOS() static dispatch_once_t once; /* - * We check to see if the UserEventAgent daemon is present. If not, then - * we are most likely booted into the Recovery OS with no "SCMonitor" - * [UserEventAgent] plugin. + * We check to see if the __OSINSTALL_ENVIRONMENT env var is present. If + * so, then we are most likely booted into the Recovery OS with no [Aqua] + * "SCMonitor" [UserEventAgent] plugin. */ dispatch_once(&once, ^{ - if ((access("/usr/libexec/UserEventAgent", X_OK) == -1) && (errno == ENOENT)) { + if (getenv(INSTALL_ENVIRONMENT) != NULL) { isRecovery = TRUE; } @@ -2815,113 +2923,6 @@ updateNetworkConfiguration(CFArrayRef if_list) } #endif // !TARGET_OS_IPHONE -static void -sharePreconfigured() -{ - CFIndex n; - - n = (S_preconfigured != NULL) ? CFArrayGetCount(S_preconfigured) : 0; - if (n > 0) { - CFMutableArrayRef preconfigured; - - preconfigured = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - - for (CFIndex i = 0; i < n; i++) { - CFStringRef bsdName; - CFDataRef watched = CFArrayGetValueAtIndex(S_preconfigured, i); - WatchedInfo *watchedInfo = (WatchedInfo *)(void *)CFDataGetBytePtr(watched); - - bsdName = SCNetworkInterfaceGetBSDName(watchedInfo->interface); - CFArrayAppendValue(preconfigured, bsdName); - } - - CFDictionarySetValue(S_state, kInterfaceNamerKey_PreConfiguredInterfaces, preconfigured); - CFRelease(preconfigured); - } else { - CFDictionaryRemoveValue(S_state, kInterfaceNamerKey_PreConfiguredInterfaces); - } - - updateStore(); - - return; -} - -static void -preconfiguredInterfaceUpdated(CFDataRef watched, natural_t messageType, void *messageArgument) -{ - Boolean updated = FALSE; - WatchedInfo *watchedInfo = (WatchedInfo *)(void *)CFDataGetBytePtr(watched); - -#pragma unused(messageArgument) - switch (messageType) { - case kIOMessageServiceIsTerminated : { // if [locked] interface yanked - SC_log(LOG_INFO, "[pre-configured] interface removed: %@", - SCNetworkInterfaceGetBSDName(watchedInfo->interface)); - - if (S_preconfigured != NULL) { - CFIndex i; - CFIndex n = CFArrayGetCount(S_preconfigured); - - i = CFArrayGetFirstIndexOfValue(S_preconfigured, CFRangeMake(0, n), watched); - if (i != kCFNotFound) { - CFArrayRemoveValueAtIndex(S_preconfigured, i); - if (CFArrayGetCount(S_preconfigured) == 0) { - CFRelease(S_preconfigured); - S_preconfigured = NULL; - } - updated = TRUE; - } - } - - break; - } - - default : - return; - } - - if (updated) { - sharePreconfigured(); - } - - return; -} - -static void -updatePreConfiguredInterfaces(CFArrayRef interfaces) -{ - CFIndex n; - Boolean updated = FALSE; - - n = (interfaces != NULL) ? CFArrayGetCount(interfaces) : 0; - for (CFIndex i = 0; i < n; i++) { - SCNetworkInterfaceRef interface; - - interface = CFArrayGetValueAtIndex(interfaces, i); - if (_SCNetworkInterfaceIsApplePreconfigured(interface)) { - CFDataRef watched; - - watched = watcherCreate(interface, preconfiguredInterfaceUpdated); - if (watched != NULL) { - SC_log(LOG_INFO, "watching [pre-configured] interface: %@", - SCNetworkInterfaceGetBSDName(interface)); - - if (S_preconfigured == NULL) { - S_preconfigured = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - } - CFArrayAppendValue(S_preconfigured, watched); - updated = TRUE; - } - } - } - - if (updated) { - sharePreconfigured(); - } - - return; -} - static void updateInterfaces() { @@ -2949,7 +2950,9 @@ updateInterfaces() /* * Update the list of "trust required" interfaces */ - updateTrustRequiredInterfaces(S_iflist); + if (haveLockdown()) { + updateTrustRequiredInterfaces(S_iflist); + } #endif // TARGET_OS_IPHONE if (isQuiet()) { @@ -3033,14 +3036,8 @@ static void interfaceArrivalCallback(void *refcon, io_iterator_t iter) { #pragma unused(refcon) - os_activity_t activity; io_object_t obj; - activity = os_activity_create("process new network interface", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - while ((obj = IOIteratorNext(iter)) != MACH_PORT_NULL) { SCNetworkInterfaceRef interface; @@ -3057,8 +3054,6 @@ interfaceArrivalCallback(void *refcon, io_iterator_t iter) updateInterfaces(); - os_release(activity); - return; } @@ -3075,15 +3070,9 @@ static void stackCallback(void *refcon, io_iterator_t iter) { #pragma unused(refcon) - os_activity_t activity; kern_return_t kr; io_object_t stack; - activity = os_activity_create("process IONetworkStack", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - stack = IOIteratorNext(iter); if (stack == MACH_PORT_NULL) { goto error; @@ -3119,8 +3108,6 @@ stackCallback(void *refcon, io_iterator_t iter) IOObjectRelease(stack); } - os_release(activity); - return; } @@ -3132,18 +3119,11 @@ quietCallback(void *refcon, { #pragma unused(refcon) #pragma unused(service) - os_activity_t activity; - if (messageArgument != NULL) { // if not yet quiet return; } - activity = os_activity_create("process IOKit quiet", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - if (messageType == kIOMessageServiceBusyStateChange) { addTimestamp(S_state, kInterfaceNamerKey_Quiet); SC_log(LOG_INFO, "IOKit quiet"); @@ -3151,7 +3131,7 @@ quietCallback(void *refcon, if (S_connect == MACH_PORT_NULL) { SC_log(LOG_ERR, "No network stack object"); - goto done; + return; } if (S_quiet != MACH_PORT_NULL) { @@ -3173,10 +3153,6 @@ quietCallback(void *refcon, updateStore(); } - done : - - os_release(activity); - return; } @@ -3309,13 +3285,6 @@ timerCallback(CFRunLoopTimerRef timer, void *info) { #pragma unused(timer) #pragma unused(info) - os_activity_t activity; - - activity = os_activity_create("process IOKit timer", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - // We've been waiting for IOKit to quiesce and it just // hasn't happenned. Time to just move on! addTimestamp(S_state, kInterfaceNamerKey_Timeout); @@ -3329,8 +3298,6 @@ timerCallback(CFRunLoopTimerRef timer, void *info) addTimestamp(S_state, CFSTR("*TIMEOUT&NAMED*")); updateStore(); - os_release(activity); - return; } @@ -3658,7 +3625,7 @@ main(int argc, char ** argv) exit(0); return 0; } -#endif /* MAIN */ +#endif /* MAIN */ #ifdef TEST_SNAPSHOT int diff --git a/Plugins/KernelEventMonitor/Info.plist b/Plugins/KernelEventMonitor/Info.plist index 96d2b1a..8e3020d 100644 --- a/Plugins/KernelEventMonitor/Info.plist +++ b/Plugins/KernelEventMonitor/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 Requires com.apple.SystemConfiguration.InterfaceNamer diff --git a/Plugins/KernelEventMonitor/ev_dlil.c b/Plugins/KernelEventMonitor/ev_dlil.c index c1b136b..27cbe05 100644 --- a/Plugins/KernelEventMonitor/ev_dlil.c +++ b/Plugins/KernelEventMonitor/ev_dlil.c @@ -29,14 +29,9 @@ */ #include "eventmon.h" -#include "cache.h" #include "ev_dlil.h" #include "ev_extra.h" -#ifndef kSCEntNetIdleRoute -#define kSCEntNetIdleRoute CFSTR("IdleRoute") -#endif /* kSCEntNetIdleRoute */ - static CFStringRef create_interface_cfstring(const char * if_name) { @@ -83,7 +78,7 @@ copy_entity(CFStringRef key) CFDictionaryRef dict; CFMutableDictionaryRef newDict = NULL; - dict = cache_SCDynamicStoreCopyValue(store, key); + dict = SCDynamicStoreCopyValue(store, key); newDict = copy_mutable_dictionary(dict); if (dict != NULL) { CFRelease(dict); @@ -103,7 +98,7 @@ interface_update_status(const char *if_name, CFDictionaryRef oldDict; key = create_interface_key(interface); - oldDict = cache_SCDynamicStoreCopyValue(store, key); + oldDict = SCDynamicStoreCopyValue(store, key); if (oldDict != NULL && isA_CFDictionary(oldDict) == NULL) { CFRelease(oldDict); oldDict = NULL; @@ -135,14 +130,14 @@ interface_update_status(const char *if_name, || oldDict == NULL || !CFEqual(oldDict, newDict)) { SC_log(LOG_DEBUG, "Update interface link status: %s: %@", if_name, newDict); - cache_SCDynamicStoreSetValue(store, key, newDict); + SCDynamicStoreSetValue(store, key, newDict); } } else { /* remove the value */ if (oldDict != NULL) { SC_log(LOG_DEBUG, "Update interface link status: %s: ", if_name); } - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); } CFRelease(key); @@ -194,10 +189,10 @@ interface_update_quality_metric(const char *if_name, /* update status */ if (CFDictionaryGetCount(newDict) > 0) { SC_log(LOG_DEBUG, "Update interface link quality: %s: %@", if_name, newDict); - cache_SCDynamicStoreSetValue(store, key, newDict); + SCDynamicStoreSetValue(store, key, newDict); } else { SC_log(LOG_DEBUG, "Update interface link quality: %s: ", if_name); - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); } CFRelease(interface); @@ -220,7 +215,7 @@ link_update_quality_metric(const char *if_name) goto done; } - bzero((char *)&ifr, sizeof(ifr)); + memset((char *)&ifr, 0, sizeof(ifr)); snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s", if_name); if (ioctl(sock, SIOCGIFLINKQUALITYMETRIC, (caddr_t)&ifr) != -1) { @@ -292,7 +287,7 @@ interface_update_link_issues(const char *if_name, CFRelease(timeStamp); SC_log(LOG_DEBUG, "Update interface link issues: %s: %@", if_name, newDict); - cache_SCDynamicStoreSetValue(store, key, newDict); + SCDynamicStoreSetValue(store, key, newDict); CFRelease(interface); CFRelease(newDict); CFRelease(key); @@ -316,7 +311,7 @@ interface_detaching(const char *if_name) newDict = copy_entity(key); CFDictionarySetValue(newDict, kSCPropNetLinkDetaching, kCFBooleanTrue); - cache_SCDynamicStoreSetValue(store, key, newDict); + SCDynamicStoreSetValue(store, key, newDict); CFRelease(interface); CFRelease(newDict); CFRelease(key); @@ -347,22 +342,22 @@ interface_remove(const char *if_name) interface = create_interface_cfstring(if_name); key = create_interface_key(interface); - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); CFRelease(key); key = create_nat64_key(interface); - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); CFRelease(key); #ifdef KEV_DL_LINK_QUALITY_METRIC_CHANGED key = create_linkquality_key(interface); - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); CFRelease(key); #endif /* KEV_DL_LINK_QUALITY_METRIC_CHANGED */ #ifdef KEV_DL_ISSUES key = create_link_issues_key(interface); - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); CFRelease(key); #endif /* KEV_DL_ISSUES */ @@ -385,7 +380,7 @@ S_link_update_status(const char *if_name, CFStringRef interface, boolean_t attac } /* get "Link" */ - bzero((char *)&ifm, sizeof(ifm)); + memset((char *)&ifm, 0, sizeof(ifm)); (void) strlcpy(ifm.ifm_name, if_name, sizeof(ifm.ifm_name)); if (ioctl(sock, SIOCGIFXMEDIA, (caddr_t)&ifm) == -1) { @@ -447,14 +442,14 @@ link_update_status_if_missing(const char * if_name) interface = create_interface_cfstring(if_name); key = create_interface_key(interface); - dict = cache_SCDynamicStoreCopyValue(store, key); + dict = SCDynamicStoreCopyValue(store, key); if (dict != NULL) { /* it's already present, don't update */ CFRelease(dict); goto done; } S_link_update_status(if_name, interface, FALSE, FALSE); - dict = cache_SCDynamicStoreCopyValue(store, key); + dict = SCDynamicStoreCopyValue(store, key); if (dict != NULL) { /* our action made it appear */ messages_add_msg_with_arg("added missing link status", if_name); @@ -476,7 +471,7 @@ interfaceListCopy(void) cacheKey = SCDynamicStoreKeyCreateNetworkInterface(NULL, kSCDynamicStoreDomainState); - dict = cache_SCDynamicStoreCopyValue(store, cacheKey); + dict = SCDynamicStoreCopyValue(store, cacheKey); CFRelease(cacheKey); if (dict != NULL) { if (isA_CFDictionary(dict) != NULL) { @@ -505,7 +500,7 @@ interfaceListUpdate(CFArrayRef ifList) cacheKey = SCDynamicStoreKeyCreateNetworkInterface(NULL, kSCDynamicStoreDomainState); - dict = cache_SCDynamicStoreCopyValue(store, cacheKey); + dict = SCDynamicStoreCopyValue(store, cacheKey); if (dict != NULL && isA_CFDictionary(dict) == NULL) { CFRelease(dict); dict = NULL; @@ -517,7 +512,7 @@ interfaceListUpdate(CFArrayRef ifList) 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - cache_SCDynamicStoreSetValue(store, cacheKey, dict); + SCDynamicStoreSetValue(store, cacheKey, dict); CFRelease(dict); } @@ -527,7 +522,7 @@ interfaceListUpdate(CFArrayRef ifList) newDict = CFDictionaryCreateMutableCopy(NULL, 0, dict); CFRelease(dict); CFDictionarySetValue(newDict, kSCPropNetInterfaces, ifList); - cache_SCDynamicStoreSetValue(store, cacheKey, newDict); + SCDynamicStoreSetValue(store, cacheKey, newDict); CFRelease(newDict); } CFRelease(cacheKey); @@ -616,6 +611,26 @@ link_remove(const char *if_name) } +__private_extern__ +void +interface_update_delegation(const char *if_name) +{ + CFStringRef interface; + CFStringRef key; + + interface = create_interface_cfstring(if_name); + key = SCDynamicStoreKeyCreateNetworkInterfaceEntity(NULL, + kSCDynamicStoreDomainState, + interface, + kSCEntNetInterfaceDelegation); + SC_log(LOG_DEBUG, "Post interface delegation change: %s", if_name); + SCDynamicStoreNotifyValue(store, key); + CFRelease(key); + CFRelease(interface); + return; +} + + #ifdef KEV_DL_IF_IDLE_ROUTE_REFCNT #define INVALID_SOCKET_REF -1 static @@ -630,7 +645,7 @@ socket_reference_count(const char* if_name) { return (ref); } - bzero((char *)&ifr, sizeof(ifr)); + memset((char *)&ifr, 0, sizeof(ifr)); snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s", if_name); if (ioctl(s, SIOCGIFGETRTREFCNT, (caddr_t)&ifr) != -1) { @@ -664,7 +679,7 @@ interface_update_idle_state(const char *if_name) kSCEntNetIdleRoute); SC_log(LOG_DEBUG, "Post interface idle: %s", if_name); - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); CFRelease(interface); return; diff --git a/Plugins/KernelEventMonitor/ev_dlil.h b/Plugins/KernelEventMonitor/ev_dlil.h index deda140..1deda21 100644 --- a/Plugins/KernelEventMonitor/ev_dlil.h +++ b/Plugins/KernelEventMonitor/ev_dlil.h @@ -1,15 +1,15 @@ /* - * Copyright (c) 2002-2015 Apple Inc. All rights reserved. + * Copyright (c) 2002-2015, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -36,6 +36,8 @@ __BEGIN_DECLS void interface_detaching (const char *if_name); +void interface_update_delegation (const char *if_name); + void interface_update_idle_state (const char *if_name); void interface_update_link_issues (const char *if_name, diff --git a/Plugins/KernelEventMonitor/ev_extra.m b/Plugins/KernelEventMonitor/ev_extra.m index 5c42ec3..3af8018 100644 --- a/Plugins/KernelEventMonitor/ev_extra.m +++ b/Plugins/KernelEventMonitor/ev_extra.m @@ -34,6 +34,19 @@ +#if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR +static Boolean +haveMobileWiFi() +{ + void * volatile fn_WeakFunction = (void *)&(WiFiManagerClientCreate); + Boolean haveFramework; + + haveFramework = (fn_WeakFunction != NULL) ? TRUE : FALSE; + return haveFramework; +} +#endif // TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR + + static CFBooleanRef is_expensive(SCNetworkInterfaceRef _Nonnull interface) { @@ -77,11 +90,11 @@ ifexpensive_set(int s, const char * name, uint32_t expensive) struct ifreq ifr; int ret; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); ifr.ifr_expensive = expensive; ret = ioctl(s, SIOCSIFEXPENSIVE, &ifr); - if (ret == -1) { + if ((ret == -1) && (errno != EPERM)) { SC_log(LOG_ERR, "%s: ioctl(SIOCSIFEXPENSIVE) failed: %s", name, strerror(errno)); } diff --git a/Plugins/KernelEventMonitor/ev_ipv4.c b/Plugins/KernelEventMonitor/ev_ipv4.c index 109b47e..55c4cf2 100644 --- a/Plugins/KernelEventMonitor/ev_ipv4.c +++ b/Plugins/KernelEventMonitor/ev_ipv4.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2017 Apple Inc. All rights reserved. + * Copyright (c) 2002-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -29,19 +29,8 @@ */ #include "eventmon.h" -#include "cache.h" #include "ev_ipv4.h" -#ifndef kSCEntNetIPv4ARPCollision -#define kSCEntNetIPv4ARPCollision CFSTR("IPv4ARPCollision") -#endif /* kSCEntNetIPv4ARPCollision */ - -#if !TARGET_OS_IPHONE -#ifndef kSCEntNetIPv4PortInUse -#define kSCEntNetIPv4PortInUse CFSTR("PortInUse") -#endif /* kSCEntNetIPv4PortInUse */ -#endif /* !TARGET_OS_IPHONE */ - #define IP_FORMAT "%d.%d.%d.%d" #define IP_CH(ip, i) (((u_char *)(ip))[i]) #define IP_LIST(ip) IP_CH(ip,0),IP_CH(ip,1),IP_CH(ip,2),IP_CH(ip,3) @@ -80,7 +69,7 @@ copyIF(CFStringRef key, CFMutableDictionaryRef oldIFs, CFMutableDictionaryRef ne if (CFDictionaryGetValueIfPresent(newIFs, key, (const void **)&dict)) { newDict = CFDictionaryCreateMutableCopy(NULL, 0, dict); } else { - dict = cache_SCDynamicStoreCopyValue(store, key); + dict = SCDynamicStoreCopyValue(store, key); if (dict) { CFDictionarySetValue(oldIFs, key, dict); if (isA_CFDictionary(dict)) { @@ -117,16 +106,16 @@ updateStore(const void *key, const void *value, void *context) if (!dict || !CFEqual(dict, newDict)) { if (CFDictionaryGetCount(newDict) > 0) { SC_log(LOG_DEBUG, "Update interface configuration: %@: %@", key, newDict); - cache_SCDynamicStoreSetValue(store, key, newDict); + SCDynamicStoreSetValue(store, key, newDict); } else if (dict) { CFDictionaryRef oldDict; - oldDict = cache_SCDynamicStoreCopyValue(store, key); + oldDict = SCDynamicStoreCopyValue(store, key); if (oldDict != NULL) { SC_log(LOG_DEBUG, "Update interface configuration: %@: ", key); CFRelease(oldDict); } - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); } network_changed = TRUE; } @@ -269,7 +258,7 @@ ipv4_arp_collision(const char *if_name, struct in_addr ip_addr, int hw_len, cons (i == 0) ? "/" : ":", hw_addr_bytes[i]); } SC_log(LOG_DEBUG, "Post ARP collision: %@", key); - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); CFRelease(prefix); CFRelease(if_name_cf); @@ -291,7 +280,7 @@ ipv4_port_in_use(uint16_t port, pid_t req_pid) kSCEntNetIPv4PortInUse, port, req_pid); SC_log(LOG_DEBUG, "Post port-in-use: %@", key); - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); return; } @@ -311,7 +300,7 @@ interface_notify_entity(const char * if_name, const char * type, CFStringRef ent entity); CFRelease(if_name_cf); SC_log(LOG_DEBUG, "Post %s: %@", type, key); - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); return; } diff --git a/Plugins/KernelEventMonitor/ev_ipv6.c b/Plugins/KernelEventMonitor/ev_ipv6.c index 5ab6bdb..4b3e6bc 100644 --- a/Plugins/KernelEventMonitor/ev_ipv6.c +++ b/Plugins/KernelEventMonitor/ev_ipv6.c @@ -30,7 +30,6 @@ #include "eventmon.h" -#include "cache.h" #include "ev_ipv6.h" #define s6_addr16 __u6_addr.__u6_addr16 @@ -196,7 +195,7 @@ copyIF(CFStringRef key, CFMutableDictionaryRef oldIFs, CFMutableDictionaryRef ne if (CFDictionaryGetValueIfPresent(newIFs, key, (const void **)&dict)) { newDict = CFDictionaryCreateMutableCopy(NULL, 0, dict); } else { - dict = cache_SCDynamicStoreCopyValue(store, key); + dict = SCDynamicStoreCopyValue(store, key); if (dict) { CFDictionarySetValue(oldIFs, key, dict); if (isA_CFDictionary(dict)) { @@ -236,16 +235,16 @@ updateStore(const void *key, const void *value, void *context) if (!dict || !CFEqual(dict, newDict)) { if (CFDictionaryGetCount(newDict) > 0) { SC_log(LOG_DEBUG, "Update interface configuration: %@: %@", key, newDict); - cache_SCDynamicStoreSetValue(store, key, newDict); + SCDynamicStoreSetValue(store, key, newDict); } else if (dict) { CFDictionaryRef oldDict; - oldDict = cache_SCDynamicStoreCopyValue(store, key); + oldDict = SCDynamicStoreCopyValue(store, key); if (oldDict != NULL) { SC_log(LOG_DEBUG, "Update interface configuration: %@: ", key); CFRelease(oldDict); } - cache_SCDynamicStoreRemoveValue(store, key); + SCDynamicStoreRemoveValue(store, key); } network_changed = TRUE; } @@ -336,7 +335,7 @@ interface_update_ipv6(struct ifaddrs *ifap, const char *if_name) } } - bzero((char *)&ifr6, sizeof(ifr6)); + memset((char *)&ifr6, 0, sizeof(ifr6)); strlcpy(ifr6.ifr_name, ifa->ifa_name, sizeof(ifr6.ifr_name)); ifr6.ifr_addr = *sin6; if (ioctl(sock, SIOCGIFAFLAG_IN6, &ifr6) == -1) { @@ -437,7 +436,7 @@ ipv6_duplicated_address(const char * if_name, const struct in6_addr * addr, CFStringAppendFormat(key, NULL, CFSTR("%s%02x"), (i == 0) ? "/" : ":", hw_addr_bytes[i]); } - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); CFRelease(prefix); CFRelease(if_name_cf); @@ -457,7 +456,7 @@ nat64_prefix_request(const char *if_name) kSCEntNetNAT64PrefixRequest); CFRelease(if_name_cf); SC_log(LOG_DEBUG, "Post NAT64 prefix request: %@", key); - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); } @@ -474,6 +473,6 @@ ipv6_router_expired(const char *if_name) kSCEntNetIPv6RouterExpired); CFRelease(if_name_cf); SC_log(LOG_DEBUG, "Post IPv6 Router Expired: %@", key); - cache_SCDynamicStoreNotifyValue(store, key); + SCDynamicStoreNotifyValue(store, key); CFRelease(key); } diff --git a/Plugins/KernelEventMonitor/eventmon.c b/Plugins/KernelEventMonitor/eventmon.c index 9c3d7b4..9e0a245 100644 --- a/Plugins/KernelEventMonitor/eventmon.c +++ b/Plugins/KernelEventMonitor/eventmon.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -54,18 +54,13 @@ */ #include "eventmon.h" -#include "cache.h" #include "ev_dlil.h" #include "ev_ipv4.h" #include "ev_ipv6.h" #include #include #include -#if __has_include() #include -#else // __has_include() -#include -#endif // __has_include() #include static dispatch_queue_t S_kev_queue; @@ -452,6 +447,20 @@ processEvent_Apple_Network(struct kern_event_msg *ev_msg) } #endif // KEV_DL_IF_IDLE_ROUTE_REFCNT + case KEV_DL_IFDELEGATE_CHANGED: { + /* + * interface delegation changed + */ + if (dataLen < sizeof(*ev)) { + handled = FALSE; + break; + } + copy_if_name(ev, ifr_name, sizeof(ifr_name)); + SC_log(LOG_INFO, "Process interface delegation change: %s", (char *)ifr_name); + interface_update_delegation(ifr_name); + break; + } + case KEV_DL_LINK_OFF : case KEV_DL_LINK_ON : /* @@ -485,7 +494,7 @@ processEvent_Apple_Network(struct kern_event_msg *ev_msg) lqm_data->link_quality_metric); break; } -#endif // KEV_DL_LINK_QUALITY_METRIC_CHANGED +#endif // KEV_DL_LINK_QUALITY_METRIC_CHANGED #ifdef KEV_DL_ISSUES case KEV_DL_ISSUES: { @@ -613,7 +622,7 @@ eventCallback(int so) return FALSE; } - cache_open(); + _SCDynamicStoreCacheOpen(store); while (offset < status) { if ((offset + (ssize_t)ev_msg->total_size) > status) { @@ -639,8 +648,8 @@ eventCallback(int so) ev_msg = (struct kern_event_msg *)(void *)&buf.bytes[offset]; } - cache_write(store); - cache_close(); + _SCDynamicStoreCacheCommitChanges(store); + _SCDynamicStoreCacheClose(store); post_network_changed(); messages_post(); @@ -744,10 +753,10 @@ check_for_new_interfaces(void * context) /* update KEV driven content in case a message got dropped */ snprintf(msg, sizeof(msg), "update %d (of %d)", count, MAX_TIMER_COUNT); - cache_open(); + _SCDynamicStoreCacheOpen(store); update_interfaces(msg, FALSE); - cache_write(store); - cache_close(); + _SCDynamicStoreCacheCommitChanges(store); + _SCDynamicStoreCacheClose(store); messages_post(); /* schedule the next timer, if needed */ @@ -766,11 +775,11 @@ prime(void) { SC_log(LOG_DEBUG, "prime() called"); - cache_open(); + _SCDynamicStoreCacheOpen(store); messages_init(); update_interfaces("prime", TRUE); - cache_write(store); - cache_close(); + _SCDynamicStoreCacheCommitChanges(store); + _SCDynamicStoreCacheClose(store); network_changed = TRUE; post_network_changed(); @@ -870,21 +879,13 @@ load_KernelEventMonitor(CFBundleRef bundle, Boolean bundleVerbose) close(so); }); dispatch_source_set_event_handler(S_kev_source, ^{ - os_activity_t activity; Boolean ok; - activity = os_activity_create("processing network kernel events", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - ok = eventCallback(so); if (!ok) { SC_log(LOG_ERR, "kernel event monitor disabled"); dispatch_source_cancel(S_kev_source); } - - os_release(activity); }); // NOTE: dispatch_resume() will be called in prime() diff --git a/Plugins/KernelEventMonitor/eventmon.h b/Plugins/KernelEventMonitor/eventmon.h index 4990682..569e042 100644 --- a/Plugins/KernelEventMonitor/eventmon.h +++ b/Plugins/KernelEventMonitor/eventmon.h @@ -67,14 +67,14 @@ os_log_t __log_KernelEventMonitor (void); int -dgram_socket (int domain); +dgram_socket (int domain); void messages_add_msg_with_arg (const char *msg, const char *arg); void -config_new_interface(const char * ifname); +config_new_interface (const char *ifname); __END_DECLS diff --git a/Plugins/LinkConfiguration/Info.plist b/Plugins/LinkConfiguration/Info.plist index bccd851..68baee0 100644 --- a/Plugins/LinkConfiguration/Info.plist +++ b/Plugins/LinkConfiguration/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 Requires com.apple.SystemConfiguration.InterfaceNamer diff --git a/Plugins/LinkConfiguration/linkconfig.c b/Plugins/LinkConfiguration/linkconfig.c index 5ce1cf6..39f84f6 100644 --- a/Plugins/LinkConfiguration/linkconfig.c +++ b/Plugins/LinkConfiguration/linkconfig.c @@ -37,7 +37,7 @@ #include #include -#define SC_LOG_HANDLE __log_LinkConfiguration() +#define SC_LOG_HANDLE __log_LinkConfiguration #define SC_LOG_HANDLE_TYPE static #include "SCNetworkConfigurationInternal.h" #include // for _SCDPluginExecCommand @@ -123,7 +123,7 @@ _SCNetworkInterfaceSetCapabilities(SCNetworkInterfaceRef interface, return TRUE; } - bzero((char *)&ifr, sizeof(ifr)); + memset((char *)&ifr, 0, sizeof(ifr)); (void)_SC_cfstring_to_cstring(interfaceName, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII); ifr.ifr_curcap = cap_current; ifr.ifr_reqcap = cap_requested; @@ -262,7 +262,7 @@ _SCNetworkInterfaceSetMediaOptions(SCNetworkInterfaceRef interface, goto done; } - bzero((char *)&ifm, sizeof(ifm)); + memset((char *)&ifm, 0, sizeof(ifm)); (void)_SC_cfstring_to_cstring(interfaceName, ifm.ifm_name, sizeof(ifm.ifm_name), kCFStringEncodingASCII); if (ioctl(sock, SIOCGIFXMEDIA, (caddr_t)&ifm) == -1) { @@ -270,8 +270,8 @@ _SCNetworkInterfaceSetMediaOptions(SCNetworkInterfaceRef interface, goto done; } - bzero((char *)&ifr, sizeof(ifr)); - bcopy(ifm.ifm_name, ifr.ifr_name, sizeof(ifr.ifr_name)); + memset((char *)&ifr, 0, sizeof(ifr)); + memcpy(ifr.ifr_name, ifm.ifm_name, sizeof(ifr.ifr_name)); ifr.ifr_media = ifm.ifm_current & ~(IFM_NMASK|IFM_TMASK|IFM_OMASK|IFM_GMASK); ifr.ifr_media |= newOptions; @@ -426,7 +426,7 @@ _SCNetworkInterfaceSetMTU(SCNetworkInterfaceRef interface, int ret; int sock; - bzero((char *)&ifr, sizeof(ifr)); + memset((char *)&ifr, 0, sizeof(ifr)); (void)_SC_cfstring_to_cstring(interfaceName, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII); ifr.ifr_mtu = requested; @@ -662,17 +662,11 @@ static void linkConfigChangedCallback(SCDynamicStoreRef store, CFArrayRef changedKeys, void *arg) { #pragma unused(arg) - os_activity_t activity; CFDictionaryRef changes; CFIndex i; CFIndex n; static CFStringRef prefix = NULL; - activity = os_activity_create("processing link configuration changes", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - if (prefix == NULL) { prefix = SCDynamicStoreKeyCreate(NULL, CFSTR("%@/%@/%@/"), @@ -715,8 +709,6 @@ linkConfigChangedCallback(SCDynamicStoreRef store, CFArrayRef changedKeys, void CFRelease(changes); } - os_release(activity); - return; } diff --git a/Plugins/PreferencesMonitor/Info.plist b/Plugins/PreferencesMonitor/Info.plist index f23fa3b..d4e8af9 100644 --- a/Plugins/PreferencesMonitor/Info.plist +++ b/Plugins/PreferencesMonitor/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 Builtin Requires diff --git a/Plugins/PreferencesMonitor/prefsmon.c b/Plugins/PreferencesMonitor/prefsmon.c index a8d8ef0..23d69a5 100644 --- a/Plugins/PreferencesMonitor/prefsmon.c +++ b/Plugins/PreferencesMonitor/prefsmon.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2008, 2010, 2012-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2008, 2010, 2012-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -43,7 +43,7 @@ #include -#define SC_LOG_HANDLE __log_PreferencesMonitor() +#define SC_LOG_HANDLE __log_PreferencesMonitor #define SC_LOG_HANDLE_TYPE static #include #include @@ -467,6 +467,7 @@ findInterfaces(CFArrayRef interfaces, CFMutableArrayRef *matched_interfaces, CFM CFRelease(interface); updated = TRUE; + break; } } @@ -718,28 +719,28 @@ static CF_RETURNS_RETAINED CFStringRef copyInterfaceUUID(CFStringRef bsdName) { union { - unsigned char sha1_bytes[CC_SHA1_DIGEST_LENGTH]; + unsigned char sha256_bytes[CC_SHA256_DIGEST_LENGTH]; CFUUIDBytes uuid_bytes; } bytes; - CC_SHA1_CTX ctx; + CC_SHA256_CTX ctx; char if_name[IF_NAMESIZE]; CFUUIDRef uuid; CFStringRef uuid_str; // start with interface name - bzero(&if_name, sizeof(if_name)); + memset(&if_name, 0, sizeof(if_name)); (void) _SC_cfstring_to_cstring(bsdName, if_name, sizeof(if_name), kCFStringEncodingASCII); - // create SHA1 hash - bzero(&bytes, sizeof(bytes)); - CC_SHA1_Init(&ctx); - CC_SHA1_Update(&ctx, + // create SHA256 hash + memset(&bytes, 0, sizeof(bytes)); + CC_SHA256_Init(&ctx); + CC_SHA256_Update(&ctx, if_name, sizeof(if_name)); - CC_SHA1_Final(bytes.sha1_bytes, &ctx); + CC_SHA256_Final(bytes.sha256_bytes, &ctx); // create UUID string uuid = CFUUIDCreateFromUUIDBytes(NULL, bytes.uuid_bytes); @@ -805,7 +806,7 @@ excludeConfigurations(SCPreferencesRef prefs) } // remove [excluded] network service from the prefs - SC_log(LOG_NOTICE, "removing network service for %@", bsdName); + SC_log(LOG_NOTICE, "excluding network service for %@", bsdName); ok = SCNetworkSetRemoveService(set, service); if (!ok) { SC_log(LOG_ERR, "SCNetworkSetRemoveService() failed: %s", @@ -1162,13 +1163,6 @@ updateConfiguration(SCPreferencesRef prefs, void *info) { #pragma unused(info) - os_activity_t activity; - - activity = os_activity_create("processing [SC] preferences.plist changes", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - #if !TARGET_OS_IPHONE if ((notificationType & kSCPreferencesNotificationCommit) == kSCPreferencesNotificationCommit) { SCNetworkSetRef current; @@ -1204,8 +1198,6 @@ updateConfiguration(SCPreferencesRef prefs, done : - os_release(activity); - return; } diff --git a/Plugins/QoSMarking/Info-Embedded.plist b/Plugins/QoSMarking/Info-Embedded.plist index a50488c..f554c12 100644 --- a/Plugins/QoSMarking/Info-Embedded.plist +++ b/Plugins/QoSMarking/Info-Embedded.plist @@ -17,11 +17,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 QoSMarking_AppleAudioVideoCalls_BundleIDs com.apple.datausage.telephony.ims diff --git a/Plugins/QoSMarking/Info.plist b/Plugins/QoSMarking/Info.plist index 93d8733..3c3a726 100644 --- a/Plugins/QoSMarking/Info.plist +++ b/Plugins/QoSMarking/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 QoSMarking_AppleAudioVideoCalls_BundleIDs com.apple.datausage.telephony.ims diff --git a/Plugins/QoSMarking/qos-marking.m b/Plugins/QoSMarking/qos-marking.m index 07b42c1..de2afca 100644 --- a/Plugins/QoSMarking/qos-marking.m +++ b/Plugins/QoSMarking/qos-marking.m @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 Apple Inc. All rights reserved. + * Copyright (c) 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -35,13 +35,14 @@ #include #include #include +#include #include #include #include #include #include -#define SC_LOG_HANDLE __log_QoSMarking() +#define SC_LOG_HANDLE __log_QoSMarking #include #include #include @@ -132,7 +133,7 @@ supportsQoSMarking(int s, const char *ifname) { struct ifreq ifr; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); if (ioctl(s, SIOCGIFTYPE, (caddr_t)&ifr) == -1) { SC_log(LOG_NOTICE, "%s: ioctl(SIOCGIFTYPE) failed: %s", @@ -164,7 +165,7 @@ qosMarkingSetEnabled(int s, const char *ifname, BOOL enabled) struct ifreq ifr; int ret; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); ifr.ifr_qosmarking_enabled = enabled ? 1 : 0; ret = ioctl(s, SIOCSQOSMARKINGENABLED, &ifr); @@ -302,6 +303,7 @@ qosMarkingSetEnabled(int s, const char *ifname, BOOL enabled) - (NSUUID *)copyUUIDForSingleArch:(int)fd { + uint64_t bytes = 0; struct mach_header header; NSUUID * uuid = nil; @@ -317,6 +319,14 @@ qosMarkingSetEnabled(int s, const char *ifname, BOOL enabled) } } + if(os_mul_overflow((uint64_t)header.ncmds, sizeof(struct load_command), &bytes) || + (bytes > header.sizeofcmds)) { + SC_log(LOG_ERR, "mach_header error with \".ncmds\" (%llu), \".sizeofcmds\" (%llu)", + (uint64_t)header.ncmds, + (uint64_t)header.sizeofcmds); + return nil; + } + // Find LC_UUID in the load commands for (size_t i = 0; i < header.ncmds; i++) { struct load_command lcmd; @@ -359,7 +369,7 @@ qosMarkingSetEnabled(int s, const char *ifname, BOOL enabled) NSMutableArray * uuids = nil; // For a fat architecture, we need find the section that is closet to the host cpu - bzero(&hostinfo, sizeof(hostinfo)); + memset(&hostinfo, 0, sizeof(hostinfo)); count = HOST_BASIC_INFO_COUNT; kr = host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostinfo, &count); if (kr != KERN_SUCCESS) { @@ -1036,16 +1046,10 @@ static void qosMarkingConfigChangedCallback(SCDynamicStoreRef store, CFArrayRef changedKeys, void *arg) { #pragma unused(arg) - os_activity_t activity; CFDictionaryRef changes; CFIndex n; static CFStringRef prefix = NULL; - activity = os_activity_create("processing QoS marking configuration changes", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - if (prefix == NULL) { prefix = SCDynamicStoreKeyCreate(NULL, CFSTR("%@/%@/%@/"), @@ -1107,6 +1111,16 @@ qosMarkingConfigChangedCallback(SCDynamicStoreRef store, CFArrayRef changedKeys, } +static Boolean +haveNetworkExtensionFramework() +{ + Boolean haveFramework; + + haveFramework = ([NEPolicy class] != nil); + return haveFramework; +} + + __private_extern__ void load_QoSMarking(CFBundleRef bundle, Boolean bundleVerbose) @@ -1123,6 +1137,10 @@ load_QoSMarking(CFBundleRef bundle, Boolean bundleVerbose) SC_log(LOG_DEBUG, "load() called"); SC_log(LOG_DEBUG, " bundle ID = %@", CFBundleGetIdentifier(bundle)); + if (!haveNetworkExtensionFramework()) { + return; + } + // initialize a few globals interfacesKey = SCDynamicStoreKeyCreateNetworkInterface(NULL, kSCDynamicStoreDomainState); diff --git a/Plugins/SimulatorSupport/Info.plist b/Plugins/SimulatorSupport/Info.plist index 47f1a6b..8b4c01b 100644 --- a/Plugins/SimulatorSupport/Info.plist +++ b/Plugins/SimulatorSupport/Info.plist @@ -17,10 +17,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 diff --git a/Plugins/SimulatorSupport/simulator_support.c b/Plugins/SimulatorSupport/simulator_support.c index 8c953a4..4f5cf9b 100644 --- a/Plugins/SimulatorSupport/simulator_support.c +++ b/Plugins/SimulatorSupport/simulator_support.c @@ -37,8 +37,6 @@ #include #include -#include "cache.h" - #if TARGET_OS_SIMULATOR && !TARGET_OS_IOSMAC @@ -98,7 +96,7 @@ mirror(SCDynamicStoreRef store, CFArrayRef changes, void *info) content_sim = SCDynamicStoreCopyMultiple(store_sim, changes, NULL); // update - cache_open(); + _SCDynamicStoreCacheOpen(store); for (i = 0; i < n; i++) { CFStringRef key; CFPropertyListRef val; @@ -107,21 +105,21 @@ mirror(SCDynamicStoreRef store, CFArrayRef changes, void *info) val = (content_host != NULL) ? CFDictionaryGetValue(content_host, key) : NULL; if (val != NULL) { // if "host" content changed - cache_SCDynamicStoreSetValue(store_sim, key, val); + SCDynamicStoreSetValue(store_sim, key, val); } else { // if no "host" content val = (content_sim != NULL) ? CFDictionaryGetValue(content_sim, key) : NULL; if (val != NULL) { // if we need to remove the "sim" content - cache_SCDynamicStoreRemoveValue(store_sim, key); + SCDynamicStoreRemoveValue(store_sim, key); } else { // if no "sim" content to remove, just notify - cache_SCDynamicStoreNotifyValue(store_sim, key); + SCDynamicStoreNotifyValue(store_sim, key); } } } - cache_write(store_sim); - cache_close(); + _SCDynamicStoreCacheCommitChanges(store_sim); + _SCDynamicStoreCacheClose(store); // cleanup if ((info == NULL) && (content_host != NULL)) { diff --git a/Plugins/common/IPMonitorControlPrefs.c b/Plugins/common/IPMonitorControlPrefs.c index cf441b0..5d13253 100644 --- a/Plugins/common/IPMonitorControlPrefs.c +++ b/Plugins/common/IPMonitorControlPrefs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015-2018 Apple Inc. All rights reserved. + * Copyright (c) 2013, 2015-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -70,20 +70,11 @@ static void prefs_changed(void * arg) { #pragma unused(arg) - os_activity_t activity; - - activity = os_activity_create("processing IPMonitor [rank] preference change", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - /* get the current value */ if (S_callback != NULL) { (*S_callback)(S_prefs); } - os_release(activity); - return; } @@ -116,7 +107,7 @@ enable_prefs_observer(CFRunLoopRef runloop) dispatch_queue_t queue; CFRunLoopSourceRef source; - bzero(&context, sizeof(context)); + memset(&context, 0, sizeof(context)); context.perform = prefs_changed; source = CFRunLoopSourceCreate(kCFAllocatorDefault, 0, &context); CFRunLoopAddSource(runloop, source, kCFRunLoopCommonModes); diff --git a/Plugins/common/InterfaceNamerControlPrefs.c b/Plugins/common/InterfaceNamerControlPrefs.c index bb119fa..43fb7c4 100644 --- a/Plugins/common/InterfaceNamerControlPrefs.c +++ b/Plugins/common/InterfaceNamerControlPrefs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2017-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -70,20 +70,11 @@ static void prefs_changed(void * arg) { #pragma unused(arg) - os_activity_t activity; - - activity = os_activity_create("processing InterfaceNamer preference change", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - /* get the current value */ if (S_callback != NULL) { (*S_callback)(S_prefs); } - os_release(activity); - return; } @@ -125,7 +116,7 @@ enable_prefs_observer(CFRunLoopRef runloop) dispatch_queue_t queue; CFRunLoopSourceRef source; - bzero(&context, sizeof(context)); + memset(&context, 0, sizeof(context)); context.perform = prefs_changed; source = CFRunLoopSourceCreate(kCFAllocatorDefault, 0, &context); CFRunLoopAddSource(runloop, source, kCFRunLoopCommonModes); diff --git a/Plugins/common/cache.c b/Plugins/common/cache.c deleted file mode 100644 index 49b614e..0000000 --- a/Plugins/common/cache.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (c) 2003, 2004, 2006, 2011, 2015-2017 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * Modification History - * - * May 1, 2003 Allan Nathanson - * - initial revision - */ - - -#ifdef SC_LOG_HANDLE -#include -os_log_t SC_LOG_HANDLE; -#endif //SC_LOG_HANDLE - -#include -#include -#include - -#include "cache.h" - - -static CFMutableDictionaryRef cached_keys = NULL; -static CFMutableDictionaryRef cached_set = NULL; -static CFMutableArrayRef cached_removals = NULL; -static CFMutableArrayRef cached_notifys = NULL; - - -__private_extern__ -void -cache_open(void) -{ - cached_keys = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - cached_set = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - cached_removals = CFArrayCreateMutable(NULL, - 0, - &kCFTypeArrayCallBacks); - cached_notifys = CFArrayCreateMutable(NULL, - 0, - &kCFTypeArrayCallBacks); - - return; -} - - -__private_extern__ -CFPropertyListRef -cache_SCDynamicStoreCopyValue(SCDynamicStoreRef store, CFStringRef key) -{ - CFPropertyListRef value; - - value = CFDictionaryGetValue(cached_set, key); - if (value) { - // if we have "set" a new value - return (CFRetain(value)); - } - - if (CFArrayContainsValue(cached_removals, - CFRangeMake(0, CFArrayGetCount(cached_removals)), - key)) { - // if we have "removed" the key - _SCErrorSet(kSCStatusNoKey); - return NULL; - } - - value = CFDictionaryGetValue(cached_keys, key); - if (value) { - // if we have a cached value - return (CFRetain(value)); - } - - value = SCDynamicStoreCopyValue(store, key); - if (value) { - CFDictionarySetValue(cached_keys, key, value); - } - - return value; -} - - -__private_extern__ -void -cache_SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFPropertyListRef value) -{ -#pragma unused(store) - CFIndex i; - - i = CFArrayGetFirstIndexOfValue(cached_removals, - CFRangeMake(0, CFArrayGetCount(cached_removals)), - key); - if (i != kCFNotFound) { - // if previously "removed" - CFArrayRemoveValueAtIndex(cached_removals, i); - } - - CFDictionarySetValue(cached_set, key, value); - - return; -} - -__private_extern__ -void -cache_SCDynamicStoreRemoveValue(SCDynamicStoreRef store, CFStringRef key) -{ -#pragma unused(store) - CFDictionaryRemoveValue(cached_set, key); - - if (!CFArrayContainsValue(cached_removals, - CFRangeMake(0, CFArrayGetCount(cached_removals)), - key)) { - CFArrayAppendValue(cached_removals, key); - } - - return; -} - - -__private_extern__ -void -cache_SCDynamicStoreNotifyValue(SCDynamicStoreRef store, CFStringRef key) -{ -#pragma unused(store) - if (!CFArrayContainsValue(cached_notifys, - CFRangeMake(0, CFArrayGetCount(cached_notifys)), - key)) { - CFArrayAppendValue(cached_notifys, key); - } - - return; -} - - -__private_extern__ -void -cache_write(SCDynamicStoreRef store) -{ - if ((CFDictionaryGetCount(cached_set) > 0) || - (CFArrayGetCount(cached_removals) > 0) || - (CFArrayGetCount(cached_notifys) > 0)) { - if (!SCDynamicStoreSetMultiple(store, - cached_set, - cached_removals, - cached_notifys)) { - SC_log(LOG_NOTICE, "SCDynamicStoreSetMultiple() failed: %s", - SCErrorString(SCError())); - } - } - - return; -} - - -__private_extern__ -void -cache_close(void) -{ - CFRelease(cached_keys); - CFRelease(cached_set); - CFRelease(cached_removals); - CFRelease(cached_notifys); - - return; -} diff --git a/Plugins/common/plugin_shared.h b/Plugins/common/plugin_shared.h index 0816b57..5fdad83 100644 --- a/Plugins/common/plugin_shared.h +++ b/Plugins/common/plugin_shared.h @@ -2,14 +2,14 @@ * Copyright (c) 2016, 2018 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ diff --git a/SCMonitor/Info.plist b/SCMonitor/Info.plist index 434b514..4b358da 100644 --- a/SCMonitor/Info.plist +++ b/SCMonitor/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.14 + 1.19 CFPlugInDynamicRegistration NO CFPlugInFactories diff --git a/SCMonitor/English.lproj/Localizable.strings b/SCMonitor/en.lproj/Localizable.strings similarity index 100% rename from SCMonitor/English.lproj/Localizable.strings rename to SCMonitor/en.lproj/Localizable.strings diff --git a/SCMonitor/monitor.c b/SCMonitor/monitor.c index 220b188..3037150 100644 --- a/SCMonitor/monitor.c +++ b/SCMonitor/monitor.c @@ -33,7 +33,7 @@ #include #include -#define SC_LOG_HANDLE __log_SCMonitor() +#define SC_LOG_HANDLE __log_SCMonitor #define SC_LOG_HANDLE_TYPE static #include #include @@ -980,7 +980,7 @@ add_node_watcher(MyType *myInstance, io_registry_entry_t node, io_registry_entry /* ALIGN: CF aligns to at least >8 bytes */ myNode = (MyNode *)(void *)CFDataGetBytePtr(myData); - bzero(myNode, sizeof(MyNode)); + memset(myNode, 0, sizeof(MyNode)); myNode->interface = interface; if (myNode->interface != MACH_PORT_NULL) { IOObjectRetain(myNode->interface); @@ -1372,7 +1372,7 @@ UserEventAgentFactory(CFAllocatorRef allocator, CFUUIDRef typeID) if (CFEqual(typeID, kUserEventAgentTypeID)) { newOne = (MyType *)malloc(sizeof(MyType)); - bzero(newOne, sizeof(*newOne)); + memset(newOne, 0, sizeof(*newOne)); newOne->_UserEventAgentInterface = &UserEventAgentInterfaceFtbl; newOne->_factoryID = (CFUUIDRef)CFRetain(kUserEventAgentFactoryID); CFPlugInAddInstanceForFactory(kUserEventAgentFactoryID); @@ -1392,7 +1392,7 @@ main(int argc, char **argv) _sc_log = FALSE; _sc_verbose = (argc > 1) ? TRUE : FALSE; - bzero(newOne, sizeof(*newOne)); + memset(newOne, 0, sizeof(*newOne)); myInstall(newOne); CFRunLoopRun(); exit(0); diff --git a/SCTest-ObjC/test-objC.m b/SCTest-ObjC/test-objC.m index 90007b9..6fc5240 100644 --- a/SCTest-ObjC/test-objC.m +++ b/SCTest-ObjC/test-objC.m @@ -1,17 +1,69 @@ /* - * Copyright (c) 2015 Apple Inc. All rights reserved. + * Copyright (c) 2015, 2018 Apple Inc. All rights reserved. * - * A Objective-C test target to test SC APIs + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * - * Created by Sushant Chavan on 4/21/15. + * @APPLE_LICENSE_HEADER_END@ + */ + +/* + * Modification History + * + * April 21, 2015 Sushant Chavan + * - initial revision + */ + +/* + * A Objective-C test target to test SC APIs */ +#import @import Foundation; @import SystemConfiguration; +@import SystemConfiguration_Private; #define MY_APP_NAME CFSTR("SCTestObjC") #define TARGET_HOST "www.apple.com" + +#if !TARGET_OS_SIMULATOR +static void +test_SCDynamicStore() +{ + NSLog(@"\n\n*** SCDynamicStore ***\n\n"); + CFDictionaryRef dict; + CFStringRef intf; + CFStringRef key; + SCDynamicStoreRef store; + + store = SCDynamicStoreCreate(NULL, MY_APP_NAME, NULL, NULL); + key = SCDynamicStoreKeyCreateNetworkGlobalEntity(NULL, kSCDynamicStoreDomainState, kSCEntNetIPv4); + dict = SCDynamicStoreCopyValue(store, key); + intf = CFDictionaryGetValue(dict, kSCDynamicStorePropNetPrimaryInterface); + NSLog(@"- Primary Interface is %@\n", intf); + + CFRelease(store); + CFRelease(dict); + CFRelease(key); +} +#endif // !TARGET_OS_SIMULATOR + +#if !TARGET_OS_SIMULATOR static void test_SCNetworkConfiguration() { @@ -34,27 +86,23 @@ test_SCNetworkConfiguration() CFRelease(interfaces); } +#endif // !TARGET_OS_SIMULATOR -static void -test_SCDynamicStore() +void +test_SCNetworkReachability() { - NSLog(@"\n\n*** SCDynamicStore ***\n\n"); - CFDictionaryRef dict; - CFStringRef intf; - CFStringRef key; - SCDynamicStoreRef store; - - store = SCDynamicStoreCreate(NULL, MY_APP_NAME, NULL, NULL); - key = SCDynamicStoreKeyCreateNetworkGlobalEntity(NULL, kSCDynamicStoreDomainState, kSCEntNetIPv4); - dict = SCDynamicStoreCopyValue(store, key); - intf = CFDictionaryGetValue(dict, kSCDynamicStorePropNetPrimaryInterface); - NSLog(@"- Primary Interface is %@\n", intf); - - CFRelease(store); - CFRelease(dict); - CFRelease(key); + NSLog(@"\n\n*** SCNetworkReachability ***\n\n"); + SCNetworkReachabilityFlags flags; + SCNetworkReachabilityRef target; + + target = SCNetworkReachabilityCreateWithName(NULL, TARGET_HOST); + (void)SCNetworkReachabilityGetFlags(target, &flags); + NSLog(@"- Reachability flags for "TARGET_HOST": %#x", flags); + + CFRelease(target); } +#if !TARGET_OS_SIMULATOR static void test_SCPreferences() { @@ -86,31 +134,30 @@ test_SCPreferences() CFRelease(prefs); CFRelease(services); } - -void -test_SCNetworkReachability() -{ - NSLog(@"\n\n*** SCNetworkReachability ***\n\n"); - SCNetworkReachabilityFlags flags; - SCNetworkReachabilityRef target; - - target = SCNetworkReachabilityCreateWithName(NULL, TARGET_HOST); - (void)SCNetworkReachabilityGetFlags(target, &flags); - NSLog(@"- Reachability flags for "TARGET_HOST": %#x", flags); - - CFRelease(target); -} +#endif // !TARGET_OS_SIMULATOR void SCTest() { + +#if !TARGET_OS_SIMULATOR + test_SCDynamicStore(); +#endif // !TARGET_OS_SIMULATOR + +#if !TARGET_OS_SIMULATOR test_SCNetworkConfiguration(); +#endif // !TARGET_OS_SIMULATOR + test_SCNetworkReachability(); + +#if !TARGET_OS_SIMULATOR test_SCPreferences(); - test_SCDynamicStore(); +#endif // !TARGET_OS_SIMULATOR + } int main(int argc, const char * argv[]) { +#pragma unused(argc, argv) @autoreleasepool { SCTest(); } diff --git a/SCTest-Swift/main.swift b/SCTest-Swift/main.swift index aa6b020..312b1cc 100644 --- a/SCTest-Swift/main.swift +++ b/SCTest-Swift/main.swift @@ -1,36 +1,90 @@ /* - * Copyright (c) 2015 Apple Inc. All rights reserved. - * - * A Swift test target to test SC APIs - * - * Created by Sushant Chavan on 4/21/15. +* Copyright (c) 2015, 2018 Apple Inc. All rights reserved. +* +* @APPLE_LICENSE_HEADER_START@ +* +* This file contains Original Code and/or Modifications of Original Code +* as defined in and that are subject to the Apple Public Source License +* Version 2.0 (the 'License'). You may not use this file except in +* compliance with the License. Please obtain a copy of the License at +* http://www.opensource.apple.com/apsl/ and read it before using this +* file. +* +* The Original Code and all software distributed under the License are +* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, +* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. +* Please see the License for the specific language governing rights and +* limitations under the License. +* +* @APPLE_LICENSE_HEADER_END@ +*/ + +/* +* Modification History +* +* April 21, 2015 Sushant Chavan +* - initial revision +*/ + +/* +* A Swift test target to test SC APIs */ import Foundation import SystemConfiguration +import SystemConfiguration_Private let target_host = "www.apple.com" var application = "SCTest-Swift" as CFString +#if !targetEnvironment(simulator) +func + test_SCDynamicStore () +{ + //SCDynamicStore APIs + NSLog("\n\n*** SCDynamicStore ***\n\n") + let key:CFString + let store:SCDynamicStore? + let dict:[String:String]? + let primaryIntf:String? + + store = SCDynamicStoreCreate(nil, application, nil, nil) + if store == nil { + NSLog("Error creating session: %s", SCErrorString(SCError())) + return + } + + key = SCDynamicStoreKeyCreateNetworkGlobalEntity(nil, kSCDynamicStoreDomainState, kSCEntNetIPv4) + dict = SCDynamicStoreCopyValue(store, key) as? [String:String] + primaryIntf = dict?[kSCDynamicStorePropNetPrimaryInterface as String] + if (primaryIntf != nil) { + NSLog("Primary interface is %@", primaryIntf!) + } else { + NSLog("Primary interface is unavailable") + } +} +#endif // !targetEnvironment(simulator) + +#if !targetEnvironment(simulator) func test_SCNetworkConfiguration () { //SCNetworkConfiguration APIs NSLog("\n\n*** SCNetworkConfiguration ***\n\n") let interfaceArray:[CFArray] - let count:CFIndex - var idx:CFIndex - - interfaceArray = SCNetworkInterfaceCopyAll() as! [CFArray] - count = CFArrayGetCount(interfaceArray) + NSLog("Network Interfaces:") - for idx = 0; idx < count ; idx++ { + interfaceArray = SCNetworkInterfaceCopyAll() as! [CFArray] + for idx in 0...interfaceArray.count { let interface = interfaceArray[idx] - if let bsdName? = SCNetworkInterfaceGetBSDName(interface as! SCNetworkInterface) { + if let bsdName = SCNetworkInterfaceGetBSDName(interface as! SCNetworkInterface) { NSLog("- %@", bsdName as String) } } } +#endif // !targetEnvironment(simulator) func test_SCNetworkReachability () @@ -38,7 +92,7 @@ test_SCNetworkReachability () //SCNetworkReachability APIs NSLog("\n\n*** SCNetworkReachability ***\n\n") let target:SCNetworkReachability? - var flags:SCNetworkReachabilityFlags = SCNetworkReachabilityFlags.allZeros + var flags:SCNetworkReachabilityFlags = SCNetworkReachabilityFlags.init(rawValue: 0) target = SCNetworkReachabilityCreateWithName(nil, target_host) if target == nil { @@ -50,6 +104,7 @@ test_SCNetworkReachability () NSLog("SCNetworkReachability flags for %@ is %#x", String(target_host), flags.rawValue) } +#if !targetEnvironment(simulator) func test_SCPreferences () { @@ -57,16 +112,14 @@ test_SCPreferences () NSLog("\n\n*** SCPreferences ***\n\n") let prefs:SCPreferences? let networkServices:[CFArray]? - let count:CFIndex - var idx:CFIndex - + prefs = SCPreferencesCreate(nil, application, nil) if prefs == nil { NSLog("Error creating prefs: %s", SCErrorString(SCError())) return } - if let model? = SCPreferencesGetValue(prefs!, "Model" as CFString) { + if let model = SCPreferencesGetValue(prefs!, "Model" as CFString) { NSLog("Current system model is %@", model as! String) } @@ -76,50 +129,35 @@ test_SCPreferences () return } - count = CFArrayGetCount(networkServices) NSLog("Network Services:") - for idx = 0; idx < count ; idx++ { + for idx in 0...(networkServices?.count)! { let service = networkServices?[idx] - if let serviceName? = SCNetworkServiceGetName(service as! SCNetworkService) { + if let serviceName = SCNetworkServiceGetName(service as! SCNetworkService) { NSLog("- %@", serviceName as String) } } } - -func -test_SCDynamicStore () -{ - //SCDynamicStore APIs - NSLog("\n\n*** SCDynamicStore ***\n\n") - let key:CFString - let store:SCDynamicStore? - let dict:[String:String]? - let primaryIntf:String? - - store = SCDynamicStoreCreate(nil, application, nil, nil) - if store == nil { - NSLog("Error creating session: %s", SCErrorString(SCError())) - return - } - - key = SCDynamicStoreKeyCreateNetworkGlobalEntity(nil, kSCDynamicStoreDomainState, kSCEntNetIPv4) - dict = SCDynamicStoreCopyValue(store, key) as? [String:String] - primaryIntf = dict?[kSCDynamicStorePropNetPrimaryInterface as String] - if (primaryIntf != nil) { - NSLog("Primary interface is %@", primaryIntf!) - } else { - NSLog("Primary interface is unavailable") - } -} +#endif // !targetEnvironment(simulator) func my_main () { + +#if !targetEnvironment(simulator) + test_SCDynamicStore() +#endif // !targetEnvironment(simulator) + +#if !targetEnvironment(simulator) test_SCNetworkConfiguration() +#endif // !targetEnvironment(simulator) + test_SCNetworkReachability() + +#if !targetEnvironment(simulator) test_SCPreferences() - test_SCDynamicStore() +#endif // !targetEnvironment(simulator) + } // Run the test diff --git a/SystemConfiguration.fproj/AppWorkaround.plist b/SystemConfiguration.fproj/AppWorkaround.plist deleted file mode 100644 index e4c1550..0000000 --- a/SystemConfiguration.fproj/AppWorkaround.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - kCSCheckFixVersion - 1 - kCSCheckFixUniversal - - 7408115 - - com.mackiev.3dweatherglobe - - 231 - 232 - - - 9022571 - - com.mackiev.3dweatherglobe - - 256 - - - - - diff --git a/SystemConfiguration.fproj/BondConfiguration.c b/SystemConfiguration.fproj/BondConfiguration.c index 3135897..1fe9ceb 100644 --- a/SystemConfiguration.fproj/BondConfiguration.c +++ b/SystemConfiguration.fproj/BondConfiguration.c @@ -77,7 +77,7 @@ siocgifxmedia(int s, const char * ifname, int * status, int * active) *status = 0; *active = 0; - bzero(&ifmr, sizeof(ifmr)); + memset(&ifmr, 0, sizeof(ifmr)); strlcpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name)); if (ioctl(s, SIOCGIFXMEDIA, &ifmr) == -1) { return (-1); @@ -97,9 +97,9 @@ if_bond_status_req_copy(int s, const char * ifname) struct if_bond_status_req * ibsr_p; struct ifreq ifr; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); - bzero((char *)&ibr, sizeof(ibr)); + memset((char *)&ibr, 0, sizeof(ibr)); ibr.ibr_op = IF_BOND_OP_GET_STATUS; ibsr_p = &ibr.ibr_ibru.ibru_status; ibsr_p->ibsr_version = IF_BOND_STATUS_REQ_VERSION; @@ -1404,13 +1404,13 @@ __bond_set_mode(int s, CFStringRef bond_if, CFNumberRef mode) } // bond interface - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); (void) _SC_cfstring_to_cstring(bond_if, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII); ifr.ifr_data = (caddr_t)&breq; - bzero(&breq, sizeof(breq)); + memset(&breq, 0, sizeof(breq)); breq.ibr_op = IF_BOND_OP_SET_MODE; breq.ibr_ibru.ibru_int_val = mode_num; if (ioctl(s, SIOCSIFBOND, (caddr_t)&ifr) == -1) { @@ -1432,7 +1432,7 @@ __bond_add_interface(int s, CFStringRef bond_if, CFStringRef interface_if) struct ifreq ifr; // bond interface - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); (void) _SC_cfstring_to_cstring(bond_if, ifr.ifr_name, sizeof(ifr.ifr_name), @@ -1440,7 +1440,7 @@ __bond_add_interface(int s, CFStringRef bond_if, CFStringRef interface_if) ifr.ifr_data = (caddr_t)&breq; // new bond member - bzero(&breq, sizeof(breq)); + memset(&breq, 0, sizeof(breq)); breq.ibr_op = IF_BOND_OP_ADD_INTERFACE; (void) _SC_cfstring_to_cstring(interface_if, breq.ibr_ibru.ibru_if_name, @@ -1468,7 +1468,7 @@ __bond_remove_interface(int s, CFStringRef bond_if, CFStringRef interface_if) struct ifreq ifr; // bond interface - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); (void) _SC_cfstring_to_cstring(bond_if, ifr.ifr_name, sizeof(ifr.ifr_name), @@ -1476,7 +1476,7 @@ __bond_remove_interface(int s, CFStringRef bond_if, CFStringRef interface_if) ifr.ifr_data = (caddr_t)&breq; // bond member to remove - bzero(&breq, sizeof(breq)); + memset(&breq, 0, sizeof(breq)); breq.ibr_op = IF_BOND_OP_REMOVE_INTERFACE; (void) _SC_cfstring_to_cstring(interface_if, breq.ibr_ibru.ibru_if_name, diff --git a/SystemConfiguration.fproj/BridgeConfiguration.c b/SystemConfiguration.fproj/BridgeConfiguration.c index 2624382..e410d8e 100644 --- a/SystemConfiguration.fproj/BridgeConfiguration.c +++ b/SystemConfiguration.fproj/BridgeConfiguration.c @@ -80,14 +80,14 @@ ifbifconf_copy(int s, const char * ifname) struct ifdrv ifd; uint32_t len = sizeof(struct ifbreq) * 16; - bzero(&ifd, sizeof(ifd)); + memset(&ifd, 0, sizeof(ifd)); strlcpy(ifd.ifd_name, ifname, sizeof(ifd.ifd_name)); ifd.ifd_cmd = BRDGGIFS; buflen = sizeof(struct ifbifconf) + len; buf = malloc(buflen); while (buf != NULL) { - bzero(buf, buflen); + memset(buf, 0, buflen); ibc_p = (struct ifbifconf *)buf; ibc_p->ifbic_len = len; ibc_p->ifbic_buf = buf + sizeof(*ibc_p); @@ -949,7 +949,7 @@ __bridge_add_interface(int s, CFStringRef bridge_if, CFStringRef interface_if) struct ifdrv ifd; // bridge interface - bzero(&ifd, sizeof(ifd)); + memset(&ifd, 0, sizeof(ifd)); (void) _SC_cfstring_to_cstring(bridge_if, ifd.ifd_name, sizeof(ifd.ifd_name), @@ -959,7 +959,7 @@ __bridge_add_interface(int s, CFStringRef bridge_if, CFStringRef interface_if) ifd.ifd_data = (caddr_t)&breq; // new bridge member - bzero(&breq, sizeof(breq)); + memset(&breq, 0, sizeof(breq)); (void) _SC_cfstring_to_cstring(interface_if, breq.ifbr_ifsname, sizeof(breq.ifbr_ifsname), @@ -987,7 +987,7 @@ __bridge_remove_interface(int s, CFStringRef bridge_if, CFStringRef interface_if struct ifdrv ifd; // bridge interface - bzero(&ifd, sizeof(ifd)); + memset(&ifd, 0, sizeof(ifd)); (void) _SC_cfstring_to_cstring(bridge_if, ifd.ifd_name, sizeof(ifd.ifd_name), @@ -997,7 +997,7 @@ __bridge_remove_interface(int s, CFStringRef bridge_if, CFStringRef interface_if ifd.ifd_data = (caddr_t)&breq; // bridge member to remove - bzero(&breq, sizeof(breq)); + memset(&breq, 0, sizeof(breq)); (void) _SC_cfstring_to_cstring(interface_if, breq.ifbr_ifsname, sizeof(breq.ifbr_ifsname), @@ -1023,7 +1023,7 @@ __bridge_set_mac(int s, CFStringRef bridge_if, CFDataRef macAddr) { struct ifreq ifr; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); (void) _SC_cfstring_to_cstring(bridge_if, ifr.ifr_name, sizeof(ifr.ifr_name), diff --git a/SystemConfiguration.fproj/CaptiveNetwork.c b/SystemConfiguration.fproj/CaptiveNetwork.c index 5caac04..b618167 100644 --- a/SystemConfiguration.fproj/CaptiveNetwork.c +++ b/SystemConfiguration.fproj/CaptiveNetwork.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2009, 2010, 2012, 2013, 2015, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2009, 2010, 2012, 2013, 2015, 2018, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -26,22 +26,16 @@ #include #include #include -#include -#include - #include #include - #pragma mark - #pragma mark CaptiveNetwork.framework APIs (exported through the SystemConfiguration.framework) - const CFStringRef kCNNetworkInfoKeySSIDData = CFSTR("SSIDDATA"); const CFStringRef kCNNetworkInfoKeySSID = CFSTR("SSID"); const CFStringRef kCNNetworkInfoKeyBSSID = CFSTR("BSSID"); - static void * __loadCaptiveNetwork(void) { static void *image = NULL; @@ -54,7 +48,6 @@ __loadCaptiveNetwork(void) { return image; } - Boolean CNSetSupportedSSIDs(CFArrayRef ssidArray) { @@ -66,7 +59,6 @@ CNSetSupportedSSIDs(CFArrayRef ssidArray) return dyfunc ? dyfunc(ssidArray) : FALSE; } - Boolean CNMarkPortalOnline(CFStringRef interfaceName) { @@ -78,7 +70,6 @@ CNMarkPortalOnline(CFStringRef interfaceName) return dyfunc ? dyfunc(interfaceName) : FALSE; } - Boolean CNMarkPortalOffline(CFStringRef interfaceName) { @@ -101,113 +92,10 @@ CNCopySupportedInterfaces(void) return dyfunc ? dyfunc() : NULL; } -#if TARGET_OS_IPHONE - -#define CN_COPY_ENTITLEMENT CFSTR("com.apple.developer.networking.wifi-info") - -static CFDictionaryRef -__CopyEntitlementsForPID(pid_t pid) -{ - uint8_t *buffer = NULL; - size_t bufferlen = 0L; - int64_t datalen = 0L; - CFDataRef cfdata = NULL; - struct csheader { - uint32_t magic; - uint32_t length; - } csheader = { 0, 0 }; - int error = -1; - CFPropertyListRef plist = NULL; - - /* - * Get the length of the actual entitlement data - */ - error = csops(pid, CS_OPS_ENTITLEMENTS_BLOB, &csheader, sizeof(csheader)); - - if (error == -1 && errno == ERANGE) { - bufferlen = ntohl(csheader.length); - if (bufferlen > 1024 * 1024 || bufferlen < 8) { - errno = EINVAL; - goto out; - } - buffer = malloc(bufferlen); - if (buffer == NULL) { - goto out; - } - error = csops(pid, CS_OPS_ENTITLEMENTS_BLOB, buffer, bufferlen); - if (error < 0) { - goto out; - } - } - - datalen = bufferlen - sizeof(csheader); - - if (error == 0 && buffer && datalen > 0) { - cfdata = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, buffer + sizeof(csheader), datalen, kCFAllocatorNull); - if (cfdata == NULL) { - goto out; - } - - plist = CFPropertyListCreateWithData(NULL, cfdata, kCFPropertyListImmutable, NULL, NULL); - if (!plist) { - SC_log(LOG_ERR, "Could not decode entitlements for pid %d", pid); - } - } - else { - SC_log(LOG_ERR, "Could not get valid codesigning data for pid %d. Error %d", pid, error); - } -out: - if (error < 0) { - SC_log(LOG_ERR, "Error getting entitlements for pid %d: %s", pid, strerror(errno)); - } - if (cfdata != NULL) { - CFRelease(cfdata); - } - if (buffer != NULL) { - free(buffer); - } - if (plist && !isA_CFDictionary(plist)) { - SC_log(LOG_ERR, "Could not decode entitlements for pid %d as a dictionary.", pid); - CFRelease(plist); - plist = NULL; - } - - return plist; -} - -static Boolean -__isApplicationEntitled(void) -{ - if (dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_12_0) { - /* application is linked on or after iOS 12.0 SDK so it must have the entitlement */ - CFTypeRef entitlement = NULL; - CFDictionaryRef entitlements = __CopyEntitlementsForPID(getpid()); - if (entitlements != NULL) { - Boolean entitled = FALSE; - entitlement = CFDictionaryGetValue(entitlements, CN_COPY_ENTITLEMENT); - if(isA_CFBoolean(entitlement)) { - entitled = CFBooleanGetValue(entitlement); - } - CFRelease(entitlements); - return entitled; - } - /* application is linked on or after iOS 12.0 SDK but missing entitlement */ - return FALSE; - } - /* application is linked before iOS 12.0 SDK */ - return TRUE; -} - -#endif /* TARGET_OS_IPHONE */ - CFDictionaryRef CNCopyCurrentNetworkInfo(CFStringRef interfaceName) { #if TARGET_OS_IPHONE && !TARGET_OS_IOSMAC - if (__isApplicationEntitled() == FALSE) { - SC_log(LOG_DEBUG, "Application does not have %@ entitlement", CN_COPY_ENTITLEMENT); - return NULL; - } static typeof (CNCopyCurrentNetworkInfo) *dyfunc = NULL; if (!dyfunc) { void *image = __loadCaptiveNetwork(); diff --git a/SystemConfiguration.fproj/CaptiveNetwork.h b/SystemConfiguration.fproj/CaptiveNetwork.h index 38c49ca..36ab01e 100644 --- a/SystemConfiguration.fproj/CaptiveNetwork.h +++ b/SystemConfiguration.fproj/CaptiveNetwork.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2016, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2009-2016, 2018, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -145,9 +145,17 @@ extern const CFStringRef kCNNetworkInfoKeyBSSID /*! @function CNCopyCurrentNetworkInfo - @discussion Returns the Network Info for the specified interface. - For example, Network Info dictionary will contain the following - keys, and values: + @discussion Returns the network information for the specified interface when the requesting application meets one of following 3 requirements -. + 1. application is using CoreLocation API and has user's authorization to access location. + 2. application has used NEHotspotConfiguration API to configure the current Wi-Fi network. + 3. application has active VPN configurations installed. + + - An application that is linked against iOS 12.0 SDK and above must have the "com.apple.developer.networking.wifi-info" entitlement. + - An application will receive a pseudo network information if it is linked against an SDK before iOS 13.0, and if it fails to meet any of the + above 3 requirements. + - An application will receive NULL if it is linked against iOS 13.0 SDK or above, and if it fails to meet any of the above 3 requirements.. + + Network Information dictionary will contain the following keys, and values:
 	@textblock
 	Keys                      : Values
@@ -157,8 +165,10 @@ extern const CFStringRef kCNNetworkInfoKeyBSSID
 	kCNNetworkInfoKeyBSSID    : CFStringRef
 	@/textblock
 	
+ + Pseudo network information will contain "Wi-Fi" SSID and "00:00:00:00:00:00" BSSID. For China region, the SSID will be "WLAN". @param interfaceName Name of the interface you are interested in - @result Network Info dictionary associated with the interface. + @result Network Information dictionary associated with the interface. Returns NULL if an error was encountered. You MUST release the returned value. */ diff --git a/SystemConfiguration.fproj/Info-Embedded.plist b/SystemConfiguration.fproj/Info-Embedded.plist index b42b8df..5515f5b 100644 --- a/SystemConfiguration.fproj/Info-Embedded.plist +++ b/SystemConfiguration.fproj/Info-Embedded.plist @@ -7,7 +7,7 @@ CFBundleExecutable SystemConfiguration CFBundleGetInfoString - 1.17 + 1.19 CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion @@ -17,10 +17,10 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 diff --git a/SystemConfiguration.fproj/Info.plist b/SystemConfiguration.fproj/Info.plist index b42b8df..5515f5b 100644 --- a/SystemConfiguration.fproj/Info.plist +++ b/SystemConfiguration.fproj/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable SystemConfiguration CFBundleGetInfoString - 1.17 + 1.19 CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion @@ -17,10 +17,10 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.17 + 1.19 CFBundleSignature ???? CFBundleVersion - 1.17 + 1.19 diff --git a/SystemConfiguration.fproj/LinkConfiguration.c b/SystemConfiguration.fproj/LinkConfiguration.c index 6d5335e..54989bf 100644 --- a/SystemConfiguration.fproj/LinkConfiguration.c +++ b/SystemConfiguration.fproj/LinkConfiguration.c @@ -100,7 +100,7 @@ __getCapabilities(CFStringRef interfaceName, Boolean ok = FALSE; int sock = -1; - bzero((void *)&ifr, sizeof(ifr)); + memset((void *)&ifr, 0, sizeof(ifr)); if (_SC_cfstring_to_cstring(interfaceName, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII) == NULL) { SC_log(LOG_NOTICE, "could not convert interface name"); _SCErrorSet(kSCStatusInvalidArgument); @@ -397,7 +397,7 @@ __copyMediaList(CFStringRef interfaceName) int sock = -1; ifm = (struct ifmediareq *)CFAllocatorAllocate(NULL, sizeof(struct ifmediareq), 0); - bzero((void *)ifm, sizeof(*ifm)); + memset((void *)ifm, 0, sizeof(*ifm)); if (_SC_cfstring_to_cstring(interfaceName, ifm->ifm_name, sizeof(ifm->ifm_name), kCFStringEncodingASCII) == NULL) { SC_log(LOG_NOTICE, "could not convert interface name"); @@ -1012,7 +1012,7 @@ SCNetworkInterfaceCopyMTU(SCNetworkInterfaceRef interface, return FALSE; } - bzero((void *)&ifr, sizeof(ifr)); + memset((void *)&ifr, 0, sizeof(ifr)); if (_SC_cfstring_to_cstring(interfaceName, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII) == NULL) { SC_log(LOG_NOTICE, "could not convert interface name"); _SCErrorSet(kSCStatusInvalidArgument); diff --git a/SystemConfiguration.fproj/Modules/sc_modules.modulemap b/SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap similarity index 86% rename from SystemConfiguration.fproj/Modules/sc_modules.modulemap rename to SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap index 78d273c..2ddaf4b 100644 --- a/SystemConfiguration.fproj/Modules/sc_modules.modulemap +++ b/SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap @@ -1,4 +1,4 @@ -framework module SystemConfiguration [extern_c] { +framework module SystemConfiguration [extern_c] [system] { umbrella header "SystemConfiguration.h" export * @@ -19,4 +19,3 @@ framework module SystemConfiguration [extern_c] { export * } } - diff --git a/SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap b/SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap new file mode 100644 index 0000000..c035276 --- /dev/null +++ b/SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap @@ -0,0 +1,76 @@ +framework module SystemConfiguration_Private [extern_c] [system] { + umbrella header "SCPrivate.h" + + export * + module * { export * } + + explicit module SCDPlugin { + header "SCDPlugin.h" + export * + } + + explicit module SCNetworkInterfaceProvider { + header "SCNetworkInterfaceProvider.h" + export * + } + + explicit module SCDynamicStoreCopyDHCPInfo { + header "SCDynamicStoreCopyDHCPInfo.h" + export * + } + + explicit module SCNetworkSignature { + header "SCNetworkSignature.h" + export * + } + + explicit module SCNetworkSignaturePrivate { + header "SCNetworkSignaturePrivate.h" + export * + } + + explicit module SCPreferencesPathKey { + header "SCPreferencesPathKey.h" + export * + } + + explicit module SCValidation { + header "SCValidation.h" + export * + } + + explicit module SNHelperPrivate { + header "SNHelperPrivate.h" + export * + } + + explicit module VPNConfiguration { + header "VPNConfiguration.h" + export * + } + + explicit module VPNFlow { + header "VPNFlow.h" + export * + } + + explicit module VPNPrivate { + header "VPNPrivate.h" + export * + } + + explicit module VPNTunnel { + header "VPNTunnel.h" + export * + } + + explicit module VPNTunnelPrivate { + header "VPNTunnelPrivate.h" + export * + } + + explicit module scprefs_observer { + header "scprefs_observer.h" + export * + } +} diff --git a/SystemConfiguration.fproj/NetworkConfiguration.plist b/SystemConfiguration.fproj/NetworkConfiguration.plist index 8b9a638..8ff839e 100644 --- a/SystemConfiguration.fproj/NetworkConfiguration.plist +++ b/SystemConfiguration.fproj/NetworkConfiguration.plist @@ -360,6 +360,39 @@ VerboseLogging 0 + PPP-VLAN + + ACSPEnabled + 0 + CommUseTerminalScript + 0 + DialOnDemand + 0 + DisconnectOnFastUserSwitch + 1 + DisconnectOnIdle + 0 + DisconnectOnIdleTimer + 1800 + DisconnectOnLogout + 1 + DisconnectOnSleep + 1 + IdleReminder + 0 + IdleReminderTimer + 1800 + LCPEchoEnabled + 1 + LCPEchoFailure + 4 + LCPEchoInterval + 10 + Logfile + /var/log/ppp.log + VerboseLogging + 0 + PPP-WWAN ACSPEnabled @@ -737,6 +770,26 @@ 1 + PPP-VLAN + + DNS + + IPv4 + + ConfigMethod + PPP + + IPv6 + + ConfigMethod + Automatic + + Proxies + + FTPPassive + 1 + + PPP-WWAN DNS diff --git a/SystemConfiguration.fproj/SCD.c b/SystemConfiguration.fproj/SCD.c index c195cff..3fc0dc0 100644 --- a/SystemConfiguration.fproj/SCD.c +++ b/SystemConfiguration.fproj/SCD.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2008, 2010-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2008, 2010-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -105,10 +105,6 @@ __SCGetThreadSpecificData() #pragma mark Logging -#define kASLModule "ASLModule" -#define kASLOption "ASLOption" -#define kLoggerID "LoggerID" - #define ENABLE_SC_FORMATTING #ifdef ENABLE_SC_FORMATTING // from diff --git a/SystemConfiguration.fproj/SCDAdd.c b/SystemConfiguration.fproj/SCDAdd.c index 6589099..3c8650e 100644 --- a/SystemConfiguration.fproj/SCDAdd.c +++ b/SystemConfiguration.fproj/SCDAdd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -73,10 +73,6 @@ SCDynamicStoreAddTemporaryValue(SCDynamicStoreRef store, CFStringRef key, CFProp return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key & data to the server */ @@ -150,10 +146,6 @@ SCDynamicStoreAddValue(SCDynamicStoreRef store, CFStringRef key, CFPropertyListR return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key & data to the server */ diff --git a/SystemConfiguration.fproj/SCDCache.c b/SystemConfiguration.fproj/SCDCache.c new file mode 100644 index 0000000..d3c6275 --- /dev/null +++ b/SystemConfiguration.fproj/SCDCache.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +/* + * Modification History + * + * Oct 1, 2018 Allan Nathanson + * - initial revision + */ + + +#ifdef SC_LOG_HANDLE +#include +os_log_t SC_LOG_HANDLE(void); +#endif //SC_LOG_HANDLE + +#include "SCDynamicStoreInternal.h" + + +Boolean +_SCDynamicStoreCacheIsActive(SCDynamicStoreRef store) +{ + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + + if (store == NULL) { + // sorry, you must provide a session + _SCErrorSet(kSCStatusNoStoreSession); + return FALSE; + } + + return storePrivate->cache_active; +} + + +static void +__SCDynamicStoreCacheRelease(SCDynamicStoreRef store) +{ + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + + if (storePrivate->cached_keys != NULL) { + CFRelease(storePrivate->cached_keys); + storePrivate->cached_keys = NULL; + } + if (storePrivate->cached_set != NULL) { + CFRelease(storePrivate->cached_set); + storePrivate->cached_set = NULL; + } + if (storePrivate->cached_removals != NULL) { + CFRelease(storePrivate->cached_removals); + storePrivate->cached_removals = NULL; + } + if (storePrivate->cached_notifys != NULL) { + CFRelease(storePrivate->cached_notifys); + storePrivate->cached_notifys = NULL; + } + + return; +} + + +Boolean +_SCDynamicStoreCacheOpen(SCDynamicStoreRef store) +{ + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + + if (store == NULL) { + // sorry, you must provide a session + _SCErrorSet(kSCStatusNoStoreSession); + return FALSE; + } + + __SCDynamicStoreCacheRelease(store); // if we are already using the cache, start clean + storePrivate->cache_active = TRUE; + + return TRUE; +} + + +Boolean +_SCDynamicStoreCacheCommitChanges(SCDynamicStoreRef store) +{ + Boolean ok = TRUE; + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + + if (store == NULL) { + // sorry, you must provide a session + _SCErrorSet(kSCStatusNoStoreSession); + return FALSE; + } + + if (!storePrivate->cache_active) { + // if not using the cache + _SCErrorSet(kSCStatusFailed); + return FALSE; + } + + if ((storePrivate->cached_set != NULL) || + (storePrivate->cached_removals != NULL) || + (storePrivate->cached_notifys != NULL)) { + ok = SCDynamicStoreSetMultiple(store, + storePrivate->cached_set, + storePrivate->cached_removals, + storePrivate->cached_notifys); + __SCDynamicStoreCacheRelease(store); + } + + return ok; +} + + +Boolean +_SCDynamicStoreCacheClose(SCDynamicStoreRef store) +{ + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + + if (store == NULL) { + // sorry, you must provide a session + _SCErrorSet(kSCStatusNoStoreSession); + return FALSE; + } + + if (!storePrivate->cache_active) { + // if not using the cache + _SCErrorSet(kSCStatusFailed); + return FALSE; + } + + __SCDynamicStoreCacheRelease(store); + storePrivate->cache_active = FALSE; + + return TRUE; +} diff --git a/SystemConfiguration.fproj/SCDGet.c b/SystemConfiguration.fproj/SCDGet.c index ed0d196..3f6b72d 100644 --- a/SystemConfiguration.fproj/SCDGet.c +++ b/SystemConfiguration.fproj/SCDGet.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -86,10 +86,6 @@ SCDynamicStoreCopyMultiple(SCDynamicStoreRef store, } } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the keys and patterns, fetch the associated result from the server */ @@ -109,27 +105,29 @@ SCDynamicStoreCopyMultiple(SCDynamicStoreRef store, goto retry; } - /* clean up */ - if (xmlKeys != NULL) CFRelease(xmlKeys); - if (xmlPatterns != NULL) CFRelease(xmlPatterns); - if (sc_status != kSCStatusOK) { if (xmlDictRef != NULL) { (void) vm_deallocate(mach_task_self(), (vm_address_t)xmlDictRef, xmlDictLen); } _SCErrorSet(sc_status); - return NULL; + goto done; } /* un-serialize the dictionary */ if (!_SCUnserialize((CFPropertyListRef *)&dict, NULL, xmlDictRef, xmlDictLen)) { _SCErrorSet(kSCStatusFailed); - return NULL; + goto done; } expDict = _SCUnserializeMultiple(dict); CFRelease(dict); + done: + + /* clean up */ + if (xmlKeys != NULL) CFRelease(xmlKeys); + if (xmlPatterns != NULL) CFRelease(xmlPatterns); + return expDict; } @@ -163,16 +161,35 @@ SCDynamicStoreCopyValue(SCDynamicStoreRef store, CFStringRef key) return NULL; /* you must have an open session to play */ } + if (storePrivate->cache_active) { + if ((storePrivate->cached_set != NULL) && + CFDictionaryGetValueIfPresent(storePrivate->cached_set, key, (const void **)&data)) { + // if we have "set" a new value + return (CFRetain(data)); + } + + if ((storePrivate->cached_removals != NULL) && + CFArrayContainsValue(storePrivate->cached_removals, + CFRangeMake(0, CFArrayGetCount(storePrivate->cached_removals)), + key)) { + // if we have "removed" the key + _SCErrorSet(kSCStatusNoKey); + return NULL; + } + + if ((storePrivate->cached_keys != NULL) && + CFDictionaryGetValueIfPresent(storePrivate->cached_keys, key, (const void **)&data)) { + // if we have a cached value + return (CFRetain(data)); + } + } + /* serialize the key */ if (!_SCSerializeString(key, &utfKey, (void **)&myKeyRef, &myKeyLen)) { _SCErrorSet(kSCStatusFailed); return NULL; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key & fetch the associated data from the server */ @@ -208,5 +225,15 @@ SCDynamicStoreCopyValue(SCDynamicStoreRef store, CFStringRef key) return NULL; } + if (storePrivate->cache_active && (data != NULL)) { + if (storePrivate->cached_keys == NULL) { + storePrivate->cached_keys = CFDictionaryCreateMutable(NULL, + 0, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + } + CFDictionarySetValue(storePrivate->cached_keys, key, data); + } + return data; } diff --git a/SystemConfiguration.fproj/SCDList.c b/SystemConfiguration.fproj/SCDList.c index c11c2dd..c45e9f0 100644 --- a/SystemConfiguration.fproj/SCDList.c +++ b/SystemConfiguration.fproj/SCDList.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -68,10 +68,6 @@ SCDynamicStoreCopyKeyList(SCDynamicStoreRef store, CFStringRef pattern) return NULL; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the pattern & fetch the associated data from the server */ diff --git a/SystemConfiguration.fproj/SCDNotifierAdd.c b/SystemConfiguration.fproj/SCDNotifierAdd.c index d9f581b..42e5800 100644 --- a/SystemConfiguration.fproj/SCDNotifierAdd.c +++ b/SystemConfiguration.fproj/SCDNotifierAdd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -75,10 +75,6 @@ SCDynamicStoreAddWatchedKey(SCDynamicStoreRef store, CFStringRef key, Boolean is return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key to the server */ diff --git a/SystemConfiguration.fproj/SCDNotifierCancel.c b/SystemConfiguration.fproj/SCDNotifierCancel.c index 91c67ef..e5cacde 100644 --- a/SystemConfiguration.fproj/SCDNotifierCancel.c +++ b/SystemConfiguration.fproj/SCDNotifierCancel.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2008-2011, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2008-2011, 2015-2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -37,9 +37,6 @@ Boolean SCDynamicStoreNotifyCancel(SCDynamicStoreRef store) { -#ifdef VERBOSE_ACTIVITY_LOGGING - struct os_activity_scope_state_s activity_state; -#endif // VERBOSE_ACTIVITY_LOGGING SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; kern_return_t status; int sc_status; @@ -78,10 +75,6 @@ SCDynamicStoreNotifyCancel(SCDynamicStoreRef store) goto done; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope_enter(storePrivate->activity, &activity_state); -#endif // VERBOSE_ACTIVITY_LOGGING - status = notifycancel(storePrivate->server, (int *)&sc_status); if (__SCDynamicStoreCheckRetryAndHandleError(store, @@ -91,10 +84,6 @@ SCDynamicStoreNotifyCancel(SCDynamicStoreRef store) sc_status = kSCStatusOK; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope_leave(&activity_state); -#endif // VERBOSE_ACTIVITY_LOGGING - done : if (sc_status != kSCStatusOK) { diff --git a/SystemConfiguration.fproj/SCDNotifierGetChanges.c b/SystemConfiguration.fproj/SCDNotifierGetChanges.c index 1ff609f..a0c41c2 100644 --- a/SystemConfiguration.fproj/SCDNotifierGetChanges.c +++ b/SystemConfiguration.fproj/SCDNotifierGetChanges.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2009-2011, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2009-2011, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -55,10 +55,6 @@ SCDynamicStoreCopyNotifiedKeys(SCDynamicStoreRef store) return NULL; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key & fetch the associated data from the server */ diff --git a/SystemConfiguration.fproj/SCDNotifierInformViaCallback.c b/SystemConfiguration.fproj/SCDNotifierInformViaCallback.c index 484fd64..50abd52 100644 --- a/SystemConfiguration.fproj/SCDNotifierInformViaCallback.c +++ b/SystemConfiguration.fproj/SCDNotifierInformViaCallback.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2008-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2008-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -40,17 +40,33 @@ #endif +static void +removeReceiveRight(SCDynamicStoreRef store, mach_port_t port) +{ + /* remove our receive right */ +#ifdef HAVE_MACHPORT_GUARDS + (void) mach_port_destruct(mach_task_self(), port, 0, (mach_port_context_t)store); +#else // HAVE_MACHPORT_GUARDS + (void) mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); +#endif // HAVE_MACHPORT_GUARDS + return; +} + + +#define MAX_INVALID_RIGHT_RETRY 3 + static mach_port_t -acquireNotifyPort(SCDynamicStoreRef store) +addNotifyPort(SCDynamicStoreRef store) { - kern_return_t kr; - mach_port_t oldNotify; + kern_return_t kr; + mach_port_t oldNotify; #ifdef HAVE_MACHPORT_GUARDS - mach_port_options_t opts; + mach_port_options_t opts; #endif // HAVE_MACHPORT_GUARDS - mach_port_t port; - int sc_status; - SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + mach_port_t port; + int sc_status; + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; + int try = 0; /* allocate a mach port for the SCDynamicStore notifications */ @@ -68,11 +84,10 @@ acquireNotifyPort(SCDynamicStoreRef store) if (kr != KERN_SUCCESS) { SC_log(LOG_NOTICE, "could not allocate mach port: %s", mach_error_string(kr)); if ((kr == KERN_NO_SPACE) || (kr == KERN_RESOURCE_SHORTAGE)) { - sleep(1); + usleep(50 * 1000); // sleep 50ms between attempts goto retry_allocate; - } else { - return MACH_PORT_NULL; } + goto fail; } #ifndef HAVE_MACHPORT_GUARDS @@ -87,7 +102,7 @@ acquireNotifyPort(SCDynamicStoreRef store) * the port alone). */ SC_log(LOG_NOTICE, "mach_port_insert_right() failed: %s", mach_error_string(kr)); - return MACH_PORT_NULL; + goto fail; } #endif // HAVE_MACHPORT_GUARDS @@ -106,7 +121,7 @@ acquireNotifyPort(SCDynamicStoreRef store) * the port alone). */ SC_log(LOG_NOTICE, "mach_port_request_notification() failed: %s", mach_error_string(kr)); - return MACH_PORT_NULL; + goto fail; } if (oldNotify != MACH_PORT_NULL) { @@ -114,51 +129,77 @@ acquireNotifyPort(SCDynamicStoreRef store) } #ifdef DEBUG - SC_log(LOG_DEBUG, " establish notification request with SCDynamicStore server"); + SC_log(LOG_DEBUG, "+ establish notification request w/port=0x%x (%d) with SCDynamicStore server (%@)", + port, port, + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); #endif /* DEBUG */ -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : - __MACH_PORT_DEBUG(TRUE, "*** rlsSchedule", port); + __MACH_PORT_DEBUG(TRUE, "*** addNotifyPort", port); kr = notifyviaport(storePrivate->server, port, 0, (int *)&sc_status); + if (kr == MACH_SEND_INVALID_RIGHT) { + /* + * the notifyviaport() call was not able to pass/process + * the [notify port] send right. This was most likely due + * to the [SCDynamicStore] server having restarted. We + * handle this issue by removing the remaining receive + * right, reallocating the notify port, and retrying + * the operation. + */ + SC_log((try++ < MAX_INVALID_RIGHT_RETRY) ? LOG_INFO : LOG_ERR, + "SCDynamicStore callback notifyviaport() w/port 0x%x (%d) failed (try %d): %s", + port, port, + try, + mach_error_string(kr)); + + removeReceiveRight(store, port); + } + if (__SCDynamicStoreCheckRetryAndHandleError(store, kr, &sc_status, - "rlsSchedule notifyviaport()")) { + "SCDynamicStore callback notifyviaport()")) { + if (kr == MACH_SEND_INVALID_RIGHT) { + if (try <= MAX_INVALID_RIGHT_RETRY) { + goto retry_allocate; + } + goto fail; + } goto retry; } + if (try > 0) { + SC_log(LOG_INFO, + "SCDynamicStore callback notifyviaport() succeeded after %d retr%s w/port 0x%x (%d)", + try, + (try == 1) ? "y" : "ies", + port, port); + } + if (kr != KERN_SUCCESS) { if ((kr == MACH_SEND_INVALID_DEST) || (kr == MIG_SERVER_DIED)) { /* remove the send right that we tried (but failed) to pass to the server */ (void) mach_port_deallocate(mach_task_self(), port); } - - /* remove our receive right */ -#ifdef HAVE_MACHPORT_GUARDS - (void) mach_port_destruct(mach_task_self(), port, 0, (mach_port_context_t)store); -#else // HAVE_MACHPORT_GUARDS - (void) mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); -#endif // HAVE_MACHPORT_GUARDS - return MACH_PORT_NULL; + removeReceiveRight(store, port); + goto fail; } if (sc_status != kSCStatusOK) { - /* something [else] didn't work, remove our receive right */ -#ifdef HAVE_MACHPORT_GUARDS - (void) mach_port_destruct(mach_task_self(), port, 0, (mach_port_context_t)store); -#else // HAVE_MACHPORT_GUARDS - (void) mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); -#endif // HAVE_MACHPORT_GUARDS - return MACH_PORT_NULL; + /* something [else] didn't work */ + removeReceiveRight(store, port); + kr = sc_status; + goto fail; } return port; + + fail : + + _SCErrorSet(kr); + return MACH_PORT_NULL; } @@ -186,6 +227,12 @@ rlsCallback(CFMachPortRef port, void *msg, CFIndex size, void *info) SCDynamicStoreRef store = (SCDynamicStoreRef)info; SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; +#ifdef DEBUG + SC_log(LOG_DEBUG, "mach port callback, %ssignal RLS(%@)", + (msgid == MACH_NOTIFY_NO_SENDERS) ? "reconnect and " : "", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); +#endif /* DEBUG */ + if (msgid == MACH_NOTIFY_NO_SENDERS) { /* the server died, disable additional callbacks */ #ifdef DEBUG @@ -202,10 +249,6 @@ rlsCallback(CFMachPortRef port, void *msg, CFIndex size, void *info) (void)__SCDynamicStoreReconnectNotifications(store); } -#ifdef DEBUG - SC_log(LOG_DEBUG, "mach port callback, signal RLS"); -#endif /* DEBUG */ - /* signal the real runloop source */ if (storePrivate->rls != NULL) { CFRunLoopSourceSignal(storePrivate->rls); @@ -238,12 +281,12 @@ rlsSchedule(void *info, CFRunLoopRef rl, CFStringRef mode) SC_log(LOG_DEBUG, " activate callback runloop source"); #endif /* DEBUG */ - port = acquireNotifyPort(store); + port = addNotifyPort(store); if (port == MACH_PORT_NULL) { return; } - __MACH_PORT_DEBUG(TRUE, "*** rlsSchedule (after notifyviaport)", port); + __MACH_PORT_DEBUG(TRUE, "*** rlsSchedule (after addNotifyPort)", port); storePrivate->rlsNotifyPort = _SC_CFMachPortCreateWithPort("SCDynamicStore", port, rlsCallback, @@ -345,21 +388,13 @@ rlsCancel(void *info, CFRunLoopRef rl, CFStringRef mode) storePrivate->rlsNotifyPort = NULL; /* and, finally, remove our receive right */ -#ifdef HAVE_MACHPORT_GUARDS - (void) mach_port_destruct(mach_task_self(), mp, 0, (mach_port_context_t)store); -#else // HAVE_MACHPORT_GUARDS - (void) mach_port_mod_refs(mach_task_self(), mp, MACH_PORT_RIGHT_RECEIVE, -1); -#endif // HAVE_MACHPORT_GUARDS + removeReceiveRight(store, mp); } #ifdef DEBUG SC_log(LOG_DEBUG, " cancel notification request with SCDynamicStore server"); #endif /* DEBUG */ -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - if (storePrivate->server != MACH_PORT_NULL) { kr = notifycancel(storePrivate->server, (int *)&sc_status); @@ -392,7 +427,8 @@ rlsPerform(void *info) SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; #ifdef DEBUG - SC_log(LOG_DEBUG, " executing notification function"); + SC_log(LOG_DEBUG, "handling SCDynamicStore changes (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); #endif /* DEBUG */ changedKeys = SCDynamicStoreCopyNotifiedKeys(store); @@ -416,8 +452,9 @@ rlsPerform(void *info) context_release = NULL; } if (rlsFunction != NULL) { - SC_log(LOG_DEBUG, "exec SCDynamicStore callout"); + SC_log(LOG_DEBUG, "+ exec SCDynamicStore callout"); (*rlsFunction)(store, changedKeys, context_info); + SC_log(LOG_DEBUG, "+ done"); } if (context_release != NULL) { context_release(context_info); @@ -426,7 +463,7 @@ rlsPerform(void *info) done : #ifdef DEBUG - SC_log(LOG_DEBUG, " done!"); + SC_log(LOG_DEBUG, "done"); #endif /* DEBUG */ if (changedKeys != NULL) { @@ -551,6 +588,11 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) return FALSE; } +#ifdef DEBUG + SC_log(LOG_DEBUG, "unschedule notifications from dispatch queue (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); +#endif /* DEBUG */ + ok = TRUE; goto cleanup; } @@ -570,7 +612,8 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) } #ifdef DEBUG - SC_log(LOG_DEBUG, "schedule notifications for dispatch queue"); + SC_log(LOG_DEBUG, "schedule notifications for dispatch queue (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); #endif /* DEBUG */ // @@ -580,10 +623,14 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) // storePrivate->notifyStatus = Using_NotifierInformViaDispatch; - mp = acquireNotifyPort(store); + mp = addNotifyPort(store); if (mp == MACH_PORT_NULL) { // if we could not schedule the notification _SCErrorSet(kSCStatusFailed); +#ifdef DEBUG + SC_log(LOG_DEBUG, "addNotifyPort() failed (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); +#endif /* DEBUG */ goto cleanup; } @@ -612,11 +659,7 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) SC_log(LOG_NOTICE, "dispatch_source_create() failed"); // remove our receive right -#ifdef HAVE_MACHPORT_GUARDS - (void) mach_port_destruct(mach_task_self(), mp, 0, (mach_port_context_t)store); -#else // HAVE_MACHPORT_GUARDS - (void) mach_port_mod_refs(mach_task_self(), mp, MACH_PORT_RIGHT_RECEIVE, -1); -#endif // HAVE_MACHPORT_GUARDS + removeReceiveRight(store, mp); _SCErrorSet(kSCStatusFailed); goto cleanup; @@ -626,7 +669,8 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) kern_return_t kr; mach_msg_id_t msgid; union { - u_int8_t buf[sizeof(mach_msg_empty_t) + MAX_TRAILER_SIZE]; + u_int8_t buf1[sizeof(mach_msg_empty_rcv_t) + MAX_TRAILER_SIZE]; + u_int8_t buf2[sizeof(mach_no_senders_notification_t) + MAX_TRAILER_SIZE]; mach_msg_empty_rcv_t msg; mach_no_senders_notification_t no_senders; } notify_msg; @@ -647,7 +691,8 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) mach_msg_destroy(¬ify_msg.msg.header); #ifdef DEBUG - SC_log(LOG_DEBUG, "dispatch source callback, queue rlsPerform"); + SC_log(LOG_DEBUG, "dispatch source callback, queue rlsPerform (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); #endif /* DEBUG */ CFRetain(store); @@ -662,16 +707,12 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) }); dispatch_source_set_cancel_handler(source, ^{ - __MACH_PORT_DEBUG((storePrivate->rlsNotifyPort != NULL), - "*** SCDynamicStoreSetDispatchQueue (before releasing source/port)", + __MACH_PORT_DEBUG(TRUE, + "*** SCDynamicStoreSetDispatchQueue (before cancel)", mp); // remove our receive right -#ifdef HAVE_MACHPORT_GUARDS - (void) mach_port_destruct(mach_task_self(), mp, 0, (mach_port_context_t)store); -#else // HAVE_MACHPORT_GUARDS - (void) mach_port_mod_refs(mach_task_self(), mp, MACH_PORT_RIGHT_RECEIVE, -1); -#endif // HAVE_MACHPORT_GUARDS + removeReceiveRight(store, mp); // release source dispatch_release(source); @@ -684,10 +725,6 @@ SCDynamicStoreSetDispatchQueue(SCDynamicStoreRef store, dispatch_queue_t queue) cleanup : -#ifdef DEBUG - SC_log(LOG_DEBUG, "cancel notifications for dispatch queue"); -#endif /* DEBUG */ - CFRetain(store); if (storePrivate->dispatchSource != NULL) { diff --git a/SystemConfiguration.fproj/SCDNotifierInformViaFD.c b/SystemConfiguration.fproj/SCDNotifierInformViaFD.c index e8abafa..a76c93f 100644 --- a/SystemConfiguration.fproj/SCDNotifierInformViaFD.c +++ b/SystemConfiguration.fproj/SCDNotifierInformViaFD.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2008-2011, 2013, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2008-2011, 2013, 2015-2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -45,9 +45,6 @@ SCDynamicStoreNotifyFileDescriptor(SCDynamicStoreRef store, int32_t identifier, int *fd) { -#ifdef VERBOSE_ACTIVITY_LOGGING - struct os_activity_scope_state_s activity_state; -#endif // VERBOSE_ACTIVITY_LOGGING int fildes[2] = { -1, -1 }; fileport_t fileport = MACH_PORT_NULL; int ret; @@ -93,10 +90,6 @@ SCDynamicStoreNotifyFileDescriptor(SCDynamicStoreRef store, goto fail; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope_enter(storePrivate->activity, &activity_state); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : status = notifyviafd(storePrivate->server, @@ -111,10 +104,6 @@ SCDynamicStoreNotifyFileDescriptor(SCDynamicStoreRef store, goto retry; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope_leave(&activity_state); -#endif // VERBOSE_ACTIVITY_LOGGING - if (status != KERN_SUCCESS) { _SCErrorSet(status); goto fail; diff --git a/SystemConfiguration.fproj/SCDNotifierInformViaSignal.c b/SystemConfiguration.fproj/SCDNotifierInformViaSignal.c deleted file mode 100644 index 1f8e737..0000000 --- a/SystemConfiguration.fproj/SCDNotifierInformViaSignal.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2004, 2005, 2009-2011, 2015-2017 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * Modification History - * - * June 1, 2001 Allan Nathanson - * - public API conversion - * - * March 31, 2000 Allan Nathanson - * - initial revision - */ - -#include "SCDynamicStoreInternal.h" -#include "config.h" /* MiG generated file */ - -Boolean -SCDynamicStoreNotifySignal(SCDynamicStoreRef store, pid_t pid, int sig) -{ - SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; - kern_return_t status; - int sc_status; - task_t task; - - if (store == NULL) { - /* sorry, you must provide a session */ - _SCErrorSet(kSCStatusNoStoreSession); - return FALSE; - } - - if (storePrivate->server == MACH_PORT_NULL) { - /* sorry, you must have an open session to play */ - _SCErrorSet(kSCStatusNoStoreServer); - return FALSE; - } - - if (storePrivate->notifyStatus != NotifierNotRegistered) { - /* sorry, you can only have one notification registered at once */ - _SCErrorSet(kSCStatusNotifierActive); - return FALSE; - } - - status = task_for_pid(mach_task_self(), pid, &task); - if (status != KERN_SUCCESS) { - SC_log(LOG_ERR, "task_for_pid() failed: %s", mach_error_string(status)); - _SCErrorSet(status); - return FALSE; - } - -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - - retry : - - status = notifyviasignal(storePrivate->server, task, sig, (int *)&sc_status); - - if (__SCDynamicStoreCheckRetryAndHandleError(store, - status, - &sc_status, - "SCDynamicStoreNotifySignal notifyviasignal()")) { - goto retry; - } - - if (status != KERN_SUCCESS) { - _SCErrorSet(status); - return FALSE; - } - - /* set notifier active */ - storePrivate->notifyStatus = Using_NotifierInformViaSignal; - - return TRUE; -} diff --git a/SystemConfiguration.fproj/SCDNotifierRemove.c b/SystemConfiguration.fproj/SCDNotifierRemove.c index 07bd9f9..83a4ea2 100644 --- a/SystemConfiguration.fproj/SCDNotifierRemove.c +++ b/SystemConfiguration.fproj/SCDNotifierRemove.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -85,10 +85,6 @@ SCDynamicStoreRemoveWatchedKey(SCDynamicStoreRef store, CFStringRef key, Boolean return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key to the server */ diff --git a/SystemConfiguration.fproj/SCDNotifierSetKeys.c b/SystemConfiguration.fproj/SCDNotifierSetKeys.c index 93f0f49..4f0c286 100644 --- a/SystemConfiguration.fproj/SCDNotifierSetKeys.c +++ b/SystemConfiguration.fproj/SCDNotifierSetKeys.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2009-2011, 2013, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -75,9 +75,6 @@ SCDynamicStoreSetNotificationKeys(SCDynamicStoreRef store, } } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING retry : diff --git a/SystemConfiguration.fproj/SCDNotifierWait.c b/SystemConfiguration.fproj/SCDNotifierWait.c index 8a2310f..51d496f 100644 --- a/SystemConfiguration.fproj/SCDNotifierWait.c +++ b/SystemConfiguration.fproj/SCDNotifierWait.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2004, 2006, 2009-2011, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2004, 2006, 2009-2011, 2015-2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -135,10 +135,6 @@ SCDynamicStoreNotifyWait(SCDynamicStoreRef store) SC_log(LOG_NOTICE, "oldNotify != MACH_PORT_NULL"); } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : status = notifyviaport(storePrivate->server, @@ -195,10 +191,6 @@ SCDynamicStoreNotifyWait(SCDynamicStoreRef store) return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - // something changed, cancelling notification request status = notifycancel(storePrivate->server, (int *)&sc_status); diff --git a/SystemConfiguration.fproj/SCDNotify.c b/SystemConfiguration.fproj/SCDNotify.c index 2f7997d..8d927d6 100644 --- a/SystemConfiguration.fproj/SCDNotify.c +++ b/SystemConfiguration.fproj/SCDNotify.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -58,16 +58,28 @@ SCDynamicStoreNotifyValue(SCDynamicStoreRef store, return FALSE; } + if (storePrivate->cache_active) { + if (storePrivate->cached_notifys == NULL) { + storePrivate->cached_notifys = CFArrayCreateMutable(NULL, + 0, + &kCFTypeArrayCallBacks); + } + + if (!CFArrayContainsValue(storePrivate->cached_notifys, + CFRangeMake(0, CFArrayGetCount(storePrivate->cached_notifys)), + key)) { + CFArrayAppendValue(storePrivate->cached_notifys, key); + } + + return TRUE; + } + /* serialize the key */ if (!_SCSerializeString(key, &utfKey, (void **)&myKeyRef, &myKeyLen)) { _SCErrorSet(kSCStatusFailed); return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key to the server */ diff --git a/SystemConfiguration.fproj/SCDOpen.c b/SystemConfiguration.fproj/SCDOpen.c index f6347cc..d43a2a1 100644 --- a/SystemConfiguration.fproj/SCDOpen.c +++ b/SystemConfiguration.fproj/SCDOpen.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2006, 2008-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2006, 2008-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -47,6 +47,8 @@ static CFStringRef _sc_bundleID = NULL; static pthread_mutex_t _sc_lock = PTHREAD_MUTEX_INITIALIZER; static mach_port_t _sc_server = MACH_PORT_NULL; +static unsigned int _sc_store_cnt = 0; +static unsigned int _sc_store_max = 50; /* complain if SCDynamicStore objects exceeds this [soft-]limit */ static const char *notifyType[] = { @@ -55,12 +57,19 @@ static const char *notifyType[] = { "inform w/callback", "inform w/mach port", "inform w/fd", - "inform w/signal", "inform w/runLoop", "inform w/dispatch" }; +void +_SCDynamicStoreSetSessionWatchLimit(unsigned int limit) +{ + _sc_store_max = limit; + return; +} + + __private_extern__ os_log_t __log_SCDynamicStore(void) { @@ -100,9 +109,6 @@ __SCDynamicStoreCopyDescription(CFTypeRef cf) { case Using_NotifierInformViaFD : CFStringAppendFormat(result, NULL, CFSTR(", FD notifications")); break; - case Using_NotifierInformViaSignal : - CFStringAppendFormat(result, NULL, CFSTR(", BSD signal notifications")); - break; case Using_NotifierInformViaRunLoop : case Using_NotifierInformViaDispatch : if (storePrivate->notifyStatus == Using_NotifierInformViaRunLoop) { @@ -110,6 +116,7 @@ __SCDynamicStoreCopyDescription(CFTypeRef cf) { CFStringAppendFormat(result, NULL, CFSTR(" {callout = %p"), storePrivate->rlsFunction); CFStringAppendFormat(result, NULL, CFSTR(", info = %p"), storePrivate->rlsContext.info); CFStringAppendFormat(result, NULL, CFSTR(", rls = %p"), storePrivate->rls); + CFStringAppendFormat(result, NULL, CFSTR(", notify rls = %@" ), storePrivate->rlsNotifyRLS); } else if (storePrivate->notifyStatus == Using_NotifierInformViaDispatch) { CFStringAppendFormat(result, NULL, CFSTR(", dispatch notifications")); CFStringAppendFormat(result, NULL, CFSTR(" {callout = %p"), storePrivate->rlsFunction); @@ -117,9 +124,6 @@ __SCDynamicStoreCopyDescription(CFTypeRef cf) { CFStringAppendFormat(result, NULL, CFSTR(", queue = %p"), storePrivate->dispatchQueue); CFStringAppendFormat(result, NULL, CFSTR(", source = %p"), storePrivate->dispatchSource); } - if (storePrivate->rlsNotifyRLS != NULL) { - CFStringAppendFormat(result, NULL, CFSTR(", notify rls = %@" ), storePrivate->rlsNotifyRLS); - } CFStringAppendFormat(result, NULL, CFSTR("}")); break; default : @@ -176,10 +180,12 @@ __SCDynamicStoreDeallocate(CFTypeRef cf) if (storePrivate->name != NULL) CFRelease(storePrivate->name); if (storePrivate->options != NULL) CFRelease(storePrivate->options); -#ifdef VERBOSE_ACTIVITY_LOGGING - /* release activity tracing */ - if (storePrivate->activity != NULL) os_release(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING + /* release any cached content */ + if (storePrivate->cache_active) { + _SCDynamicStoreCacheClose(store); + } + + _SC_ATOMIC_DEC(&_sc_store_cnt); return; } @@ -299,8 +305,9 @@ __SCDynamicStoreServerPort(SCDynamicStorePrivateRef storePrivate, kern_return_t break; default : #ifdef DEBUG - SC_log(LOG_INFO, "bootstrap_look_up() failed: status=%s", - bootstrap_strerror(*status)); + SC_log(LOG_INFO, "bootstrap_look_up() failed: status=%s (%d)", + bootstrap_strerror(*status), + *status); #endif /* DEBUG */ break; } @@ -315,6 +322,7 @@ __SCDynamicStoreCreatePrivate(CFAllocatorRef allocator, SCDynamicStoreCallBack callout, SCDynamicStoreContext *context) { + unsigned int n; uint32_t size; SCDynamicStorePrivateRef storePrivate; @@ -337,20 +345,13 @@ __SCDynamicStoreCreatePrivate(CFAllocatorRef allocator, /* client side of the "configd" session */ storePrivate->name = (name != NULL) ? CFRetain(name) : NULL; -#ifdef VERBOSE_ACTIVITY_LOGGING - /* "client" activity tracing */ - storePrivate->activity = os_activity_create("accessing SCDynamicStore", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); -#endif // VERBOSE_ACTIVITY_LOGGING - /* Notification status */ storePrivate->notifyStatus = NotifierNotRegistered; /* "client" information associated with SCDynamicStoreCreateRunLoopSource() */ storePrivate->rlsFunction = callout; if (context != NULL) { - bcopy(context, &storePrivate->rlsContext, sizeof(SCDynamicStoreContext)); + memcpy(&storePrivate->rlsContext, context, sizeof(SCDynamicStoreContext)); if (context->retain != NULL) { storePrivate->rlsContext.info = (void *)(*context->retain)(context->info); } @@ -359,6 +360,16 @@ __SCDynamicStoreCreatePrivate(CFAllocatorRef allocator, /* "server" information associated with SCDynamicStoreNotifyFileDescriptor(); */ storePrivate->notifyFile = -1; + /* watch for excessive SCDynamicStore usage */ + n = _SC_ATOMIC_INC(&_sc_store_cnt); + if (n > _sc_store_max) { + if (_sc_store_max > 0) { + SC_log(LOG_ERR, "SCDynamicStoreCreate(): number of SCDynamicStore objects now exceeds %u", n - 1); + _sc_store_max = (_sc_store_max < 5000) ? (_sc_store_max * 2) : 0; + _SC_crash_once("Excessive number of SCDynamicStore objects", NULL, NULL); + } + } + return storePrivate; } @@ -366,16 +377,15 @@ __SCDynamicStoreCreatePrivate(CFAllocatorRef allocator, static void updateServerPort(SCDynamicStorePrivateRef storePrivate, mach_port_t *server, int *sc_status_p) { + mach_port_t old_port; + pthread_mutex_lock(&_sc_lock); + old_port = _sc_server; if (_sc_server != MACH_PORT_NULL) { if (*server == _sc_server) { - mach_port_t old_port; - // if the server we tried returned the error, save the old port, // [re-]lookup the name to the server, and deallocate the original // send [or dead name] right - - old_port = _sc_server; _sc_server = __SCDynamicStoreServerPort(storePrivate, sc_status_p); (void)mach_port_deallocate(mach_task_self(), old_port); } else { @@ -384,9 +394,17 @@ updateServerPort(SCDynamicStorePrivateRef storePrivate, mach_port_t *server, int } else { _sc_server = __SCDynamicStoreServerPort(storePrivate, sc_status_p); } + *server = _sc_server; pthread_mutex_unlock(&_sc_lock); +#ifdef DEBUG + SC_log(LOG_DEBUG, "updateServerPort (%@): 0x%x (%d) --> 0x%x (%d)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?"), + old_port, old_port, + *server, *server); +#endif // DEBUG + return; } @@ -394,9 +412,6 @@ updateServerPort(SCDynamicStorePrivateRef storePrivate, mach_port_t *server, int static Boolean __SCDynamicStoreAddSession(SCDynamicStorePrivateRef storePrivate) { -#ifdef VERBOSE_ACTIVITY_LOGGING - struct os_activity_scope_state_s activity_state; -#endif // VERBOSE_ACTIVITY_LOGGING kern_return_t kr = KERN_SUCCESS; CFDataRef myName; /* serialized name */ xmlData_t myNameRef; @@ -426,10 +441,6 @@ __SCDynamicStoreAddSession(SCDynamicStorePrivateRef storePrivate) updateServerPort(storePrivate, &server, &sc_status); -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope_enter(storePrivate->activity, &activity_state); -#endif // VERBOSE_ACTIVITY_LOGGING - while (server != MACH_PORT_NULL) { // if SCDynamicStore server available @@ -481,10 +492,6 @@ __SCDynamicStoreAddSession(SCDynamicStorePrivateRef storePrivate) } __MACH_PORT_DEBUG(TRUE, "*** SCDynamicStoreAddSession", storePrivate->server); -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope_leave(&activity_state); -#endif // VERBOSE_ACTIVITY_LOGGING - // clean up CFRelease(myName); if (myOptions != NULL) CFRelease(myOptions); @@ -563,22 +570,47 @@ __SCDynamicStoreCheckRetryAndHandleError(SCDynamicStoreRef store, return FALSE; } - if ((status == MACH_SEND_INVALID_DEST) || (status == MIG_SERVER_DIED)) { - /* the server's gone, remove the session's dead name right */ - (void) mach_port_deallocate(mach_task_self(), storePrivate->server); - storePrivate->server = MACH_PORT_NULL; + switch (status) { + case MACH_SEND_INVALID_DEST : + case MACH_SEND_INVALID_RIGHT : + case MIG_SERVER_DIED : + /* + * the server's gone, remove the session's send (or dead name) right + */ +#ifdef DEBUG + SC_log(LOG_DEBUG, "__SCDynamicStoreCheckRetryAndHandleError(%s): %@: 0x%x (%d) --> 0x%x (%d)", + log_str, + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?"), + storePrivate->server, storePrivate->server, + MACH_PORT_NULL, MACH_PORT_NULL); +#endif // DEBUG + (void) mach_port_deallocate(mach_task_self(), storePrivate->server); + storePrivate->server = MACH_PORT_NULL; + + /* reconnect */ + if (__SCDynamicStoreReconnect(store)) { + /* retry needed */ + return TRUE; + } else { + status = SCError(); + } + ;; - /* reconnect */ - if (__SCDynamicStoreReconnect(store)) { - /* retry needed */ - return TRUE; - } else { - status = SCError(); - } - } else { - /* an unexpected error, leave the [session] port alone */ - SC_log(LOG_NOTICE, "%s: %s", log_str, mach_error_string(status)); - storePrivate->server = MACH_PORT_NULL; + default : + /* + * an unexpected error, leave the [session] port alone + */ +#ifdef DEBUG + SC_log(LOG_DEBUG, "__SCDynamicStoreCheckRetryAndHandleError(%s): %@: unexpected status=%s (0x%x)", + log_str, + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?"), + mach_error_string(status), + status); +#endif // DEBUG + + SC_log(LOG_NOTICE, "%s: %s", log_str, mach_error_string(status)); + storePrivate->server = MACH_PORT_NULL; + ;; } *sc_status = status; @@ -628,6 +660,11 @@ __SCDynamicStoreReconnectNotifications(SCDynamicStoreRef store) CFArrayRef rlList = NULL; SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; +#ifdef DEBUG + SC_log(LOG_DEBUG, "SCDynamicStore: reconnect notifications (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); +#endif // DEBUG + // save old SCDynamicStore [notification] state notifyStatus = storePrivate->notifyStatus; @@ -673,6 +710,11 @@ __SCDynamicStoreReconnectNotifications(SCDynamicStoreRef store) CFIndex n; CFRunLoopSourceRef rls; +#ifdef DEBUG + SC_log(LOG_DEBUG, "SCDynamicStore: reconnecting w/CFRunLoop (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); +#endif // DEBUG + rls = SCDynamicStoreCreateRunLoopSource(NULL, store, 0); if (rls == NULL) { if (SCError() != BOOTSTRAP_UNKNOWN_SERVICE) { @@ -694,6 +736,12 @@ __SCDynamicStoreReconnectNotifications(SCDynamicStoreRef store) break; } case Using_NotifierInformViaDispatch : + +#ifdef DEBUG + SC_log(LOG_DEBUG, "SCDynamicStore: reconnecting w/dispatch queue (%@)", + (storePrivate->name != NULL) ? storePrivate->name : CFSTR("?")); +#endif // DEBUG + ok = SCDynamicStoreSetDispatchQueue(store, dispatchQueue); if (!ok) { if (SCError() != BOOTSTRAP_UNKNOWN_SERVICE) { diff --git a/SystemConfiguration.fproj/SCDPlugin.c b/SystemConfiguration.fproj/SCDPlugin.c index a8e244a..ff6bb84 100644 --- a/SystemConfiguration.fproj/SCDPlugin.c +++ b/SystemConfiguration.fproj/SCDPlugin.c @@ -385,7 +385,7 @@ _SCDPluginExecCommand2(SCDPluginExecCallBack callout, // create child process info child = CFAllocatorAllocate(NULL, sizeof(struct childInfo), 0); - bzero(child, sizeof(struct childInfo)); + memset(child, 0, sizeof(struct childInfo)); child->pid = pid; child->callout = callout; child->context = context; diff --git a/SystemConfiguration.fproj/SCDPlugin.h b/SystemConfiguration.fproj/SCDPlugin.h index edb9d14..90fd1ec 100644 --- a/SystemConfiguration.fproj/SCDPlugin.h +++ b/SystemConfiguration.fproj/SCDPlugin.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2004, 2006, 2017, 2018 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2004, 2006, 2017 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * diff --git a/SystemConfiguration.fproj/SCDPrivate.c b/SystemConfiguration.fproj/SCDPrivate.c index 2d38a9a..485d122 100644 --- a/SystemConfiguration.fproj/SCDPrivate.c +++ b/SystemConfiguration.fproj/SCDPrivate.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -31,7 +31,7 @@ * - initial revision */ -#define SC_LOG_HANDLE _SC_LOG_DEFAULT() +#define SC_LOG_HANDLE _SC_LOG_DEFAULT #include #include #include @@ -54,12 +54,10 @@ #include #include -#include - -#if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR && !defined(DO_NOT_INFORM) +#if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR #include -#endif // TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR && !defined(DO_NOT_INFORM) +#endif // TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR /* CrashReporter "Application Specific Information" */ #include @@ -153,7 +151,7 @@ _SC_sockaddr_to_string(const struct sockaddr *address, char *buf, size_t bufLen) addr.sa = address; - bzero(buf, bufLen); + memset(buf, 0, bufLen); switch (address->sa_family) { case AF_INET : (void)inet_ntop(addr.sin->sin_family, @@ -203,7 +201,7 @@ _SC_string_to_sockaddr(const char *str, sa_family_t af, void *buf, size_t bufLen addr.buf = buf; } - bzero(addr.buf, bufLen); + memset(addr.buf, 0, bufLen); if (((af == AF_UNSPEC) || (af == AF_INET)) && (bufLen >= sizeof(struct sockaddr_in)) && inet_aton(str, &addr.sin->sin_addr) == 1) { @@ -253,6 +251,7 @@ _SC_sendMachMessage(mach_port_t port, mach_msg_id_t msg_id) mach_msg_option_t options; kern_return_t status; + memset(&msg, 0, sizeof(msg)); msg.header.msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND, 0); msg.header.msgh_size = sizeof(msg); msg.header.msgh_remote_port = port; @@ -266,7 +265,7 @@ _SC_sendMachMessage(mach_port_t port, mach_msg_id_t msg_id) MACH_PORT_NULL, /* rcv_name */ 0, /* timeout */ MACH_PORT_NULL); /* notify */ - if (status != MACH_MSG_SUCCESS) { + if ((status == MACH_SEND_INVALID_DEST) || (status == MACH_SEND_TIMED_OUT)) { mach_msg_destroy(&msg.header); } @@ -331,7 +330,7 @@ _SC_hw_model(Boolean trim) int ret; // get HW model name - bzero(&hwModel, sizeof(hwModel)); + memset(&hwModel, 0, sizeof(hwModel)); ret = sysctl(mib, sizeof(mib) / sizeof(mib[0]), &hwModel, &n, NULL, 0); if (ret != 0) { SC_log(LOG_NOTICE, "sysctl() CTL_HW/HW_MODEL failed: %s", strerror(errno)); @@ -382,7 +381,7 @@ __CFDataCopyVMData(CFDataRef data, void **dataRef, CFIndex *dataLen) return kr; } - bcopy((char *)CFDataGetBytePtr(data), (void *)vm_address, vm_size); + memcpy((void *)vm_address, (char *)CFDataGetBytePtr(data), vm_size); *dataRef = (void *)vm_address; *dataLen = vm_size; @@ -606,7 +605,7 @@ _SCSerializeMultiple(CFDictionaryRef dict) values = CFAllocatorAllocate(NULL, nElements * sizeof(CFTypeRef), 0); pLists = CFAllocatorAllocate(NULL, nElements * sizeof(CFDataRef), 0); } - bzero(pLists, nElements * sizeof(CFDataRef)); + memset(pLists, 0, nElements * sizeof(CFDataRef)); CFDictionaryGetKeysAndValues(dict, keys, values); for (i = 0; i < nElements; i++) { @@ -664,7 +663,7 @@ _SCUnserializeMultiple(CFDictionaryRef dict) values = CFAllocatorAllocate(NULL, nElements * sizeof(CFTypeRef), 0); pLists = CFAllocatorAllocate(NULL, nElements * sizeof(CFTypeRef), 0); } - bzero(pLists, nElements * sizeof(CFTypeRef)); + memset(pLists, 0, nElements * sizeof(CFTypeRef)); CFDictionaryGetKeysAndValues(dict, keys, values); for (i = 0; i < nElements; i++) { @@ -1103,7 +1102,7 @@ _SC_CFBundleCopyNonLocalizedString(CFBundleRef bundle, CFStringRef key, CFString tableName, CFSTR("strings"), NULL, - CFSTR("English")); + CFSTR("en")); if (url != NULL) { table = _SCCreatePropertyListFromResource(url); CFRelease(url); @@ -1145,12 +1144,12 @@ _SC_CFMachPortCreateWithPort(const char *portDescription, CFMachPortContext *context) { CFMachPortRef port; - Boolean shouldFree = FALSE; + Boolean shouldFree = FALSE; port = CFMachPortCreateWithPort(NULL, portNum, callout, context, &shouldFree); if ((port == NULL) || shouldFree) { + char *crash_info; CFStringRef err; - char *crash_info = NULL; SC_log(LOG_NOTICE, "%s: CFMachPortCreateWithPort() failed , port = %p", portDescription, @@ -1165,8 +1164,7 @@ _SC_CFMachPortCreateWithPort(const char *portDescription, portDescription); } crash_info = _SC_cfstring_to_cstring(err, NULL, 0, kCFStringEncodingASCII); - if (err != NULL) CFRelease(err); - + CFRelease(err); err = CFStringCreateWithFormat(NULL, NULL, @@ -1174,7 +1172,7 @@ _SC_CFMachPortCreateWithPort(const char *portDescription, getprogname()); _SC_crash(crash_info, CFSTR("CFMachPort error"), err); CFAllocatorDeallocate(NULL, crash_info); - if (err != NULL) CFRelease(err); + CFRelease(err); } return port; @@ -1522,90 +1520,62 @@ _SC_copyBacktrace() } -static Boolean -_SC_SimulateCrash(const char *crash_info, CFStringRef notifyHeader, CFStringRef notifyMessage) +static void +_SC_ReportCrash(CFStringRef notifyHeader, CFStringRef notifyMessage) { -#if !defined(DO_NOT_INFORM) +#if !TARGET_OS_IPHONE || TARGET_OS_SIMULATOR #pragma unused(notifyHeader) #pragma unused(notifyMessage) -#endif // !defined(DO_NOT_INFORM) -#if TARGET_OS_SIMULATOR -#pragma unused(crash_info) -#endif // TARGET_OS_SIMULATOR - Boolean ok = FALSE; - -#if !TARGET_OS_SIMULATOR - static bool (*dyfunc_SimulateCrash)(pid_t, mach_exception_data_type_t, CFStringRef) = NULL; - static void *image = NULL; - static dispatch_once_t once; - - dispatch_once(&once, ^{ - image = _SC_dlopen("/System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport"); - if (image != NULL) { - dyfunc_SimulateCrash = dlsym(image, "SimulateCrash"); - } - }); - - if (dyfunc_SimulateCrash != NULL) { - CFStringRef str; - - str = CFStringCreateWithCString(NULL, crash_info, kCFStringEncodingUTF8); - ok = dyfunc_SimulateCrash(getpid(), 0xbad0005cull, str); - CFRelease(str); +#endif // !TARGET_OS_IPHONE || TARGET_OS_SIMULATOR + static Boolean warned = FALSE; + + if (!warned) { +#if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR + CFStringRef displayMessage; + + displayMessage = CFStringCreateWithFormat(NULL, + NULL, + CFSTR("%@\n\nPlease collect the crash report and file a Radar."), + notifyMessage); + CFUserNotificationDisplayNotice(0, + kCFUserNotificationStopAlertLevel, + NULL, + NULL, + NULL, + notifyHeader, + displayMessage, + NULL); + CFRelease(displayMessage); +#endif // TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR + warned = TRUE; } -#if !defined(DO_NOT_INFORM) - if (ok && (notifyHeader != NULL) && (notifyMessage != NULL)) { - static Boolean warned = FALSE; - - if (!warned) { - CFStringRef displayMessage; - - displayMessage = CFStringCreateWithFormat(NULL, - NULL, - CFSTR("%@\n\nPlease collect the crash report and file a Radar."), - notifyMessage); - CFUserNotificationDisplayNotice(0, - kCFUserNotificationStopAlertLevel, - NULL, - NULL, - NULL, - notifyHeader, - displayMessage, - NULL); - CFRelease(displayMessage); - warned = TRUE; - } - } -#endif // !defined(DO_NOT_INFORM) -#endif // !TARGET_OS_SIMULATOR - - return ok; + return; } void _SC_crash(const char *crash_info, CFStringRef notifyHeader, CFStringRef notifyMessage) { - Boolean ok = FALSE; - - if (crash_info != NULL) { - CRSetCrashLogMessage(crash_info); - SC_log(LOG_NOTICE, "%s", crash_info); - } - if (_SC_isAppleInternal()) { + if (crash_info != NULL) { + CRSetCrashLogMessage(crash_info); + SC_log(LOG_NOTICE, "%s", crash_info); + } + // simulate a crash report - ok = _SC_SimulateCrash(crash_info, notifyHeader, notifyMessage); -#ifndef DO_NOT_CRASH - if (!ok) { - // if we could not simulate a crash report, crash for real - __builtin_trap(); + os_log_with_type(SC_LOG_HANDLE(), OS_LOG_TYPE_FAULT, "%s", crash_info); + + // report the crash to the user + if ((notifyHeader != NULL) && (notifyMessage != NULL)) { + _SC_ReportCrash(notifyHeader, notifyMessage); + } + + if (crash_info != NULL) { + CRSetCrashLogMessage(NULL); } -#endif // DO_NOT_CRASH } - CRSetCrashLogMessage(NULL); return; } diff --git a/SystemConfiguration.fproj/SCDRemove.c b/SystemConfiguration.fproj/SCDRemove.c index ccf6240..78d56d6 100644 --- a/SystemConfiguration.fproj/SCDRemove.c +++ b/SystemConfiguration.fproj/SCDRemove.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2009-2011, 2013, 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -61,16 +61,32 @@ SCDynamicStoreRemoveValue(SCDynamicStoreRef store, CFStringRef key) return FALSE; } + if (storePrivate->cache_active) { + if (storePrivate->cached_set != NULL) { + CFDictionaryRemoveValue(storePrivate->cached_set, key); + } + + if (storePrivate->cached_removals == NULL) { + storePrivate->cached_removals = CFArrayCreateMutable(NULL, + 0, + &kCFTypeArrayCallBacks); + } + + if (!CFArrayContainsValue(storePrivate->cached_removals, + CFRangeMake(0, CFArrayGetCount(storePrivate->cached_removals)), + key)) { + CFArrayAppendValue(storePrivate->cached_removals, key); + } + + return TRUE; + } + /* serialize the key */ if (!_SCSerializeString(key, &utfKey, (void **)&myKeyRef, &myKeyLen)) { _SCErrorSet(kSCStatusFailed); return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key to the server */ diff --git a/SystemConfiguration.fproj/SCDSet.c b/SystemConfiguration.fproj/SCDSet.c index 3a1b6f1..7a4ea46 100644 --- a/SystemConfiguration.fproj/SCDSet.c +++ b/SystemConfiguration.fproj/SCDSet.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2006, 2009-2011, 2013, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2006, 2009-2011, 2013, 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -107,10 +107,6 @@ SCDynamicStoreSetMultiple(SCDynamicStoreRef store, } } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the keys and patterns, fetch the associated result from the server */ @@ -173,6 +169,29 @@ SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFPropertyListR return FALSE; } + if (storePrivate->cache_active) { + if (storePrivate->cached_removals != NULL) { + CFIndex i; + + i = CFArrayGetFirstIndexOfValue(storePrivate->cached_removals, + CFRangeMake(0, CFArrayGetCount(storePrivate->cached_removals)), + key); + if (i != kCFNotFound) { + // if previously "removed" + CFArrayRemoveValueAtIndex(storePrivate->cached_removals, i); + } + } + + if (storePrivate->cached_set == NULL) { + storePrivate->cached_set = CFDictionaryCreateMutable(NULL, + 0, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + } + CFDictionarySetValue(storePrivate->cached_set, key, value); + return TRUE; + } + /* serialize the key */ if (!_SCSerializeString(key, &utfKey, (void **)&myKeyRef, &myKeyLen)) { _SCErrorSet(kSCStatusInvalidArgument); @@ -186,10 +205,6 @@ SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFPropertyListR return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : /* send the key & data to the server, get new instance id */ diff --git a/SystemConfiguration.fproj/SCDSnapshot.c b/SystemConfiguration.fproj/SCDSnapshot.c index eccc54d..7397432 100644 --- a/SystemConfiguration.fproj/SCDSnapshot.c +++ b/SystemConfiguration.fproj/SCDSnapshot.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2004, 2005, 2009-2011, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2004, 2005, 2009-2011, 2016, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -57,10 +57,6 @@ SCDynamicStoreSnapshot(SCDynamicStoreRef store) return FALSE; } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_scope(storePrivate->activity); -#endif // VERBOSE_ACTIVITY_LOGGING - retry : status = snapshot(storePrivate->server, (int *)&sc_status); diff --git a/SystemConfiguration.fproj/SCDynamicStoreInternal.h b/SystemConfiguration.fproj/SCDynamicStoreInternal.h index 3879f31..aa4479a 100644 --- a/SystemConfiguration.fproj/SCDynamicStoreInternal.h +++ b/SystemConfiguration.fproj/SCDynamicStoreInternal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2004, 2006, 2009-2011, 2013, 2015-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2004, 2006, 2009-2011, 2013, 2015-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -32,15 +32,12 @@ #include #include #include -#ifdef VERBOSE_ACTIVITY_LOGGING -#include -#endif // VERBOSE_ACTIVITY_LOGGING #include #include #include #ifndef SC_LOG_HANDLE -#define SC_LOG_HANDLE __log_SCDynamicStore() +#define SC_LOG_HANDLE __log_SCDynamicStore #endif // SC_LOG_HANDLE #include #include @@ -53,7 +50,6 @@ typedef enum { Using_NotifierWait, Using_NotifierInformViaMachPort, Using_NotifierInformViaFD, - Using_NotifierInformViaSignal, Using_NotifierInformViaRunLoop, Using_NotifierInformViaDispatch } __SCDynamicStoreNotificationStatus; @@ -68,11 +64,6 @@ typedef struct { CFStringRef name; CFDictionaryRef options; -#ifdef VERBOSE_ACTIVITY_LOGGING - /* activity tracing */ - os_activity_t activity; -#endif // VERBOSE_ACTIVITY_LOGGING - /* server side of the "configd" session */ mach_port_t server; Boolean serverNullSession; @@ -112,9 +103,12 @@ typedef struct { int notifyFile; int notifyFileIdentifier; - /* "server" information associated with SCDynamicStoreNotifySignal() */ - int notifySignal; - task_t notifySignalTask; + /* caching */ + Boolean cache_active; + CFMutableDictionaryRef cached_keys; + CFMutableDictionaryRef cached_set; + CFMutableArrayRef cached_removals; + CFMutableArrayRef cached_notifys; } SCDynamicStorePrivate, *SCDynamicStorePrivateRef; diff --git a/SystemConfiguration.fproj/SCDynamicStorePrivate.h b/SystemConfiguration.fproj/SCDynamicStorePrivate.h index 43a98d9..8476908 100644 --- a/SystemConfiguration.fproj/SCDynamicStorePrivate.h +++ b/SystemConfiguration.fproj/SCDynamicStorePrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2004, 2005, 2010, 2011, 2013, 2015, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2004, 2005, 2010, 2011, 2013, 2015, 2018, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -168,25 +168,6 @@ SCDynamicStoreNotifyFileDescriptor (SCDynamicStoreRef store, int32_t identifier, int *fd); -/*! - @function SCDynamicStoreNotifySignal - @discussion Requests that the specified BSD signal be sent to the process - with the indicated process id whenever a change has been detected - to one of the system configuration data entries associated with the - current session's notifier keys. - - Note: this function is not valid for "configd" plug-ins. - - @param store An SCDynamicStoreRef that should be used for communication with the server. - @param pid A UNIX process ID that should be signalled for any notifications. - @param sig A signal number to be used. - @result A boolean indicating the success (or failure) of the call. - */ -Boolean -SCDynamicStoreNotifySignal (SCDynamicStoreRef store, - pid_t pid, - int sig); - /*! @function SCDynamicStoreNotifyWait @discussion Waits for a change to be made to a value in the @@ -230,6 +211,27 @@ SCDynamicStoreSetDisconnectCallBack ( Boolean SCDynamicStoreSnapshot (SCDynamicStoreRef store); + +Boolean +_SCDynamicStoreCacheIsActive (SCDynamicStoreRef store) + API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0)); + +Boolean +_SCDynamicStoreCacheOpen (SCDynamicStoreRef store) + API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0)); + +Boolean +_SCDynamicStoreCacheCommitChanges (SCDynamicStoreRef store) + API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0)); + +Boolean +_SCDynamicStoreCacheClose (SCDynamicStoreRef store) + API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0)); + +void +_SCDynamicStoreSetSessionWatchLimit (unsigned int limit) + API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0)); + __END_DECLS #endif /* _SCDYNAMICSTOREPRIVATE_H */ diff --git a/SystemConfiguration.fproj/SCNetwork.c b/SystemConfiguration.fproj/SCNetwork.c index 06ce43f..1810def 100644 --- a/SystemConfiguration.fproj/SCNetwork.c +++ b/SystemConfiguration.fproj/SCNetwork.c @@ -2,14 +2,14 @@ * Copyright (c) 2000, 2001, 2003-2007, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -61,8 +61,8 @@ SCNetworkCheckReachabilityByAddress(const struct sockaddr *address, return FALSE; } - bzero(&ss, sizeof(ss)); - bcopy(address, &ss, addrlen); + memset(&ss, 0, sizeof(ss)); + memcpy(&ss, address, addrlen); ss.ss_len = addrlen; networkAddress = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&ss); diff --git a/SystemConfiguration.fproj/SCNetworkConfiguration.h b/SystemConfiguration.fproj/SCNetworkConfiguration.h index f6c92ab..74d62d3 100644 --- a/SystemConfiguration.fproj/SCNetworkConfiguration.h +++ b/SystemConfiguration.fproj/SCNetworkConfiguration.h @@ -577,13 +577,15 @@ SCNetworkInterfaceCopyMTU (SCNetworkInterfaceRef interface, media subtype and options. @param interface The desired network interface. @param subtype The desired media subtype (e.g. "autoselect", "100baseTX", ...). + If NULL, no specific media subtype will be requested. @param options The desired media options (e.g. "half-duplex", "full-duplex", ...). + If NULL, no specific media options will be requested. @result TRUE if the configuration was updated; FALSE if an error was encountered. */ Boolean -SCNetworkInterfaceSetMediaOptions (SCNetworkInterfaceRef interface, - CFStringRef subtype, - CFArrayRef options) API_AVAILABLE(macos(10.5)) +SCNetworkInterfaceSetMediaOptions (SCNetworkInterfaceRef interface, + CFStringRef __nullable subtype, + CFArrayRef __nullable options) API_AVAILABLE(macos(10.5)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); /*! @@ -592,6 +594,7 @@ SCNetworkInterfaceSetMediaOptions (SCNetworkInterfaceRef interface, requested MTU setting. @param interface The desired network interface. @param mtu The desired MTU setting for the interface. + If zero, the interface will use the default MTU setting. @result TRUE if the configuration was updated; FALSE if an error was encountered. */ Boolean diff --git a/SystemConfiguration.fproj/SCNetworkConfigurationInternal.c b/SystemConfiguration.fproj/SCNetworkConfigurationInternal.c index f5b888c..c8db81e 100644 --- a/SystemConfiguration.fproj/SCNetworkConfigurationInternal.c +++ b/SystemConfiguration.fproj/SCNetworkConfigurationInternal.c @@ -361,7 +361,7 @@ __createInterface(int s, CFStringRef interface) { struct ifreq ifr; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); (void) _SC_cfstring_to_cstring(interface, ifr.ifr_name, sizeof(ifr.ifr_name), @@ -383,7 +383,7 @@ __destroyInterface(int s, CFStringRef interface) { struct ifreq ifr; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); (void) _SC_cfstring_to_cstring(interface, ifr.ifr_name, sizeof(ifr.ifr_name), diff --git a/SystemConfiguration.fproj/SCNetworkConfigurationInternal.h b/SystemConfiguration.fproj/SCNetworkConfigurationInternal.h index ddabf4d..dc2f7bc 100644 --- a/SystemConfiguration.fproj/SCNetworkConfigurationInternal.h +++ b/SystemConfiguration.fproj/SCNetworkConfigurationInternal.h @@ -29,17 +29,14 @@ #include #ifndef SC_LOG_HANDLE -#define SC_LOG_HANDLE __log_SCNetworkConfiguration() +#define SC_LOG_HANDLE __log_SCNetworkConfiguration #endif // SC_LOG_HANDLE #include #include #include #include "SCPreferencesPathKey.h" -#include - -#if !TARGET_OS_SIMULATOR #include "IPMonitorControl.h" -#endif // !TARGET_OS_SIMULATOR +#include typedef struct { @@ -169,7 +166,7 @@ typedef struct { } usb; // misc - int sort_order; // sort order for this interface + unsigned int sort_order; // sort order for this interface // for BOND interfaces Boolean supportsBond; @@ -194,10 +191,9 @@ typedef struct { CFDictionaryRef options; } vlan; -#if !TARGET_OS_SIMULATOR // for interface rank assertions IPMonitorControlRef IPMonitorControl; -#endif // !TARGET_OS_SIMULATOR + } SCNetworkInterfacePrivate, *SCNetworkInterfacePrivateRef; @@ -338,7 +334,7 @@ __SCNetworkInterfaceIsValidExtendedConfigurationType CFStringRef extendedType, Boolean requirePerInterface); -CFDictionaryRef +CFPropertyListRef __SCNetworkInterfaceGetTemplateOverrides (SCNetworkInterfaceRef interface, CFStringRef overrideType); @@ -435,6 +431,9 @@ __SCNetworkServiceCreatePrivate (CFAllocatorRef allocator, CFStringRef serviceID, SCNetworkInterfaceRef interface); +Boolean +__SCNetworkServiceExists (SCNetworkServiceRef service); + Boolean __SCNetworkServiceExistsForInterface (CFArrayRef services, SCNetworkInterfaceRef interface); @@ -476,6 +475,10 @@ __SCNetworkServiceAddProtocolToService (SCNetworkServiceRef service, #pragma mark SCNetworkSet configuration (internal) +Boolean +__SCNetworkSetExists (SCNetworkSetRef set); + + #pragma mark - #pragma mark Logging diff --git a/SystemConfiguration.fproj/SCNetworkConfigurationPrivate.h b/SystemConfiguration.fproj/SCNetworkConfigurationPrivate.h index 025b7a5..e1346b0 100644 --- a/SystemConfiguration.fproj/SCNetworkConfigurationPrivate.h +++ b/SystemConfiguration.fproj/SCNetworkConfigurationPrivate.h @@ -492,6 +492,15 @@ _SCNetworkInterfaceIsBluetoothP2P (SCNetworkInterfaceRef interface) API_AVAIL Boolean _SCNetworkInterfaceIsBuiltin (SCNetworkInterfaceRef interface) API_AVAILABLE(macos(10.5), ios(2.0)); +/*! + @function _SCNetworkInterfaceIsCarPlay + @discussion Identifies if a network interface is a CarPlay device. + @param interface The network interface. + @result TRUE if the interface is a CarPlay device. + */ +Boolean +_SCNetworkInterfaceIsCarPlay (SCNetworkInterfaceRef interface) API_AVAILABLE(macos(10.15), ios(13.0)); + /*! @function _SCNetworkInterfaceIsHiddenConfiguration @discussion Identifies if the configuration of a network interface should be @@ -523,7 +532,7 @@ _SCNetworkInterfaceIsThunderbolt (SCNetworkInterfaceRef interface) API_AVAILA /*! @function _SCNetworkInterfaceIsTrustRequired @discussion Identifies if a network interface requires that the - associated host be trusted. + associated host be trusted. @param interface The network interface. @result TRUE if the interface requires trust. */ diff --git a/SystemConfiguration.fproj/SCNetworkConnection.c b/SystemConfiguration.fproj/SCNetworkConnection.c index 00f9d4f..bd9be38 100644 --- a/SystemConfiguration.fproj/SCNetworkConnection.c +++ b/SystemConfiguration.fproj/SCNetworkConnection.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003-2018 Apple Inc. All rights reserved. + * Copyright (c) 2003-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -35,7 +35,6 @@ //#define DEBUG_MACH_PORT_ALLOCATIONS -#include #include #include #include @@ -257,17 +256,13 @@ __SCNetworkConnectionDeallocate(CFTypeRef cf) pthread_mutex_destroy(&connectionPrivate->lock); if (connectionPrivate->client_audit_session != MACH_PORT_NULL) { - mach_port_mod_refs(mach_task_self(), - connectionPrivate->client_audit_session, - MACH_PORT_RIGHT_SEND, - -1); + mach_port_deallocate(mach_task_self(), + connectionPrivate->client_audit_session); } if (connectionPrivate->client_bootstrap_port != MACH_PORT_NULL) { - mach_port_mod_refs(mach_task_self(), - connectionPrivate->client_bootstrap_port, - MACH_PORT_RIGHT_SEND, - -1); + mach_port_deallocate(mach_task_self(), + connectionPrivate->client_bootstrap_port); } if (connectionPrivate->client_bundle_id != NULL) { @@ -407,25 +402,12 @@ __SCNetworkConnectionNotify(SCNetworkConnectionRef connection, void (*context_release)(const void *), void *context_info) { -#ifdef VERBOSE_ACTIVITY_LOGGING - os_activity_t activity; - - activity = os_activity_create("processing SCNetworkConnection notification", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); -#endif // VERBOSE_ACTIVITY_LOGGING - SC_log(LOG_DEBUG, "exec SCNetworkConnection callout"); (*rlsFunction)(connection, nc_status, context_info); if ((context_release != NULL) && (context_info != NULL)) { (*context_release)(context_info); } -#ifdef VERBOSE_ACTIVITY_LOGGING - os_release(activity); -#endif // VERBOSE_ACTIVITY_LOGGING - return; } @@ -637,7 +619,7 @@ __SCNetworkConnectionCreatePrivate(CFAllocatorRef allocator, connectionPrivate->client_pid = getpid(); connectionPrivate->rlsFunction = callout; if (context) { - bcopy(context, &connectionPrivate->rlsContext, sizeof(SCNetworkConnectionContext)); + memcpy(&connectionPrivate->rlsContext, context, sizeof(SCNetworkConnectionContext)); if (context->retain != NULL) { connectionPrivate->rlsContext.info = (void *)(*context->retain)(context->info); } @@ -1337,10 +1319,8 @@ SCNetworkConnectionSetClientInfo(SCNetworkConnectionRef connection, // save client audit session port if (connectionPrivate->client_audit_session != MACH_PORT_NULL) { - mach_port_mod_refs(mach_task_self(), - connectionPrivate->client_audit_session, - MACH_PORT_RIGHT_SEND, - -1); + mach_port_deallocate(mach_task_self(), + connectionPrivate->client_audit_session); connectionPrivate->client_audit_session = MACH_PORT_NULL; } connectionPrivate->client_audit_session = client_audit_session; @@ -1348,7 +1328,7 @@ SCNetworkConnectionSetClientInfo(SCNetworkConnectionRef connection, mach_port_mod_refs(mach_task_self(), connectionPrivate->client_audit_session, MACH_PORT_RIGHT_SEND, - 1); + +1); } // save client UID, GID, and PID @@ -1392,10 +1372,8 @@ SCNetworkConnectionSetClientAuditInfo(SCNetworkConnectionRef connection, } if (connectionPrivate->client_bootstrap_port != MACH_PORT_NULL) { - mach_port_mod_refs(mach_task_self(), - connectionPrivate->client_bootstrap_port, - MACH_PORT_RIGHT_SEND, - -1); + mach_port_deallocate(mach_task_self(), + connectionPrivate->client_bootstrap_port); connectionPrivate->client_bootstrap_port = MACH_PORT_NULL; } @@ -1404,7 +1382,7 @@ SCNetworkConnectionSetClientAuditInfo(SCNetworkConnectionRef connection, mach_port_mod_refs(mach_task_self(), connectionPrivate->client_bootstrap_port, MACH_PORT_RIGHT_SEND, - 1); + +1); } memcpy(&connectionPrivate->client_audit_token, &client_audit_token, sizeof(connectionPrivate->client_audit_token)); @@ -2124,75 +2102,9 @@ SCNetworkConnectionResume(SCNetworkConnectionRef connection) #if !TARGET_OS_SIMULATOR Boolean -SCNetworkConnectionRefreshOnDemandState(SCNetworkConnectionRef connection) +SCNetworkConnectionRefreshOnDemandState(__unused SCNetworkConnectionRef connection) { - SCNetworkConnectionPrivateRef connectionPrivate = (SCNetworkConnectionPrivateRef)connection; - Boolean ok = FALSE; - uint32_t retry = 0; - int sc_status = kSCStatusFailed; - mach_port_t server_port = __SCNetworkConnectionGetCurrentServerPort(); - kern_return_t status = KERN_SUCCESS; - - if (!isA_SCNetworkConnection(connection)) { - _SCErrorSet(kSCStatusInvalidArgument); - return FALSE; - } - - if (debug > 0) { - SC_log(LOG_INFO, "SCNetworkConnectionRefreshOnDemandState (%p)", connectionPrivate); - } - - pthread_mutex_lock(&connectionPrivate->lock); - - while (TRUE) { - if (server_port == MACH_PORT_NULL) { - server_port = __SCNetworkConnectionRefreshServerPort(server_port, &sc_status); - if (server_port == MACH_PORT_NULL) { - // if server not available - if (sc_status == BOOTSTRAP_UNKNOWN_SERVICE) { - // wait up to 2.5 seconds for the [SCNetworkConnection] server - // to startup - if ((retry += 50) < 2500) { - usleep(50 * 1000); // sleep 50ms between attempts - continue; - } - } - break; - } - } - - status = pppcontroller_ondemand_refresh_state(server_port, &sc_status); - if (status == KERN_SUCCESS) - break; - - if (status == MACH_SEND_INVALID_DEST) { - // the server is not yet available - SC_log(LOG_NOTICE, "SCNetworkConnectionRefreshOnDemandState (!dest) (%p)", connectionPrivate); - } else if (status == MIG_SERVER_DIED) { - // the server we were using is gone - SC_log(LOG_NOTICE, "SCNetworkConnectionRefreshOnDemandState (!mig) (%p)", connectionPrivate); - } else { - // if we got an unexpected error, don't retry - sc_status = status; - break; - } - } - - if (debug > 0) { - SC_log(LOG_INFO, "SCNetworkConnectionRefreshOnDemandState (%p), return: %d/%d", connectionPrivate, status, sc_status); - } - - if (sc_status != kSCStatusOK) { - _SCErrorSet(sc_status); - goto done; - } - - ok = TRUE; - - done : - - pthread_mutex_unlock(&connectionPrivate->lock); - return ok; + return FALSE; } #endif /* !TARGET_OS_SIMULATOR */ @@ -2746,13 +2658,6 @@ SCNetworkConnectionTriggerOnDemandIfNeeded (CFStringRef hostName, ne_session_set_event_handler(new_session, __SCNetworkConnectionQueue(), ^(ne_session_event_t event, void *event_data) { #pragma unused(event_data) - os_activity_t activity; - - activity = os_activity_create("processing ne_session notification", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - if (event == NESessionEventStatusChanged) { dispatch_retain(wait_for_session); ne_session_get_status(new_session, __SCNetworkConnectionQueue(), @@ -2769,8 +2674,6 @@ SCNetworkConnectionTriggerOnDemandIfNeeded (CFStringRef hostName, dispatch_semaphore_signal(wait_for_session); dispatch_release(wait_for_session); } - - os_release(activity); }); ne_session_start_with_options(new_session, start_options); } else { @@ -3575,70 +3478,6 @@ __SCNetworkConnectionCopyTriggerWithService(CFDictionaryRef configuration, } -__private_extern__ CFDictionaryRef -__SCNetworkConnectionCopyTokenParameters(SCNetworkConnectionRef connection) -{ - SCNetworkConnectionPrivateRef connectionPrivate = (SCNetworkConnectionPrivateRef)connection; - CFDictionaryRef parameters = NULL; - uint8_t params_buffer[PPP_MACH_MAX_INLINE_DATA]; - uint32_t params_buffer_len = sizeof(params_buffer); - int sc_status = kSCStatusOK; - mach_port_t session_port; - kern_return_t status; - - pthread_mutex_lock(&connectionPrivate->lock); - - parameters = connectionPrivate->flow_divert_token_params; - if (parameters != NULL) { - CFRetain(parameters); - goto done; - } - -retry: - if (parameters != NULL) { - CFRelease(parameters); - parameters = NULL; - } - - session_port = __SCNetworkConnectionSessionPort(connectionPrivate); - if (session_port == MACH_PORT_NULL) { - goto done; - } - - status = pppcontroller_flow_divert_copy_token_parameters(session_port, params_buffer, ¶ms_buffer_len); - if (status == KERN_SUCCESS) { - if (params_buffer_len > 0) { - CFDataRef params_data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, - params_buffer, - params_buffer_len, - kCFAllocatorNull); - parameters = CFPropertyListCreateWithData(kCFAllocatorDefault, - params_data, - kCFPropertyListImmutable, - NULL, - NULL); - CFRelease(params_data); - } - } - - if (__SCNetworkConnectionNeedsRetry(connection, "__SCNetworkConnectionCopyTokenParameters()", status, &sc_status)) { - goto retry; - } - - if (sc_status != kSCStatusOK) { - _SCErrorSet(sc_status); - } - -done: - if (parameters != NULL && connectionPrivate->flow_divert_token_params == NULL) { - connectionPrivate->flow_divert_token_params = (CFDictionaryRef)CFRetain(parameters); - } - - pthread_mutex_unlock(&connectionPrivate->lock); - - return parameters; -} - Boolean __SCNetworkConnectionCopyOnDemandInfoWithName(SCDynamicStoreRef *storeP, CFStringRef hostName, diff --git a/SystemConfiguration.fproj/SCNetworkConnectionInternal.h b/SystemConfiguration.fproj/SCNetworkConnectionInternal.h index a34f296..33c0378 100644 --- a/SystemConfiguration.fproj/SCNetworkConnectionInternal.h +++ b/SystemConfiguration.fproj/SCNetworkConnectionInternal.h @@ -30,7 +30,7 @@ #include #ifndef SC_LOG_HANDLE -#define SC_LOG_HANDLE __log_SCNetworkConnection() +#define SC_LOG_HANDLE __log_SCNetworkConnection #endif // SC_LOG_HANDLE #include #include @@ -42,7 +42,6 @@ __BEGIN_DECLS os_log_t __log_SCNetworkConnection(void); void __SCNetworkConnectionForceOnDemandConfigurationRefresh(void); char * __SCNetworkConnectionGetControllerPortName(void); -CFDictionaryRef __SCNetworkConnectionCopyTokenParameters(SCNetworkConnectionRef connection); __END_DECLS diff --git a/SystemConfiguration.fproj/SCNetworkConnectionPrivate.c b/SystemConfiguration.fproj/SCNetworkConnectionPrivate.c index 9e01fc5..28a32ad 100644 --- a/SystemConfiguration.fproj/SCNetworkConnectionPrivate.c +++ b/SystemConfiguration.fproj/SCNetworkConnectionPrivate.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2012, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2006-2012, 2015-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -602,6 +602,10 @@ copyNameCallout(CFStringRef serviceID, } if (isMatchingPrefsID(current, matchID)) { + if (*name != NULL) { + CFRelease(*name); + *name = NULL; + } *name = CFDictionaryGetValue(current, kSCPropUserDefinedName); // for backwards compatibility, we also check for the name in the PPP entity @@ -749,6 +753,10 @@ copyInterfaceConfigurationCallout(CFStringRef serviceID, } if (isMatchingPrefsID(current, matchID)) { + if (*dict != NULL) { + CFRelease(*dict); + *dict = NULL; + } *dict = CFDictionaryGetValue(current, interfaceType); *dict = isA_CFDictionary(*dict); if (*dict != NULL) { @@ -1967,7 +1975,7 @@ SCUserPreferencesSetInterfacePassword(SCUserPreferencesRef userPreferences, CFDictionaryRef config; CFStringRef description = NULL; CFStringRef label = NULL; - Boolean ok = FALSE; + Boolean ok = FALSE; if (!checkUserPreferencesPassword(userPreferences, interface, passwordType)) { return FALSE; diff --git a/SystemConfiguration.fproj/SCNetworkInterface.c b/SystemConfiguration.fproj/SCNetworkInterface.c index f4e2521..32c6c61 100644 --- a/SystemConfiguration.fproj/SCNetworkInterface.c +++ b/SystemConfiguration.fproj/SCNetworkInterface.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2018 Apple Inc. All rights reserved. + * Copyright (c) 2004-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -33,7 +33,6 @@ */ -#include #include #include #include @@ -71,6 +70,12 @@ #define kPCIThunderboltString "PCI-Thunderbolt" #endif +#if TARGET_OS_OSX +#ifndef kUSBSupportsIPhoneOS +#define kUSBSupportsIPhoneOS "SupportsIPhoneOS" +#endif // !kUSBSupportsIPhoneOS +#endif // TARGET_OS_OSX + #ifndef kIOUserEthernetInterfaceRoleKey #define kIOUserEthernetInterfaceRoleKey "InterfaceRole" #endif @@ -95,6 +100,9 @@ #include #include +/* CrashReporter "Application Specific Information" */ +#include + static CFStringRef copy_interface_string (CFBundleRef bundle, CFStringRef key, Boolean localized); static CFStringRef __SCNetworkInterfaceCopyDescription (CFTypeRef cf); @@ -108,7 +116,7 @@ static CFArrayRef __SCNetworkInterfaceCacheCopy (CFStringRef bsdName); enum { - kSortInternalModem, + kSortInternalModem = 0, kSortUSBModem, kSortModem, kSortBluetooth, @@ -127,6 +135,7 @@ enum { kSortBluetoothPAN_NAP, kSortBluetoothPAN_U, kSortThunderbolt, + kSortCarPlay, kSortBond, kSortBridge, kSortVLAN, @@ -134,6 +143,34 @@ enum { }; +static const char *sortOrderName[] = { + "InternalModem", + "USBModem", + "Modem", + "Bluetooth", + "IrDA", + "SerialPort", + "WWAN", + "EthernetPPP", + "AirportPPP", + "Ethernet", + "FireWire", + "AirPort", + "OtherWireless", + "Tethered", + "WWANEthernet", + "BluetoothPAN_GN", + "BluetoothPAN_NAP", + "BluetoothPAN_U", + "Thunderbolt", + "CarPlay", + "Bond", + "Bridge", + "VLAN", + "Unknown" +}; + + const CFStringRef kSCNetworkInterfaceType6to4 = CFSTR("6to4"); const CFStringRef kSCNetworkInterfaceTypeBluetooth = CFSTR("Bluetooth"); const CFStringRef kSCNetworkInterfaceTypeBond = CFSTR("Bond"); @@ -225,7 +262,7 @@ static const struct { { &kSCNetworkInterfaceTypePPTP , NULL , FALSE, doPPP, &kSCValNetInterfaceSubTypePPTP, doNone }, #pragma GCC diagnostic pop { &kSCNetworkInterfaceTypeSerial , &kSCEntNetModem , FALSE, doPPP, &kSCValNetInterfaceSubTypePPPSerial, doNone }, - { &kSCNetworkInterfaceTypeVLAN , &kSCEntNetEthernet , TRUE , doNone, NULL, doDNS|doIPv4|doIPv6|doProxies|doSMB }, + { &kSCNetworkInterfaceTypeVLAN , &kSCEntNetEthernet , TRUE , doNone, &kSCValNetInterfaceSubTypePPPoE, doDNS|doIPv4|doIPv6|doProxies|doSMB }, { &kSCNetworkInterfaceTypeVPN , &kSCEntNetVPN , FALSE, doNone, NULL, doDNS|doIPv4|doIPv6|doProxies|doSMB }, { &kSCNetworkInterfaceTypeWWAN , &kSCEntNetModem , FALSE, doPPP, &kSCValNetInterfaceSubTypePPPSerial, doNone }, // ===================================== =================== ========== =============== ======================================= ========================================= @@ -385,9 +422,15 @@ __SCNetworkInterfaceCopyFormattingDescription(CFTypeRef cf, CFDictionaryRef form CFStringAppendFormat(result, NULL, CFSTR(", action = %@"), interfacePrivate->configurationAction); } if (interfacePrivate->overrides != NULL) { - CFStringAppendFormat(result, formatOptions, CFSTR(", overrides = %p"), interfacePrivate->overrides); + CFStringRef str; + + str = _SCCopyDescription(interfacePrivate->overrides, formatOptions); + CFStringAppendFormat(result, formatOptions, CFSTR(", overrides = %@"), str); + CFRelease(str); } - CFStringAppendFormat(result, NULL, CFSTR(", order = %d"), interfacePrivate->sort_order); + CFStringAppendFormat(result, NULL, CFSTR(", order = %d (%s)"), + interfacePrivate->sort_order, + interfacePrivate->sort_order <= kSortUnknown ? sortOrderName[interfacePrivate->sort_order] : "?"); if (interfacePrivate->prefs != NULL) { CFStringAppendFormat(result, NULL, CFSTR(", prefs = %p"), interfacePrivate->prefs); } @@ -1334,7 +1377,7 @@ pci_slot(io_registry_entry_t interface, CFTypeRef *pci_slot_name) if (*pci_slot_name != NULL) CFRelease(*pci_slot_name); *pci_slot_name = parent_pci_slot_name; } else { - CFRelease(parent_pci_slot_name); + if (parent_pci_slot_name != NULL) CFRelease(parent_pci_slot_name); } } @@ -1811,6 +1854,10 @@ processNetworkInterface(SCNetworkInterfacePrivateRef interfacePrivate, interfacePrivate->interface_type = kSCNetworkInterfaceTypeEthernet; interfacePrivate->entity_type = kSCValNetInterfaceTypeEthernet; interfacePrivate->sort_order = kSortBluetoothPAN_U; + } else if (CFEqual(val, CFSTR("CarPlay"))) { + interfacePrivate->interface_type = kSCNetworkInterfaceTypeEthernet; + interfacePrivate->entity_type = kSCValNetInterfaceTypeEthernet; + interfacePrivate->sort_order = kSortCarPlay; } } @@ -1818,6 +1865,25 @@ processNetworkInterface(SCNetworkInterfacePrivateRef interfacePrivate, } } +#if TARGET_OS_OSX + if (interfacePrivate->interface_type == NULL) { + val = IORegistryEntrySearchCFProperty(interface, + kIOServicePlane, + CFSTR(kUSBSupportsIPhoneOS), + NULL, + kIORegistryIterateRecursively | kIORegistryIterateParents); + if (val != NULL) { + if (isA_CFBoolean(val) && CFBooleanGetValue(val)) { + interfacePrivate->interface_type = kSCNetworkInterfaceTypeEthernet; + interfacePrivate->entity_type = kSCValNetInterfaceTypeEthernet; + interfacePrivate->sort_order = kSortTethered; + } + + CFRelease(val); + } + } +#endif // TARGET_OS_OSX + if (interfacePrivate->interface_type == NULL) { str = IODictionaryCopyCFStringValue(bus_dict, CFSTR("name")); if (str != NULL) { @@ -2536,8 +2602,6 @@ createInterface(io_registry_entry_t interface, processInterface func, CFTypeRef val; // Keys of interest -#if TARGET_OS_SIMULATOR || 1 // while waiting for rdar://19431723 -#else const CFStringRef interface_dict_keys[] = { CFSTR(kIOInterfaceType), CFSTR(kIOBuiltin), @@ -2550,7 +2614,6 @@ createInterface(io_registry_entry_t interface, processInterface func, CFSTR(kIOSerialBSDTypeKey), CFSTR(kIOLocation) }; -#endif // !TARGET_OS_SIMULATOR const CFStringRef controller_dict_keys[] = { CFSTR(kIOFeatures), @@ -2574,18 +2637,9 @@ createInterface(io_registry_entry_t interface, processInterface func, } } -#if TARGET_OS_SIMULATOR || 1 // while waiting for rdar://19431723 - // get the dictionary associated with the [interface] node - kr = IORegistryEntryCreateCFProperties(interface, &interface_dict, NULL, kNilOptions); - if (kr != kIOReturnSuccess) { - SC_log(LOG_INFO, "IORegistryEntryCreateCFProperties() failed, kr = 0x%x", kr); - goto done; - } -#else interface_dict = copyIORegistryProperties(interface, interface_dict_keys, sizeof(interface_dict_keys)/sizeof(interface_dict_keys[0])); -#endif // !TARGET_OS_SIMULATOR // get the controller node kr = IORegistryEntryGetParentEntry(interface, kIOServicePlane, &controller); @@ -3357,7 +3411,7 @@ _SCNetworkInterfaceCreateWithBSDName(CFAllocatorRef allocator, struct ifreq ifr; SCNetworkInterfaceRef interface; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); if (_SC_cfstring_to_cstring(bsdName, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII) != NULL) { int s; @@ -4628,14 +4682,16 @@ add_interfaces(CFMutableArrayRef all_interfaces, CFArrayRef new_interfaces) static void __waitForInterfaces() { - CFStringRef key; + CFStringRef key = NULL; CFArrayRef keys; Boolean ok; - SCDynamicStoreRef store; + SCDynamicStoreRef store = NULL; + + CRSetCrashLogMessage("Waiting for IOKit to quiesce (or timeout)"); store = SCDynamicStoreCreate(NULL, CFSTR("SCNetworkInterfaceCopyAll"), NULL, NULL); if (store == NULL) { - return; + goto done; } key = SCDynamicStoreKeyCreate(NULL, CFSTR("%@" "InterfaceNamer"), kSCDynamicStoreDomainPlugin); @@ -4680,8 +4736,10 @@ __waitForInterfaces() done : - CFRelease(key); - CFRelease(store); + CRSetCrashLogMessage(NULL); + + if (key != NULL) CFRelease(key); + if (store != NULL) CFRelease(store); return; } @@ -5586,11 +5644,11 @@ SCNetworkInterfaceGetLocalizedDisplayName(SCNetworkInterfaceRef interface) __private_extern__ -CFDictionaryRef +CFPropertyListRef __SCNetworkInterfaceGetTemplateOverrides(SCNetworkInterfaceRef interface, CFStringRef overrideType) { SCNetworkInterfacePrivateRef interfacePrivate = (SCNetworkInterfacePrivateRef)interface; - CFDictionaryRef overrides = NULL; + CFPropertyListRef overrides = NULL; if (interfacePrivate->overrides != NULL) { overrides = CFDictionaryGetValue(interfacePrivate->overrides, overrideType); @@ -5813,10 +5871,6 @@ SCNetworkInterfaceSetExtendedConfiguration(SCNetworkInterfaceRef interface, #pragma mark SCNetworkInterface [Refresh Configuration] API -#ifndef kSCEntNetRefreshConfiguration -#define kSCEntNetRefreshConfiguration CFSTR("RefreshConfiguration") -#endif // kSCEntNetRefreshConfiguration - Boolean _SCNetworkInterfaceForceConfigurationRefresh(CFStringRef ifName) { @@ -7011,7 +7065,9 @@ SCNetworkInterfaceSetAdvisory(SCNetworkInterfaceRef interface, SCNetworkInterfaceAdvisory advisory, CFStringRef reason) { -#pragma unused(interface, advisory, reason) +#pragma unused(interface) +#pragma unused(advisory) +#pragma unused(reason) return (FALSE); } @@ -7224,7 +7280,7 @@ update_ift_family(SCNetworkInterfaceRef interface) CFStringRef bsdName = SCNetworkInterfaceGetBSDName(interface); struct ifreq ifr; - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); if ((bsdName != NULL) && _SC_cfstring_to_cstring(bsdName, ifr.ifr_name, sizeof(ifr.ifr_name), kCFStringEncodingASCII) != NULL) { int s; @@ -7510,7 +7566,7 @@ _SCNetworkInterfaceIsApplePreconfigured(SCNetworkInterfaceRef interface) #else // TARGET_OS_SIMULATOR SCNetworkInterfacePrivateRef interfacePrivate = (SCNetworkInterfacePrivateRef)interface; - if (!interfacePrivate->hidden) { + if (!_SCNetworkInterfaceIsHiddenConfiguration(interface)) { // if not HiddenConfiguration return FALSE; } @@ -7522,11 +7578,16 @@ _SCNetworkInterfaceIsApplePreconfigured(SCNetworkInterfaceRef interface) return FALSE; } - if (interfacePrivate->builtin) { + if (_SCNetworkInterfaceIsBuiltin(interface)) { // if built-in (and overrides are present) return TRUE; } + if (_SCNetworkInterfaceIsCarPlay(interface)) { + // if CarPlay (and overrides are present) + return TRUE; + } + if (isA_CFNumber(interfacePrivate->usb.vid)) { int vid; @@ -7569,6 +7630,15 @@ _SCNetworkInterfaceIsBluetoothP2P(SCNetworkInterfaceRef interface) } +Boolean +_SCNetworkInterfaceIsCarPlay(SCNetworkInterfaceRef interface) +{ + SCNetworkInterfacePrivateRef interfacePrivate = (SCNetworkInterfacePrivateRef)interface; + + return (interfacePrivate->sort_order == kSortCarPlay); +} + + Boolean _SCNetworkInterfaceIsHiddenConfiguration(SCNetworkInterfaceRef interface) { diff --git a/SystemConfiguration.fproj/SCNetworkMigration.c b/SystemConfiguration.fproj/SCNetworkMigration.c index 6874469..27c7d8b 100644 --- a/SystemConfiguration.fproj/SCNetworkMigration.c +++ b/SystemConfiguration.fproj/SCNetworkMigration.c @@ -1526,7 +1526,8 @@ _SCNetworkConfigurationCheckValidityWithPreferences(SCPreferencesRef prefs, __SCNetworkInterfaceCreateMappingUsingBSDName(SCPreferencesRef prefs); */ interfaces = __SCNetworkInterfaceCopyStoredWithPreferences(ni_prefs); - if (isA_CFArray(interfaces) == NULL) { + if (!isA_CFArray(interfaces)) { + if (interfaces != NULL) CFRelease(interfaces); SC_log(LOG_NOTICE, "No interfaces"); isValid = FALSE; goto done; @@ -1540,7 +1541,8 @@ _SCNetworkConfigurationCheckValidityWithPreferences(SCPreferencesRef prefs, } interfaces = __SCNetworkServiceCopyAllInterfaces(prefs); - if (isA_CFArray(interfaces) == NULL) { + if (!isA_CFArray(interfaces)) { + if (interfaces != NULL) CFRelease(interfaces); isValid = FALSE; SC_log(LOG_INFO, "No interfaces"); goto done; diff --git a/SystemConfiguration.fproj/SCNetworkProtocol.c b/SystemConfiguration.fproj/SCNetworkProtocol.c index 537b902..d0cd41e 100644 --- a/SystemConfiguration.fproj/SCNetworkProtocol.c +++ b/SystemConfiguration.fproj/SCNetworkProtocol.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2008, 2016, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2004-2008, 2016-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -310,6 +310,7 @@ SCNetworkProtocolSetConfiguration(SCNetworkProtocolRef protocol, CFDictionaryRef Boolean ok; CFStringRef path; SCNetworkProtocolPrivateRef protocolPrivate = (SCNetworkProtocolPrivateRef)protocol; + SCNetworkServiceRef service; SCNetworkServicePrivateRef servicePrivate; if (!isA_SCNetworkProtocol(protocol)) { @@ -317,7 +318,17 @@ SCNetworkProtocolSetConfiguration(SCNetworkProtocolRef protocol, CFDictionaryRef return FALSE; } - servicePrivate = (SCNetworkServicePrivateRef)protocolPrivate->service; + service = protocolPrivate->service; + servicePrivate = (SCNetworkServicePrivateRef)service; + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkProtocolSetConfiguration() w/removed service\n protocol = %@\n service = %@", + protocolPrivate->entityID, + servicePrivate); + _SC_crash_once("SCNetworkProtocolSetConfiguration() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + path = copyProtocolConfigurationPath(protocolPrivate); ok = __setPrefsConfiguration(servicePrivate->prefs, path, config, TRUE); CFRelease(path); @@ -338,6 +349,7 @@ SCNetworkProtocolSetEnabled(SCNetworkProtocolRef protocol, Boolean enabled) Boolean ok; CFStringRef path; SCNetworkProtocolPrivateRef protocolPrivate = (SCNetworkProtocolPrivateRef)protocol; + SCNetworkServiceRef service; SCNetworkServicePrivateRef servicePrivate; if (!isA_SCNetworkProtocol(protocol)) { @@ -345,7 +357,17 @@ SCNetworkProtocolSetEnabled(SCNetworkProtocolRef protocol, Boolean enabled) return FALSE; } - servicePrivate = (SCNetworkServicePrivateRef)protocolPrivate->service; + service = protocolPrivate->service; + servicePrivate = (SCNetworkServicePrivateRef)service; + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkProtocolSetEnabled() w/removed service\n protocol = %@\n service = %@", + protocolPrivate->entityID, + servicePrivate); + _SC_crash_once("SCNetworkProtocolSetEnabled() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + path = copyProtocolConfigurationPath(protocolPrivate); ok = __setPrefsEnabled(servicePrivate->prefs, path, enabled); CFRelease(path); diff --git a/SystemConfiguration.fproj/SCNetworkReachability.c b/SystemConfiguration.fproj/SCNetworkReachability.c index 436077c..5b57236 100644 --- a/SystemConfiguration.fproj/SCNetworkReachability.c +++ b/SystemConfiguration.fproj/SCNetworkReachability.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003-2018 Apple Inc. All rights reserved. + * Copyright (c) 2003-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -34,7 +34,6 @@ * - add advanced reachability APIs */ -#include #include #include #include @@ -58,7 +57,7 @@ #include #include -#define SC_LOG_HANDLE __log_SCNetworkReachability() +#define SC_LOG_HANDLE __log_SCNetworkReachability #define SC_LOG_HANDLE_TYPE static #include #include @@ -68,12 +67,7 @@ - -#if __has_include() #include -#else // __has_include() -#include -#endif // __has_include() #define DEBUG_REACHABILITY_TYPE_NAME "create w/name" #define DEBUG_REACHABILITY_TYPE_NAME_OPTIONS " + options" @@ -344,31 +338,31 @@ __SCNetworkReachabilityDeallocate(CFTypeRef cf) targetPrivate->scheduled = FALSE; if (targetPrivate->hostnameEndpoint) { - network_release(targetPrivate->hostnameEndpoint); + nw_release(targetPrivate->hostnameEndpoint); targetPrivate->hostnameEndpoint = NULL; } if (targetPrivate->localAddressEndpoint) { - network_release(targetPrivate->localAddressEndpoint); + nw_release(targetPrivate->localAddressEndpoint); targetPrivate->localAddressEndpoint = NULL; } if (targetPrivate->remoteAddressEndpoint) { - network_release(targetPrivate->remoteAddressEndpoint); + nw_release(targetPrivate->remoteAddressEndpoint); targetPrivate->remoteAddressEndpoint = NULL; } if (targetPrivate->parameters) { - network_release(targetPrivate->parameters); + nw_release(targetPrivate->parameters); targetPrivate->parameters = NULL; } if (targetPrivate->lastPath) { - network_release(targetPrivate->lastPath); + nw_release(targetPrivate->lastPath); targetPrivate->lastPath = NULL; } if (targetPrivate->lastPathParameters) { - network_release(targetPrivate->lastPathParameters); + nw_release(targetPrivate->lastPathParameters); targetPrivate->lastPathParameters = NULL; } if (targetPrivate->lastResolvedEndpoints) { - network_release(targetPrivate->lastResolvedEndpoints); + nw_release(targetPrivate->lastResolvedEndpoints); targetPrivate->lastResolvedEndpoints = NULL; } @@ -426,7 +420,6 @@ __SCNetworkReachabilityCreatePrivate(CFAllocatorRef allocator) return targetPrivate; } - static const struct sockaddr * is_valid_address(const struct sockaddr *address) { @@ -439,13 +432,11 @@ is_valid_address(const struct sockaddr *address) case AF_INET : if (address->sa_len >= sizeof(struct sockaddr_in)) { valid = address; - } else { - if (!warned) { - SC_log(LOG_WARNING, "SCNetworkReachabilityCreateWithAddress[Pair] called with \"struct sockaddr *\" len %d < %zu", - address->sa_len, - sizeof(struct sockaddr_in)); - warned = TRUE; - } + } else if (!warned) { + SC_log(LOG_WARNING, "SCNetworkReachabilityCreateWithAddress[Pair] called with \"struct sockaddr *\" len %d < %zu", + address->sa_len, + sizeof(struct sockaddr_in)); + warned = TRUE; } break; case AF_INET6 : @@ -648,7 +639,7 @@ SCNetworkReachabilityCreateWithAddressPair(CFAllocatorRef allocator, if (remoteAddress != NULL) { if (is_same_address(localAddress, remoteAddress)) { - targetPrivate->remoteAddressEndpoint = network_retain(targetPrivate->localAddressEndpoint); + targetPrivate->remoteAddressEndpoint = nw_retain(targetPrivate->localAddressEndpoint); } else { targetPrivate->remoteAddressEndpoint = nw_endpoint_create_address(remoteAddress); } @@ -826,7 +817,6 @@ SCNetworkReachabilityCreateWithOptions(CFAllocatorRef allocator, return NULL; } - if (nodename != NULL) { const char *name; @@ -884,7 +874,7 @@ SCNetworkReachabilityCreateWithOptions(CFAllocatorRef allocator, if (if_index != 0) { nw_interface_t interfaceObject = nw_interface_create_with_index(if_index); nw_parameters_require_interface(targetPrivate->parameters, interfaceObject); - network_release(interfaceObject); + nw_release(interfaceObject); haveOpt = TRUE; } @@ -1079,12 +1069,12 @@ nw_path_is_linklocal_direct(nw_path_t path) is_linklocal_direct = true; } - network_release(interface); + nw_release(interface); } } } - network_release(endpoint); + nw_release(endpoint); return is_linklocal_direct; } @@ -1274,11 +1264,7 @@ __SCNetworkReachabilityCreateCrazyIvan46Path(nw_path_t path, nw_endpoint_t endpo struct sockaddr_in6 synthesizedAddress = { .sin6_len = sizeof(struct sockaddr_in6), .sin6_family = AF_INET6, -#if defined(NW_PORT_HOST_BYTE_ORDER) && NW_PORT_HOST_BYTE_ORDER - .sin6_port = htons(nw_endpoint_get_port(endpoint)), -#else - .sin6_port = nw_endpoint_get_port(endpoint), -#endif + .sin6_port = htons(nw_endpoint_get_port(endpoint)), .sin6_flowinfo = 0, .sin6_scope_id = 0 }; @@ -1294,10 +1280,10 @@ __SCNetworkReachabilityCreateCrazyIvan46Path(nw_path_t path, nw_endpoint_t endpo retPath = synthesizedPath; SC_log(LOG_INFO, "Using CrazyIvan46 synthesized reachability result"); } else { - network_release(synthesizedPath); + nw_release(synthesizedPath); } - network_release(synthesizedEvaluator); - network_release(synthesizedEndpoint); + nw_release(synthesizedEvaluator); + nw_release(synthesizedEndpoint); } } else { // Don't synthesize in non-scheduled mode to avoid generating DNS traffic @@ -1317,10 +1303,10 @@ __SCNetworkReachabilityCreateCrazyIvan46Path(nw_path_t path, nw_endpoint_t endpo retPath = v6Path; SC_log(LOG_INFO, "Using CrazyIvan46 simple reachability result"); } else { - network_release(v6Path); + nw_release(v6Path); } - network_release(v6PathEvaluator); - network_release(v6Parameters); + nw_release(v6PathEvaluator); + nw_release(v6Parameters); } return retPath; } @@ -1368,14 +1354,14 @@ SCNetworkReachabilityGetFlags(SCNetworkReachabilityRef target, crazyIvanPath = __SCNetworkReachabilityCreateCrazyIvan46Path(path, endpoint, targetPrivate->parameters, FALSE); if (NULL != crazyIvanPath) { - network_release(path); + nw_release(path); path = crazyIvanPath; } } *flags = __SCNetworkReachabilityGetFlagsFromPath(path, 0, nw_resolver_status_invalid, NULL, FALSE, 0); - network_release(path); - network_release(pathEvaluator); + nw_release(path); + nw_release(pathEvaluator); done : @@ -1390,23 +1376,17 @@ SCNetworkReachabilityGetFlags(SCNetworkReachabilityRef target, static void reachPerformAndUnlock(SCNetworkReachabilityPrivateRef targetPrivate) { - os_activity_t activity; void *context_info; void (*context_release)(const void *); SCNetworkReachabilityCallBack rlsFunction; SCNetworkReachabilityFlags flags = 0; - activity = os_activity_create("processing SCNetworkReachability notification", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - os_activity_scope(activity); - if (!targetPrivate->scheduled) { // if no longer scheduled SC_log(LOG_INFO, "%sskipping SCNetworkReachability callback, no longer scheduled", targetPrivate->log_prefix); MUTEX_UNLOCK(&targetPrivate->lock); - goto done; + return; } // callout @@ -1441,10 +1421,6 @@ reachPerformAndUnlock(SCNetworkReachabilityPrivateRef targetPrivate) (*context_release)(context_info); } - done : - - os_release(activity); - return; } @@ -1493,7 +1469,7 @@ SCNetworkReachabilitySetCallback(SCNetworkReachabilityRef target, targetPrivate->rlsContext.release = NULL; targetPrivate->rlsContext.copyDescription = NULL; if (context) { - bcopy(context, &targetPrivate->rlsContext, sizeof(SCNetworkReachabilityContext)); + memcpy(&targetPrivate->rlsContext, context, sizeof(SCNetworkReachabilityContext)); if (context->retain != NULL) { targetPrivate->rlsContext.info = (void *)(*context->retain)(context->info); } @@ -1709,7 +1685,7 @@ __SCNetworkReachabilityRestartResolver(SCNetworkReachabilityPrivateRef targetPri if (resolver == targetPrivate->resolver) { targetPrivate->resolver = NULL; } - network_release(resolver); + nw_release(resolver); MUTEX_UNLOCK(&targetPrivate->lock); CFRelease(targetPrivate); }); @@ -1722,8 +1698,8 @@ __SCNetworkReachabilityRestartResolver(SCNetworkReachabilityPrivateRef targetPri __SCNetworkReachabilityCopyPathStatus(targetPrivate, &oldFlags, &oldIFIndex, &oldEndpointCount); targetPrivate->lastResolverStatus = status; - network_release(targetPrivate->lastResolvedEndpoints); - targetPrivate->lastResolvedEndpoints = network_retain(resolved_endpoints); + nw_release(targetPrivate->lastResolvedEndpoints); + targetPrivate->lastResolvedEndpoints = nw_retain(resolved_endpoints); // Run path evaluation on the resolved endpoints __block Boolean hasFlags = FALSE; @@ -1743,8 +1719,8 @@ __SCNetworkReachabilityRestartResolver(SCNetworkReachabilityPrivateRef targetPri hasFlags = TRUE; } interfaceIndex = nw_path_get_interface_index(path); - network_release(path); - network_release(pathEvaluator); + nw_release(path); + nw_release(pathEvaluator); rank = __SCNetworkReachabilityRank(flags); if (rank > __SCNetworkReachabilityRank(targetPrivate->lastResolvedEndpointFlags)) { @@ -1769,7 +1745,7 @@ __SCNetworkReachabilityRestartResolver(SCNetworkReachabilityPrivateRef targetPri MUTEX_UNLOCK(&targetPrivate->lock); } })) { - network_release(resolver); + nw_release(resolver); targetPrivate->resolver = NULL; CFRelease(targetPrivate); } @@ -1810,23 +1786,23 @@ __SCNetworkReachabilitySetDispatchQueue(SCNetworkReachabilityPrivateRef targetPr targetPrivate->sentFirstUpdate = TRUE; } - network_release(targetPrivate->lastPath); + nw_release(targetPrivate->lastPath); targetPrivate->lastPath = nw_path_evaluator_copy_path(pathEvaluator); if (isReachabilityTypeAddress(targetPrivate->type)) { crazyIvanPath = __SCNetworkReachabilityCreateCrazyIvan46Path(targetPrivate->lastPath, endpoint, targetPrivate->parameters, FALSE); if (NULL != crazyIvanPath) { - network_release(targetPrivate->lastPath); + nw_release(targetPrivate->lastPath); targetPrivate->lastPath = crazyIvanPath; } } - network_release(targetPrivate->lastPathParameters); + nw_release(targetPrivate->lastPathParameters); targetPrivate->lastPathParameters = nw_path_copy_derived_parameters(targetPrivate->lastPath); targetPrivate->lastResolverStatus = nw_resolver_status_invalid; - network_release(targetPrivate->lastResolvedEndpoints); + nw_release(targetPrivate->lastResolvedEndpoints); targetPrivate->lastResolvedEndpoints = NULL; __SCNetworkReachabilityRestartResolver(targetPrivate); @@ -1836,7 +1812,7 @@ __SCNetworkReachabilitySetDispatchQueue(SCNetworkReachabilityPrivateRef targetPr if (pathEvaluator == targetPrivate->pathEvaluator) { targetPrivate->pathEvaluator = NULL; } - network_release(pathEvaluator); + nw_release(pathEvaluator); MUTEX_UNLOCK(&targetPrivate->lock); CFRelease(targetPrivate); }); @@ -1850,8 +1826,8 @@ __SCNetworkReachabilitySetDispatchQueue(SCNetworkReachabilityPrivateRef targetPr size_t oldEndpointCount = 0; __SCNetworkReachabilityCopyPathStatus(targetPrivate, &oldFlags, &oldIFIndex, &oldEndpointCount); - network_release(targetPrivate->lastPath); - targetPrivate->lastPath = network_retain(path); + nw_release(targetPrivate->lastPath); + targetPrivate->lastPath = nw_retain(path); if (isReachabilityTypeAddress(targetPrivate->type)) { crazyIvanPath = @@ -1860,7 +1836,7 @@ __SCNetworkReachabilitySetDispatchQueue(SCNetworkReachabilityPrivateRef targetPr targetPrivate->parameters, TRUE); if (NULL != crazyIvanPath) { - network_release(targetPrivate->lastPath); + nw_release(targetPrivate->lastPath); targetPrivate->lastPath = crazyIvanPath; } } @@ -1880,7 +1856,7 @@ __SCNetworkReachabilitySetDispatchQueue(SCNetworkReachabilityPrivateRef targetPr } })) { targetPrivate->pathEvaluator = NULL; - network_release(pathEvaluator); + nw_release(pathEvaluator); CFRelease(targetPrivate); } } else { @@ -1899,11 +1875,11 @@ __SCNetworkReachabilitySetDispatchQueue(SCNetworkReachabilityPrivateRef targetPr targetPrivate->sentFirstUpdate = FALSE; nw_path_evaluator_cancel(targetPrivate->pathEvaluator); targetPrivate->pathEvaluator = NULL; - network_release(targetPrivate->lastPath); + nw_release(targetPrivate->lastPath); targetPrivate->lastPath = NULL; - network_release(targetPrivate->lastPathParameters); + nw_release(targetPrivate->lastPathParameters); targetPrivate->lastPathParameters = NULL; - network_release(targetPrivate->lastResolvedEndpoints); + nw_release(targetPrivate->lastResolvedEndpoints); targetPrivate->lastResolvedEndpoints = NULL; if (NULL != targetPrivate->resolver) { nw_resolver_cancel(targetPrivate->resolver); @@ -1968,8 +1944,8 @@ _SC_checkResolverReachabilityByAddress(SCDynamicStoreRef *storeP, *haveDNS = TRUE; } } - network_release(evaluator); - network_release(path); + nw_release(evaluator); + nw_release(path); return TRUE; } diff --git a/SystemConfiguration.fproj/SCNetworkReachabilityInternal.h b/SystemConfiguration.fproj/SCNetworkReachabilityInternal.h index 85ecdb9..0a98fe4 100644 --- a/SystemConfiguration.fproj/SCNetworkReachabilityInternal.h +++ b/SystemConfiguration.fproj/SCNetworkReachabilityInternal.h @@ -38,11 +38,7 @@ #include #include -#if __has_include() #include -#else // __has_include() -#include -#endif // __has_include() #pragma mark - #pragma mark SCNetworkReachability diff --git a/SystemConfiguration.fproj/SCNetworkService.c b/SystemConfiguration.fproj/SCNetworkService.c index 727c56c..d9c8d4b 100644 --- a/SystemConfiguration.fproj/SCNetworkService.c +++ b/SystemConfiguration.fproj/SCNetworkService.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2017 Apple Inc. All rights reserved. + * Copyright (c) 2004-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -68,10 +68,11 @@ __SCNetworkServiceCopyDescription(CFTypeRef cf) { CFAllocatorRef allocator = CFGetAllocator(cf); CFMutableStringRef result; - SCNetworkServicePrivateRef servicePrivate = (SCNetworkServicePrivateRef)cf; + SCNetworkServiceRef service = (SCNetworkServiceRef)cf; + SCNetworkServicePrivateRef servicePrivate = (SCNetworkServicePrivateRef)service; result = CFStringCreateMutable(allocator, 0); - CFStringAppendFormat(result, NULL, CFSTR(" {"), cf, allocator); + CFStringAppendFormat(result, NULL, CFSTR(" {"), service, allocator); CFStringAppendFormat(result, NULL, CFSTR("id = %@"), servicePrivate->serviceID); if (servicePrivate->prefs != NULL) { CFStringAppendFormat(result, NULL, CFSTR(", prefs = %p"), servicePrivate->prefs); @@ -81,6 +82,9 @@ __SCNetworkServiceCopyDescription(CFTypeRef cf) if (servicePrivate->name != NULL) { CFStringAppendFormat(result, NULL, CFSTR(", name = %@"), servicePrivate->name); } + if (!__SCNetworkServiceExists(service)) { + CFStringAppendFormat(result, NULL, CFSTR(", REMOVED")); + } CFStringAppendFormat(result, NULL, CFSTR("}")); return result; @@ -337,7 +341,7 @@ _protocolTemplate(SCNetworkServiceRef service, CFStringRef protocolType) } overrides = __SCNetworkInterfaceGetTemplateOverrides(interface, protocolType); - if (overrides != NULL) { + if (isA_CFDictionary(overrides)) { CFMutableDictionaryRef newTemplate; newTemplate = CFDictionaryCreateMutableCopy(NULL, 0, template); @@ -365,10 +369,11 @@ Boolean SCNetworkServiceAddProtocolType(SCNetworkServiceRef service, CFStringRef protocolType) { CFDictionaryRef entity; + Boolean newEnabled; CFDictionaryRef newEntity = NULL; Boolean ok = FALSE; CFStringRef path; - SCNetworkProtocolRef protocol; + SCNetworkProtocolRef protocol = NULL; SCNetworkServicePrivateRef servicePrivate = (SCNetworkServicePrivateRef)service; if (!isA_SCNetworkService(service) || (servicePrivate->prefs == NULL)) { @@ -381,6 +386,15 @@ SCNetworkServiceAddProtocolType(SCNetworkServiceRef service, CFStringRef protoco return FALSE; } + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceAddProtocolType() w/removed service\n service = %@\n protocol = %@", + service, + protocolType); + _SC_crash_once("SCNetworkServiceAddProtocolType() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + path = SCPreferencesPathKeyCreateNetworkServiceEntity(NULL, // allocator servicePrivate->serviceID, // service protocolType); // entity @@ -400,6 +414,7 @@ SCNetworkServiceAddProtocolType(SCNetworkServiceRef service, CFStringRef protoco &kCFTypeDictionaryValueCallBacks); ok = SCPreferencesPathSetValue(servicePrivate->prefs, path, newEntity); CFRelease(newEntity); + newEntity = NULL; if (!ok) { goto done; } @@ -408,12 +423,26 @@ SCNetworkServiceAddProtocolType(SCNetworkServiceRef service, CFStringRef protoco assert(protocol != NULL); newEntity = _protocolTemplate(service, protocolType); + assert(newEntity != NULL); + ok = SCNetworkProtocolSetConfiguration(protocol, newEntity); - CFRelease(newEntity); - CFRelease(protocol); + if (!ok) { + // could not set default configuration + goto done; + } + + newEnabled = !CFDictionaryContainsKey(newEntity, kSCResvInactive); + ok = SCNetworkProtocolSetEnabled(protocol, newEnabled); + if (!ok) { + // could not enable/disable protocol + goto done; + } done : + if (newEntity != NULL) CFRelease(newEntity); + if (protocol != NULL) CFRelease(protocol); + if (ok) { SC_log(LOG_DEBUG, "SCNetworkServiceAddProtocolType(): %@, %@", service, protocolType); } @@ -879,7 +908,7 @@ SCNetworkServiceCreate(SCPreferencesRef prefs, SCNetworkInterfaceRef interface) // a ConnectionScript (and related keys) from the interface // should trump the settings from the configuration template. - if (overrides != NULL) { + if (isA_CFDictionary(overrides)) { CFMutableDictionaryRef newConfig; newConfig = CFDictionaryCreateMutableCopy(NULL, 0, config); @@ -898,7 +927,7 @@ SCNetworkServiceCreate(SCPreferencesRef prefs, SCNetworkInterfaceRef interface) CFDictionaryRef overrides; overrides = __SCNetworkInterfaceGetTemplateOverrides(interface, kSCNetworkInterfaceTypePPP); - if (overrides != NULL) { + if (isA_CFDictionary(overrides)) { CFMutableDictionaryRef newConfig; newConfig = CFDictionaryCreateMutableCopy(NULL, 0, config); @@ -954,7 +983,9 @@ SCNetworkServiceEstablishDefaultConfiguration(SCNetworkServiceRef service) CFIndex i; SCNetworkInterfaceRef interface; CFIndex n; + Boolean ok; CFArrayRef protocolTypes; + CFStringRef rankStr; SCNetworkServicePrivateRef servicePrivate = (SCNetworkServicePrivateRef)service; if (!isA_SCNetworkService(service) || (servicePrivate->prefs == NULL)) { @@ -970,45 +1001,40 @@ SCNetworkServiceEstablishDefaultConfiguration(SCNetworkServiceRef service) protocolTypes = SCNetworkInterfaceGetSupportedProtocolTypes(interface); n = (protocolTypes != NULL) ? CFArrayGetCount(protocolTypes) : 0; for (i = 0; i < n; i++) { - Boolean enabled; - CFDictionaryRef newEntity = NULL; - Boolean ok; - SCNetworkProtocolRef protocol = NULL; - CFStringRef protocolType; + CFStringRef protocolType; protocolType = CFArrayGetValueAtIndex(protocolTypes, i); ok = SCNetworkServiceAddProtocolType(service, protocolType); - if (!ok && (SCError() != kSCStatusKeyExists)) { - // could not add protocol - goto nextProtocol; + if (!ok) { + SC_log(LOG_INFO, + "SCNetworkServiceEstablishDefaultConfiguration(): could not add protocol \"%@\"", + protocolType); } + } - protocol = SCNetworkServiceCopyProtocol(service, protocolType); - if (protocol == NULL) { - // oops, somethings wrong (should never happen) - goto nextProtocol; - } + rankStr = __SCNetworkInterfaceGetTemplateOverrides(interface, kSCPropNetServicePrimaryRank); + if (isA_CFString(rankStr)) { + SCNetworkServicePrimaryRank rank; - newEntity = _protocolTemplate(service, protocolType); - ok = SCNetworkProtocolSetConfiguration(protocol, newEntity); + ok = __str_to_rank(rankStr, &rank); if (!ok) { - // could not set default configuration - goto nextProtocol; + SC_log(LOG_INFO, + "SCNetworkServiceEstablishDefaultConfiguration(): unknown rank \"%@\"", + rankStr); + goto done; } - enabled = !CFDictionaryContainsKey(newEntity, kSCResvInactive); - ok = SCNetworkProtocolSetEnabled(protocol, enabled); + ok = SCNetworkServiceSetPrimaryRank(service, rank); if (!ok) { - // could not enable/disable protocol - goto nextProtocol; + SC_log(LOG_INFO, + "SCNetworkServiceEstablishDefaultConfiguration(): could not set rank \"%@\"", + rankStr); + goto done; } - - nextProtocol : - - if (newEntity != NULL) CFRelease(newEntity); - if (protocol != NULL) CFRelease(protocol); } + done : + return TRUE; } @@ -1251,6 +1277,13 @@ SCNetworkServiceRemove(SCNetworkServiceRef service) return FALSE; } + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceRemove() w/removed service\n service = %@", service); + _SC_crash_once("SCNetworkServiceRemove() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + // remove service from all sets sets = SCNetworkSetCopyAll(servicePrivate->prefs); @@ -1300,6 +1333,15 @@ SCNetworkServiceRemoveProtocolType(SCNetworkServiceRef service, CFStringRef prot return FALSE; } + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceRemoveProtocolType() w/removed service\n service = %@\n protocol = %@", + service, + protocolType); + _SC_crash_once("SCNetworkServiceRemoveProtocolType() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + if (!__SCNetworkProtocolIsValidType(protocolType)) { _SCErrorSet(kSCStatusInvalidArgument); return FALSE; @@ -1341,6 +1383,13 @@ SCNetworkServiceSetEnabled(SCNetworkServiceRef service, Boolean enabled) return FALSE; } + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceSetEnabled() w/removed service\n service = %@", service); + _SC_crash_once("SCNetworkProtocolSetEnabled() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + // make sure that we do not enable a network service if the // associated interface is a member of a bond or bridge. if (enabled) { @@ -1384,6 +1433,15 @@ SCNetworkServiceSetName(SCNetworkServiceRef service, CFStringRef name) return FALSE; } + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceSetName() w/removed service\n service = %@\n name = %@", + service, + name != NULL ? name : CFSTR("")); + _SC_crash_once("SCNetworkServiceSetName() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + if (name != NULL) { if (!isA_CFString(name)) { _SCErrorSet(kSCStatusInvalidArgument); @@ -1553,6 +1611,34 @@ SCNetworkServiceSetName(SCNetworkServiceRef service, CFStringRef name) #pragma mark SCNetworkService SPIs +__private_extern__ +Boolean +__SCNetworkServiceExists(SCNetworkServiceRef service) +{ + CFDictionaryRef entity; + CFStringRef path; + SCNetworkServicePrivateRef servicePrivate = (SCNetworkServicePrivateRef)service; + + if (servicePrivate->prefs == NULL) { + // if no prefs + return FALSE; + } + + path = SCPreferencesPathKeyCreateNetworkServiceEntity(NULL, // allocator + servicePrivate->serviceID, // service + kSCEntNetInterface); // entity + entity = SCPreferencesPathGetValue(servicePrivate->prefs, path); + CFRelease(path); + + if (!isA_CFDictionary(entity)) { + // a "service" must have an "interface" + return FALSE; + } + + return TRUE; +} + + SCNetworkServicePrimaryRank SCNetworkServiceGetPrimaryRank(SCNetworkServiceRef service) { @@ -1624,6 +1710,13 @@ SCNetworkServiceSetPrimaryRank(SCNetworkServiceRef service, return FALSE; } + if ((servicePrivate->prefs != NULL) && !__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceSetPrimaryRank() w/removed\n service = %@", service); + _SC_crash_once("SCNetworkServiceSetPrimaryRank() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + ok = __rank_to_str(newRank, &rankStr); if (!ok) { _SCErrorSet(kSCStatusInvalidArgument); @@ -1761,11 +1854,20 @@ SCNetworkServiceSetExternalID(SCNetworkServiceRef service, CFStringRef identifie { CFStringRef prefs_path; CFDictionaryRef service_dictionary; - SCNetworkServicePrivateRef service_private = (SCNetworkServicePrivateRef)service; + SCNetworkServicePrivateRef servicePrivate = (SCNetworkServicePrivateRef)service; Boolean success = FALSE; CFStringRef prefixed_domain; - if (!isA_SCNetworkService(service) || (service_private->prefs == NULL) || !isA_CFString(identifierDomain)) { + if (!isA_SCNetworkService(service) || (servicePrivate->prefs == NULL) || !isA_CFString(identifierDomain)) { + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkServiceSetExternalID() w/removed\n service = %@\n id = %@", + service, + identifier); + _SC_crash_once("SCNetworkServiceSetExternalID() w/removed service", NULL, NULL); _SCErrorSet(kSCStatusInvalidArgument); return FALSE; } @@ -1778,10 +1880,10 @@ SCNetworkServiceSetExternalID(SCNetworkServiceRef service, CFStringRef identifie prefixed_domain = CFStringCreateWithFormat(NULL, 0, CFSTR("%s%@"), EXTERNAL_ID_DOMAIN_PREFIX, identifierDomain); prefs_path = SCPreferencesPathKeyCreateNetworkServiceEntity(NULL, - service_private->serviceID, + servicePrivate->serviceID, NULL); - service_dictionary = SCPreferencesPathGetValue(service_private->prefs, prefs_path); + service_dictionary = SCPreferencesPathGetValue(servicePrivate->prefs, prefs_path); if (isA_CFDictionary(service_dictionary) || ((service_dictionary == NULL) && (identifier != NULL))) { CFMutableDictionaryRef new_service_dictionary; @@ -1799,22 +1901,22 @@ SCNetworkServiceSetExternalID(SCNetworkServiceRef service, CFStringRef identifie } else { CFDictionaryRemoveValue(new_service_dictionary, prefixed_domain); } - success = SCPreferencesPathSetValue(service_private->prefs, prefs_path, new_service_dictionary); + success = SCPreferencesPathSetValue(servicePrivate->prefs, prefs_path, new_service_dictionary); CFRelease(new_service_dictionary); } CFRelease(prefs_path); if (identifier != NULL) { - if (service_private->externalIDs == NULL) { - service_private->externalIDs = CFDictionaryCreateMutable(NULL, + if (servicePrivate->externalIDs == NULL) { + servicePrivate->externalIDs = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } - CFDictionarySetValue(service_private->externalIDs, prefixed_domain, identifier); + CFDictionarySetValue(servicePrivate->externalIDs, prefixed_domain, identifier); } else { - if (service_private->externalIDs != NULL) { - CFDictionaryRemoveValue(service_private->externalIDs, prefixed_domain); + if (servicePrivate->externalIDs != NULL) { + CFDictionaryRemoveValue(servicePrivate->externalIDs, prefixed_domain); } } @@ -1990,6 +2092,15 @@ _SCNetworkServiceSetServiceID(SCNetworkServiceRef service, CFStringRef newServic return TRUE; } + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "_SCNetworkServiceSetServiceID() w/removed service\n service = %@\n serviceID = %@", + service, + newServiceID); + _SC_crash_once("_SCNetworkServiceSetServiceID() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + newPath = SCPreferencesPathKeyCreateNetworkServiceEntity(NULL, // allocator newServiceID, // service NULL); // entity diff --git a/SystemConfiguration.fproj/SCNetworkSet.c b/SystemConfiguration.fproj/SCNetworkSet.c index 0ace9a3..bfcf499 100644 --- a/SystemConfiguration.fproj/SCNetworkSet.c +++ b/SystemConfiguration.fproj/SCNetworkSet.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2017 Apple Inc. All rights reserved. + * Copyright (c) 2004-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -66,15 +66,19 @@ __SCNetworkSetCopyDescription(CFTypeRef cf) { CFAllocatorRef allocator = CFGetAllocator(cf); CFMutableStringRef result; - SCNetworkSetPrivateRef setPrivate = (SCNetworkSetPrivateRef)cf; + SCNetworkSetRef set = (SCNetworkSetRef)cf; + SCNetworkSetPrivateRef setPrivate = (SCNetworkSetPrivateRef)set; result = CFStringCreateMutable(allocator, 0); - CFStringAppendFormat(result, NULL, CFSTR(" {"), cf, allocator); + CFStringAppendFormat(result, NULL, CFSTR(" {"), set, allocator); CFStringAppendFormat(result, NULL, CFSTR("id = %@"), setPrivate->setID); CFStringAppendFormat(result, NULL, CFSTR(", prefs = %p"), setPrivate->prefs); if (setPrivate->name != NULL) { CFStringAppendFormat(result, NULL, CFSTR(", name = %@"), setPrivate->name); } + if (!__SCNetworkSetExists(set)) { + CFStringAppendFormat(result, NULL, CFSTR(", REMOVED")); + } CFStringAppendFormat(result, NULL, CFSTR("}")); return result; @@ -179,15 +183,42 @@ _serviceOrder(SCNetworkServiceRef service) } +static CFIndex +_serviceOrder_clear(CFMutableArrayRef order, CFStringRef serviceID) +{ + CFIndex f; // # of serviceID's found + CFIndex i; + CFIndex n; + + f = 0; + i = 0; + n = CFArrayGetCount(order); + while (i < n) { + CFStringRef thisServiceID = CFArrayGetValueAtIndex(order, i); + + if (CFEqual(thisServiceID, serviceID)) { + // remove the serviceID + CFArrayRemoveValueAtIndex(order, i); + n--; + f++; + continue; + } + + i++; // move to the next serviceID + } + + return f; +} + + static void _serviceOrder_add(SCNetworkSetRef set, SCNetworkServiceRef service) { - CFIndex i; CFIndex n; CFMutableArrayRef newOrder; CFArrayRef order; - CFStringRef serviceID; - CFIndex serviceOrder; + CFStringRef serviceID = SCNetworkServiceGetServiceID(service); + CFIndex serviceOrder = _serviceOrder(service); SCNetworkSetPrivateRef setPrivate = (SCNetworkSetPrivateRef)set; CFIndex slot; @@ -198,18 +229,18 @@ _serviceOrder_add(SCNetworkSetRef set, SCNetworkServiceRef service) newOrder = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); } assert(newOrder != NULL); - n = CFArrayGetCount(newOrder); - serviceID = SCNetworkServiceGetServiceID(service); - if (CFArrayContainsValue(newOrder, CFRangeMake(0, n), serviceID)) { - // if serviceID already present - goto done; + n = _serviceOrder_clear(newOrder, serviceID); + if (n > 0) { + SC_log(LOG_ERR, "SCNetworkSetAddService() w/service already in ServiceOrder\n service = %@\n matched = %ld", + service, + n); + _SC_crash_once("SCNetworkSetAddService() w/service already in ServiceOrder", NULL, NULL); } - serviceOrder = _serviceOrder(service); - slot = 0; - for (i = 0; i < n; i++) { + n = CFArrayGetCount(newOrder); + for (CFIndex i = 0; i < n; i++) { int slotOrder; SCNetworkServiceRef slotService; CFStringRef slotServiceID; @@ -237,9 +268,6 @@ _serviceOrder_add(SCNetworkSetRef set, SCNetworkServiceRef service) CFArrayInsertValueAtIndex(newOrder, slot, serviceID); (void) SCNetworkSetSetServiceOrder(set, newOrder); - - done : - CFRelease(newOrder); return; @@ -249,6 +277,7 @@ _serviceOrder_add(SCNetworkSetRef set, SCNetworkServiceRef service) static void _serviceOrder_remove(SCNetworkSetRef set, SCNetworkServiceRef service) { + CFIndex n; CFMutableArrayRef newOrder; CFArrayRef order; CFStringRef serviceID; @@ -257,22 +286,17 @@ _serviceOrder_remove(SCNetworkSetRef set, SCNetworkServiceRef service) if (order == NULL) { return; } - - serviceID = SCNetworkServiceGetServiceID(service); - newOrder = CFArrayCreateMutableCopy(NULL, 0, order); - while (TRUE) { - CFIndex i; - i = CFArrayGetFirstIndexOfValue(newOrder, - CFRangeMake(0, CFArrayGetCount(newOrder)), - serviceID); - if (i == kCFNotFound) { - break; - } + serviceID = SCNetworkServiceGetServiceID(service); - CFArrayRemoveValueAtIndex(newOrder, i); + n = _serviceOrder_clear(newOrder, serviceID); + if (n > 1) { + SC_log(LOG_ERR, "SCNetworkSetRemoveService() w/multiple instances of service in ServiceOrder\n service = %@\n count = %ld", + service, + n); } + (void) SCNetworkSetSetServiceOrder(set, newOrder); CFRelease(newOrder); @@ -284,11 +308,61 @@ _serviceOrder_remove(SCNetworkSetRef set, SCNetworkServiceRef service) #pragma mark SCNetworkSet APIs +#define DEFAULT_SET_NAME CFSTR("Automatic") #define N_QUICK 16 -#define PREVENT_DUPLICATE_SERVICE_NAMES -#ifdef PREVENT_DUPLICATE_SERVICE_NAMES +static CFStringRef +copy_default_set_name(Boolean loc) +{ + CFStringRef name; + static CFStringRef non_localized = NULL; + static CFStringRef localized = NULL; + + if (!loc) { + static dispatch_once_t once; + + dispatch_once(&once, ^{ + CFBundleRef bundle; + + bundle = _SC_CFBundleGet(); + if (bundle != NULL) { + non_localized = _SC_CFBundleCopyNonLocalizedString(bundle, + CFSTR("DEFAULT_SET_NAME"), + DEFAULT_SET_NAME, + NULL); + } + }); + name = non_localized; + } else { + static dispatch_once_t once; + + dispatch_once(&once, ^{ + CFBundleRef bundle; + + bundle = _SC_CFBundleGet(); + if (bundle != NULL) { + localized = CFBundleCopyLocalizedString(bundle, + CFSTR("DEFAULT_SET_NAME"), + DEFAULT_SET_NAME, + NULL); + } + }); + name = localized; + } + + if (name == NULL) { + // if bundle or localized names not available + name = DEFAULT_SET_NAME; + } + + CFRetain(name); + return name; +} + + +#define PREVENT_DUPLICATE_SERVICE_NAMES +#ifdef PREVENT_DUPLICATE_SERVICE_NAMES static CFStringRef copy_next_name(CFStringRef name) { @@ -408,6 +482,23 @@ SCNetworkSetAddService(SCNetworkSetRef set, SCNetworkServiceRef service) return FALSE; } + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "SCNetworkSetAddService() w/removed set\n set = %@\n service = %@", + set, + service); + _SC_crash_once("SCNetworkSetAddService() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + } + + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkSetAddService() w/removed service\n set = %@\n service = %@", + set, + service); + _SC_crash_once("SCNetworkSetAddService() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + // make sure that we do not add an orphaned network service if its // associated interface is a member of a bond or bridge. interface = SCNetworkServiceGetInterface(service); @@ -873,7 +964,7 @@ SCNetworkSetCreate(SCPreferencesRef prefs) SCNetworkSetRef _SCNetworkSetCreateDefault(SCPreferencesRef prefs) { - CFBundleRef bundle; + CFStringRef model; Boolean ok = TRUE; SCNetworkSetRef set; CFStringRef setName = NULL; @@ -894,15 +985,9 @@ _SCNetworkSetCreateDefault(SCPreferencesRef prefs) goto done; } - bundle = _SC_CFBundleGet(); - if (bundle != NULL) { - setName = CFBundleCopyLocalizedString(bundle, - CFSTR("DEFAULT_SET_NAME"), - CFSTR("Automatic"), - NULL); - } - - ok = SCNetworkSetSetName(set, (setName != NULL) ? setName : CFSTR("Automatic")); + setName = copy_default_set_name(TRUE); + ok = SCNetworkSetSetName(set, setName); + CFRelease(setName); if (!ok) { // if we could not save the new set's "name" SC_log(LOG_NOTICE, "could not save the new set's name: %s", @@ -918,6 +1003,12 @@ _SCNetworkSetCreateDefault(SCPreferencesRef prefs) // goto done; } + model = SCPreferencesGetValue(prefs, MODEL); + if (model == NULL) { + model = _SC_hw_model(FALSE); + SCPreferencesSetValue(prefs, MODEL, model); + } + done : if (!ok && (set != NULL)) { @@ -925,7 +1016,6 @@ _SCNetworkSetCreateDefault(SCPreferencesRef prefs) CFRelease(set); set = NULL; } - if (setName != NULL) CFRelease(setName); return set; } @@ -947,7 +1037,6 @@ SCNetworkSetGetSetID(SCNetworkSetRef set) CFStringRef SCNetworkSetGetName(SCNetworkSetRef set) { - CFBundleRef bundle; CFDictionaryRef entity; CFStringRef path; SCNetworkSetPrivateRef setPrivate = (SCNetworkSetPrivateRef)set; @@ -974,33 +1063,20 @@ SCNetworkSetGetName(SCNetworkSetRef set) } } - bundle = _SC_CFBundleGet(); - if (bundle != NULL) { - if (setPrivate->name != NULL) { - CFStringRef non_localized; - - non_localized = _SC_CFBundleCopyNonLocalizedString(bundle, - CFSTR("DEFAULT_SET_NAME"), - CFSTR("Automatic"), - NULL); - if (non_localized != NULL) { - if (CFEqual(setPrivate->name, non_localized)) { - CFStringRef localized; - - // if "Automatic", return localized name - localized = CFBundleCopyLocalizedString(bundle, - CFSTR("DEFAULT_SET_NAME"), - CFSTR("Automatic"), - NULL); - if (localized != NULL) { - CFRelease(setPrivate->name); - setPrivate->name = localized; - } - } + if (setPrivate->name != NULL) { + CFStringRef non_localized; - CFRelease(non_localized); - } + non_localized = copy_default_set_name(FALSE); + if (CFEqual(setPrivate->name, non_localized)) { + CFStringRef localized; + + // if "Automatic", return localized name + localized = copy_default_set_name(TRUE); + CFRelease(setPrivate->name); + setPrivate->name = localized; } + + CFRelease(non_localized); } return setPrivate->name; @@ -1046,6 +1122,24 @@ SCNetworkSetGetTypeID(void) } +#if TARGET_OS_IPHONE +static Boolean +isDefaultSet(SCNetworkSetRef set) +{ + CFStringRef defaultName; + Boolean isDefault = FALSE; + CFStringRef setName; + + defaultName = copy_default_set_name(TRUE); + setName = SCNetworkSetGetName(set); + isDefault = _SC_CFEqual(setName, defaultName); + CFRelease(defaultName); + + return isDefault; +} +#endif // TARGET_OS_IPHONE + + Boolean SCNetworkSetRemove(SCNetworkSetRef set) { @@ -1059,6 +1153,21 @@ SCNetworkSetRemove(SCNetworkSetRef set) return FALSE; } + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "SCNetworkSetRemove() w/removed set\n set = %@", set); + _SC_crash_once("SCNetworkSetRemove() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + } + +#if TARGET_OS_IPHONE + if (isDefaultSet(set) && (geteuid() != 0)) { + SC_log(LOG_ERR, "SCNetworkSetRemove() failed, cannot remove set : %@", set); + _SC_crash("The \"Automatic\" network set cannot be removed", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } +#endif // TARGET_OS_IPHONE + currentPath = SCPreferencesGetValue(setPrivate->prefs, kSCPrefCurrentSet); path = SCPreferencesPathKeyCreateSet(NULL, setPrivate->setID); if (!isA_CFString(currentPath) || !CFEqual(currentPath, path)) { @@ -1098,6 +1207,23 @@ SCNetworkSetRemoveService(SCNetworkSetRef set, SCNetworkServiceRef service) return FALSE; } + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "SCNetworkSetRemoveService() w/removed set\n set = %@\n service = %@", + set, + service); + _SC_crash_once("SCNetworkSetRemoveService() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + } + + if (!__SCNetworkServiceExists(service)) { + SC_log(LOG_ERR, "SCNetworkSetRemoveService() w/removed service\n set = %@\n service = %@", + set, + service); + _SC_crash_once("SCNetworkSetRemoveService() w/removed service", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + // remove service from ServiceOrder _serviceOrder_remove(set, service); @@ -1150,6 +1276,13 @@ SCNetworkSetSetCurrent(SCNetworkSetRef set) return FALSE; } + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "SCNetworkSetSetCurrent() w/removed set\n set = %@", set); + _SC_crash_once("SCNetworkSetSetCurrent() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + path = SCPreferencesPathKeyCreateSet(NULL, setPrivate->setID); ok = SCPreferencesSetValue(setPrivate->prefs, kSCPrefCurrentSet, path); CFRelease(path); @@ -1165,8 +1298,10 @@ SCNetworkSetSetCurrent(SCNetworkSetRef set) Boolean SCNetworkSetSetName(SCNetworkSetRef set, CFStringRef name) { - CFBundleRef bundle = NULL; CFDictionaryRef entity; +#if TARGET_OS_IPHONE + Boolean isDefaultName = FALSE; +#endif // TARGET_OS_IPHONE CFStringRef localized = NULL; CFStringRef non_localized = NULL; Boolean ok = FALSE; @@ -1178,6 +1313,15 @@ SCNetworkSetSetName(SCNetworkSetRef set, CFStringRef name) return FALSE; } + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "SCNetworkSetSetName() w/removed set\n set = %@\n name = %@", + set, + name != NULL ? name : CFSTR("")); + _SC_crash_once("SCNetworkSetSetName() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + if ((name != NULL) && !isA_CFString(name)) { _SCErrorSet(kSCStatusInvalidArgument); return FALSE; @@ -1186,28 +1330,42 @@ SCNetworkSetSetName(SCNetworkSetRef set, CFStringRef name) // if known, compare against localized name if (name != NULL) { - bundle = _SC_CFBundleGet(); - if (bundle != NULL) { - non_localized = _SC_CFBundleCopyNonLocalizedString(bundle, - CFSTR("DEFAULT_SET_NAME"), - CFSTR("Automatic"), - NULL); - if (non_localized != NULL) { - if (CFEqual(name, non_localized)) { - localized = CFBundleCopyLocalizedString(bundle, - CFSTR("DEFAULT_SET_NAME"), - CFSTR("Automatic"), - NULL); - if (localized != NULL) { - name = localized; - } - } - } + non_localized = copy_default_set_name(FALSE); + if (CFEqual(name, non_localized)) { + localized = copy_default_set_name(TRUE); + name = localized; +#if TARGET_OS_IPHONE + isDefaultName = TRUE; +#endif // TARGET_OS_IPHONE + } +#if TARGET_OS_IPHONE + else { + localized = copy_default_set_name(TRUE); + isDefaultName = CFEqual(name, non_localized); } +#endif // TARGET_OS_IPHONE } -#define PREVENT_DUPLICATE_SET_NAMES -#ifdef PREVENT_DUPLICATE_SET_NAMES +#if TARGET_OS_IPHONE + if (!isDefaultName && isDefaultSet(set) && (geteuid() != 0)) { + // if we are trying to change the name of the "Automatic" set + SC_log(LOG_ERR, "SCNetworkSetSetName() failed, cannot rename : %@", set); + _SC_crash("The \"Automatic\" network set cannot be renamed", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + goto done; + } +#endif // TARGET_OS_IPHONE + +#define PREVENT_DUPLICATE_SET_NAMES +#ifdef PREVENT_DUPLICATE_SET_NAMES + +#if TARGET_OS_IPHONE + if (!isDefaultName) { + // On iOS, only block naming multiple sets with the name + // "Automatic". Others names are OK. + } else +#endif // TARGET_OS_IPHONE + if (name != NULL) { CFArrayRef sets; @@ -1244,18 +1402,12 @@ SCNetworkSetSetName(SCNetworkSetRef set, CFStringRef name) // if known, store non-localized name - if ((name != NULL) && (bundle != NULL) && (non_localized != NULL)) { + if ((name != NULL) && (non_localized != NULL)) { if (localized == NULL) { - localized = CFBundleCopyLocalizedString(bundle, - CFSTR("DEFAULT_SET_NAME"), - CFSTR("Automatic"), - NULL); + localized = copy_default_set_name(TRUE); } - - if (localized != NULL) { - if (CFEqual(name, localized)) { - name = non_localized; - } + if (CFEqual(name, localized)) { + name = non_localized; } } @@ -1300,7 +1452,10 @@ SCNetworkSetSetName(SCNetworkSetRef set, CFStringRef name) Boolean SCNetworkSetSetServiceOrder(SCNetworkSetRef set, CFArrayRef newOrder) { + CFMutableArrayRef cleanOrder; CFDictionaryRef dict; + CFIndex i; + CFIndex n; CFMutableDictionaryRef newDict; Boolean ok; CFStringRef path; @@ -1311,10 +1466,15 @@ SCNetworkSetSetServiceOrder(SCNetworkSetRef set, CFArrayRef newOrder) return FALSE; } - if (isA_CFArray(newOrder)) { - CFIndex i; - CFIndex n = CFArrayGetCount(newOrder); + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "SCNetworkSetSetServiceOrder() w/removed set\n set = %@", set); + _SC_crash_once("SCNetworkSetSetServiceOrder() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + if (isA_CFArray(newOrder)) { + n = CFArrayGetCount(newOrder); for (i = 0; i < n; i++) { CFStringRef serviceID; @@ -1344,7 +1504,24 @@ SCNetworkSetSetServiceOrder(SCNetworkSetRef set, CFArrayRef newOrder) &kCFTypeDictionaryValueCallBacks); } - CFDictionarySetValue(newDict, kSCPropNetServiceOrder, newOrder); + cleanOrder = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + n = CFArrayGetCount(newOrder); + for (i = 0; i < n; i++) { + CFIndex nClean = CFArrayGetCount(cleanOrder); + CFStringRef serviceID = CFArrayGetValueAtIndex(newOrder, i); + + if ((nClean == 0) || + !CFArrayContainsValue(cleanOrder, CFRangeMake(0, nClean), serviceID)) { + // if first reference to this serviceID + CFArrayAppendValue(cleanOrder, serviceID); + } else { + // skip duplicate serviceID + SC_log(LOG_ERR, "SCNetworkSetSetServiceOrder() found duplicate serviceID: removed %@\n", serviceID); + } + } + CFDictionarySetValue(newDict, kSCPropNetServiceOrder, cleanOrder); + CFRelease(cleanOrder); + ok = SCPreferencesPathSetValue(setPrivate->prefs, path, newDict); CFRelease(newDict); CFRelease(path); @@ -1357,6 +1534,31 @@ SCNetworkSetSetServiceOrder(SCNetworkSetRef set, CFArrayRef newOrder) #pragma mark SCNetworkSet SPIs +__private_extern__ +Boolean +__SCNetworkSetExists(SCNetworkSetRef set) +{ + CFDictionaryRef entity; + CFStringRef path; + SCNetworkSetPrivateRef setPrivate = (SCNetworkSetPrivateRef)set; + + if (setPrivate->prefs == NULL) { + return FALSE; + } + + path = SCPreferencesPathKeyCreateSet(NULL, setPrivate->setID); + entity = SCPreferencesPathGetValue(setPrivate->prefs, path); + CFRelease(path); + + if (!isA_CFDictionary(entity)) { + // if no "set" + return FALSE; + } + + return TRUE; +} + + static void add_supported_interfaces(CFMutableArrayRef interface_list, SCNetworkInterfaceRef interface) { @@ -1492,7 +1694,7 @@ copyServices(SCNetworkSetRef set) #if !TARGET_OS_IPHONE -static CFArrayRef +static CF_RETURNS_RETAINED CFArrayRef updateServices(CFArrayRef services, SCNetworkInterfaceRef interface) { CFStringRef bsdName; @@ -1591,7 +1793,7 @@ _SCNetworkSetCompare(const void *val1, const void *val2, void *context) static Boolean __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CFArrayRef interfaces, Boolean excludeHidden) { - CFSetRef excluded = NULL; + CFSetRef excluded; CFIndex i; CFIndex n = 0; Boolean ok = TRUE; @@ -1635,7 +1837,7 @@ __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CF #if !TARGET_OS_IPHONE // look for interfaces that should auto-magically be added // to an Ethernet bridge - n = (interfaces != NULL) ? CFArrayGetCount(interfaces) : 0; + n = ((services != NULL) && (interfaces != NULL)) ? CFArrayGetCount(interfaces) : 0; for (i = 0; i < n; i++) { SCBridgeInterfaceRef bridge = NULL; SCNetworkInterfaceRef interface; @@ -1647,8 +1849,7 @@ __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CF continue; } - if ((excluded != NULL) - && CFSetContainsValue(excluded, interface)) { + if (CFSetContainsValue(excluded, interface)) { // if this interface is a member of a Bond or Bridge continue; } @@ -1728,7 +1929,7 @@ __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CF } #endif // !TARGET_OS_IPHONE - n = (interfaces != NULL) ? CFArrayGetCount(interfaces) : 0; + n = ((services != NULL) && (interfaces != NULL)) ? CFArrayGetCount(interfaces) : 0; for (i = 0; i < n; i++) { SCNetworkInterfaceRef interface; CFMutableArrayRef interface_list; @@ -1740,8 +1941,7 @@ __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CF continue; } - if ((excluded != NULL) - && CFSetContainsValue(excluded, interface)) { + if (CFSetContainsValue(excluded, interface)) { // if this interface is a member of a Bond or Bridge continue; } @@ -1805,10 +2005,12 @@ __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CF CFRelease(interface_list); } #if !TARGET_OS_IPHONE - if (updatedIFs) CFRelease(interfaces); + if (updatedIFs && (interfaces != NULL)) { + CFRelease(interfaces); + } #endif // !TARGET_OS_IPHONE if (services != NULL) CFRelease(services); - if (excluded != NULL) CFRelease(excluded); + CFRelease(excluded); #if TARGET_OS_IPHONE if (orphans != NULL) { @@ -1833,9 +2035,19 @@ __SCNetworkSetEstablishDefaultConfigurationForInterfaces(SCNetworkSetRef set, CF } #endif // TARGET_OS_IPHONE - if (ok && !updated) { - // if no changes were made - _SCErrorSet(kSCStatusOK); + if (ok) { + if (updated) { + CFStringRef model; + + model = SCPreferencesGetValue(setPrivate->prefs, MODEL); + if (model == NULL) { + model = _SC_hw_model(FALSE); + SCPreferencesSetValue(setPrivate->prefs, MODEL, model); + } + } else { + // if no changes were made + _SCErrorSet(kSCStatusOK); + } } return updated; @@ -2058,6 +2270,15 @@ _SCNetworkSetSetSetID(SCNetworkSetRef set, CFStringRef newSetID) return FALSE; } + if (!__SCNetworkSetExists(set)) { + SC_log(LOG_ERR, "_SCNetworkSetSetSetID() w/removed set\n set = %@\n setID = %@", + set, + newSetID); + _SC_crash_once("_SCNetworkSetSetSetID() w/removed set", NULL, NULL); + _SCErrorSet(kSCStatusInvalidArgument); + return FALSE; + } + // If newSetID is equal to current setID, our work is done if (CFEqual(newSetID, setPrivate->setID)) { return TRUE; diff --git a/SystemConfiguration.fproj/SCNetworkSignature.c b/SystemConfiguration.fproj/SCNetworkSignature.c index 38b695c..6937198 100644 --- a/SystemConfiguration.fproj/SCNetworkSignature.c +++ b/SystemConfiguration.fproj/SCNetworkSignature.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2006, 2008, 2009, 2011-2015, 2017, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2006, 2008, 2009, 2011-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -49,11 +49,7 @@ #include #include #include -#if __has_include() #include -#else // __has_include() -#include -#endif // __has_include() #pragma mark SCNetworkSignature Supporting APIs @@ -162,7 +158,7 @@ SCNetworkSignatureCopyActiveIdentifierForAddress(CFAllocatorRef alloc, /* ALIGN: force alignment */ sin_p = (struct sockaddr_in *)(void *)addr; - bcopy(&sin_p->sin_addr.s_addr, &s_addr, sizeof(s_addr)); + memcpy(&s_addr, &sin_p->sin_addr.s_addr, sizeof(s_addr)); if (s_addr != 0) { _SCErrorSet(kSCStatusInvalidArgument); goto done; diff --git a/SystemConfiguration.fproj/SCP.c b/SystemConfiguration.fproj/SCP.c index 2873294..2e223eb 100644 --- a/SystemConfiguration.fproj/SCP.c +++ b/SystemConfiguration.fproj/SCP.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2007-2009, 2011, 2014-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2007-2009, 2011, 2014-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -132,6 +132,24 @@ __SCPreferencesGetLimitSCNetworkConfiguration(SCPreferencesRef prefs) } +__private_extern__ +off_t +__SCPreferencesPrefsSize(SCPreferencesRef prefs) +{ + SCPreferencesPrivateRef prefsPrivate = (SCPreferencesPrivateRef)prefs; + SCPSignatureDataRef sig; + CFDataRef signature; + + signature = prefsPrivate->signature; + if (signature == NULL) { + return 0; + } + + sig = (SCPSignatureDataRef)(void *)CFDataGetBytePtr(signature); + return sig->st_size; +} + + __private_extern__ Boolean __SCPreferencesUsingDefaultPrefs(SCPreferencesRef prefs) diff --git a/SystemConfiguration.fproj/SCPCommit.c b/SystemConfiguration.fproj/SCPCommit.c index b311bdd..42b9890 100644 --- a/SystemConfiguration.fproj/SCPCommit.c +++ b/SystemConfiguration.fproj/SCPCommit.c @@ -202,7 +202,7 @@ SCPreferencesCommitChanges(SCPreferencesRef prefs) if (stat(prefsPrivate->path, &statBuf) == -1) { if (errno == ENOENT) { - bzero(&statBuf, sizeof(statBuf)); + memset(&statBuf, 0, sizeof(statBuf)); statBuf.st_mode = 0644; statBuf.st_uid = geteuid(); statBuf.st_gid = getegid(); @@ -237,12 +237,12 @@ SCPreferencesCommitChanges(SCPreferencesRef prefs) pc = str[0] - 'A' + 1; // PROTECTION_CLASS_[ABCDEF] fd = open_dprotected_np(thePath, O_WRONLY|O_CREAT, pc, 0, statBuf.st_mode); } else { - fd = open(thePath, O_WRONLY|O_CREAT, statBuf.st_mode); + fd = open(thePath, O_WRONLY|O_CREAT, statBuf.st_mode); } if (fd == -1) { _SCErrorSet(errno); - SC_log(LOG_INFO, "open() failed: %s", strerror(errno)); + SC_log(LOG_NOTICE, "open() failed: %s", strerror(errno)); CFAllocatorDeallocate(NULL, thePath); goto done; } @@ -323,7 +323,7 @@ SCPreferencesCommitChanges(SCPreferencesRef prefs) unlink(path); /* init the new signature */ - bzero(&statBuf, sizeof(statBuf)); + memset(&statBuf, 0, sizeof(statBuf)); } /* update signature */ @@ -332,8 +332,9 @@ SCPreferencesCommitChanges(SCPreferencesRef prefs) committed : - SC_log(LOG_INFO, "SCPreferences() commit: %s", - prefsPrivate->newPath ? prefsPrivate->newPath : prefsPrivate->path); + SC_log(LOG_INFO, "SCPreferences() commit: %s, size=%lld", + prefsPrivate->newPath ? prefsPrivate->newPath : prefsPrivate->path, + __SCPreferencesPrefsSize(prefs)); /* post notification */ ok = SCDynamicStoreNotifyValue(NULL, prefsPrivate->sessionKeyCommit); diff --git a/SystemConfiguration.fproj/SCPLock.c b/SystemConfiguration.fproj/SCPLock.c index cc1fca2..3de6de5 100644 --- a/SystemConfiguration.fproj/SCPLock.c +++ b/SystemConfiguration.fproj/SCPLock.c @@ -44,6 +44,7 @@ #include #include + static Boolean __SCPreferencesLock_helper(SCPreferencesRef prefs, Boolean wait) { @@ -75,7 +76,7 @@ __SCPreferencesLock_helper(SCPreferencesRef prefs, Boolean wait) goto error; } - prefsPrivate->locked = TRUE; + __SCPreferencesUpdateLockedState(prefs, TRUE); return TRUE; fail : @@ -223,10 +224,10 @@ has_O_EXLOCK(SCPreferencesPrivateRef prefsPrivate) return FALSE; } - bzero(&attrs, sizeof(attrs)); + memset(&attrs, 0, sizeof(attrs)); attrs.bitmapcount = ATTR_BIT_MAP_COUNT; attrs.volattr = ATTR_VOL_INFO | ATTR_VOL_CAPABILITIES; - bzero(&attrbuf, sizeof(attrbuf)); + memset(&attrbuf, 0, sizeof(attrbuf)); ret = getattrlist(statbuf.f_mntonname, // path (of mount point) &attrs, // attribute list &attrbuf, // attribute buffer @@ -480,7 +481,7 @@ SCPreferencesLock(SCPreferencesRef prefs, Boolean wait) */ if (stat(prefsPrivate->path, &statBuf) == -1) { if (errno == ENOENT) { - bzero(&statBuf, sizeof(statBuf)); + memset(&statBuf, 0, sizeof(statBuf)); } else { SC_log(LOG_INFO, "stat() failed: %s", strerror(errno)); @@ -515,7 +516,7 @@ SCPreferencesLock(SCPreferencesRef prefs, Boolean wait) SC_log(LOG_DEBUG, "SCPreferences() lock: %s", prefsPrivate->newPath ? prefsPrivate->newPath : prefsPrivate->path); - prefsPrivate->locked = TRUE; + __SCPreferencesUpdateLockedState(prefs, TRUE); pthread_mutex_unlock(&prefsPrivate->lock); return TRUE; diff --git a/SystemConfiguration.fproj/SCPOpen.c b/SystemConfiguration.fproj/SCPOpen.c index d800ce5..05ef3a3 100644 --- a/SystemConfiguration.fproj/SCPOpen.c +++ b/SystemConfiguration.fproj/SCPOpen.c @@ -1,5 +1,5 @@ /* - * Copyright(c) 2000-2018 Apple Inc. All rights reserved. + * Copyright(c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -34,7 +34,6 @@ * - initial revision */ -#include #include #include #include @@ -107,10 +106,15 @@ __SCPreferencesCopyDescription(CFTypeRef cf) { static void __SCPreferencesDeallocate(CFTypeRef cf) { - SCPreferencesPrivateRef prefsPrivate = (SCPreferencesPrivateRef)cf; + SCPreferencesRef prefs = (SCPreferencesRef)cf; + SCPreferencesPrivateRef prefsPrivate = (SCPreferencesPrivateRef)prefs; SC_log(LOG_DEBUG, "release %@", prefsPrivate); + if (prefsPrivate->locked) { + __SCPreferencesUpdateLockedState(prefs, FALSE); + } + /* release resources */ pthread_mutex_destroy(&prefsPrivate->lock); @@ -455,11 +459,11 @@ __SCPreferencesCreate(CFAllocatorRef allocator, goto done; } - SC_log(LOG_INFO, "open() failed: %s", strerror(errno)); + SC_log(LOG_NOTICE, "open() failed: %s", strerror(errno)); sc_status = kSCStatusAccessError; break; default : - SC_log(LOG_INFO, "open() failed: %s", strerror(errno)); + SC_log(LOG_NOTICE, "open() failed: %s", strerror(errno)); sc_status = kSCStatusFailed; break; } @@ -500,7 +504,7 @@ __SCPreferencesAccess(SCPreferencesRef prefs) // create signature if (fstat(fd, &statBuf) == -1) { SC_log(LOG_NOTICE, "fstat() failed: %s", strerror(errno)); - bzero(&statBuf, sizeof(statBuf)); + memset(&statBuf, 0, sizeof(statBuf)); } } else { switch (errno) { @@ -523,7 +527,7 @@ __SCPreferencesAccess(SCPreferencesRef prefs) SC_log(LOG_NOTICE, "open() failed: %s", strerror(errno)); break; } - bzero(&statBuf, sizeof(statBuf)); + memset(&statBuf, 0, sizeof(statBuf)); } if (prefsPrivate->signature != NULL) CFRelease(prefsPrivate->signature); @@ -593,8 +597,9 @@ __SCPreferencesAccess(SCPreferencesRef prefs) prefsPrivate->changed = TRUE; } - SC_log(LOG_DEBUG, "SCPreferences() access: %s", - prefsPrivate->newPath ? prefsPrivate->newPath : prefsPrivate->path); + SC_log(LOG_DEBUG, "SCPreferences() access: %s, size=%lld", + prefsPrivate->newPath ? prefsPrivate->newPath : prefsPrivate->path, + __SCPreferencesPrefsSize(prefs)); prefsPrivate->accessed = TRUE; return; @@ -905,6 +910,107 @@ __SCPreferencesRemoveSession(SCPreferencesRef prefs) } +static void +appendLockedPreferences(const void *key, const void *value, void *context) +{ +#pragma unused(key) + CFMutableStringRef str = (CFMutableStringRef)context; + + CFStringAppendFormat(str, NULL, CFSTR("%s%@"), + (CFStringGetLength(str) > 0) ? "\n" : "", + value); + return; +} + + +__private_extern__ void +__SCPreferencesUpdateLockedState(SCPreferencesRef prefs, Boolean locked) +{ + static dispatch_queue_t lockedQueue; + static CFMutableDictionaryRef lockedState; + static dispatch_once_t once; + SCPreferencesPrivateRef prefsPrivate = (SCPreferencesPrivateRef)prefs; + + dispatch_once(&once, ^{ + os_state_block_t state_block; + + lockedQueue = dispatch_queue_create("SCPreferences locked state queue", NULL); + + lockedState = CFDictionaryCreateMutable(NULL, + 0, + NULL, // NO retain/release + &kCFTypeDictionaryValueCallBacks); + + state_block = ^os_state_data_t(os_state_hints_t hints) { +#pragma unused(hints) + CFDataRef data = NULL; + Boolean ok; + os_state_data_t state_data; + size_t state_data_size; + CFIndex state_len; + CFMutableStringRef str; + + if (CFDictionaryGetCount(lockedState) == 0) { + // if no locked preferences + return NULL; + } + + str = CFStringCreateMutable(NULL, 0); + CFDictionaryApplyFunction(lockedState, appendLockedPreferences, str); + ok = _SCSerialize(str, &data, NULL, NULL); + CFRelease(str); + + state_len = (ok && (data != NULL)) ? CFDataGetLength(data) : 0; + state_data_size = OS_STATE_DATA_SIZE_NEEDED(state_len); + if (state_data_size > MAX_STATEDUMP_SIZE) { + SC_log(LOG_ERR, "locked SCPreferences : state data too large (%zd > %zd)", + state_data_size, + (size_t)MAX_STATEDUMP_SIZE); + if (data != NULL) CFRelease(data); + return NULL; + } + + state_data = calloc(1, state_data_size); + if (state_data == NULL) { + SC_log(LOG_ERR, "locked SCPreferences: could not allocate state data"); + if (data != NULL) CFRelease(data); + return NULL; + } + + state_data->osd_type = OS_STATE_DATA_SERIALIZED_NSCF_OBJECT; + state_data->osd_data_size = (uint32_t)state_len; + strlcpy(state_data->osd_title, "open/locked SCPreferences", sizeof(state_data->osd_title)); + if (state_len > 0) { + memcpy(state_data->osd_data, CFDataGetBytePtr(data), state_len); + } + if (data != NULL) CFRelease(data); + + return state_data; + }; + + (void) os_state_add_handler(lockedQueue, state_block); + }); + + // update the locked state + prefsPrivate->locked = locked; + + // add (or update) the locked preferences + dispatch_sync(lockedQueue, ^{ + if (locked) { + CFStringRef str; + + str = CFCopyDescription(prefs); + CFDictionarySetValue(lockedState, prefs, str); + CFRelease(str); + } else { + CFDictionaryRemoveValue(lockedState, prefs); + } + }); + + return; +} + + Boolean SCPreferencesSetCallback(SCPreferencesRef prefs, SCPreferencesCallBack callout, @@ -931,7 +1037,7 @@ SCPreferencesSetCallback(SCPreferencesRef prefs, prefsPrivate->rlsContext.release = NULL; prefsPrivate->rlsContext.copyDescription = NULL; if (context != NULL) { - bcopy(context, &prefsPrivate->rlsContext, sizeof(SCPreferencesContext)); + memcpy(&prefsPrivate->rlsContext, context, sizeof(SCPreferencesContext)); if (context->retain != NULL) { prefsPrivate->rlsContext.info = (void *)(*context->retain)(context->info); } diff --git a/SystemConfiguration.fproj/SCPUnlock.c b/SystemConfiguration.fproj/SCPUnlock.c index 8af8040..4c5e525 100644 --- a/SystemConfiguration.fproj/SCPUnlock.c +++ b/SystemConfiguration.fproj/SCPUnlock.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2004-2010, 2013, 2015, 2016 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2004-2010, 2013, 2015, 2016, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -37,6 +37,7 @@ #include #include + static Boolean __SCPreferencesUnlock_helper(SCPreferencesRef prefs) { @@ -64,7 +65,7 @@ __SCPreferencesUnlock_helper(SCPreferencesRef prefs) goto error; } - prefsPrivate->locked = FALSE; + __SCPreferencesUpdateLockedState(prefs, FALSE); return TRUE; fail : @@ -148,7 +149,7 @@ SCPreferencesUnlock(SCPreferencesRef prefs) SC_log(LOG_DEBUG, "SCPreferences() unlock: %s", prefsPrivate->newPath ? prefsPrivate->newPath : prefsPrivate->path); - prefsPrivate->locked = FALSE; + __SCPreferencesUpdateLockedState(prefs, FALSE); pthread_mutex_unlock(&prefsPrivate->lock); return TRUE; diff --git a/SystemConfiguration.fproj/SCPreferencesInternal.h b/SystemConfiguration.fproj/SCPreferencesInternal.h index 95fb934..4201dc4 100644 --- a/SystemConfiguration.fproj/SCPreferencesInternal.h +++ b/SystemConfiguration.fproj/SCPreferencesInternal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2007-2011, 2013-2016 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2007-2011, 2013-2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -29,11 +29,12 @@ #include #include #include +#include #include #include #ifndef SC_LOG_HANDLE -#define SC_LOG_HANDLE __log_SCPreferences() +#define SC_LOG_HANDLE __log_SCPreferences #endif // SC_LOG_HANDLE #include #include @@ -150,6 +151,10 @@ __SCPreferencesAddSession (SCPreferencesRef prefs); void __SCPreferencesRemoveSession (SCPreferencesRef prefs); +void +__SCPreferencesUpdateLockedState (SCPreferencesRef prefs, + Boolean locked); + CF_RETURNS_RETAINED CFDataRef __SCPSignatureFromStatbuf (const struct stat *statBuf); @@ -159,6 +164,9 @@ __SCPreferencesPath (CFAllocatorRef allocator, CFStringRef prefsID, Boolean useNewPrefs); +off_t +__SCPreferencesPrefsSize (SCPreferencesRef prefs); + CF_RETURNS_RETAINED CFStringRef _SCPNotificationKey (CFAllocatorRef allocator, diff --git a/SystemConfiguration.fproj/SCPreferencesKeychainPrivate.h b/SystemConfiguration.fproj/SCPreferencesKeychainPrivate.h index cb421e7..64d4342 100644 --- a/SystemConfiguration.fproj/SCPreferencesKeychainPrivate.h +++ b/SystemConfiguration.fproj/SCPreferencesKeychainPrivate.h @@ -25,7 +25,7 @@ #define _SCPREFERENCESKEYCHAINPRIVATE_H /* - * SCPreferencesKeychain.h + * SCPreferencesKeychainPrivate.h * - routines to deal with keychain passwords */ @@ -34,11 +34,7 @@ #include #include #include -#if !TARGET_OS_IPHONE #include -#else // !TARGET_OS_IPHONE -typedef struct CF_BRIDGED_TYPE(id) __SecKeychain *SecKeychainRef; -#endif // !TARGET_OS_IPHONE #pragma mark - #pragma mark Keychain helper APIs diff --git a/SystemConfiguration.fproj/SCPrivate.h b/SystemConfiguration.fproj/SCPrivate.h index 2a71f97..f9bf278 100644 --- a/SystemConfiguration.fproj/SCPrivate.h +++ b/SystemConfiguration.fproj/SCPrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -29,8 +29,8 @@ #include #include #include -#include #include +#include #include #include @@ -486,9 +486,9 @@ void SCLog (Boolean condition, #ifndef SC_LOG_HANDLE_TYPE #define SC_LOG_HANDLE_TYPE #endif // SC_LOG_HANDLE_TYPE - SC_LOG_HANDLE_TYPE os_log_t SC_LOG_HANDLE; + SC_LOG_HANDLE_TYPE os_log_t SC_LOG_HANDLE(void); #else // SC_LOG_HANDLE - #define SC_LOG_HANDLE _SC_LOG_DEFAULT() // use [SC] default os_log handle + #define SC_LOG_HANDLE _SC_LOG_DEFAULT // use [SC] default os_log handle #ifndef SC_LOG_OR_PRINT #define USE_SC_LOG_OR_PRINT 1 // and use '_sc_log' to control os_log, printf #endif // !SC_LOG_OR_PRINT @@ -497,7 +497,7 @@ void SCLog (Boolean condition, #if USE_SC_LOG_OR_PRINT #define SC_log(__level, __format, ...) \ do { \ - os_log_t __handle = SC_LOG_HANDLE; \ + os_log_t __handle = SC_LOG_HANDLE(); \ os_log_type_t __type = _SC_syslog_os_log_mapping(__level); \ \ if (((_sc_log != 1) && ((__level > LOG_DEBUG) || _sc_debug)) || \ @@ -513,8 +513,10 @@ void SCLog (Boolean condition, #else // USE_SC_LOG_OR_PRINT #define SC_log(__level, __format, ...) \ do { \ + os_log_t __handle = SC_LOG_HANDLE(); \ os_log_type_t __type = _SC_syslog_os_log_mapping(__level); \ - os_log_with_type(SC_LOG_HANDLE, __type, __format, ## __VA_ARGS__); \ + \ + os_log_with_type(__handle, __type, __format, ## __VA_ARGS__); \ } while (0) #endif // USE_SC_LOG_OR_PRINT #endif // !SC_log @@ -808,17 +810,14 @@ _SC_CFEqual(CFTypeRef val1, CFTypeRef val2) static __inline__ Boolean _SC_isAppleInternal() { - static int isInternal = 0; - - if (isInternal == 0) { - int ret; - struct stat statbuf; + static Boolean isInternal; + static dispatch_once_t once; - ret = stat("/AppleInternal", &statbuf); - isInternal = (ret == 0) ? 1 : 2; - } + dispatch_once(&once, ^{ + isInternal = os_variant_has_internal_content("com.apple.SystemConfiguration"); + }); - return (isInternal == 1); + return isInternal; } Boolean @@ -860,6 +859,18 @@ _SC_crash (const char *crash_info, CFStringRef notifyHeader, CFStringRef notifyMessage); +static __inline__ void +_SC_crash_once (const char *crash_info, + CFStringRef notifyHeader, + CFStringRef notifyMessage) +{ + static dispatch_once_t once; + + _dispatch_once(&once, ^{ + _SC_crash(crash_info, notifyHeader, notifyMessage); + }); +} + Boolean _SC_getconninfo (int socket, struct sockaddr_storage *src_addr, diff --git a/SystemConfiguration.fproj/SCSchemaDefinitions.c b/SystemConfiguration.fproj/SCSchemaDefinitions.c index b975b4f..ebb53ab 100644 --- a/SystemConfiguration.fproj/SCSchemaDefinitions.c +++ b/SystemConfiguration.fproj/SCSchemaDefinitions.c @@ -3,7 +3,6 @@ * DO NOT EDIT! */ -#include #include #include @@ -62,12 +61,16 @@ const CFStringRef kSCEntNetSMB = CFSTR("SMB" #endif // !TARGET_OS_IPHONE const CFStringRef kSCEntNet6to4 = CFSTR("6to4"); -const CFStringRef kSCEntNetActiveDuringSleepRequested = CFSTR("ActiveDuringSleepRequested"); -const CFStringRef kSCEntNetActiveDuringSleepSupported = CFSTR("ActiveDuringSleepSupported"); const CFStringRef kSCEntNetAppLayer = CFSTR("AppLayer"); const CFStringRef kSCEntNetEAPOL = CFSTR("EAPOL"); +const CFStringRef kSCEntNetIdleRoute = CFSTR("IdleRoute"); +const CFStringRef kSCEntNetInterfaceActiveDuringSleepRequested = CFSTR("ActiveDuringSleepRequested"); +const CFStringRef kSCEntNetInterfaceActiveDuringSleepSupported = CFSTR("ActiveDuringSleepSupported"); +const CFStringRef kSCEntNetInterfaceDelegation = CFSTR("InterfaceDelegation"); +const CFStringRef kSCEntNetIPv4ARPCollision = CFSTR("IPv4ARPCollision"); +const CFStringRef kSCEntNetIPv4PortInUse = CFSTR("PortInUse"); const CFStringRef kSCEntNetIPv4RouterARPFailure = CFSTR("IPv4RouterARPFailure"); const CFStringRef kSCEntNetIPv4RouterARPAlive = CFSTR("IPv4RouterARPAlive"); const CFStringRef kSCEntNetIPv6RouterExpired = CFSTR("IPv6RouterExpired"); @@ -78,6 +81,7 @@ const CFStringRef kSCEntNetNAT64 = CFSTR("NAT6 const CFStringRef kSCEntNetNAT64PrefixRequest = CFSTR("NAT64PrefixRequest"); const CFStringRef kSCEntNetOnDemand = CFSTR("OnDemand"); const CFStringRef kSCEntNetQoSMarkingPolicy = CFSTR("QoSMarkingPolicy"); +const CFStringRef kSCEntNetRefreshConfiguration = CFSTR("RefreshConfiguration"); const CFStringRef kSCEntNetService = CFSTR("__SERVICE__"); const CFStringRef kSCEntNetVPN = CFSTR("VPN"); const CFStringRef kSCPropNetOverridePrimary = CFSTR("OverridePrimary"); @@ -220,6 +224,7 @@ const CFStringRef kSCPropNetIPv6AdditionalRoutes = CFSTR("Addi const CFStringRef kSCPropNetIPv6EnableCGA = CFSTR("EnableCGA"); const CFStringRef kSCPropNetIPv6ExcludedRoutes = CFSTR("ExcludedRoutes"); const CFStringRef kSCPropNetIPv6IncludedRoutes = CFSTR("IncludedRoutes"); +const CFStringRef kSCPropNetIPv6LinkLocalAddress = CFSTR("LinkLocalAddress"); const CFStringRef kSCPropNetIPv6PerformPLATDiscovery = CFSTR("PerformPLATDiscovery"); const CFStringRef kSCPropNetIPv6RouteDestinationAddress = CFSTR("DestinationAddress"); const CFStringRef kSCPropNetIPv6RoutePrefixLength = CFSTR("PrefixLength"); @@ -267,8 +272,8 @@ const CFStringRef kSCPropNetPPPDisconnectOnSleep = CFSTR("Disc const CFStringRef kSCPropNetPPPDisconnectOnWake = CFSTR("DisconnectOnWake"); const CFStringRef kSCPropNetPPPDisconnectOnWakeTimer = CFSTR("DisconnectOnWakeTimer"); const CFStringRef kSCPropNetPPPDisconnectTime = CFSTR("DisconnectTime"); -const CFStringRef kSCPropNetPPPIdleReminderTimer = CFSTR("IdleReminderTimer"); const CFStringRef kSCPropNetPPPIdleReminder = CFSTR("IdleReminder"); +const CFStringRef kSCPropNetPPPIdleReminderTimer = CFSTR("IdleReminderTimer"); const CFStringRef kSCPropNetPPPLastCause = CFSTR("LastCause"); const CFStringRef kSCPropNetPPPLogfile = CFSTR("Logfile"); const CFStringRef kSCPropNetPPPPlugins = CFSTR("Plugins"); diff --git a/SystemConfiguration.fproj/SCSchemaDefinitions.h b/SystemConfiguration.fproj/SCSchemaDefinitions.h index 236eaa3..94d61c9 100644 --- a/SystemConfiguration.fproj/SCSchemaDefinitions.h +++ b/SystemConfiguration.fproj/SCSchemaDefinitions.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -252,11 +252,10 @@ * kSCPropNetPPPDisconnectOnLogout "DisconnectOnLogout" CFNumber (0 or 1) * kSCPropNetPPPDisconnectOnSleep "DisconnectOnSleep" CFNumber (0 or 1) * kSCPropNetPPPDisconnectTime "DisconnectTime" CFNumber - * kSCPropNetPPPIdleReminderTimer "IdleReminderTimer" CFNumber * kSCPropNetPPPIdleReminder "IdleReminder" CFNumber (0 or 1) + * kSCPropNetPPPIdleReminderTimer "IdleReminderTimer" CFNumber * kSCPropNetPPPLastCause "LastCause" CFNumber * kSCPropNetPPPLogfile "Logfile" CFString - * kSCPropNetPPPPlugins "Plugins" CFArray[CFString] * kSCPropNetPPPRetryConnectTime "RetryConnectTime" CFNumber * kSCPropNetPPPSessionTimer "SessionTimer" CFNumber * kSCPropNetPPPStatus "Status" CFNumber @@ -264,7 +263,6 @@ * kSCPropNetPPPVerboseLogging "VerboseLogging" CFNumber (0 or 1) * * --- Auth: --- - * kSCPropNetPPPAuthEAPPlugins "AuthEAPPlugins" CFArray[CFString] * kSCPropNetPPPAuthName "AuthName" CFString * kSCPropNetPPPAuthPassword "AuthPassword" CFString * kSCPropNetPPPAuthPasswordEncryption "AuthPasswordEncryption" CFString @@ -1585,13 +1583,6 @@ extern const CFStringRef kSCPropNetPPPDisconnectOnSleep API_ extern const CFStringRef kSCPropNetPPPDisconnectTime API_AVAILABLE(macos(10.3)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); #define kSCPropNetPPPDisconnectTime kSCPropNetPPPDisconnectTime -/*! - @const kSCPropNetPPPIdleReminderTimer - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPIdleReminderTimer API_AVAILABLE(macos(10.1)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); -#define kSCPropNetPPPIdleReminderTimer kSCPropNetPPPIdleReminderTimer - /*! @const kSCPropNetPPPIdleReminder @discussion Value is a CFNumber (0 or 1) @@ -1599,6 +1590,13 @@ extern const CFStringRef kSCPropNetPPPIdleReminderTimer API_ extern const CFStringRef kSCPropNetPPPIdleReminder API_AVAILABLE(macos(10.1)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); #define kSCPropNetPPPIdleReminder kSCPropNetPPPIdleReminder +/*! + @const kSCPropNetPPPIdleReminderTimer + @discussion Value is a CFNumber + */ +extern const CFStringRef kSCPropNetPPPIdleReminderTimer API_AVAILABLE(macos(10.1)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCPropNetPPPIdleReminderTimer kSCPropNetPPPIdleReminderTimer + /*! @const kSCPropNetPPPLastCause @discussion Value is a CFNumber @@ -1617,7 +1615,7 @@ extern const CFStringRef kSCPropNetPPPLogfile API_ @const kSCPropNetPPPPlugins @discussion Value is a CFArray[CFString] */ -extern const CFStringRef kSCPropNetPPPPlugins API_AVAILABLE(macos(10.2)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +extern const CFStringRef kSCPropNetPPPPlugins API_DEPRECATED("No longer supported", macos(10.2,10.15)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); #define kSCPropNetPPPPlugins kSCPropNetPPPPlugins /*! @@ -1659,7 +1657,7 @@ extern const CFStringRef kSCPropNetPPPVerboseLogging API_ @const kSCPropNetPPPAuthEAPPlugins @discussion Value is a CFArray[CFString] */ -extern const CFStringRef kSCPropNetPPPAuthEAPPlugins API_AVAILABLE(macos(10.3)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +extern const CFStringRef kSCPropNetPPPAuthEAPPlugins API_DEPRECATED("No longer supported", macos(10.3,10.15)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); #define kSCPropNetPPPAuthEAPPlugins kSCPropNetPPPAuthEAPPlugins /*! diff --git a/SystemConfiguration.fproj/SCSchemaDefinitionsPrivate.h b/SystemConfiguration.fproj/SCSchemaDefinitionsPrivate.h index 7691229..35b00fd 100644 --- a/SystemConfiguration.fproj/SCSchemaDefinitionsPrivate.h +++ b/SystemConfiguration.fproj/SCSchemaDefinitionsPrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -39,11 +39,15 @@ * * Network Entity Keys * - * kSCEntNetActiveDuringSleepRequested "ActiveDuringSleepRequested" CFDictionary - * kSCEntNetActiveDuringSleepSupported "ActiveDuringSleepSupported" CFDictionary * kSCEntNetAppLayer "AppLayer" CFDictionary * kSCEntNetCommCenter "com.apple.CommCenter" CFDictionary * kSCEntNetEAPOL "EAPOL" CFDictionary + * kSCEntNetIdleRoute "IdleRoute" + * kSCEntNetInterfaceActiveDuringSleepRequested "ActiveDuringSleepRequested" CFDictionary + * kSCEntNetInterfaceActiveDuringSleepSupported "ActiveDuringSleepSupported" CFDictionary + * kSCEntNetInterfaceDelegation "InterfaceDelegation" + * kSCEntNetIPv4ARPCollision "IPv4ARPCollision" + * kSCEntNetIPv4PortInUse "PortInUse" * kSCEntNetIPv4RouterARPFailure "IPv4RouterARPFailure" * kSCEntNetIPv4RouterARPAlive "IPv4RouterARPAlive" * kSCEntNetIPv6RouterExpired "IPv6RouterExpired" @@ -54,6 +58,7 @@ * kSCEntNetNAT64PrefixRequest "NAT64PrefixRequest" * kSCEntNetOnDemand "OnDemand" CFDictionary * kSCEntNetQoSMarkingPolicy "QoSMarkingPolicy" CFDictionary + * kSCEntNetRefreshConfiguration "RefreshConfiguration" * kSCEntNetService "__SERVICE__" CFDictionary * kSCEntNetVPN "VPN" CFDictionary * @@ -125,6 +130,7 @@ * kSCPropNetIPv6EnableCGA "EnableCGA" CFNumber (0 or 1) * kSCPropNetIPv6ExcludedRoutes "ExcludedRoutes" CFArray[CFDictionary] * kSCPropNetIPv6IncludedRoutes "IncludedRoutes" CFArray[CFDictionary] + * kSCPropNetIPv6LinkLocalAddress "LinkLocalAddress" CFString * kSCPropNetIPv6PerformPLATDiscovery "PerformPLATDiscovery" CFBoolean * * --- kSCPropNetIPv6AdditionalRoutes, kSCPropNetIPv6IncludedRoutes, kSCPropNetIPv6ExcludedRoutes [CFDictionary] keys --- @@ -360,20 +366,6 @@ extern const CFStringRef kSCPrefVirtualNetworkInterfaces API_ @group Network Entity Keys */ -/*! - @const kSCEntNetActiveDuringSleepRequested - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetActiveDuringSleepRequested API_AVAILABLE(macos(10.10)) SPI_AVAILABLE(ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); -#define kSCEntNetActiveDuringSleepRequested kSCEntNetActiveDuringSleepRequested - -/*! - @const kSCEntNetActiveDuringSleepSupported - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetActiveDuringSleepSupported API_AVAILABLE(macos(10.10)) SPI_AVAILABLE(ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); -#define kSCEntNetActiveDuringSleepSupported kSCEntNetActiveDuringSleepSupported - /*! @const kSCEntNetAppLayer @discussion Value is a CFDictionary @@ -395,6 +387,44 @@ extern const CFStringRef kSCEntNetCommCenter SPI_ extern const CFStringRef kSCEntNetEAPOL API_AVAILABLE(macos(10.5)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); #define kSCEntNetEAPOL kSCEntNetEAPOL +/*! + @const kSCEntNetIdleRoute + */ +extern const CFStringRef kSCEntNetIdleRoute API_AVAILABLE(macos(10.7)) SPI_AVAILABLE(ios(5.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCEntNetIdleRoute kSCEntNetIdleRoute + +/*! + @const kSCEntNetInterfaceActiveDuringSleepRequested + @discussion Value is a CFDictionary + */ +extern const CFStringRef kSCEntNetInterfaceActiveDuringSleepRequested API_AVAILABLE(macos(10.10)) SPI_AVAILABLE(ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCEntNetInterfaceActiveDuringSleepRequested kSCEntNetInterfaceActiveDuringSleepRequested + +/*! + @const kSCEntNetInterfaceActiveDuringSleepSupported + @discussion Value is a CFDictionary + */ +extern const CFStringRef kSCEntNetInterfaceActiveDuringSleepSupported API_AVAILABLE(macos(10.10)) SPI_AVAILABLE(ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCEntNetInterfaceActiveDuringSleepSupported kSCEntNetInterfaceActiveDuringSleepSupported + +/*! + @const kSCEntNetInterfaceDelegation + */ +extern const CFStringRef kSCEntNetInterfaceDelegation API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0)); +#define kSCEntNetInterfaceDelegation kSCEntNetInterfaceDelegation + +/*! + @const kSCEntNetIPv4ARPCollision + */ +extern const CFStringRef kSCEntNetIPv4ARPCollision API_AVAILABLE(macos(10.6)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCEntNetIPv4ARPCollision kSCEntNetIPv4ARPCollision + +/*! + @const kSCEntNetIPv4PortInUse + */ +extern const CFStringRef kSCEntNetIPv4PortInUse API_AVAILABLE(macos(10.6)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCEntNetIPv4PortInUse kSCEntNetIPv4PortInUse + /*! @const kSCEntNetIPv4RouterARPFailure */ @@ -410,7 +440,7 @@ extern const CFStringRef kSCEntNetIPv4RouterARPAlive API_ /*! @const kSCEntNetIPv6RouterExpired */ -extern const CFStringRef kSCEntNetIPv6RouterExpired API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(4.0)); +extern const CFStringRef kSCEntNetIPv6RouterExpired API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(2.0)); #define kSCEntNetIPv6RouterExpired kSCEntNetIPv6RouterExpired /*! @@ -438,13 +468,13 @@ extern const CFStringRef kSCEntNetLoopback API_ @const kSCEntNetNAT64 @discussion Value is a CFDictionary */ -extern const CFStringRef kSCEntNetNAT64 API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0)); +extern const CFStringRef kSCEntNetNAT64 API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0)); #define kSCEntNetNAT64 kSCEntNetNAT64 /*! @const kSCEntNetNAT64PrefixRequest */ -extern const CFStringRef kSCEntNetNAT64PrefixRequest API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(4.0)); +extern const CFStringRef kSCEntNetNAT64PrefixRequest API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(2.0)); #define kSCEntNetNAT64PrefixRequest kSCEntNetNAT64PrefixRequest /*! @@ -458,9 +488,15 @@ extern const CFStringRef kSCEntNetOnDemand API_ @const kSCEntNetQoSMarkingPolicy @discussion Value is a CFDictionary */ -extern const CFStringRef kSCEntNetQoSMarkingPolicy API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0)); +extern const CFStringRef kSCEntNetQoSMarkingPolicy API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); #define kSCEntNetQoSMarkingPolicy kSCEntNetQoSMarkingPolicy +/*! + @const kSCEntNetRefreshConfiguration + */ +extern const CFStringRef kSCEntNetRefreshConfiguration API_AVAILABLE(macos(10.5)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); +#define kSCEntNetRefreshConfiguration kSCEntNetRefreshConfiguration + /*! @const kSCEntNetService @discussion Value is a CFDictionary @@ -682,7 +718,7 @@ extern const CFStringRef kSCPropNetIPv4AdditionalRoutes API_ @const kSCPropNetIPv4CLAT46 @discussion Value is a CFBoolean */ -extern const CFStringRef kSCPropNetIPv4CLAT46 API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0)); +extern const CFStringRef kSCPropNetIPv4CLAT46 API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0)); #define kSCPropNetIPv4CLAT46 kSCPropNetIPv4CLAT46 /*! @@ -762,7 +798,7 @@ extern const CFStringRef kSCPropNetIPv6AdditionalRoutes API_ @const kSCPropNetIPv6EnableCGA @discussion Value is a CFNumber (0 or 1) */ -extern const CFStringRef kSCPropNetIPv6EnableCGA API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0)); +extern const CFStringRef kSCPropNetIPv6EnableCGA API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); #define kSCPropNetIPv6EnableCGA kSCPropNetIPv6EnableCGA /*! @@ -779,11 +815,18 @@ extern const CFStringRef kSCPropNetIPv6ExcludedRoutes API_ extern const CFStringRef kSCPropNetIPv6IncludedRoutes API_AVAILABLE(macos(10.7)) SPI_AVAILABLE(ios(4.0), tvos(9.0), watchos(1.0), bridgeos(1.0)); #define kSCPropNetIPv6IncludedRoutes kSCPropNetIPv6IncludedRoutes +/*! + @const kSCPropNetIPv6LinkLocalAddress + @discussion Value is a CFString + */ +extern const CFStringRef kSCPropNetIPv6LinkLocalAddress API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); +#define kSCPropNetIPv6LinkLocalAddress kSCPropNetIPv6LinkLocalAddress + /*! @const kSCPropNetIPv6PerformPLATDiscovery @discussion Value is a CFBoolean */ -extern const CFStringRef kSCPropNetIPv6PerformPLATDiscovery API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0)); +extern const CFStringRef kSCPropNetIPv6PerformPLATDiscovery API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0)); #define kSCPropNetIPv6PerformPLATDiscovery kSCPropNetIPv6PerformPLATDiscovery /*! @@ -979,21 +1022,21 @@ extern const CFStringRef kSCValNetPPPOnDemandPriorityLow API_ @const kSCPropNetNAT64PrefixList @discussion Value is a CFArray[CFString] */ -extern const CFStringRef kSCPropNetNAT64PrefixList API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0)); +extern const CFStringRef kSCPropNetNAT64PrefixList API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0)); #define kSCPropNetNAT64PrefixList kSCPropNetNAT64PrefixList /*! @const kSCPropNetNAT64PLATDiscoveryStartTime @discussion Value is a CFDate */ -extern const CFStringRef kSCPropNetNAT64PLATDiscoveryStartTime API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0)); +extern const CFStringRef kSCPropNetNAT64PLATDiscoveryStartTime API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0)); #define kSCPropNetNAT64PLATDiscoveryStartTime kSCPropNetNAT64PLATDiscoveryStartTime /*! @const kSCPropNetNAT64PLATDiscoveryCompletionTime @discussion Value is a CFDate */ -extern const CFStringRef kSCPropNetNAT64PLATDiscoveryCompletionTime API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0)); +extern const CFStringRef kSCPropNetNAT64PLATDiscoveryCompletionTime API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0)); #define kSCPropNetNAT64PLATDiscoveryCompletionTime kSCPropNetNAT64PLATDiscoveryCompletionTime /*! @@ -1071,21 +1114,21 @@ extern const CFStringRef kSCPropNetProxiesSupplementalMatchDomain API_ @const kSCPropNetQoSMarkingAppleAudioVideoCalls @discussion Value is a CFBoolean */ -extern const CFStringRef kSCPropNetQoSMarkingAppleAudioVideoCalls API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0)); +extern const CFStringRef kSCPropNetQoSMarkingAppleAudioVideoCalls API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); #define kSCPropNetQoSMarkingAppleAudioVideoCalls kSCPropNetQoSMarkingAppleAudioVideoCalls /*! @const kSCPropNetQoSMarkingEnabled @discussion Value is a CFBoolean */ -extern const CFStringRef kSCPropNetQoSMarkingEnabled API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0)); +extern const CFStringRef kSCPropNetQoSMarkingEnabled API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); #define kSCPropNetQoSMarkingEnabled kSCPropNetQoSMarkingEnabled /*! @const kSCPropNetQoSMarkingWhitelistedAppIdentifiers @discussion Value is a CFArray[CFString] */ -extern const CFStringRef kSCPropNetQoSMarkingWhitelistedAppIdentifiers API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0)); +extern const CFStringRef kSCPropNetQoSMarkingWhitelistedAppIdentifiers API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); #define kSCPropNetQoSMarkingWhitelistedAppIdentifiers kSCPropNetQoSMarkingWhitelistedAppIdentifiers /*! @@ -1103,7 +1146,7 @@ extern const CFStringRef kSCPropNetServicePrimaryRank API_ @const kSCPropNetServiceServiceIndex @discussion Value is a CFNumber */ -extern const CFStringRef kSCPropNetServiceServiceIndex API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0)); +extern const CFStringRef kSCPropNetServiceServiceIndex API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0)); #define kSCPropNetServiceServiceIndex kSCPropNetServiceServiceIndex /*! diff --git a/SystemConfiguration.fproj/SNHelper.c b/SystemConfiguration.fproj/SNHelper.c index 4049557..7e825c8 100644 --- a/SystemConfiguration.fproj/SNHelper.c +++ b/SystemConfiguration.fproj/SNHelper.c @@ -163,4 +163,3 @@ isa_xpc_error(xpc_object_t obj) { return isa_xpc_object_of_type(obj, XPC_TYPE_ERROR); } - diff --git a/SystemConfiguration.fproj/SystemConfiguration.h b/SystemConfiguration.fproj/SystemConfiguration.h index c30a683..fab6098 100644 --- a/SystemConfiguration.fproj/SystemConfiguration.h +++ b/SystemConfiguration.fproj/SystemConfiguration.h @@ -169,8 +169,9 @@ int SCError (void) API_AVAILABLE(macos(10.1), ios(2.0)); /*! @function SCErrorString @discussion Returns a pointer to the message string - associated with the specified status or error. - @param status The SCDynamicStoreStatus to be returned. + associated with the specified status or error + number. + @param status The status or error number. @result Returns a pointer to the error message string. */ const char * SCErrorString (int status) API_AVAILABLE(macos(10.1), ios(2.0)); diff --git a/SystemConfiguration.fproj/SystemConfigurationInternal.h b/SystemConfiguration.fproj/SystemConfigurationInternal.h index 1c9e1f3..a961d64 100644 --- a/SystemConfiguration.fproj/SystemConfigurationInternal.h +++ b/SystemConfiguration.fproj/SystemConfigurationInternal.h @@ -30,9 +30,6 @@ #include "SCDynamicStoreInternal.h" -extern const unsigned char * SystemConfigurationVersionString; -extern const double SystemConfigurationVersionNumber; - #if !TARGET_OS_IPHONE extern const CFStringRef kSCEntNetAppleTalk; extern const CFStringRef kSCEntNetNetInfo; diff --git a/SystemConfiguration.fproj/VLANConfiguration.c b/SystemConfiguration.fproj/VLANConfiguration.c index cd6cdf8..e505e57 100644 --- a/SystemConfiguration.fproj/VLANConfiguration.c +++ b/SystemConfiguration.fproj/VLANConfiguration.c @@ -380,8 +380,8 @@ _SCVLANInterfaceCopyActive(void) continue; } - bzero(&ifr, sizeof(ifr)); - bzero(&vreq, sizeof(vreq)); + memset(&ifr, 0, sizeof(ifr)); + memset(&vreq, 0, sizeof(vreq)); strlcpy(ifr.ifr_name, ifp->ifa_name, sizeof(ifr.ifr_name)); ifr.ifr_data = (caddr_t)&vreq; @@ -857,8 +857,8 @@ __vlan_set(int s, CFStringRef interface_if, CFStringRef physical_if, CFNumberRef int tag_val; struct vlanreq vreq; - bzero(&ifr, sizeof(ifr)); - bzero(&vreq, sizeof(vreq)); + memset(&ifr, 0, sizeof(ifr)); + memset(&vreq, 0, sizeof(vreq)); // interface (void) _SC_cfstring_to_cstring(interface_if, @@ -894,8 +894,8 @@ __vlan_clear(int s, CFStringRef interface_if) struct ifreq ifr; struct vlanreq vreq; - bzero(&ifr, sizeof(ifr)); - bzero(&vreq, sizeof(vreq)); + memset(&ifr, 0, sizeof(ifr)); + memset(&vreq, 0, sizeof(vreq)); // interface (void) _SC_cfstring_to_cstring(interface_if, @@ -905,7 +905,7 @@ __vlan_clear(int s, CFStringRef interface_if) ifr.ifr_data = (caddr_t)&vreq; // clear physical interface - bzero(&vreq.vlr_parent, sizeof(vreq.vlr_parent)); + memset(&vreq.vlr_parent, 0, sizeof(vreq.vlr_parent)); // clear tag vreq.vlr_tag = 0; diff --git a/SystemConfiguration.fproj/VPNAppLayer.c b/SystemConfiguration.fproj/VPNAppLayer.c index 1462f70..90e32e1 100644 --- a/SystemConfiguration.fproj/VPNAppLayer.c +++ b/SystemConfiguration.fproj/VPNAppLayer.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2016 Apple Inc. + * Copyright (c) 2012-2018 Apple Inc. * All rights reserved. */ diff --git a/SystemConfiguration.fproj/config.defs b/SystemConfiguration.fproj/config.defs index 836f366..4d0c294 100644 --- a/SystemConfiguration.fproj/config.defs +++ b/SystemConfiguration.fproj/config.defs @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2011, 2012, 2015, 2019 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2011, 2012, 2015, 2018-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -36,6 +36,7 @@ subsystem config 20000; serverprefix _; +UseSpecialReplyPort 1; import "config_types.h"; @@ -185,10 +186,7 @@ routine notifyviaport ( server : mach_port_t; skip; /* was notifyviafd (passing UNIX domain socket filename) */ -routine notifyviasignal ( server : mach_port_t; - task : task_t /*task_move_send_t*/; - sig : int; - out status : int); + skip; /* was notifyviasignal */ routine notifycancel ( server : mach_port_t; out status : int); diff --git a/SystemConfiguration.fproj/English.lproj/Localizable.strings b/SystemConfiguration.fproj/en.lproj/Localizable.strings similarity index 100% rename from SystemConfiguration.fproj/English.lproj/Localizable.strings rename to SystemConfiguration.fproj/en.lproj/Localizable.strings diff --git a/SystemConfiguration.fproj/English.lproj/NetworkInterface.strings b/SystemConfiguration.fproj/en.lproj/NetworkInterface.strings similarity index 100% rename from SystemConfiguration.fproj/English.lproj/NetworkInterface.strings rename to SystemConfiguration.fproj/en.lproj/NetworkInterface.strings diff --git a/SystemConfiguration.fproj/genSCPreferences.c b/SystemConfiguration.fproj/genSCPreferences.c index e8c6d94..07ba693 100644 --- a/SystemConfiguration.fproj/genSCPreferences.c +++ b/SystemConfiguration.fproj/genSCPreferences.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -62,7 +62,7 @@ char copyright_string[] = "/*\n" -" * Copyright (c) 2000-2018 Apple Inc. All rights reserved.\n" +" * Copyright (c) 2000-2019 Apple Inc. All rights reserved.\n" " *\n" " * @APPLE_LICENSE_HEADER_START@\n" " *\n" @@ -102,7 +102,9 @@ typedef enum { SC_10_1_10_9, // deprecated in 10.9 SC_10_2_10_9, // deprecated in 10.9 SC_10_2_10_13, // deprecated in 10.13 + SC_10_2_10_15, // deprecated in 10.15 SC_10_3_10_9, // deprecated in 10.9 + SC_10_3_10_15, // deprecated in 10.15 SC_10_4_10_9, // deprecated in 10.9 SC_10_6_IPHONE_2_0, SC_10_6_IPHONE_3_0, @@ -126,6 +128,7 @@ typedef enum { SC_10_13_IPHONE_10_0_PRIVATE, SC_10_13_IPHONE_11_0_PRIVATE, SC_10_14_IPHONE_12_0_PRIVATE, + SC_10_15_IPHONE_13_0_PRIVATE, SC_IPHONE_2_0_PRIVATE, SC_IPHONE_7_0_PRIVATE, SC_IPHONE_8_0_PRIVATE, @@ -218,6 +221,7 @@ typedef enum { #define CGA "CGA" #define CHAP "CHAP" #define CLAT46 "CLAT46" +#define COLLISION "Collision" #define COMM "Comm" #define COMPATIBLE "Compatible" #define COMPRESSIONACFIELD "CompressionACField" @@ -226,6 +230,7 @@ typedef enum { #define COMPUTERNAME "ComputerName" #define COMPLETIONTIME "CompletionTime" #define CONFIGMETHOD "ConfigMethod" +#define CONFIGURATION "Configuration" #define CONFIRMED "Confirmed" #define CONNECT "Connect" #define CONNECTDELAY "ConnectDelay" @@ -240,6 +245,7 @@ typedef enum { #define DATACOMPRESSION "DataCompression" #define DEFAULT "Default" #define DEFAULTZONE "DefaultZone" +#define DELEGATION "Delegation" #define DESIGNATED "Designated" #define DEST "Dest" #define DESTINATION "Destination" @@ -308,8 +314,7 @@ typedef enum { #define HYBRID "Hybrid" #define IDENTIFIER "Identifier" #define IDENTIFIERS "Identifiers" -#define IDLEREMINDER "IdleReminder" -#define IDLEREMINDERTIMER "IdleReminderTimer" +#define IDLE "Idle" #define IFNEEDED "IfNeeded" #define IGNORE "Ignore" #define IGNOREDIALTONE "IgnoreDialTone" @@ -392,6 +397,7 @@ typedef enum { #define PLUGINS "Plugins" #define POLICY "Policy" #define PORT "Port" +#define PORTINUSE "PortInUse" #define POWER "Power" #define PPP "PPP" #define PPPOE "PPPoE" @@ -419,6 +425,7 @@ typedef enum { #define REDIAL "Redial" #define REDIALCOUNT "RedialCount" #define REDIALINTERVAL "RedialInterval" +#define REFRESH "Refresh" #define REGION "Region" #define RELAY "Relay" #define REMINDER "Reminder" @@ -483,6 +490,7 @@ typedef enum { #define TAGS "Tags" #define TERMINALSCRIPT "TerminalScript" #define TIMEOUT "Timeout" +#define TIMER "Timer" #define TIMESTAMP "TimeStamp" #define TOKEN "Token" #define TRANSMITACCM "TransmitACCM" @@ -606,20 +614,25 @@ static schemaDefinition names[] = { { GROUP_PRIVATE, NETENT, "Network Entity Keys", NULL, NULL }, - { SC_10_10_IPHONE_7_0_PRIVATE, NETENT, ACTIVE DURINGSLEEP REQUESTED, NULL, CFDICTIONARY}, - { SC_10_10_IPHONE_7_0_PRIVATE, NETENT, ACTIVE DURINGSLEEP SUPPORTED, NULL, CFDICTIONARY}, { SC_10_9_IPHONE_7_0_PRIVATE, NETENT, APP LAYER, NULL, CFDICTIONARY}, { SC_10_5_PRIVATE, NETENT, EAPOL, NULL, CFDICTIONARY }, - { SC_10_10_IPHONE_8_0_PRIVATE, NETENT, IPV4 ROUTER ARP FAILURE, NULL, NULL}, - { SC_10_10_IPHONE_8_0_PRIVATE, NETENT, IPV4 ROUTER ARP ALIVE, NULL, NULL}, - { SC_10_13_IPHONE_11_0_PRIVATE, NETENT, IPV6 ROUTER EXPIRED, NULL, NULL}, + { SC_10_7_IPHONE_5_0_PRIVATE, NETENT, IDLE ROUTE, NULL, NULL}, // notification + { SC_10_10_IPHONE_7_0_PRIVATE, NETENT, INTERFACE ACTIVE DURINGSLEEP REQUESTED, ACTIVE DURINGSLEEP REQUESTED, CFDICTIONARY}, + { SC_10_10_IPHONE_7_0_PRIVATE, NETENT, INTERFACE ACTIVE DURINGSLEEP SUPPORTED, ACTIVE DURINGSLEEP SUPPORTED, CFDICTIONARY}, + { SC_10_15_IPHONE_13_0_PRIVATE, NETENT, INTERFACE DELEGATION, NULL, NULL}, // notification + { SC_10_6_IPHONE_2_0_PRIVATE, NETENT, IPV4 ARP COLLISION, NULL, NULL}, // notification + { SC_10_6_IPHONE_2_0_PRIVATE, NETENT, IPV4 PORTINUSE, PORTINUSE, NULL}, // notification + { SC_10_10_IPHONE_8_0_PRIVATE, NETENT, IPV4 ROUTER ARP FAILURE, NULL, NULL}, // notification + { SC_10_10_IPHONE_8_0_PRIVATE, NETENT, IPV4 ROUTER ARP ALIVE, NULL, NULL}, // notification + { SC_10_13_IPHONE_11_0_PRIVATE, NETENT, IPV6 ROUTER EXPIRED, NULL, NULL}, // notification { SC_10_9_IPHONE_7_0_PRIVATE, NETENT, LINKISSUES, NULL, CFDICTIONARY}, { SC_10_7_IPHONE_5_0_PRIVATE, NETENT, LINKQUALITY, NULL, CFDICTIONARY}, { SC_10_7_IPHONE_4_0_PRIVATE, NETENT, LOOPBACK, NULL, CFDICTIONARY }, { SC_10_14_IPHONE_12_0_PRIVATE, NETENT, NAT64, NULL, CFDICTIONARY }, - { SC_10_13_IPHONE_11_0_PRIVATE, NETENT, NAT64 PREFIX REQUEST, NULL, NULL}, + { SC_10_13_IPHONE_11_0_PRIVATE, NETENT, NAT64 PREFIX REQUEST, NULL, NULL}, // notification { SC_10_6_IPHONE_3_0_PRIVATE, NETENT, ONDEMAND, NULL, CFDICTIONARY }, { SC_10_13_IPHONE_10_0_PRIVATE, NETENT, QOSMARKING POLICY, NULL, CFDICTIONARY }, + { SC_10_5_PRIVATE, NETENT, REFRESH CONFIGURATION, NULL, NULL }, // notification { SC_10_6_IPHONE_2_0_PRIVATE, NETENT, SERVICE, "__SERVICE__", CFDICTIONARY }, { SC_10_7_IPHONE_4_0_PRIVATE, NETENT, VPN, NULL, CFDICTIONARY }, { COMMENT_PRIVATE, "", NULL, NULL, NULL }, @@ -870,6 +883,7 @@ static schemaDefinition names[] = { { SC_10_12_IPHONE_10_0_PRIVATE, NETPROP IPV6, ENABLE CGA, NULL, CFNUMBER_BOOL }, { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6, EXCLUDED ROUTES, NULL, CFARRAY_CFDICTIONARY }, { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6, INCLUDED ROUTES, NULL, CFARRAY_CFDICTIONARY }, + { SC_10_12_IPHONE_10_0_PRIVATE, NETPROP IPV6, LINKLOCAL ADDRESS, NULL, CFSTRING }, { SC_10_14_IPHONE_12_0_PRIVATE, NETPROP IPV6, PERFORM PLAT DISCOVERY, NULL, CFBOOLEAN }, { COMMENT_PRIVATE, "", NULL, NULL, NULL }, { COMMENT_PRIVATE, @@ -971,11 +985,11 @@ static schemaDefinition names[] = { { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP PPP, DISCONNECTONWAKE, NULL, CFNUMBER_BOOL }, { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP PPP, DISCONNECTONWAKETIMER, NULL, CFNUMBER }, { SC_10_3, NETPROP PPP, DISCONNECTTIME, NULL, CFNUMBER }, - { SC_10_1, NETPROP PPP, IDLEREMINDERTIMER, NULL, CFNUMBER }, - { SC_10_1, NETPROP PPP, IDLEREMINDER, NULL, CFNUMBER_BOOL }, + { SC_10_1, NETPROP PPP, IDLE REMINDER, NULL, CFNUMBER_BOOL }, + { SC_10_1, NETPROP PPP, IDLE REMINDER TIMER, NULL, CFNUMBER }, { SC_10_2, NETPROP PPP, LAST CAUSE, NULL, CFNUMBER }, { SC_10_1, NETPROP PPP, LOGFILE, NULL, CFSTRING }, - { SC_10_2, NETPROP PPP, PLUGINS, NULL, CFARRAY_CFSTRING }, + { SC_10_2_10_15, NETPROP PPP, PLUGINS, NULL, CFARRAY_CFSTRING }, { SC_10_3, NETPROP PPP, RETRYCONNECTTIME, NULL, CFNUMBER }, { SC_10_1, NETPROP PPP, SESSIONTIMER, NULL, CFNUMBER }, { SC_10_2, NETPROP PPP, STATUS, NULL, CFNUMBER }, @@ -984,7 +998,7 @@ static schemaDefinition names[] = { { COMMENT, "", NULL, NULL, NULL }, { COMMENT, "--- " AUTH ": ---", NULL, NULL, NULL }, - { SC_10_3, NETPROP PPP, AUTH EAP PLUGINS, NULL, CFARRAY_CFSTRING }, + { SC_10_3_10_15, NETPROP PPP, AUTH EAP PLUGINS, NULL, CFARRAY_CFSTRING }, { SC_10_1, NETPROP PPP, AUTH NAME, NULL, CFSTRING }, { SC_10_1, NETPROP PPP, AUTH PASSWORD, NULL, CFSTRING }, { SC_10_1, NETPROP PPP, AUTH PASSWORD ENCRYPTION, NULL, CFSTRING }, @@ -1435,9 +1449,15 @@ print_headerdoc(schemaDefinition *def) case SC_10_2_10_13: printf(" API_DEPRECATED(\"No longer supported\", macos(10.2,10.13)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); break; + case SC_10_2_10_15: + printf(" API_DEPRECATED(\"No longer supported\", macos(10.2,10.15)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); + break; case SC_10_3_10_9: printf(" API_DEPRECATED(\"No longer supported\", macos(10.3,10.9)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); break; + case SC_10_3_10_15: + printf(" API_DEPRECATED(\"No longer supported\", macos(10.3,10.15)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); + break; case SC_10_4_10_9: printf(" API_DEPRECATED(\"No longer supported\", macos(10.4,10.9)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); break; @@ -1485,16 +1505,19 @@ print_headerdoc(schemaDefinition *def) printf(" API_AVAILABLE(macos(10.11)) SPI_AVAILABLE(ios(9.0), tvos(9.0), watchos(2.0), bridgeos(2.0));\n"); break; case SC_10_12_IPHONE_10_0_PRIVATE: - printf(" API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0));\n"); + printf(" API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0));\n"); break; case SC_10_13_IPHONE_10_0_PRIVATE: - printf(" API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(3.0));\n"); + printf(" API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0));\n"); break; case SC_10_13_IPHONE_11_0_PRIVATE: - printf(" API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(4.0));\n"); + printf(" API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(2.0));\n"); break; case SC_10_14_IPHONE_12_0_PRIVATE: - printf(" API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(5.0));\n"); + printf(" API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0));\n"); + break; + case SC_10_15_IPHONE_13_0_PRIVATE: + printf(" API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0));\n"); break; case SC_IPHONE_2_0_PRIVATE: printf(" SPI_AVAILABLE(macos(10.6), ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); @@ -1662,7 +1685,9 @@ dump_names(int type) case SC_10_1_10_9: case SC_10_2_10_9: case SC_10_2_10_13: + case SC_10_2_10_15: case SC_10_3_10_9: + case SC_10_3_10_15: case SC_10_4_10_9: // don't report deprecated keys break; @@ -1681,6 +1706,7 @@ dump_names(int type) case SC_10_13_IPHONE_10_0_PRIVATE: case SC_10_13_IPHONE_11_0_PRIVATE: case SC_10_14_IPHONE_12_0_PRIVATE: + case SC_10_15_IPHONE_13_0_PRIVATE: case SC_IPHONE_2_0_PRIVATE: case SC_IPHONE_7_0_PRIVATE: case SC_IPHONE_8_0_PRIVATE: @@ -1698,7 +1724,9 @@ dump_names(int type) case SC_10_1_10_9: case SC_10_2_10_9: case SC_10_2_10_13: + case SC_10_2_10_15: case SC_10_3_10_9: + case SC_10_3_10_15: case SC_10_4_10_9: // don't report deprecated keys break; @@ -1717,6 +1745,7 @@ dump_names(int type) case SC_10_13_IPHONE_10_0_PRIVATE: case SC_10_13_IPHONE_11_0_PRIVATE: case SC_10_14_IPHONE_12_0_PRIVATE: + case SC_10_15_IPHONE_13_0_PRIVATE: case SC_IPHONE_2_0_PRIVATE: case SC_IPHONE_7_0_PRIVATE: case SC_IPHONE_8_0_PRIVATE: @@ -1746,6 +1775,7 @@ dump_names(int type) case SC_10_13_IPHONE_10_0_PRIVATE: case SC_10_13_IPHONE_11_0_PRIVATE: case SC_10_14_IPHONE_12_0_PRIVATE: + case SC_10_15_IPHONE_13_0_PRIVATE: case SC_IPHONE_2_0_PRIVATE: case SC_IPHONE_7_0_PRIVATE: case SC_IPHONE_8_0_PRIVATE: @@ -1773,6 +1803,7 @@ dump_names(int type) case SC_10_13_IPHONE_10_0_PRIVATE: case SC_10_13_IPHONE_11_0_PRIVATE: case SC_10_14_IPHONE_12_0_PRIVATE: + case SC_10_15_IPHONE_13_0_PRIVATE: case SC_IPHONE_2_0_PRIVATE: case SC_IPHONE_7_0_PRIVATE: case SC_IPHONE_8_0_PRIVATE: @@ -1873,7 +1904,6 @@ main(int argc, char * argv[]) printf(" * DO NOT EDIT!\n"); printf(" */\n"); printf("\n"); - printf("#include \n"); printf("#include \n"); printf("#include \n"); printf("\n"); diff --git a/SystemConfiguration.fproj/helper/SCHelper_client.c b/SystemConfiguration.fproj/helper/SCHelper_client.c index e259b8d..0418706 100644 --- a/SystemConfiguration.fproj/helper/SCHelper_client.c +++ b/SystemConfiguration.fproj/helper/SCHelper_client.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005-2008, 2010, 2011, 2013, 2015, 2016, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2005-2008, 2010, 2011, 2013, 2015, 2016, 2018, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -55,22 +55,6 @@ static pthread_mutex_t _helper_lock = PTHREAD_MUTEX_INITIALIZER; static mach_port_t _helper_server = MACH_PORT_NULL; -static os_activity_t -__SCHelperActivity() -{ - static os_activity_t activity = NULL; - static dispatch_once_t once; - - dispatch_once(&once, ^{ - activity = os_activity_create("accessing SCPreferences [helper]", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - }); - - return activity; -} - - static mach_port_t __SCHelperServerPort(kern_return_t *status) { @@ -129,8 +113,6 @@ _SCHelperOpen(CFDataRef authorizationData, mach_port_t *helper_port) server = _helper_server; while (TRUE) { if (server != MACH_PORT_NULL) { - os_activity_scope(__SCHelperActivity()); - kr = helperinit(server, helper_port, &status); @@ -263,8 +245,6 @@ _SCHelperExec(mach_port_t port, uint32_t msgID, CFDataRef data, uint32_t *status traceData = _SCHelperExecCopyBacktrace(); - os_activity_scope(__SCHelperActivity()); - kr = helperexec(port, msgID, (data != NULL) ? (void *)CFDataGetBytePtr(data) : NULL, diff --git a/SystemConfiguration.fproj/helper/SCHelper_server.c b/SystemConfiguration.fproj/helper/SCHelper_server.c index 10a21ed..f7ded0e 100644 --- a/SystemConfiguration.fproj/helper/SCHelper_server.c +++ b/SystemConfiguration.fproj/helper/SCHelper_server.c @@ -38,7 +38,7 @@ #include #include -#define SC_LOG_HANDLE __log_SCHelper() +#define SC_LOG_HANDLE __log_SCHelper #define SC_LOG_HANDLE_TYPE static #include "SCPreferencesInternal.h" #include "SCHelper_client.h" diff --git a/SystemConfiguration.fproj/restore-temporary-headers b/SystemConfiguration.fproj/restore-temporary-headers index 88657e1..fb1e9ba 100755 --- a/SystemConfiguration.fproj/restore-temporary-headers +++ b/SystemConfiguration.fproj/restore-temporary-headers @@ -1,11 +1,11 @@ #!/bin/sh -if [ -z "${INSTALL_DIR}" -o -z "${PRIVATE_HEADERS_FOLDER_PATH}" ]; then - echo "Cannot update headers, missing ENV vars" +if [ $# -lt 1 ]; then + echo "Cannot update headers, private header directory not specified" exit 1 fi -SPI_BASE="${INSTALL_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}" +SPI_BASE="${1}" for H in \ DHCPClientPreferences.h \ diff --git a/SystemConfiguration.fproj/scprefs_observer.c b/SystemConfiguration.fproj/scprefs_observer.c index b3a708a..74369fa 100644 --- a/SystemConfiguration.fproj/scprefs_observer.c +++ b/SystemConfiguration.fproj/scprefs_observer.c @@ -30,9 +30,9 @@ #include #ifndef SC_LOG_HANDLE -#define SC_LOG_HANDLE __log_SCPreferences() +#define SC_LOG_HANDLE __log_SCPreferences #endif //SC_LOG_HANDLE -os_log_t SC_LOG_HANDLE; +os_log_t SC_LOG_HANDLE(void); #include #include @@ -53,7 +53,7 @@ os_log_t SC_LOG_HANDLE; static void iterate_dir(const char *d_name, const char *f_name, - CC_SHA1_CTX *ctxP, Boolean *found) + CC_SHA256_CTX *ctxP, Boolean *found) { DIR *dir; struct dirent * dp; @@ -86,8 +86,8 @@ iterate_dir(const char *d_name, const char *f_name, * the path and last modification time in * the digest */ - CC_SHA1_Update(ctxP, full_path, (CC_LONG)strlen(full_path)); - CC_SHA1_Update(ctxP, + CC_SHA256_Update(ctxP, full_path, (CC_LONG)strlen(full_path)); + CC_SHA256_Update(ctxP, (void *)&s.st_mtimespec.tv_sec, sizeof(s.st_mtimespec.tv_sec)); *found = TRUE; @@ -101,14 +101,14 @@ iterate_dir(const char *d_name, const char *f_name, static CF_RETURNS_RETAINED CFDataRef build_digest(const char *top_dir, const char *file) { - unsigned char bytes[CC_SHA1_DIGEST_LENGTH]; - CC_SHA1_CTX ctx; + unsigned char bytes[CC_SHA256_DIGEST_LENGTH]; + CC_SHA256_CTX ctx; CFDataRef digest = NULL; Boolean found = FALSE; - CC_SHA1_Init(&ctx); + CC_SHA256_Init(&ctx); iterate_dir(top_dir, file, &ctx, &found); - CC_SHA1_Final(bytes, &ctx); + CC_SHA256_Final(bytes, &ctx); if (found) { digest = CFDataCreate(NULL, bytes, sizeof(bytes)); } @@ -170,9 +170,10 @@ has_changed(scprefs_observer_t observer) { observer->digest = digest; - SC_log(LOG_INFO, "preferences file: \"%s\", %s", + SC_log(changed ? LOG_INFO : LOG_DEBUG, + "preferences file: \"%s\" %s", observer->file, - changed ? "has changed" : "has not changed"); + changed ? "changed" : "did not change"); return changed; } @@ -200,11 +201,10 @@ prefs_observer_handle_notifications() { scprefs_observer_t observer; - SC_log(LOG_INFO, "PrefsObserver notification received"); + SC_log(LOG_DEBUG, "PrefsObserver notification received"); SLIST_FOREACH(observer, &head, next) { - /* if the preferences plist has changed, - * called the block */ + /* if the preferences plist changed, call the block */ if (has_changed(observer)) { dispatch_async(observer->queue, observer->block); } @@ -245,7 +245,7 @@ prefs_observer_priv_create(_scprefs_observer_type type, path_buflen = strlen(plist_name) + 1; observer = (scprefs_observer_t)malloc(sizeof(struct _scprefs_observer_t) + path_buflen); - bzero((void *)observer, sizeof(struct _scprefs_observer_t)); + memset((void *)observer, 0, sizeof(struct _scprefs_observer_t)); /* Create the observer */ observer->type = type; diff --git a/configd.tproj/_SCD.c b/configd.tproj/_SCD.c index e9e4940..eedd1ec 100644 --- a/configd.tproj/_SCD.c +++ b/configd.tproj/_SCD.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2009, 2011, 2012, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2009, 2011, 2012, 2015-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -39,8 +39,6 @@ #include "session.h" -__private_extern__ CFMutableDictionaryRef sessionData = NULL; - __private_extern__ CFMutableDictionaryRef storeData = NULL; __private_extern__ CFMutableDictionaryRef patternData = NULL; @@ -267,11 +265,6 @@ pushNotifications(void) */ if ((storePrivate->notifyStatus == Using_NotifierInformViaMachPort) && (storePrivate->notifyPort != MACH_PORT_NULL)) { - /* - * Associate notification activity with the client - */ - os_activity_scope(theSession->activity); - /* * Post notification as mach message */ @@ -291,11 +284,6 @@ pushNotifications(void) (storePrivate->notifyFile >= 0)) { ssize_t written; - /* - * Associate notification activity with the client - */ - os_activity_scope(theSession->activity); - SC_trace("-->fd : %5d : fd = %d, msgid = %d", storePrivate->server, storePrivate->notifyFile, @@ -323,54 +311,6 @@ pushNotifications(void) storePrivate->notifyFile = -1; } } - - if ((storePrivate->notifyStatus == Using_NotifierInformViaSignal) && - (storePrivate->notifySignal > 0)) { - kern_return_t status; - pid_t pid; - - /* - * Associate notification activity with the client - */ - os_activity_scope(theSession->activity); - - /* - * Post notification as signal - */ - status = pid_for_task(storePrivate->notifySignalTask, &pid); - if (status == KERN_SUCCESS) { - SC_trace("-->sig : %5d : pid = %d, signal = sig%s (%d)", - storePrivate->server, - pid, - sys_signame[storePrivate->notifySignal], - storePrivate->notifySignal); - - if (kill(pid, storePrivate->notifySignal) != 0) { - if (errno != ESRCH) { - SC_log(LOG_NOTICE, "could not send sig%s to PID %d: %s", - sys_signame[storePrivate->notifySignal], - pid, - strerror(errno)); - } - } - } else { - mach_port_type_t pt; - - __MACH_PORT_DEBUG(TRUE, "*** pushNotifications pid_for_task failed: releasing task", storePrivate->notifySignalTask); - if (mach_port_type(mach_task_self(), storePrivate->notifySignalTask, &pt) == KERN_SUCCESS) { - if ((pt & MACH_PORT_TYPE_DEAD_NAME) != 0) { - SC_log(LOG_NOTICE, "pid_for_task() failed: %s", mach_error_string(status)); - } - } else { - SC_log(LOG_NOTICE, "mach_port_type() failed: %s", mach_error_string(status)); - } - - /* don't bother with any more attempts */ - (void) mach_port_deallocate(mach_task_self(), storePrivate->notifySignalTask); - storePrivate->notifySignal = 0; - storePrivate->notifySignalTask = TASK_NULL; - } - } } if (sessionsToNotify != sessionsToNotify_q) CFAllocatorDeallocate(NULL, sessionsToNotify); diff --git a/configd.tproj/_SCD.h b/configd.tproj/_SCD.h index 8263ed2..3325c4f 100644 --- a/configd.tproj/_SCD.h +++ b/configd.tproj/_SCD.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003, 2004, 2006, 2009, 2011, 2015, 2016 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003, 2004, 2006, 2009, 2011, 2015, 2016, 2018, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -59,26 +59,7 @@ #define kSCDSession CFSTR("session") -/* - * keys in the "sessionData" dictionary - */ - -/* - * the name of the calling application / plug-in - */ -#define kSCDName CFSTR("name") -/* - * keys which have changed since last call to SCDNotifierGetChanges() - */ -#define kSCDChangedKeys CFSTR("changedKeys") -/* - * keys which are to be removed when the session is closed - */ -#define kSCDSessionKeys CFSTR("sessionKeys") - - extern CFMutableDictionaryRef storeData; -extern CFMutableDictionaryRef sessionData; extern CFMutableDictionaryRef patternData; extern CFMutableSetRef changedKeys; extern CFMutableSetRef deferredRemovals; @@ -174,11 +155,6 @@ __SCDynamicStoreNotifyMachPort (SCDynamicStoreRef store, int __SCDynamicStoreNotifyFileDescriptor (SCDynamicStoreRef store); -int -__SCDynamicStoreNotifySignal (SCDynamicStoreRef store, - pid_t pid, - int sig); - int __SCDynamicStoreNotifyCancel (SCDynamicStoreRef store); @@ -195,4 +171,4 @@ pushNotifications (void); __END_DECLS -#endif /* !_S_SCD_H */ +#endif /* !_S_SCD_H */ diff --git a/configd.tproj/_configadd.c b/configd.tproj/_configadd.c index c66bede..b43e197 100644 --- a/configd.tproj/_configadd.c +++ b/configd.tproj/_configadd.c @@ -104,7 +104,6 @@ _configadd(mach_port_t server, /* un-serialize the key */ if (!_SCUnserializeString(&key, NULL, (void *)keyRef, keyLen)) { *sc_status = kSCStatusFailed; - goto done; } /* un-serialize the data */ diff --git a/configd.tproj/_configclose.c b/configd.tproj/_configclose.c index 425e364..c739e4b 100644 --- a/configd.tproj/_configclose.c +++ b/configd.tproj/_configclose.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003, 2004, 2006-2012, 2015, 2016 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003, 2004, 2006-2012, 2015, 2016, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -94,11 +94,7 @@ __private_extern__ int __SCDynamicStoreClose(SCDynamicStoreRef *store) { - CFDictionaryRef dict; - CFArrayRef keys; - CFIndex keyCnt; serverSessionRef mySession; - CFStringRef sessionKey; SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)*store; SC_trace("close : %5d", @@ -113,47 +109,31 @@ __SCDynamicStoreClose(SCDynamicStoreRef *store) (void) __SCDynamicStoreNotifyCancel(*store); /* Remove any session keys */ - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); - dict = CFDictionaryGetValue(sessionData, sessionKey); - keys = CFDictionaryGetValue(dict, kSCDSessionKeys); - if (keys && ((keyCnt = CFArrayGetCount(keys)) > 0)) { - CFIndex i; - Boolean push = FALSE; - - /* remove session keys */ - for (i = 0; i < keyCnt; i++) { - if (isMySessionKey(sessionKey, CFArrayGetValueAtIndex(keys, i))) { - (void) __SCDynamicStoreRemoveValue(*store, CFArrayGetValueAtIndex(keys, i), TRUE); + mySession = getSession(storePrivate->server); + if (mySession->sessionKeys != NULL) { + CFIndex n = CFArrayGetCount(mySession->sessionKeys); + Boolean push = FALSE; + CFStringRef sessionKey; + + sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); + for (CFIndex i = 0; i < n; i++) { + CFStringRef key = CFArrayGetValueAtIndex(mySession->sessionKeys, i); + + if (isMySessionKey(sessionKey, key)) { + (void) __SCDynamicStoreRemoveValue(*store, key, TRUE); push = TRUE; } } + CFRelease(sessionKey); if (push) { /* push changes */ (void) __SCDynamicStorePush(); } } - CFRelease(sessionKey); - - /* - * invalidate and release our run loop source on the server - * port (for this client). Then, release the port. - */ - mySession = getSession(storePrivate->server); - assert(mySession != NULL); - - if (mySession->serverRunLoopSource) { - CFRunLoopSourceInvalidate(mySession->serverRunLoopSource); - CFRelease(mySession->serverRunLoopSource); - mySession->serverRunLoopSource = NULL; - } - if (mySession->serverPort != NULL) { - CFMachPortInvalidate(mySession->serverPort); - CFRelease(mySession->serverPort); - mySession->serverPort = NULL; - } storePrivate->server = MACH_PORT_NULL; + CFRelease(*store); *store = NULL; diff --git a/configd.tproj/_configopen.c b/configd.tproj/_configopen.c index f4a2500..dad6bc6 100644 --- a/configd.tproj/_configopen.c +++ b/configd.tproj/_configopen.c @@ -52,10 +52,6 @@ __SCDynamicStoreOpen(SCDynamicStoreRef *store, CFStringRef name) * If necessary, initialize the store and session data dictionaries */ if (storeData == NULL) { - sessionData = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); storeData = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, @@ -79,14 +75,6 @@ __SCDynamicStoreOpen(SCDynamicStoreRef *store, CFStringRef name) } -static CFStringRef -openMPCopyDescription(const void *info) -{ -#pragma unused(info) - return CFStringCreateWithFormat(NULL, NULL, CFSTR("")); -} - - __private_extern__ kern_return_t _configopen(mach_port_t server, @@ -98,14 +86,9 @@ _configopen(mach_port_t server, int *sc_status, audit_token_t audit_token) { - CFDictionaryRef info; serverSessionRef mySession; CFStringRef name = NULL; /* name (un-serialized) */ - CFMutableDictionaryRef newInfo; - mach_port_t oldNotify; CFDictionaryRef options = NULL; /* options (un-serialized) */ - CFStringRef sessionKey; - kern_return_t status; SCDynamicStorePrivateRef storePrivate; CFBooleanRef useSessionKeys = NULL; @@ -154,7 +137,7 @@ _configopen(mach_port_t server, /* * establish the new session */ - mySession = addSession(server, openMPCopyDescription); + mySession = addClient(server, audit_token); if (mySession == NULL) { SC_log(LOG_NOTICE, "session is already open"); *sc_status = kSCStatusFailed; /* you can't re-open an "open" session */ @@ -162,16 +145,7 @@ _configopen(mach_port_t server, } *newServer = mySession->key; - __MACH_PORT_DEBUG(TRUE, "*** _configopen (after addSession)", *newServer); - - /* save the audit_token in case we need to check the callers credentials */ - mySession->auditToken = audit_token; - - /* Create and add a run loop source for the port */ - mySession->serverRunLoopSource = CFMachPortCreateRunLoopSource(NULL, mySession->serverPort, 0); - CFRunLoopAddSource(CFRunLoopGetCurrent(), - mySession->serverRunLoopSource, - kCFRunLoopDefaultMode); + __MACH_PORT_DEBUG(TRUE, "*** _configopen (after addClient)", *newServer); SC_trace("open : %5d : %@", *newServer, @@ -193,44 +167,10 @@ _configopen(mach_port_t server, storePrivate->useSessionKeys = CFBooleanGetValue(useSessionKeys); } - /* Request a notification when/if the client dies */ - status = mach_port_request_notification(mach_task_self(), - *newServer, - MACH_NOTIFY_NO_SENDERS, - 1, - *newServer, - MACH_MSG_TYPE_MAKE_SEND_ONCE, - &oldNotify); - if (status != KERN_SUCCESS) { - SC_log(LOG_NOTICE, "mach_port_request_notification() failed: %s", mach_error_string(status)); - cleanupSession(*newServer); - *newServer = MACH_PORT_NULL; - *sc_status = kSCStatusFailed; - goto done; - } - __MACH_PORT_DEBUG(TRUE, "*** _configopen (after mach_port_request_notification)", *newServer); - - if (oldNotify != MACH_PORT_NULL) { - SC_log(LOG_NOTICE, "oldNotify != MACH_PORT_NULL"); - } - /* * Save the name of the calling application / plug-in with the session data. */ - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), *newServer); - info = CFDictionaryGetValue(sessionData, sessionKey); - if (info != NULL) { - newInfo = CFDictionaryCreateMutableCopy(NULL, 0, info); - } else { - newInfo = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - } - CFDictionarySetValue(newInfo, kSCDName, name); - CFDictionarySetValue(sessionData, sessionKey, newInfo); - CFRelease(newInfo); - CFRelease(sessionKey); + mySession->name = name; /* * Note: at this time we should be holding ONE send right and @@ -240,7 +180,6 @@ _configopen(mach_port_t server, done : - if (name != NULL) CFRelease(name); if (options != NULL) CFRelease(options); return KERN_SUCCESS; } diff --git a/configd.tproj/_configset.c b/configd.tproj/_configset.c index 88706d0..50ab03f 100644 --- a/configd.tproj/_configset.c +++ b/configd.tproj/_configset.c @@ -42,6 +42,7 @@ int __SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFDataRef value, Boolean internal) { CFDictionaryRef dict; + serverSessionRef mySession; CFMutableDictionaryRef newDict; Boolean newEntry = FALSE; int sc_status = kSCStatusOK; @@ -77,46 +78,29 @@ __SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFDataRef val newEntry = !CFDictionaryContainsKey(newDict, kSCDData); CFDictionarySetValue(newDict, kSCDData, value); - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); - /* * Manage per-session keys. */ + sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); if (storePrivate->useSessionKeys) { if (newEntry) { - CFArrayRef keys; - CFMutableDictionaryRef newSession; - CFMutableArrayRef newKeys; - CFDictionaryRef session; - /* * Add this key to my list of per-session keys */ - session = CFDictionaryGetValue(sessionData, sessionKey); - keys = CFDictionaryGetValue(session, kSCDSessionKeys); - if ((keys == NULL) || - (CFArrayGetFirstIndexOfValue(keys, - CFRangeMake(0, CFArrayGetCount(keys)), - key) == kCFNotFound)) { + mySession = getSession(storePrivate->server); + if ((mySession->sessionKeys == NULL) || + !CFArrayContainsValue(mySession->sessionKeys, + CFRangeMake(0, CFArrayGetCount(mySession->sessionKeys)), + key)) { /* * if no session keys defined "or" keys defined but not * this one... */ - if (keys != NULL) { - /* this is the first session key */ - newKeys = CFArrayCreateMutableCopy(NULL, 0, keys); - } else { + if (mySession->sessionKeys == NULL) { /* this is an additional session key */ - newKeys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + mySession->sessionKeys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); } - CFArrayAppendValue(newKeys, key); - - /* update session dictionary */ - newSession = CFDictionaryCreateMutableCopy(NULL, 0, session); - CFDictionarySetValue(newSession, kSCDSessionKeys, newKeys); - CFRelease(newKeys); - CFDictionarySetValue(sessionData, sessionKey, newSession); - CFRelease(newSession); + CFArrayAppendValue(mySession->sessionKeys, key); } /* @@ -161,7 +145,6 @@ __SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFDataRef val CFRelease(removedKey); } } - CFRelease(sessionKey); /* diff --git a/configd.tproj/_configunlock.c b/configd.tproj/_configunlock.c index 4ccff66..8cd9138 100644 --- a/configd.tproj/_configunlock.c +++ b/configd.tproj/_configunlock.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2000-2004, 2006, 2011, 2015, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2004, 2006, 2011, 2015, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -58,17 +58,14 @@ _notifyWatchers() CFSetGetValues(changedKeys, keys); while (--keyCnt >= 0) { - CFArrayRef changes; + CFStringRef changedKey = (CFStringRef)keys[keyCnt]; CFDictionaryRef dict; - CFDictionaryRef info; - CFMutableDictionaryRef newInfo; - CFMutableArrayRef newChanges; CFArrayRef sessionsWatchingKey; CFIndex watcherCnt; const void * watchers_q[N_QUICK]; const void ** watchers = watchers_q; - dict = CFDictionaryGetValue(storeData, (CFStringRef)keys[keyCnt]); + dict = CFDictionaryGetValue(storeData, changedKey); if ((dict == NULL) || !CFDictionaryContainsKey(dict, kSCDWatchers)) { /* key doesn't exist or nobody cares if it changed */ continue; @@ -91,36 +88,18 @@ _notifyWatchers() CFArrayGetValues(sessionsWatchingKey, CFRangeMake(0, watcherCnt), watchers); while (--watcherCnt >= 0) { - CFStringRef sessionKey; - - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%@"), watchers[watcherCnt]); - info = CFDictionaryGetValue(sessionData, sessionKey); - if (info != NULL) { - newInfo = CFDictionaryCreateMutableCopy(NULL, 0, info); - } else { - newInfo = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - } + serverSessionRef session; + CFNumberRef watchedSession = watchers[watcherCnt]; - changes = CFDictionaryGetValue(newInfo, kSCDChangedKeys); - if (changes) { - newChanges = CFArrayCreateMutableCopy(NULL, 0, changes); - } else { - newChanges = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); + session = getSessionNum(watchedSession); + if (session->changedKeys == NULL) { + session->changedKeys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); } - - if (!CFArrayContainsValue(newChanges, - CFRangeMake(0, CFArrayGetCount(newChanges)), - (CFStringRef)keys[keyCnt])) { - CFArrayAppendValue(newChanges, (CFStringRef)keys[keyCnt]); + if (!CFArrayContainsValue(session->changedKeys, + CFRangeMake(0, CFArrayGetCount(session->changedKeys)), + changedKey)) { + CFArrayAppendValue(session->changedKeys, changedKey); } - CFDictionarySetValue(newInfo, kSCDChangedKeys, newChanges); - CFRelease(newChanges); - CFDictionarySetValue(sessionData, sessionKey, newInfo); - CFRelease(newInfo); - CFRelease(sessionKey); /* * flag this session as needing a kick @@ -129,7 +108,7 @@ _notifyWatchers() needsNotification = CFSetCreateMutable(NULL, 0, &kCFTypeSetCallBacks); - CFSetAddValue(needsNotification, watchers[watcherCnt]); + CFSetAddValue(needsNotification, watchedSession); } if (watchers != watchers_q) CFAllocatorDeallocate(NULL, watchers); @@ -185,12 +164,10 @@ _cleanupRemovedSessionKeys(const void *value, void *context) #pragma unused(context) CFStringRef removedKey = (CFStringRef)value; CFRange dRange; + serverSessionRef session; CFStringRef sessionKey; CFStringRef key; - CFDictionaryRef sessionDict; - CFArrayRef sessionKeys; CFIndex i; - CFMutableDictionaryRef newSessionDict; dRange = CFStringFind(removedKey, CFSTR(":"), 0); sessionKey = CFStringCreateWithSubstring(NULL, @@ -201,44 +178,24 @@ _cleanupRemovedSessionKeys(const void *value, void *context) CFRangeMake(dRange.location+dRange.length, CFStringGetLength(removedKey)-dRange.location-dRange.length)); - /* - * remove the key from the session key list - */ - sessionDict = CFDictionaryGetValue(sessionData, sessionKey); - if (!sessionDict) { + session = getSessionStr(sessionKey); + if (session == NULL) { /* if no session */ goto done; } - sessionKeys = CFDictionaryGetValue(sessionDict, kSCDSessionKeys); - if (!sessionKeys) { - /* if no session keys */ - goto done; - } - - i = CFArrayGetFirstIndexOfValue(sessionKeys, - CFRangeMake(0, CFArrayGetCount(sessionKeys)), + i = CFArrayGetFirstIndexOfValue(session->sessionKeys, + CFRangeMake(0, CFArrayGetCount(session->sessionKeys)), key); if (i == kCFNotFound) { /* if this session key has already been removed */ goto done; } - - newSessionDict = CFDictionaryCreateMutableCopy(NULL, 0, sessionDict); - if (CFArrayGetCount(sessionKeys) == 1) { - /* remove the last (session) key */ - CFDictionaryRemoveValue(newSessionDict, kSCDSessionKeys); - } else { - CFMutableArrayRef newSessionKeys; - - /* remove the (session) key */ - newSessionKeys = CFArrayCreateMutableCopy(NULL, 0, sessionKeys); - CFArrayRemoveValueAtIndex(newSessionKeys, i); - CFDictionarySetValue(newSessionDict, kSCDSessionKeys, newSessionKeys); - CFRelease(newSessionKeys); + CFArrayRemoveValueAtIndex(session->sessionKeys, i); + if (CFArrayGetCount(session->sessionKeys) == 0) { + CFRelease(session->sessionKeys); + session->sessionKeys = NULL; } - CFDictionarySetValue(sessionData, sessionKey, newSessionDict); - CFRelease(newSessionDict); done: diff --git a/configd.tproj/_notifycancel.c b/configd.tproj/_notifycancel.c index 36311c7..1d4c727 100644 --- a/configd.tproj/_notifycancel.c +++ b/configd.tproj/_notifycancel.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2006, 2009 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2006, 2009, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -61,16 +61,6 @@ __SCDynamicStoreNotifyCancel(SCDynamicStoreRef store) storePrivate->notifyFile = -1; } - /* - * cleanup any signal notifications. - */ - if (storePrivate->notifySignal > 0) { - __MACH_PORT_DEBUG(TRUE, "*** __SCDynamicStoreNotifyCancel (signal)", storePrivate->notifySignalTask); - (void) mach_port_deallocate(mach_task_self(), storePrivate->notifySignalTask); - storePrivate->notifySignal = 0; - storePrivate->notifySignalTask = TASK_NULL; - } - /* remove this session from the to-be-notified list */ if (needsNotification) { CFNumberRef num; diff --git a/configd.tproj/_notifychanges.c b/configd.tproj/_notifychanges.c index 5bc4268..31f64c7 100644 --- a/configd.tproj/_notifychanges.c +++ b/configd.tproj/_notifychanges.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2000-2004, 2006, 2011, 2013, 2015 Apple Inc. All rights reserved. + * Copyright (c) 2000-2004, 2006, 2011, 2013, 2015, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -38,32 +38,16 @@ __private_extern__ int __SCDynamicStoreCopyNotifiedKeys(SCDynamicStoreRef store, CFArrayRef *notifierKeys) { + serverSessionRef mySession; SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; - CFStringRef sessionKey; - CFDictionaryRef info; - CFMutableDictionaryRef newInfo; - - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); - info = CFDictionaryGetValue(sessionData, sessionKey); - if ((info == NULL) || - !CFDictionaryContainsKey(info, kSCDChangedKeys)) { - CFRelease(sessionKey); - *notifierKeys = CFArrayCreate(NULL, NULL, 0, &kCFTypeArrayCallBacks); - return kSCStatusOK; - } - newInfo = CFDictionaryCreateMutableCopy(NULL, 0, info); - *notifierKeys = CFDictionaryGetValue(newInfo, kSCDChangedKeys); - CFRetain(*notifierKeys); - - CFDictionaryRemoveValue(newInfo, kSCDChangedKeys); - if (CFDictionaryGetCount(newInfo) > 0) { - CFDictionarySetValue(sessionData, sessionKey, newInfo); + mySession = getSession(storePrivate->server); + if (mySession->changedKeys != NULL) { + *notifierKeys = mySession->changedKeys; + mySession->changedKeys = NULL; } else { - CFDictionaryRemoveValue(sessionData, sessionKey); + *notifierKeys = CFArrayCreate(NULL, NULL, 0, &kCFTypeArrayCallBacks); } - CFRelease(newInfo); - CFRelease(sessionKey); return kSCStatusOK; } diff --git a/configd.tproj/_notifyviafd.c b/configd.tproj/_notifyviafd.c index fbc7b00..5001a67 100644 --- a/configd.tproj/_notifyviafd.c +++ b/configd.tproj/_notifyviafd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2006, 2008-2011, 2015 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2006, 2008-2011, 2015, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -47,9 +47,8 @@ __private_extern__ int __SCDynamicStoreNotifyFileDescriptor(SCDynamicStoreRef store) { + serverSessionRef mySession; SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; - CFStringRef sessionKey; - CFDictionaryRef info; if (storePrivate->notifyStatus != NotifierNotRegistered) { /* sorry, you can only have one notification registered at once */ @@ -57,10 +56,8 @@ __SCDynamicStoreNotifyFileDescriptor(SCDynamicStoreRef store) } /* push out a notification if any changes are pending */ - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); - info = CFDictionaryGetValue(sessionData, sessionKey); - CFRelease(sessionKey); - if (info && CFDictionaryContainsKey(info, kSCDChangedKeys)) { + mySession = getSession(storePrivate->server); + if (mySession->changedKeys != NULL) { CFNumberRef sessionNum; if (needsNotification == NULL) diff --git a/configd.tproj/_notifyviaport.c b/configd.tproj/_notifyviaport.c index 8c7e219..e8740de 100644 --- a/configd.tproj/_notifyviaport.c +++ b/configd.tproj/_notifyviaport.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003, 2004, 2006, 2009, 2011, 2015 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003, 2004, 2006, 2009, 2011, 2015, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -40,9 +40,8 @@ __SCDynamicStoreNotifyMachPort(SCDynamicStoreRef store, mach_msg_id_t identifier, mach_port_t port) { + serverSessionRef mySession; SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; - CFStringRef sessionKey; - CFDictionaryRef info; if (storePrivate->notifyStatus != NotifierNotRegistered) { /* sorry, you can only have one notification registered at once */ @@ -60,10 +59,8 @@ __SCDynamicStoreNotifyMachPort(SCDynamicStoreRef store, } /* push out a notification if any changes are pending */ - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); - info = CFDictionaryGetValue(sessionData, sessionKey); - CFRelease(sessionKey); - if (info && CFDictionaryContainsKey(info, kSCDChangedKeys)) { + mySession = getSession(storePrivate->server); + if (mySession->changedKeys != NULL) { CFNumberRef sessionNum; if (needsNotification == NULL) diff --git a/configd.tproj/_notifyviasignal.c b/configd.tproj/_notifyviasignal.c deleted file mode 100644 index 9d15ce9..0000000 --- a/configd.tproj/_notifyviasignal.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (c) 2000-2004, 2006, 2009, 2011 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * Modification History - * - * June 1, 2001 Allan Nathanson - * - public API conversion - * - * March 24, 2000 Allan Nathanson - * - initial revision - */ - -#include -#include - -#include "configd.h" -#include "configd_server.h" -#include "session.h" - -__private_extern__ -int -__SCDynamicStoreNotifySignal(SCDynamicStoreRef store, pid_t pid, int sig) -{ - SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; - CFStringRef sessionKey; - CFDictionaryRef info; - - if (storePrivate->notifyStatus != NotifierNotRegistered) { - /* sorry, you can only have one notification registered at once */ - return kSCStatusNotifierActive; - } - - if (pid == getpid()) { - /* sorry, you can't request that configd be signalled */ - return kSCStatusInvalidArgument; - } - - if ((sig <= 0) || (sig > NSIG)) { - /* sorry, you must specify a valid signal */ - return kSCStatusInvalidArgument; - } - - /* push out a notification if any changes are pending */ - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), storePrivate->server); - info = CFDictionaryGetValue(sessionData, sessionKey); - CFRelease(sessionKey); - if (info && CFDictionaryContainsKey(info, kSCDChangedKeys)) { - CFNumberRef sessionNum; - - if (needsNotification == NULL) - needsNotification = CFSetCreateMutable(NULL, - 0, - &kCFTypeSetCallBacks); - - sessionNum = CFNumberCreate(NULL, kCFNumberIntType, &storePrivate->server); - CFSetAddValue(needsNotification, sessionNum); - CFRelease(sessionNum); - } - - return kSCStatusOK; -} - - -__private_extern__ -kern_return_t -_notifyviasignal(mach_port_t server, - task_t task, - int sig, - int *sc_status) -{ - serverSessionRef mySession = getSession(server); - pid_t pid; - kern_return_t status; - SCDynamicStorePrivateRef storePrivate; - - if (mySession == NULL) { - /* sorry, you must have an open session to play */ - *sc_status = kSCStatusNoStoreSession; - if (task != TASK_NULL) { - (void) mach_port_deallocate(mach_task_self(), task); - } - return KERN_SUCCESS; - } - storePrivate = (SCDynamicStorePrivateRef)mySession->store; - - if (task != TASK_NULL) { - status = pid_for_task(task, &pid); - if (status != KERN_SUCCESS) { - /* could not determine pid for task */ - *sc_status = kSCStatusFailed; - (void) mach_port_deallocate(mach_task_self(), task); - return KERN_SUCCESS; - } - } else { - /* sorry, you must specify a valid task */ - *sc_status = kSCStatusInvalidArgument; - return KERN_SUCCESS; - } - - *sc_status = __SCDynamicStoreNotifySignal(mySession->store, pid, sig); - if (*sc_status != kSCStatusOK) { - __MACH_PORT_DEBUG(TRUE, "*** _notifyviasignal __SCDynamicStoreNotifySignal failed: releasing task)", task); - (void) mach_port_deallocate(mach_task_self(), task); - return KERN_SUCCESS; - } - - __MACH_PORT_DEBUG(TRUE, "*** _notifyviasignal", task); - storePrivate->notifyStatus = Using_NotifierInformViaSignal; - storePrivate->notifySignal = sig; - storePrivate->notifySignalTask = task; - - return KERN_SUCCESS; -} diff --git a/configd.tproj/_snapshot.c b/configd.tproj/_snapshot.c index 9c506a1..5197780 100644 --- a/configd.tproj/_snapshot.c +++ b/configd.tproj/_snapshot.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2006, 2009-2011, 2015, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2000-2006, 2009-2011, 2015, 2018, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -44,7 +44,6 @@ #define SNAPSHOT_PATH_STATE _PATH_VARTMP "configd-state" #define SNAPSHOT_PATH_STORE _PATH_VARTMP "configd-store.plist" #define SNAPSHOT_PATH_PATTERN _PATH_VARTMP "configd-pattern.plist" -#define SNAPSHOT_PATH_SESSION _PATH_VARTMP "configd-session.plist" #define N_QUICK 100 @@ -70,7 +69,7 @@ _expandStore(CFDictionaryRef storeData) oValues = CFAllocatorAllocate(NULL, nElements * sizeof(CFTypeRef), 0); nValues = CFAllocatorAllocate(NULL, nElements * sizeof(CFTypeRef), 0); } - bzero(nValues, nElements * sizeof(CFTypeRef)); + memset(nValues, 0, nElements * sizeof(CFTypeRef)); CFDictionaryGetKeysAndValues(storeData, keys, oValues); for (i = 0; i < nElements; i++) { @@ -190,24 +189,6 @@ __SCDynamicStoreSnapshot(SCDynamicStoreRef store) (void) close(fd); CFRelease(xmlData); - /* Save a snapshot of the "session" data */ - - (void) unlink(SNAPSHOT_PATH_SESSION); - fd = open(SNAPSHOT_PATH_SESSION, O_WRONLY|O_CREAT|O_TRUNC|O_EXCL, 0644); - if (fd == -1) { - return kSCStatusFailed; - } - - xmlData = CFPropertyListCreateData(NULL, sessionData, kCFPropertyListXMLFormat_v1_0, 0, NULL); - if (xmlData == NULL) { - SC_log(LOG_NOTICE, "CFPropertyListCreateData() failed"); - close(fd); - return kSCStatusFailed; - } - (void) write(fd, CFDataGetBytePtr(xmlData), CFDataGetLength(xmlData)); - (void) close(fd); - CFRelease(xmlData); - return kSCStatusOK; } diff --git a/configd.tproj/configd.h b/configd.tproj/configd.h index 78e658a..8e1cdef 100644 --- a/configd.tproj/configd.h +++ b/configd.tproj/configd.h @@ -41,7 +41,7 @@ #define _SCSCHEMADEFINITIONS_H #define _SCSCHEMADEFINITIONSPRIVATE_H -#define SC_LOG_HANDLE __configd_SCDynamicStore() +#define SC_LOG_HANDLE __configd_SCDynamicStore #include "SCDynamicStoreInternal.h" #include "config_types.h" #include "_SCD.h" @@ -53,7 +53,7 @@ extern CFMutableSetRef _plugins_verbose; /* bundle identifiers to enable verbos #define SC_trace(__string, ...) \ - os_log_debug(SC_LOG_HANDLE, __string, ## __VA_ARGS__) + os_log_debug(SC_LOG_HANDLE(), __string, ## __VA_ARGS__) __BEGIN_DECLS diff --git a/configd.tproj/configd.m b/configd.tproj/configd.m index 9e88ed5..d94730f 100644 --- a/configd.tproj/configd.m +++ b/configd.tproj/configd.m @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2011, 2013-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2011, 2013-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -54,6 +54,7 @@ #include "configd.h" #include "configd_server.h" #include "plugin_support.h" +#include "SCDynamicStoreInternal.h" #if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR && !defined(DO_NOT_INFORM) #include @@ -164,7 +165,6 @@ term(CFMachPortRef port, void *msg, CFIndex size, void *info) wait = plugin_term(&status); if (!wait) { // if we are not waiting on a plugin - status = server_shutdown(); exit (status); } @@ -467,6 +467,9 @@ main(int argc, char * const argv[]) CFRelease(rls); if (testBundle == NULL) { + /* don't complain about having lots of SCDynamicStore objects */ + _SCDynamicStoreSetSessionWatchLimit(0); + /* initialize primary (store management) thread */ server_init(); @@ -481,8 +484,8 @@ main(int argc, char * const argv[]) plugin_init(); } - /* start primary (store management) thread */ - server_loop(); + /* start main thread */ + CFRunLoopRun(); } else { /* load/initialize/start specified plug-in */ plugin_exec((void *)testBundle); diff --git a/configd.tproj/configd_server.c b/configd.tproj/configd_server.c index f5e799c..a522985 100644 --- a/configd.tproj/configd_server.c +++ b/configd.tproj/configd_server.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2011, 2013, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2011, 2013, 2015-2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -42,158 +42,78 @@ #include "configd.h" #include "configd_server.h" -#include "notify_server.h" #include "session.h" /* MiG generated externals and functions */ extern struct mig_subsystem _config_subsystem; -extern boolean_t config_server(mach_msg_header_t *, mach_msg_header_t *); - -/* configd server port (for new session requests) */ -static CFMachPortRef configd_port = NULL; - - -__private_extern__ -boolean_t -config_demux(mach_msg_header_t *request, mach_msg_header_t *reply) -{ - Boolean processed = FALSE; - - /* - * (attempt to) process SCDynamicStore requests. - */ - processed = config_server(request, reply); - if (processed) { - return TRUE; - } - - /* - * (attempt to) process (NO MORE SENDERS) notification messages. - */ - processed = notify_server(request, reply); - if (processed) { - return TRUE; - } - - /* - * unknown message ID, log and return an error. - */ - SC_log(LOG_ERR, "unknown message ID (%d) received", request->msgh_id); - reply->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(request->msgh_bits), 0); - reply->msgh_remote_port = request->msgh_remote_port; - reply->msgh_size = sizeof(mig_reply_error_t); /* Minimal size */ - reply->msgh_local_port = MACH_PORT_NULL; - reply->msgh_id = request->msgh_id + 100; - ((mig_reply_error_t *)reply)->NDR = NDR_record; - ((mig_reply_error_t *)reply)->RetCode = MIG_BAD_ID; - - return FALSE; -} - - -#define MACH_MSG_BUFFER_SIZE 128 __private_extern__ void -configdCallback(CFMachPortRef port, void *msg, CFIndex size, void *info) +server_mach_channel_handler(void *context, // serverSessionRef + dispatch_mach_reason_t reason, + dispatch_mach_msg_t message, + mach_error_t error) { -#pragma unused(port) -#pragma unused(size) -#pragma unused(info) - mig_reply_error_t * bufRequest = msg; - uint32_t bufReply_q[MACH_MSG_BUFFER_SIZE/sizeof(uint32_t)]; - mig_reply_error_t * bufReply = (mig_reply_error_t *)bufReply_q; - static size_t bufSize = 0; - mach_msg_return_t mr; - int options; - - if (bufSize == 0) { - // get max size for MiG reply buffers - bufSize = _config_subsystem.maxsize; - - // check if our on-the-stack reply buffer will be big enough - if (bufSize > sizeof(bufReply_q)) { - SC_log(LOG_NOTICE, "buffer size should be increased > %d", - _config_subsystem.maxsize); - } - } - - if (bufSize > sizeof(bufReply_q)) { - bufReply = CFAllocatorAllocate(NULL, _config_subsystem.maxsize, 0); - } - bufReply->RetCode = 0; - - /* we have a request message */ - (void) config_demux(&bufRequest->Head, &bufReply->Head); - - if (!(bufReply->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX)) { - if (bufReply->RetCode == MIG_NO_REPLY) { - bufReply->Head.msgh_remote_port = MACH_PORT_NULL; - } else if ((bufReply->RetCode != KERN_SUCCESS) && - (bufRequest->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX)) { - /* - * destroy the request - but not the reply port - */ - bufRequest->Head.msgh_remote_port = MACH_PORT_NULL; - mach_msg_destroy(&bufRequest->Head); - } - } - - if (bufReply->Head.msgh_remote_port != MACH_PORT_NULL) { - /* - * send reply. - * - * We don't want to block indefinitely because the client - * isn't receiving messages from the reply port. - * If we have a send-once right for the reply port, then - * this isn't a concern because the send won't block. - * If we have a send right, we need to use MACH_SEND_TIMEOUT. - * To avoid falling off the kernel's fast RPC path unnecessarily, - * we only supply MACH_SEND_TIMEOUT when absolutely necessary. - */ +#pragma unused(error) + bool ok; + serverSessionRef session = (serverSessionRef)context; + + static const struct mig_subsystem * const subsystems[] = { + (mig_subsystem_t)&_config_subsystem, + }; + + switch (reason) { + case DISPATCH_MACH_MESSAGE_RECEIVED: + ok = dispatch_mach_mig_demux(context, subsystems, 1, message); + if (ok) { + /* + * the dispatch mach message has been consumed as per + * usual MIG rules. Check for, and if necessary, push + * out [SCDynamicStore] change notifications to other + * processes. + */ + pushNotifications(); + } else { + /* + * no subsystem claimed the message, destroy it + */ + mach_msg_destroy(dispatch_mach_msg_get_msg(message, NULL)); + } + break; - options = MACH_SEND_MSG; - if (MACH_MSGH_BITS_REMOTE(bufReply->Head.msgh_bits) != MACH_MSG_TYPE_MOVE_SEND_ONCE) { - options |= MACH_SEND_TIMEOUT; - } - mr = mach_msg(&bufReply->Head, /* msg */ - options, /* option */ - bufReply->Head.msgh_size, /* send_size */ - 0, /* rcv_size */ - MACH_PORT_NULL, /* rcv_name */ - MACH_MSG_TIMEOUT_NONE, /* timeout */ - MACH_PORT_NULL); /* notify */ + case DISPATCH_MACH_NO_SENDERS: + __MACH_PORT_DEBUG(TRUE, "*** server_mach_channel_handler DISPATCH_MACH_NO_SENDERS", session->key); + closeSession(session); + break; - /* Has a message error occurred? */ - switch (mr) { - case MACH_SEND_INVALID_DEST: - case MACH_SEND_TIMED_OUT: - break; - default : - /* Includes success case. */ - goto done; - } - } + case DISPATCH_MACH_CANCELED: + __MACH_PORT_DEBUG(TRUE, "*** server_mach_channel_handler DISPATCH_MACH_CANCELED", session->key); + cleanupSession(session); + break; - if (bufReply->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) { - mach_msg_destroy(&bufReply->Head); + default: + break; } - done : - - if (bufReply != (mig_reply_error_t *)bufReply_q) - CFAllocatorDeallocate(NULL, bufReply); - return; } -static CFStringRef -serverMPCopyDescription(const void *info) +__private_extern__ +dispatch_workloop_t +server_queue(void) { -#pragma unused(info) - return CFStringCreateWithFormat(NULL, NULL, CFSTR("
")); + static dispatch_once_t once; + static dispatch_workloop_t workloop; + + dispatch_once(&once, ^{ + workloop = dispatch_workloop_create_inactive("configd/SCDynamicStore"); + dispatch_set_qos_class_fallback(workloop, QOS_CLASS_UTILITY); + dispatch_activate(workloop); + }); + + return workloop; } @@ -201,9 +121,6 @@ __private_extern__ void server_init() { - serverSessionRef mySession; - int ret; - CFRunLoopSourceRef rls; char *service_name; mach_port_t service_port = MACH_PORT_NULL; kern_return_t status; @@ -235,66 +152,7 @@ server_init() } /* Create the primary / new connection port and backing session */ - mySession = addSession(service_port, serverMPCopyDescription); - configd_port = mySession->serverPort; - - /* - * Create and add a run loop source for the port and add this source - * to the default run loop mode. - */ - rls = CFMachPortCreateRunLoopSource(NULL, configd_port, 0); - CFRunLoopAddSource(CFRunLoopGetCurrent(), rls, kCFRunLoopDefaultMode); - CFRelease(rls); - - // bump thread QoS priority - ret = pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 0); - if (ret != 0) { - SC_log(LOG_ERR, "pthread_set_qos_class_self_np() failed: %s", strerror(errno)); - } + addServer(service_port); return; } - - -__private_extern__ -int -server_shutdown() -{ - if (configd_port != NULL) { - mach_port_t service_port = CFMachPortGetPort(configd_port); - - CFMachPortInvalidate(configd_port); - CFRelease(configd_port); - configd_port = NULL; - - if (service_port != MACH_PORT_NULL) { - (void) mach_port_mod_refs(mach_task_self(), - service_port, - MACH_PORT_RIGHT_RECEIVE, - -1); - } - } - - return EX_OK; -} - - -__private_extern__ -void -server_loop() -{ - pthread_setname_np("SCDynamicStore"); - - while (TRUE) { - /* - * process one run loop event - */ - CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0e10, TRUE); - - /* - * check for, and if necessary, push out change notifications - * to other processes. - */ - pushNotifications(); - } -} diff --git a/configd.tproj/configd_server.h b/configd.tproj/configd_server.h index caf743f..0e8bc31 100644 --- a/configd.tproj/configd_server.h +++ b/configd.tproj/configd_server.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2006, 2008, 2011, 2015, 2019 Apple Inc. All rights reserved. + * Copyright (c) 2000-2006, 2008, 2011. 2015, 2018-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -39,18 +39,20 @@ #include #include -__BEGIN_DECLS +#define DISPATCH_MACH_SPI 1 +#import -void configdCallback (CFMachPortRef port, - void *msg, - CFIndex size, - void *info); +__BEGIN_DECLS -void server_init (void); +void server_mach_channel_handler + (void *context, // serverSessionRef + dispatch_mach_reason_t reason, + dispatch_mach_msg_t message, + mach_error_t error); -int server_shutdown (void); +void server_init (void); -void server_loop (void); +dispatch_workloop_t server_queue (void); kern_return_t _snapshot (mach_port_t server, int *sc_status, @@ -168,12 +170,6 @@ kern_return_t _notifyviafd (mach_port_t server, int identifier, int *status); -kern_return_t _notifyviasignal - (mach_port_t server, - task_t task, - int signal, - int *status); - kern_return_t _notifycancel (mach_port_t server, int *sc_status); diff --git a/configd.tproj/entitlements-ios.plist b/configd.tproj/entitlements-ios.plist index 256c3d9..deff580 100644 --- a/configd.tproj/entitlements-ios.plist +++ b/configd.tproj/entitlements-ios.plist @@ -2,6 +2,8 @@ + com.apple.multitasking.systemappassertions + keychain-access-groups apple @@ -17,11 +19,17 @@ com.apple.private.SCNetworkConnection-proxy-user + com.apple.private.lockdown.is-host-trusted + + com.apple.SystemConfiguration.InterfaceNamer + com.apple.private.mobileinstall.allowedSPI Uninstall Lookup + com.apple.private.necp.drop_all_bypass + com.apple.private.necp.match com.apple.private.necp.policies @@ -50,9 +58,5 @@ com.apple.carousel.modalappservice - com.apple.private.lockdown.is-host-trusted - - com.apple.SystemConfiguration.InterfaceNamer - diff --git a/configd.tproj/notify_server.c b/configd.tproj/notify_server.c deleted file mode 100644 index ea03d32..0000000 --- a/configd.tproj/notify_server.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2000-2004, 2007, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * Modification History - * - * March 24, 2000 Allan Nathanson - * - initial revision - */ - -#include "configd.h" -#include "session.h" - -__private_extern__ -boolean_t -notify_server(mach_msg_header_t *request, mach_msg_header_t *reply) -{ - mach_no_senders_notification_t *Request = (mach_no_senders_notification_t *)request; - mig_reply_error_t *Reply = (mig_reply_error_t *)reply; - - reply->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(request->msgh_bits), 0); - reply->msgh_remote_port = request->msgh_remote_port; - reply->msgh_size = sizeof(mig_reply_error_t); /* Minimal size: update as needed */ - reply->msgh_local_port = MACH_PORT_NULL; - reply->msgh_id = request->msgh_id + 100; - - if ((Request->not_header.msgh_id > MACH_NOTIFY_LAST) || - (Request->not_header.msgh_id < MACH_NOTIFY_FIRST)) { - Reply->NDR = NDR_record; - Reply->RetCode = MIG_BAD_ID; - return FALSE; /* if this is not a notification message */ - } - - switch (Request->not_header.msgh_id) { - case MACH_NOTIFY_NO_SENDERS : - __MACH_PORT_DEBUG(TRUE, "*** notify_server MACH_NOTIFY_NO_SENDERS", Request->not_header.msgh_local_port); - cleanupSession(Request->not_header.msgh_local_port); - - Reply->Head.msgh_bits = 0; - Reply->Head.msgh_remote_port = MACH_PORT_NULL; - Reply->RetCode = KERN_SUCCESS; - return TRUE; - default : - break; - } - - SC_log(LOG_NOTICE, "HELP!, Received notification: port=%d, msgh_id=%d", - Request->not_header.msgh_local_port, - Request->not_header.msgh_id); - - Reply->NDR = NDR_record; - Reply->RetCode = MIG_BAD_ID; - return FALSE; /* if this is not a notification we are handling */ -} diff --git a/configd.tproj/plugin_support.c b/configd.tproj/plugin_support.c index ea172fd..760cc9a 100644 --- a/configd.tproj/plugin_support.c +++ b/configd.tproj/plugin_support.c @@ -560,12 +560,9 @@ stopComplete(void *info) CFDictionaryRemoveValue(exiting, bundle); if (CFDictionaryGetCount(exiting) == 0) { - int status; - // if all of the plugins are happy - status = server_shutdown(); SC_log(LOG_INFO, "server shutdown complete (%f)", CFAbsoluteTimeGetCurrent()); - exit (status); + exit (EX_OK); } return; @@ -580,7 +577,6 @@ stopDelayed(CFRunLoopTimerRef timer, void *info) const void **keys; CFIndex i; CFIndex n; - int status; SC_log(LOG_INFO, "server shutdown was delayed, unresponsive plugins:"); @@ -601,8 +597,7 @@ stopDelayed(CFRunLoopTimerRef timer, void *info) } CFAllocatorDeallocate(NULL, keys); - status = server_shutdown(); - exit (status); + exit (EX_OK); } static CFStringRef @@ -648,9 +643,8 @@ stopBundle(const void *value, void *context) stopRls = CFRunLoopSourceCreate(NULL, 0, &stopContext); CFRunLoopAddSource(CFRunLoopGetCurrent(), stopRls, kCFRunLoopDefaultMode); CFDictionaryAddValue(exiting, bundleInfo->bundle, stopRls); - CFRelease(stopRls); - (*bundleInfo->stop)(stopRls); + CFRelease(stopRls); return; } @@ -672,12 +666,9 @@ stopBundles() NULL); if (CFDictionaryGetCount(exiting) == 0) { - int status; - // if all of the plugins are happy - status = server_shutdown(); SC_log(LOG_INFO, "server shutdown complete (%f)", CFAbsoluteTimeGetCurrent()); - exit (status); + exit (EX_OK); } else { CFRunLoopTimerRef timer; diff --git a/configd.tproj/session.c b/configd.tproj/session.c index 8226211..f3cc0d8 100644 --- a/configd.tproj/session.c +++ b/configd.tproj/session.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2003-2005, 2007-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2003-2005, 2007-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -39,6 +39,7 @@ #include #include +#include #include #if !TARGET_OS_SIMULATOR || (defined(IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED) && (IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED >= 1090)) @@ -46,172 +47,132 @@ #endif -/* information maintained for each active session */ -static serverSessionRef *sessions = NULL; -static int nSessions = 0; /* # of allocated sessions */ -static int lastSession = -1; /* # of last used session */ +/* information maintained for the main listener */ +static serverSessionRef server_session = NULL; -/* CFMachPortInvalidation runloop */ -static CFRunLoopRef sessionRunLoop = NULL; +/* + * information maintained for each active session + * Note: sync w/sessionQueue() + */ +static CFMutableDictionaryRef client_sessions = NULL; -__private_extern__ -serverSessionRef -getSession(mach_port_t server) +static dispatch_queue_t +sessionQueue(void) { - int i; + static dispatch_once_t once; + static dispatch_queue_t q; - if (server == MACH_PORT_NULL) { - SC_log(LOG_NOTICE, "Excuse me, why is getSession() being called with an invalid port?"); - return NULL; - } + dispatch_once(&once, ^{ + // allocate mapping between [client] session mach port and session info + client_sessions = CFDictionaryCreateMutable(NULL, + 0, + NULL, // use the actual mach_port_t as the key + &kCFTypeDictionaryValueCallBacks); + + // and a queue to synchronize access to the mapping + q = dispatch_queue_create("SCDynamicStore/sessions", NULL); + }); - /* look for matching session (note: slot 0 is the "server" port) */ - for (i = 1; i <= lastSession; i++) { - serverSessionRef thisSession = sessions[i]; + return q; +} - if (thisSession == NULL) { - /* found an empty slot, skip it */ - continue; - } - if (thisSession->key == server) { - /* we've seen this server before */ - return thisSession; - } +#pragma mark - +#pragma mark __serverSession object - if ((thisSession->store != NULL) && - (((SCDynamicStorePrivateRef)thisSession->store)->notifySignalTask == server)) { - /* we've seen this task port before */ - return thisSession; - } - } +static CFStringRef __serverSessionCopyDescription (CFTypeRef cf); +static void __serverSessionDeallocate (CFTypeRef cf); - /* no sessions available */ - return NULL; -} +static const CFRuntimeClass __serverSessionClass = { + 0, // version + "serverSession", // className + NULL, // init + NULL, // copy + __serverSessionDeallocate, // dealloc + NULL, // equal + NULL, // hash + NULL, // copyFormattingDesc + __serverSessionCopyDescription // copyDebugDesc +}; +static CFTypeID __serverSessionTypeID = _kCFRuntimeNotATypeID; -__private_extern__ -serverSessionRef -tempSession(mach_port_t server, CFStringRef name, audit_token_t auditToken) + +static CFStringRef +__serverSessionCopyDescription(CFTypeRef cf) { - static dispatch_once_t once; - SCDynamicStorePrivateRef storePrivate; /* temp session */ - static serverSession temp_session; + CFAllocatorRef allocator = CFGetAllocator(cf); + CFMutableStringRef result; + serverSessionRef session = (serverSessionRef)cf; - dispatch_once(&once, ^{ - temp_session = *sessions[0]; /* use "server" session */ - temp_session.activity = NULL; - (void) __SCDynamicStoreOpen(&temp_session.store, NULL); - }); + result = CFStringCreateMutable(allocator, 0); + CFStringAppendFormat(result, NULL, CFSTR(" {"), cf, allocator); - if (temp_session.key != server) { - // if not SCDynamicStore "server" port - return NULL; - } + // add client port + CFStringAppendFormat(result, NULL, CFSTR("port = 0x%x (%d)"), session->key, session->key); - /* save audit token, caller entitlements */ - temp_session.auditToken = auditToken; - temp_session.callerEUID = 1; /* not "root" */ - temp_session.callerRootAccess = UNKNOWN; - if ((temp_session.callerWriteEntitlement != NULL) && - (temp_session.callerWriteEntitlement != kCFNull)) { - CFRelease(temp_session.callerWriteEntitlement); + // add session info + if (session->name != NULL) { + CFStringAppendFormat(result, NULL, CFSTR(", name = %@"), session->name); } - temp_session.callerWriteEntitlement = kCFNull; /* UNKNOWN */ - - /* save name */ - storePrivate = (SCDynamicStorePrivateRef)temp_session.store; - if (storePrivate->name != NULL) CFRelease(storePrivate->name); - storePrivate->name = CFRetain(name); - return &temp_session; + CFStringAppendFormat(result, NULL, CFSTR("}")); + return result; } -__private_extern__ -serverSessionRef -addSession(mach_port_t server, CFStringRef (*copyDescription)(const void *info)) +static void +__serverSessionDeallocate(CFTypeRef cf) { - CFMachPortContext context = { 0, NULL, NULL, NULL, NULL }; - kern_return_t kr; - mach_port_t mp = server; - int n = -1; - serverSessionRef newSession = NULL; - - /* save current (SCDynamicStore) runloop */ - if (sessionRunLoop == NULL) { - sessionRunLoop = CFRunLoopGetCurrent(); - } - - if (nSessions <= 0) { - /* if first session (the "server" port) */ - n = 0; /* use slot "0" */ - lastSession = 0; /* last used slot */ +#pragma unused(cf) + serverSessionRef session = (serverSessionRef)cf; - nSessions = 64; - sessions = malloc(nSessions * sizeof(serverSessionRef)); + if (session->changedKeys != NULL) CFRelease(session->changedKeys); + if (session->name != NULL) CFRelease(session->name); + if (session->sessionKeys != NULL) CFRelease(session->sessionKeys); - // allocate a new session for "the" server - newSession = calloc(1, sizeof(serverSession)); - } else { - int i; -#ifdef HAVE_MACHPORT_GUARDS - mach_port_options_t opts; -#endif // HAVE_MACHPORT_GUARDS - - /* check to see if we already have an open session (note: slot 0 is the "server" port) */ - for (i = 1; i <= lastSession; i++) { - serverSessionRef thisSession = sessions[i]; - - if (thisSession == NULL) { - /* found an empty slot */ - if (n < 0) { - /* keep track of the first [empty] slot */ - n = i; - } - - /* and keep looking for a matching session */ - continue; - } + return; +} - if (thisSession->key == server) { - /* we've seen this server before */ - return NULL; - } - if ((thisSession->store != NULL) && - (((SCDynamicStorePrivateRef)thisSession->store)->notifySignalTask == server)) { - /* we've seen this task port before */ - return NULL; - } - } +static serverSessionRef +__serverSessionCreate(CFAllocatorRef allocator, mach_port_t server) +{ + static dispatch_once_t once; + serverSessionRef session; + uint32_t size; - /* add a new session */ - if (n < 0) { - /* if no empty slots */ - n = ++lastSession; - if (lastSession >= nSessions) { - /* expand the session list */ - nSessions *= 2; - sessions = reallocf(sessions, (nSessions * sizeof(serverSessionRef))); - } - } + // initialize runtime + dispatch_once(&once, ^{ + __serverSessionTypeID = _CFRuntimeRegisterClass(&__serverSessionClass); + }); - // allocate a session for this client - newSession = calloc(1, sizeof(serverSession)); + // allocate session + size = sizeof(serverSession) - sizeof(CFRuntimeBase); + session = (serverSessionRef)_CFRuntimeCreateInstance(allocator, + __serverSessionTypeID, + size, + NULL); + if (session == NULL) { + return NULL; + } - // create mach port for SCDynamicStore client - mp = MACH_PORT_NULL; + // if needed, allocate a mach port for SCDynamicStore client + if (server == MACH_PORT_NULL) { + kern_return_t kr; + mach_port_t mp = MACH_PORT_NULL; +#ifdef HAVE_MACHPORT_GUARDS + mach_port_options_t opts; +#endif // HAVE_MACHPORT_GUARDS retry_allocate : #ifdef HAVE_MACHPORT_GUARDS - bzero(&opts, sizeof(opts)); + memset(&opts, 0, sizeof(opts)); opts.flags = MPO_CONTEXT_AS_GUARD; - kr = mach_port_construct(mach_task_self(), &opts, (mach_port_context_t)newSession, &mp); + kr = mach_port_construct(mach_task_self(), &opts, (mach_port_context_t)session, &mp); #else // HAVE_MACHPORT_GUARDS kr = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &mp); #endif // HAVE_MACHPORT_GUARDS @@ -230,27 +191,10 @@ addSession(mach_port_t server, CFStringRef (*copyDescription)(const void *info)) NULL, NULL); if (err != NULL) free(err); - - free(newSession); + CFRelease(session); return NULL; } - } - // create server port - context.info = newSession; - context.copyDescription = copyDescription; - - // - // Note: we create the CFMachPort *before* we insert a send - // right present to ensure that CF does not establish - // its dead name notification. - // - newSession->serverPort = _SC_CFMachPortCreateWithPort("SCDynamicStore/session", - mp, - configdCallback, - &context); - - if (n > 0) { // insert send right that will be moved to the client kr = mach_port_insert_right(mach_task_self(), mp, @@ -262,194 +206,398 @@ addSession(mach_port_t server, CFStringRef (*copyDescription)(const void *info)) * only happen if someone stomped on OUR port (so let's leave * the port alone). */ - SC_log(LOG_NOTICE, "mach_port_insert_right() failed: %s", mach_error_string(kr)); - - free(newSession); + SC_log(LOG_ERR, "mach_port_insert_right() failed: %s", mach_error_string(kr)); + CFRelease(session); return NULL; } + + server = mp; } - newSession->activity = os_activity_create("processing SCDynamicStore notification", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - newSession->callerEUID = 1; /* not "root" */ - newSession->callerRootAccess = UNKNOWN; - newSession->callerWriteEntitlement = kCFNull; /* UNKNOWN */ - newSession->key = mp; -// newSession->serverRunLoopSource = NULL; -// newSession->store = NULL; + session->callerEUID = 1; /* not "root" */ + session->callerRootAccess = UNKNOWN; + session->callerWriteEntitlement = kCFNull; /* UNKNOWN */ + session->key = server; +// session->store = NULL; + + return session; +} - sessions[n] = newSession; - return newSession; +#pragma mark - +#pragma mark SCDynamicStore state handler + + +static void +addSessionReference(const void *key, const void *value, void *context) +{ +#pragma unused(key) + CFMutableDictionaryRef dict = (CFMutableDictionaryRef)context; + serverSessionRef session = (serverSessionRef)value; + + if (session->name != NULL) { + int cnt; + CFNumberRef num; + + if (!CFDictionaryGetValueIfPresent(dict, + session->name, + (const void **)&num) || + !CFNumberGetValue(num, kCFNumberIntType, &cnt)) { + // if first session + cnt = 0; + } + cnt++; + num = CFNumberCreate(NULL, kCFNumberIntType, &cnt); + CFDictionarySetValue(dict, session->name, num); + CFRelease(num); + } + + return; } -__private_extern__ -void -cleanupSession(mach_port_t server) +static void +add_state_handler() { - int i; + os_state_block_t state_block; + + state_block = ^os_state_data_t(os_state_hints_t hints) { +#pragma unused(hints) + CFDataRef data = NULL; + CFIndex n; + Boolean ok; + os_state_data_t state_data; + size_t state_data_size; + CFIndex state_len; + + n = CFDictionaryGetCount(client_sessions); + if (n < 500) { + CFStringRef str; + + str = CFStringCreateWithFormat(NULL, NULL, CFSTR("n = %ld"), n); + ok = _SCSerialize(str, &data, NULL, NULL); + CFRelease(str); + } else { + CFMutableDictionaryRef dict; + + dict = CFDictionaryCreateMutable(NULL, + 0, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + CFDictionaryApplyFunction(client_sessions, addSessionReference, dict); + ok = _SCSerialize(dict, &data, NULL, NULL); + CFRelease(dict); + } - for (i = 1; i <= lastSession; i++) { - CFStringRef sessionKey; - serverSessionRef thisSession = sessions[i]; + state_len = (ok && (data != NULL)) ? CFDataGetLength(data) : 0; + state_data_size = OS_STATE_DATA_SIZE_NEEDED(state_len); + if (state_data_size > MAX_STATEDUMP_SIZE) { + SC_log(LOG_ERR, "SCDynamicStore/sessions : state data too large (%zd > %zd)", + state_data_size, + (size_t)MAX_STATEDUMP_SIZE); + if (data != NULL) CFRelease(data); + return NULL; + } - if (thisSession == NULL) { - /* found an empty slot, skip it */ - continue; + state_data = calloc(1, state_data_size); + if (state_data == NULL) { + SC_log(LOG_ERR, "SCDynamicStore/sessions: could not allocate state data"); + if (data != NULL) CFRelease(data); + return NULL; } - if (thisSession->key == server) { - /* - * session entry still exists. - */ + state_data->osd_type = OS_STATE_DATA_SERIALIZED_NSCF_OBJECT; + state_data->osd_data_size = (uint32_t)state_len; + strlcpy(state_data->osd_title, "SCDynamicStore/sessions", sizeof(state_data->osd_title)); + if (state_len > 0) { + memcpy(state_data->osd_data, CFDataGetBytePtr(data), state_len); + } + if (data != NULL) CFRelease(data); - SC_trace("cleanup : %5d", server); + return state_data; + }; - /* - * Close any open connections including cancelling any outstanding - * notification requests and releasing any locks. - */ - __MACH_PORT_DEBUG(TRUE, "*** cleanupSession", server); - (void) __SCDynamicStoreClose(&thisSession->store); - __MACH_PORT_DEBUG(TRUE, "*** cleanupSession (after __SCDynamicStoreClose)", server); + (void) os_state_add_handler(sessionQueue(), state_block); + return; +} - /* - * Our send right has already been removed. Remove our receive right. - */ -#ifdef HAVE_MACHPORT_GUARDS - (void) mach_port_destruct(mach_task_self(), server, 0, (mach_port_context_t)thisSession); -#else // HAVE_MACHPORT_GUARDS - (void) mach_port_mod_refs(mach_task_self(), server, MACH_PORT_RIGHT_RECEIVE, -1); -#endif // HAVE_MACHPORT_GUARDS - /* - * release any entitlement info - */ - if ((thisSession->callerWriteEntitlement != NULL) && - (thisSession->callerWriteEntitlement != kCFNull)) { - CFRelease(thisSession->callerWriteEntitlement); - } +#pragma mark - +#pragma mark SCDynamicStore session management - /* - * release our per-session activity - */ - if (thisSession->activity != NULL) { - os_release(thisSession->activity); - } - /* - * We don't need any remaining information in the - * sessionData dictionary, remove it. - */ - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), server); - CFDictionaryRemoveValue(sessionData, sessionKey); - CFRelease(sessionKey); +__private_extern__ +serverSessionRef +getSession(mach_port_t server) +{ + __block serverSessionRef session; - /* - * get rid of the per-session structure. - */ - free(thisSession); - sessions[i] = NULL; - - if (i == lastSession) { - /* we are removing the last session, update last used slot */ - while (--lastSession > 0) { - if (sessions[lastSession] != NULL) { - break; - } - } - } + assert(server != MACH_PORT_NULL); + dispatch_sync(sessionQueue(), ^{ + session = (serverSessionRef)CFDictionaryGetValue(client_sessions, + (const void *)(uintptr_t)server); + }); - return; - } + return session; +} + + +__private_extern__ +serverSessionRef +getSessionNum(CFNumberRef serverNum) +{ + union { + mach_port_t mp; + uint64_t val; + } server; + serverSessionRef session; + + (void) CFNumberGetValue(serverNum, kCFNumberSInt64Type, &server.val); + session = getSession(server.mp); + + return session; +} + + +__private_extern__ +serverSessionRef +getSessionStr(CFStringRef serverKey) +{ + mach_port_t server; + serverSessionRef session; + char str[16]; + + (void) _SC_cfstring_to_cstring(serverKey, str, sizeof(str), kCFStringEncodingASCII); + server = atoi(str); + session = getSession(server); + + return session; +} + + +__private_extern__ +serverSessionRef +tempSession(mach_port_t server, CFStringRef name, audit_token_t auditToken) +{ + static dispatch_once_t once; + SCDynamicStorePrivateRef storePrivate; /* temp session */ + static serverSession temp_session; + + dispatch_once(&once, ^{ + temp_session = *server_session; /* use "server" session clone */ + (void) __SCDynamicStoreOpen(&temp_session.store, NULL); + }); + + if (temp_session.key != server) { + // if not SCDynamicStore "server" port + return NULL; } - SC_log(LOG_NOTICE, "MACH_NOTIFY_NO_SENDERS w/no session, port = %d", server); - __MACH_PORT_DEBUG(TRUE, "*** cleanupSession w/no session", server); - return; + /* save audit token, caller entitlements */ + temp_session.auditToken = auditToken; + temp_session.callerEUID = 1; /* not "root" */ + temp_session.callerRootAccess = UNKNOWN; + if ((temp_session.callerWriteEntitlement != NULL) && + (temp_session.callerWriteEntitlement != kCFNull)) { + CFRelease(temp_session.callerWriteEntitlement); + } + temp_session.callerWriteEntitlement = kCFNull; /* UNKNOWN */ + + /* save name */ + storePrivate = (SCDynamicStorePrivateRef)temp_session.store; + if (storePrivate->name != NULL) CFRelease(storePrivate->name); + storePrivate->name = CFRetain(name); + + return &temp_session; } __private_extern__ void -listSessions(FILE *f) +addSession(serverSessionRef session, Boolean isMain) { - int i; + session->serverChannel = dispatch_mach_create_f("configd/SCDynamicStore", + server_queue(), + (void *)session, + server_mach_channel_handler); + if (!isMain) { + // if not main SCDynamicStore port, watch for exit + dispatch_mach_request_no_senders(session->serverChannel); + } +#if TARGET_OS_SIMULATOR + // simulators don't support MiG QoS propagation yet + dispatch_set_qos_class_fallback(session->serverChannel, QOS_CLASS_USER_INITIATED); +#else + dispatch_set_qos_class_fallback(session->serverChannel, QOS_CLASS_BACKGROUND); +#endif + dispatch_mach_connect(session->serverChannel, session->key, MACH_PORT_NULL, NULL); + return; +} - SCPrint(TRUE, f, CFSTR("Current sessions :\n")); - for (i = 0; i <= lastSession; i++) { - serverSessionRef thisSession = sessions[i]; - if (thisSession == NULL) { - continue; - } +__private_extern__ +serverSessionRef +addClient(mach_port_t server, audit_token_t audit_token) +{ - SCPrint(TRUE, f, CFSTR("\t%d : port = 0x%x"), i, thisSession->key); + __block serverSessionRef newSession = NULL; - if (thisSession->store != NULL) { - SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)thisSession->store; + dispatch_sync(sessionQueue(), ^{ + Boolean ok; - if (storePrivate->notifySignalTask != TASK_NULL) { - SCPrint(TRUE, f, CFSTR(", task = %d"), storePrivate->notifySignalTask); - } + // check to see if we already have an open session + ok = CFDictionaryContainsKey(client_sessions, + (const void *)(uintptr_t)server); + if (ok) { + // if we've already added a session for this port + return; } - if (sessionData != NULL) { - CFDictionaryRef info; - CFStringRef key; + // allocate a new session for "the" server + newSession = __serverSessionCreate(NULL, MACH_PORT_NULL); + if (newSession != NULL) { + // and add a port --> session mapping + CFDictionarySetValue(client_sessions, + (const void *)(uintptr_t)newSession->key, + newSession); - key = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), thisSession->key); - info = CFDictionaryGetValue(sessionData, key); - CFRelease(key); - if (info != NULL) { - CFStringRef name; + // save the audit_token in case we need to check the callers credentials + newSession->auditToken = audit_token; - name = CFDictionaryGetValue(info, kSCDName); - if (name != NULL) { - SCPrint(TRUE, f, CFSTR(", name = %@"), name); - } - } + CFRelease(newSession); // reference held by dictionary } + }); - if (thisSession->serverPort != NULL) { - SCPrint(TRUE, f, CFSTR("\n\t\t%@"), thisSession->serverPort); - } + if (newSession != NULL) { + addSession(newSession, FALSE); + } - if (thisSession->serverRunLoopSource != NULL) { - SCPrint(TRUE, f, CFSTR("\n\t\t%@"), thisSession->serverRunLoopSource); - } + return newSession; +} - SCPrint(TRUE, f, CFSTR("\n")); + +__private_extern__ +serverSessionRef +addServer(mach_port_t server) +{ + // allocate a session for "the" server + server_session = __serverSessionCreate(NULL, server); + addSession(server_session, TRUE); + + // add a state dump handler + add_state_handler(); + + return server_session; +} + + +__private_extern__ +void +cleanupSession(serverSessionRef session) +{ + mach_port_t server = session->key; + + SC_trace("cleanup : %5d", server); + + /* + * Close any open connections including cancelling any outstanding + * notification requests and releasing any locks. + */ + __MACH_PORT_DEBUG(TRUE, "*** cleanupSession", server); + (void) __SCDynamicStoreClose(&session->store); + __MACH_PORT_DEBUG(TRUE, "*** cleanupSession (after __SCDynamicStoreClose)", server); + + /* + * Our send right has already been removed. Remove our receive right. + */ +#ifdef HAVE_MACHPORT_GUARDS + (void) mach_port_destruct(mach_task_self(), server, 0, (mach_port_context_t)session); +#else // HAVE_MACHPORT_GUARDS + (void) mach_port_mod_refs(mach_task_self(), server, MACH_PORT_RIGHT_RECEIVE, -1); +#endif // HAVE_MACHPORT_GUARDS + + /* + * release any entitlement info + */ + if ((session->callerWriteEntitlement != NULL) && + (session->callerWriteEntitlement != kCFNull)) { + CFRelease(session->callerWriteEntitlement); + } + + /* + * get rid of the per-session structure. + */ + dispatch_sync(sessionQueue(), ^{ + CFDictionaryRemoveValue(client_sessions, + (const void *)(uintptr_t)server); + }); + + return; +} + + +__private_extern__ +void +closeSession(serverSessionRef session) +{ + /* + * cancel and release the mach channel + */ + if (session->serverChannel != NULL) { + dispatch_mach_cancel(session->serverChannel); + dispatch_release(session->serverChannel); + session->serverChannel = NULL; } - SCPrint(TRUE, f, CFSTR("\n")); return; } -#include -#include +typedef struct ReportSessionInfo { + FILE *f; + int n; +} ReportSessionInfo, *ReportSessionInfoRef; -static CFStringRef -sessionName(serverSessionRef session) +static void +printOne(const void *key, const void *value, void *context) { - CFDictionaryRef info; - CFStringRef name = NULL; - CFStringRef sessionKey; +#pragma unused(key) + ReportSessionInfoRef reportInfo = (ReportSessionInfoRef)context; + serverSessionRef session = (serverSessionRef)value; + + SCPrint(TRUE, reportInfo->f, CFSTR(" %d : port = 0x%x"), ++reportInfo->n, session->key); + SCPrint(TRUE, reportInfo->f, CFSTR(", name = %@"), session->name); + if (session->changedKeys != NULL) { + SCPrint(TRUE, reportInfo->f, CFSTR("\n changedKeys = %@"), session->changedKeys); + } + if (session->sessionKeys != NULL) { + SCPrint(TRUE, reportInfo->f, CFSTR("\n sessionKeys = %@"), session->sessionKeys); + } + SCPrint(TRUE, reportInfo->f, CFSTR("\n")); + return; +} - sessionKey = CFStringCreateWithFormat(NULL, NULL, CFSTR("%d"), session->key); - info = CFDictionaryGetValue(sessionData, sessionKey); - CFRelease(sessionKey); - if (info != NULL) { - name = CFDictionaryGetValue(info, kSCDName); - } +__private_extern__ +void +listSessions(FILE *f) +{ + dispatch_sync(sessionQueue(), ^{ + ReportSessionInfo reportInfo = { .f = f, .n = 0 }; - return (name != NULL) ? name : CFSTR("???"); + SCPrint(TRUE, f, CFSTR("Current sessions :\n")); + CFDictionaryApplyFunction(client_sessions, + printOne, + (void *)&reportInfo); + SCPrint(TRUE, f, CFSTR("\n")); + }); + return; } + +#include +#include + static CFTypeRef copyEntitlement(serverSessionRef session, CFStringRef entitlement) { @@ -473,7 +621,7 @@ copyEntitlement(serverSessionRef session, CFStringRef entitlement) SC_log(LOG_NOTICE, "SecTaskCopyValueForEntitlement(,\"%@\",) failed, error = %@ : %@", entitlement, error, - sessionName(session)); + session->name); } CFRelease(error); } @@ -481,7 +629,7 @@ copyEntitlement(serverSessionRef session, CFStringRef entitlement) CFRelease(task); } else { SC_log(LOG_NOTICE, "SecTaskCreateWithAuditToken() failed: %@", - sessionName(session)); + session->name); } return value; @@ -595,7 +743,7 @@ hasWriteAccess(serverSessionRef session, const char *op, CFStringRef key) sessionPid(session), key); - //return FALSE; // return FALSE when rdar://9811832 has beed fixed + return FALSE; } if (session->callerWriteEntitlement == kCFNull) { diff --git a/configd.tproj/session.h b/configd.tproj/session.h index 9a87c4f..0d2cdb3 100644 --- a/configd.tproj/session.h +++ b/configd.tproj/session.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 2005-2007, 2009-2012, 2014, 2016-2018 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2005-2007, 2009-2012, 2014, 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -38,6 +38,8 @@ #include #include +#define DISPATCH_MACH_SPI 1 +#import /* * SCDynamicStore write access entitlement @@ -64,19 +66,21 @@ typedef enum { NO = 0, YES, UNKNOWN } lazyBoolean; /* Per client server state */ typedef struct { + // base CFType information + CFRuntimeBase cfBase; + /* mach port used as the key to this session */ mach_port_t key; - /* mach port associated with this session */ - CFMachPortRef serverPort; - CFRunLoopSourceRef serverRunLoopSource; + /* mach channel associated with this session */ + dispatch_mach_t serverChannel; /* data associated with this "open" session */ + CFMutableArrayRef changedKeys; + CFStringRef name; + CFMutableArrayRef sessionKeys; SCDynamicStoreRef store; - /* caller's activity */ - os_activity_t activity; - /* credentials associated with this "open" session */ uid_t callerEUID; @@ -101,16 +105,24 @@ typedef struct { __BEGIN_DECLS +serverSessionRef addClient (mach_port_t server, + audit_token_t audit_token); + +serverSessionRef addServer (mach_port_t server); + serverSessionRef getSession (mach_port_t server); +serverSessionRef getSessionNum (CFNumberRef serverKey); + +serverSessionRef getSessionStr (CFStringRef serverKey); + serverSessionRef tempSession (mach_port_t server, CFStringRef name, audit_token_t auditToken); -serverSessionRef addSession (mach_port_t server, - CFStringRef (*copyDescription)(const void *info)); +void cleanupSession (serverSessionRef session); -void cleanupSession (mach_port_t server); +void closeSession (serverSessionRef session); void listSessions (FILE *f); diff --git a/configd.xcodeproj/project.pbxproj b/configd.xcodeproj/project.pbxproj index d7e4567..fd9a358 100644 --- a/configd.xcodeproj/project.pbxproj +++ b/configd.xcodeproj/project.pbxproj @@ -17,6 +17,9 @@ 158317100CFB77D1006F62B9 /* PBXTargetDependency */, 158317160CFB783B006F62B9 /* PBXTargetDependency */, 158317180CFB784D006F62B9 /* PBXTargetDependency */, + 15401C2E21991B1B006326B7 /* PBXTargetDependency */, + 15EF89C221894837003B2C5C /* PBXTargetDependency */, + 15EF89C421894837003B2C5C /* PBXTargetDependency */, ); name = "All-Embedded"; productName = Embedded; @@ -38,6 +41,41 @@ name = "configd_base-EmbeddedSimulator"; productName = Frameworks; }; + 15401C1C21991506006326B7 /* configd_extras */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 15401C1D21991506006326B7 /* Build configuration list for PBXAggregateTarget "configd_extras" */; + buildPhases = ( + 15401C2021991549006326B7 /* Create non-empty Root */, + ); + dependencies = ( + ); + name = configd_extras; + productName = configd_extras; + }; + 15401C21219915BC006326B7 /* configd_extras-Embedded */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 15401C23219915BC006326B7 /* Build configuration list for PBXAggregateTarget "configd_extras-Embedded" */; + buildPhases = ( + 15401C22219915BC006326B7 /* Create non-empty Root */, + ); + dependencies = ( + 155C626121C2B6FD008DCB1A /* PBXTargetDependency */, + 155C626521C2B6FD008DCB1A /* PBXTargetDependency */, + ); + name = "configd_extras-Embedded"; + productName = configd_extras; + }; + 15401C26219915C6006326B7 /* configd_extras-EmbeddedSimulator */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 15401C28219915C6006326B7 /* Build configuration list for PBXAggregateTarget "configd_extras-EmbeddedSimulator" */; + buildPhases = ( + 15401C27219915C6006326B7 /* Create non-empty Root */, + ); + dependencies = ( + ); + name = "configd_extras-EmbeddedSimulator"; + productName = configd_extras; + }; 155847FA07550D210046C2E9 /* configd_executables */ = { isa = PBXAggregateTarget; buildConfigurationList = 156EB62E0905594A00EEF749 /* Build configuration list for PBXAggregateTarget "configd_executables" */; @@ -45,9 +83,9 @@ ); dependencies = ( 15631D111ECF92E70088EEDD /* PBXTargetDependency */, - 72C4A4801BE44D19009D570E /* PBXTargetDependency */, 1558480607550D470046C2E9 /* PBXTargetDependency */, 1558480807550D470046C2E9 /* PBXTargetDependency */, + 72C4A4801BE44D19009D570E /* PBXTargetDependency */, D6DDAC3D147A24BC00A2E902 /* PBXTargetDependency */, 150ECB300D0042DA0065E94D /* PBXTargetDependency */, 72C12CB11D6EA2CA000EE61C /* PBXTargetDependency */, @@ -132,10 +170,8 @@ dependencies = ( 15631D131ECF93040088EEDD /* PBXTargetDependency */, 158317660CFB80D5006F62B9 /* PBXTargetDependency */, - 157434210D4A8166002ACA73 /* PBXTargetDependency */, - 1574341F0D4A815E002ACA73 /* PBXTargetDependency */, 1523BBE21E075859006281F1 /* PBXTargetDependency */, - 7271EA341D7660980055B1AA /* PBXTargetDependency */, + 1574341F0D4A815E002ACA73 /* PBXTargetDependency */, ); name = "configd_executables-Embedded"; productName = configd_executables; @@ -196,6 +232,9 @@ 157BB8C40759244B0025DA7A /* PBXTargetDependency */, 159D542E07529008004F8947 /* PBXTargetDependency */, 1558480F07550DD00046C2E9 /* PBXTargetDependency */, + 15401C2C21991B05006326B7 /* PBXTargetDependency */, + 150EC101210171AE0047F4BF /* PBXTargetDependency */, + 150EC103210171B60047F4BF /* PBXTargetDependency */, ); name = All; productName = "configd (Aggregate)"; @@ -222,6 +261,9 @@ 157FDE44164A079B0040D6A8 /* PBXTargetDependency */, 151FE37A0D5B713C000D6DB1 /* PBXTargetDependency */, 15631D2D1ECF99A00088EEDD /* PBXTargetDependency */, + 15401C3021991B31006326B7 /* PBXTargetDependency */, + 15EF89C62189484C003B2C5C /* PBXTargetDependency */, + 15EF89C82189484C003B2C5C /* PBXTargetDependency */, ); name = "All-EmbeddedSimulator"; productName = EmbeddedSimulator; @@ -237,6 +279,7 @@ 150BEC1814CA24F900237116 /* dnsinfo_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B73F0D05FD1B670096477F /* dnsinfo_server.c */; }; 150BEC1A14CA252200237116 /* dnsinfo_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B73F0D05FD1B670096477F /* dnsinfo_server.c */; }; 150D7E1E0D16DC6C00AF4BED /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1520A3DE0846B2DC0010B584 /* Security.framework */; }; + 150EC0FF21016BFD0047F4BF /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1547072E0D1F70C80075C28D /* SystemConfiguration.framework */; }; 151D060E1EC14C8600E02E48 /* liblog_SystemConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 151D060D1EC14C6700E02E48 /* liblog_SystemConfiguration.m */; }; 1520A3870846829A0010B584 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15CB6A6F05C0722B0099E85F /* CoreFoundation.framework */; }; 1520A3DF0846B2DD0010B584 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1520A3DE0846B2DC0010B584 /* Security.framework */; }; @@ -271,6 +314,9 @@ 153E16A91EE500ED0027698E /* SCNetworkReachabilityInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C330D0134B95AA0028E36B /* SCNetworkReachabilityInternal.h */; }; 153E16AA1EE500EF0027698E /* SCNetworkReachabilityInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C330D0134B95AA0028E36B /* SCNetworkReachabilityInternal.h */; }; 1540E3610987DA9500157C07 /* com.apple.configd.plist in Copy Files */ = {isa = PBXBuildFile; fileRef = 1540E3600987DA9500157C07 /* com.apple.configd.plist */; }; + 1542400521626F5A00C7CE8B /* SCDCache.c in Sources */ = {isa = PBXBuildFile; fileRef = 1542400421626DD300C7CE8B /* SCDCache.c */; }; + 1542400621626F5C00C7CE8B /* SCDCache.c in Sources */ = {isa = PBXBuildFile; fileRef = 1542400421626DD300C7CE8B /* SCDCache.c */; }; + 1542400721626F6000C7CE8B /* SCDCache.c in Sources */ = {isa = PBXBuildFile; fileRef = 1542400421626DD300C7CE8B /* SCDCache.c */; }; 154361E00752C81800A8EC6C /* set-hostname.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53AB07528B36004F8947 /* set-hostname.c */; }; 1543636B0752D03C00A8EC6C /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1543636A0752D03C00A8EC6C /* IOKit.framework */; }; 154707300D1F70C80075C28D /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1547072E0D1F70C80075C28D /* SystemConfiguration.framework */; }; @@ -323,7 +369,7 @@ 155D223D0AF13A7300D52ED0 /* smb-configuration.h in Headers */ = {isa = PBXBuildFile; fileRef = 155D223A0AF13A7300D52ED0 /* smb-configuration.h */; }; 155F49A61C864FFC00E47D08 /* qos-marking.m in Sources */ = {isa = PBXBuildFile; fileRef = 155F49A51C864FE500E47D08 /* qos-marking.m */; }; 155F49A71C86500100E47D08 /* qos-marking.m in Sources */ = {isa = PBXBuildFile; fileRef = 155F49A51C864FE500E47D08 /* qos-marking.m */; }; - 1562569120856CCC00FCD61E /* liblockdown.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1562569020856CCC00FCD61E /* liblockdown.dylib */; }; + 1562569120856CCC00FCD61E /* liblockdown.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1562569020856CCC00FCD61E /* liblockdown.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 1565D85018B847590097062B /* SCNetworkMigration.c in Sources */ = {isa = PBXBuildFile; fileRef = 55A3DB9D183C2A8200ED3DB7 /* SCNetworkMigration.c */; }; 1565D85118B847F20097062B /* SCNetworkMigration.c in Sources */ = {isa = PBXBuildFile; fileRef = 55A3DB9D183C2A8200ED3DB7 /* SCNetworkMigration.c */; }; 156BD6BC07E0DFA9008698FF /* SCPreferencesSetSpecificPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 156BD6BB07E0DFA9008698FF /* SCPreferencesSetSpecificPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -393,7 +439,6 @@ 1572C4F20CFB55B400E2776E /* SCDNotifierWait.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697605C0722B0099E85F /* SCDNotifierWait.c */; settings = {ATTRIBUTES = (); }; }; 1572C4F30CFB55B400E2776E /* SCDNotifierInformViaCallback.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697805C0722B0099E85F /* SCDNotifierInformViaCallback.c */; settings = {ATTRIBUTES = (); }; }; 1572C4F50CFB55B400E2776E /* SCDNotifierInformViaFD.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697C05C0722B0099E85F /* SCDNotifierInformViaFD.c */; settings = {ATTRIBUTES = (); }; }; - 1572C4F60CFB55B400E2776E /* SCDNotifierInformViaSignal.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697E05C0722B0099E85F /* SCDNotifierInformViaSignal.c */; settings = {ATTRIBUTES = (); }; }; 1572C4F70CFB55B400E2776E /* SCDNotifierCancel.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698005C0722B0099E85F /* SCDNotifierCancel.c */; settings = {ATTRIBUTES = (); }; }; 1572C4F80CFB55B400E2776E /* SCDSnapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698205C0722B0099E85F /* SCDSnapshot.c */; settings = {ATTRIBUTES = (); }; }; 1572C4F90CFB55B400E2776E /* SCP.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698405C0722B0099E85F /* SCP.c */; settings = {ATTRIBUTES = (); }; }; @@ -436,14 +481,12 @@ 15732A7816EA503200F3AC4C /* configd.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69CF05C0722B0099E85F /* configd.h */; }; 15732A7916EA503200F3AC4C /* _SCD.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D105C0722B0099E85F /* _SCD.h */; }; 15732A7A16EA503200F3AC4C /* configd_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D305C0722B0099E85F /* configd_server.h */; }; - 15732A7B16EA503200F3AC4C /* notify_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D505C0722B0099E85F /* notify_server.h */; }; 15732A7C16EA503200F3AC4C /* plugin_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D705C0722B0099E85F /* plugin_support.h */; }; 15732A7D16EA503200F3AC4C /* session.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D905C0722B0099E85F /* session.h */; }; 15732A7E16EA503200F3AC4C /* pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69DB05C0722B0099E85F /* pattern.h */; }; 15732A8016EA503200F3AC4C /* configd.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E005C0722B0099E85F /* configd.m */; settings = {ATTRIBUTES = (); }; }; 15732A8116EA503200F3AC4C /* _SCD.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E205C0722B0099E85F /* _SCD.c */; settings = {ATTRIBUTES = (); }; }; 15732A8216EA503200F3AC4C /* configd_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E405C0722B0099E85F /* configd_server.c */; settings = {ATTRIBUTES = (); }; }; - 15732A8316EA503200F3AC4C /* notify_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E605C0722B0099E85F /* notify_server.c */; settings = {ATTRIBUTES = (); }; }; 15732A8416EA503200F3AC4C /* plugin_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E805C0722B0099E85F /* plugin_support.c */; settings = {ATTRIBUTES = (); }; }; 15732A8516EA503200F3AC4C /* session.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69EA05C0722B0099E85F /* session.c */; settings = {ATTRIBUTES = (); }; }; 15732A8616EA503200F3AC4C /* pattern.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69EC05C0722B0099E85F /* pattern.c */; settings = {ATTRIBUTES = (); }; }; @@ -461,7 +504,6 @@ 15732A9216EA503200F3AC4C /* _notifychanges.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A0C05C0722B0099E85F /* _notifychanges.c */; settings = {ATTRIBUTES = (); }; }; 15732A9316EA503200F3AC4C /* _notifyviaport.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A0E05C0722B0099E85F /* _notifyviaport.c */; settings = {ATTRIBUTES = (); }; }; 15732A9416EA503200F3AC4C /* _notifyviafd.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1005C0722B0099E85F /* _notifyviafd.c */; settings = {ATTRIBUTES = (); }; }; - 15732A9516EA503200F3AC4C /* _notifyviasignal.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1205C0722B0099E85F /* _notifyviasignal.c */; settings = {ATTRIBUTES = (); }; }; 15732A9616EA503200F3AC4C /* _notifycancel.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1405C0722B0099E85F /* _notifycancel.c */; settings = {ATTRIBUTES = (); }; }; 15732A9716EA503200F3AC4C /* _snapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1605C0722B0099E85F /* _snapshot.c */; settings = {ATTRIBUTES = (); }; }; 15732A9816EA503200F3AC4C /* config.defs in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69BE05C0722B0099E85F /* config.defs */; settings = {ATTRIBUTES = (Server, ); }; }; @@ -554,12 +596,10 @@ 157A84FB0D56C7E800B6F1A0 /* dns-configuration.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53AA07528B36004F8947 /* dns-configuration.c */; }; 157A84FC0D56C7E800B6F1A0 /* set-hostname.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53AB07528B36004F8947 /* set-hostname.c */; }; 157A85080D56C8AA00B6F1A0 /* ifnamer.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53AE07528B36004F8947 /* ifnamer.c */; }; - 157A85120D56C8E000B6F1A0 /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53CB07528B36004F8947 /* cache.h */; }; 157A85140D56C8E000B6F1A0 /* ev_dlil.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53B207528B36004F8947 /* ev_dlil.h */; }; 157A85150D56C8E000B6F1A0 /* ev_ipv4.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53B807528B36004F8947 /* ev_ipv4.h */; }; 157A85160D56C8E000B6F1A0 /* ev_ipv6.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53BA07528B36004F8947 /* ev_ipv6.h */; }; 157A85170D56C8E000B6F1A0 /* eventmon.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53B707528B36004F8947 /* eventmon.h */; }; - 157A85190D56C8E000B6F1A0 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53CA07528B36004F8947 /* cache.c */; }; 157A851B0D56C8E000B6F1A0 /* ev_dlil.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53B107528B36004F8947 /* ev_dlil.c */; }; 157A851C0D56C8E000B6F1A0 /* ev_ipv4.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53B307528B36004F8947 /* ev_ipv4.c */; }; 157A851D0D56C8E000B6F1A0 /* ev_ipv6.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53B407528B36004F8947 /* ev_ipv6.c */; }; @@ -579,14 +619,12 @@ 158317250CFB80A1006F62B9 /* configd.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69CF05C0722B0099E85F /* configd.h */; }; 158317260CFB80A1006F62B9 /* _SCD.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D105C0722B0099E85F /* _SCD.h */; }; 158317270CFB80A1006F62B9 /* configd_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D305C0722B0099E85F /* configd_server.h */; }; - 158317280CFB80A1006F62B9 /* notify_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D505C0722B0099E85F /* notify_server.h */; }; 158317290CFB80A1006F62B9 /* plugin_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D705C0722B0099E85F /* plugin_support.h */; }; 1583172A0CFB80A1006F62B9 /* session.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D905C0722B0099E85F /* session.h */; }; 1583172B0CFB80A1006F62B9 /* pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69DB05C0722B0099E85F /* pattern.h */; }; 1583172D0CFB80A1006F62B9 /* configd.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E005C0722B0099E85F /* configd.m */; settings = {ATTRIBUTES = (); }; }; 1583172E0CFB80A1006F62B9 /* _SCD.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E205C0722B0099E85F /* _SCD.c */; settings = {ATTRIBUTES = (); }; }; 1583172F0CFB80A1006F62B9 /* configd_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E405C0722B0099E85F /* configd_server.c */; settings = {ATTRIBUTES = (); }; }; - 158317300CFB80A1006F62B9 /* notify_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E605C0722B0099E85F /* notify_server.c */; settings = {ATTRIBUTES = (); }; }; 158317310CFB80A1006F62B9 /* plugin_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E805C0722B0099E85F /* plugin_support.c */; settings = {ATTRIBUTES = (); }; }; 158317320CFB80A1006F62B9 /* session.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69EA05C0722B0099E85F /* session.c */; settings = {ATTRIBUTES = (); }; }; 158317330CFB80A1006F62B9 /* pattern.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69EC05C0722B0099E85F /* pattern.c */; settings = {ATTRIBUTES = (); }; }; @@ -604,7 +642,6 @@ 158317410CFB80A1006F62B9 /* _notifychanges.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A0C05C0722B0099E85F /* _notifychanges.c */; settings = {ATTRIBUTES = (); }; }; 158317420CFB80A1006F62B9 /* _notifyviaport.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A0E05C0722B0099E85F /* _notifyviaport.c */; settings = {ATTRIBUTES = (); }; }; 158317430CFB80A1006F62B9 /* _notifyviafd.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1005C0722B0099E85F /* _notifyviafd.c */; settings = {ATTRIBUTES = (); }; }; - 158317440CFB80A1006F62B9 /* _notifyviasignal.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1205C0722B0099E85F /* _notifyviasignal.c */; settings = {ATTRIBUTES = (); }; }; 158317450CFB80A1006F62B9 /* _notifycancel.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1405C0722B0099E85F /* _notifycancel.c */; settings = {ATTRIBUTES = (); }; }; 158317460CFB80A1006F62B9 /* _snapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1605C0722B0099E85F /* _snapshot.c */; settings = {ATTRIBUTES = (); }; }; 158317470CFB80A1006F62B9 /* config.defs in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69BE05C0722B0099E85F /* config.defs */; settings = {ATTRIBUTES = (Server, ); }; }; @@ -659,8 +696,6 @@ 159A752C107FEAA400A57EAB /* VPNPrivate.c in Sources */ = {isa = PBXBuildFile; fileRef = 159A7517107FEAA400A57EAB /* VPNPrivate.c */; }; 159A752E107FEAA400A57EAB /* VPNConfiguration.c in Sources */ = {isa = PBXBuildFile; fileRef = 159A7519107FEAA400A57EAB /* VPNConfiguration.c */; }; 159C32B60F583724008A72EE /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1520A3DE0846B2DC0010B584 /* Security.framework */; }; - 159D540907528D3A004F8947 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53CA07528B36004F8947 /* cache.c */; }; - 159D540A07528D3B004F8947 /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53CB07528B36004F8947 /* cache.h */; }; 159D540D07528DAE004F8947 /* ev_dlil.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53B107528B36004F8947 /* ev_dlil.c */; }; 159D540E07528DAE004F8947 /* ev_dlil.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53B207528B36004F8947 /* ev_dlil.h */; }; 159D540F07528DB0004F8947 /* ev_ipv4.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53B307528B36004F8947 /* ev_ipv4.c */; }; @@ -677,14 +712,12 @@ 159D54A407529FFF004F8947 /* configd.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69CF05C0722B0099E85F /* configd.h */; }; 159D54A507529FFF004F8947 /* _SCD.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D105C0722B0099E85F /* _SCD.h */; }; 159D54A607529FFF004F8947 /* configd_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D305C0722B0099E85F /* configd_server.h */; }; - 159D54A707529FFF004F8947 /* notify_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D505C0722B0099E85F /* notify_server.h */; }; 159D54A807529FFF004F8947 /* plugin_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D705C0722B0099E85F /* plugin_support.h */; }; 159D54A907529FFF004F8947 /* session.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69D905C0722B0099E85F /* session.h */; }; 159D54AA07529FFF004F8947 /* pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 15CB69DB05C0722B0099E85F /* pattern.h */; }; 159D54AC07529FFF004F8947 /* configd.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E005C0722B0099E85F /* configd.m */; settings = {ATTRIBUTES = (); }; }; 159D54AD07529FFF004F8947 /* _SCD.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E205C0722B0099E85F /* _SCD.c */; settings = {ATTRIBUTES = (); }; }; 159D54AE07529FFF004F8947 /* configd_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E405C0722B0099E85F /* configd_server.c */; settings = {ATTRIBUTES = (); }; }; - 159D54AF07529FFF004F8947 /* notify_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E605C0722B0099E85F /* notify_server.c */; settings = {ATTRIBUTES = (); }; }; 159D54B007529FFF004F8947 /* plugin_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69E805C0722B0099E85F /* plugin_support.c */; settings = {ATTRIBUTES = (); }; }; 159D54B107529FFF004F8947 /* session.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69EA05C0722B0099E85F /* session.c */; settings = {ATTRIBUTES = (); }; }; 159D54B207529FFF004F8947 /* pattern.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69EC05C0722B0099E85F /* pattern.c */; settings = {ATTRIBUTES = (); }; }; @@ -702,12 +735,13 @@ 159D54C007529FFF004F8947 /* _notifychanges.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A0C05C0722B0099E85F /* _notifychanges.c */; settings = {ATTRIBUTES = (); }; }; 159D54C107529FFF004F8947 /* _notifyviaport.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A0E05C0722B0099E85F /* _notifyviaport.c */; settings = {ATTRIBUTES = (); }; }; 159D54C207529FFF004F8947 /* _notifyviafd.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1005C0722B0099E85F /* _notifyviafd.c */; settings = {ATTRIBUTES = (); }; }; - 159D54C307529FFF004F8947 /* _notifyviasignal.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1205C0722B0099E85F /* _notifyviasignal.c */; settings = {ATTRIBUTES = (); }; }; 159D54C407529FFF004F8947 /* _notifycancel.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1405C0722B0099E85F /* _notifycancel.c */; settings = {ATTRIBUTES = (); }; }; 159D54C507529FFF004F8947 /* _snapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB6A1605C0722B0099E85F /* _snapshot.c */; settings = {ATTRIBUTES = (); }; }; 159D54C607529FFF004F8947 /* config.defs in Sources */ = {isa = PBXBuildFile; fileRef = 15CB69BE05C0722B0099E85F /* config.defs */; settings = {ATTRIBUTES = (Server, ); }; }; 159D54CC07529FFF004F8947 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15CB6A6F05C0722B0099E85F /* CoreFoundation.framework */; }; 159D54D607529FFF004F8947 /* configd.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = 15CB6A2005C0722B0099E85F /* configd.8 */; }; + 159FFD5F2110EA44009311DD /* dnsinfo_flatfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 1522FCE50FA7FD7000B24128 /* dnsinfo_flatfile.c */; }; + 159FFD612110EA71009311DD /* dnsinfo_flatfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 1522FCE50FA7FD7000B24128 /* dnsinfo_flatfile.c */; }; 15A1FF3210597F17004C9CC9 /* CaptiveNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 15A1FF3010597F17004C9CC9 /* CaptiveNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15A1FF3310597F17004C9CC9 /* CaptiveNetwork.c in Sources */ = {isa = PBXBuildFile; fileRef = 15A1FF3110597F17004C9CC9 /* CaptiveNetwork.c */; }; 15A1FF3410597F17004C9CC9 /* CaptiveNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 15A1FF3010597F17004C9CC9 /* CaptiveNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -775,7 +809,6 @@ 15A5A2310D5B94190087BDA0 /* SCDNotifierWait.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697605C0722B0099E85F /* SCDNotifierWait.c */; settings = {ATTRIBUTES = (); }; }; 15A5A2320D5B94190087BDA0 /* SCDNotifierInformViaCallback.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697805C0722B0099E85F /* SCDNotifierInformViaCallback.c */; settings = {ATTRIBUTES = (); }; }; 15A5A2340D5B94190087BDA0 /* SCDNotifierInformViaFD.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697C05C0722B0099E85F /* SCDNotifierInformViaFD.c */; settings = {ATTRIBUTES = (); }; }; - 15A5A2350D5B94190087BDA0 /* SCDNotifierInformViaSignal.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697E05C0722B0099E85F /* SCDNotifierInformViaSignal.c */; settings = {ATTRIBUTES = (); }; }; 15A5A2360D5B94190087BDA0 /* SCDNotifierCancel.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698005C0722B0099E85F /* SCDNotifierCancel.c */; settings = {ATTRIBUTES = (); }; }; 15A5A2370D5B94190087BDA0 /* SCDSnapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698205C0722B0099E85F /* SCDSnapshot.c */; settings = {ATTRIBUTES = (); }; }; 15A5A2380D5B94190087BDA0 /* SCP.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698405C0722B0099E85F /* SCP.c */; settings = {ATTRIBUTES = (); }; }; @@ -823,8 +856,6 @@ 15C330D1134B95AA0028E36B /* SCNetworkReachabilityInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C330D0134B95AA0028E36B /* SCNetworkReachabilityInternal.h */; }; 15C330D2134B95AA0028E36B /* SCNetworkReachabilityInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C330D0134B95AA0028E36B /* SCNetworkReachabilityInternal.h */; }; 15C330D3134B95AA0028E36B /* SCNetworkReachabilityInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C330D0134B95AA0028E36B /* SCNetworkReachabilityInternal.h */; }; - 15C8C6BF170AAB4E005375CE /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 159D53CA07528B36004F8947 /* cache.c */; }; - 15C8C6C0170AAB4E005375CE /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 159D53CB07528B36004F8947 /* cache.h */; }; 15CB8F701EE4DCFC00726685 /* network_state_information_logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 1528922C1EDE41ED00FCFE71 /* network_state_information_logging.h */; }; 15CB8F711EE4DCFF00726685 /* network_state_information_logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 1528922C1EDE41ED00FCFE71 /* network_state_information_logging.h */; }; 15CB8F721EE4DD0400726685 /* network_state_information_logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 1528922C1EDE41ED00FCFE71 /* network_state_information_logging.h */; }; @@ -869,8 +900,7 @@ 15D92BA31FFC647800DF2632 /* libnetwork.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 15D92BA01FFC641500DF2632 /* libnetwork.tbd */; }; 15D92BA41FFC648900DF2632 /* libnetwork.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 15D92B9D1FFC61F400DF2632 /* libnetwork.tbd */; }; 15D92BA51FFC64DB00DF2632 /* libnetwork.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 15D92BA01FFC641500DF2632 /* libnetwork.tbd */; }; - 15D92BA71FFC669100DF2632 /* MobileWiFi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15D92BA61FFC669000DF2632 /* MobileWiFi.framework */; }; - 15D9DCFB10DD90A1004E545D /* AppWorkaround.plist in AppWorkaround.plist */ = {isa = PBXBuildFile; fileRef = 15D9DCFA10DD90A1004E545D /* AppWorkaround.plist */; }; + 15D92BA71FFC669100DF2632 /* MobileWiFi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15D92BA61FFC669000DF2632 /* MobileWiFi.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 15DAD5E1075913CE0084A6ED /* dnsinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B73F0905FD1B670096477F /* dnsinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15DAD5E2075913CE0084A6ED /* dnsinfo_private.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B73F0C05FD1B670096477F /* dnsinfo_private.h */; }; 15DAD5E6075913CE0084A6ED /* dnsinfo_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B73F0805FD1B670096477F /* dnsinfo_copy.c */; }; @@ -922,7 +952,6 @@ 15DAD67F07591A1A0084A6ED /* SCDNotifierWait.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697605C0722B0099E85F /* SCDNotifierWait.c */; settings = {ATTRIBUTES = (); }; }; 15DAD68007591A1A0084A6ED /* SCDNotifierInformViaCallback.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697805C0722B0099E85F /* SCDNotifierInformViaCallback.c */; settings = {ATTRIBUTES = (); }; }; 15DAD68207591A1A0084A6ED /* SCDNotifierInformViaFD.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697C05C0722B0099E85F /* SCDNotifierInformViaFD.c */; settings = {ATTRIBUTES = (); }; }; - 15DAD68307591A1A0084A6ED /* SCDNotifierInformViaSignal.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB697E05C0722B0099E85F /* SCDNotifierInformViaSignal.c */; settings = {ATTRIBUTES = (); }; }; 15DAD68407591A1A0084A6ED /* SCDNotifierCancel.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698005C0722B0099E85F /* SCDNotifierCancel.c */; settings = {ATTRIBUTES = (); }; }; 15DAD68507591A1A0084A6ED /* SCDSnapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698205C0722B0099E85F /* SCDSnapshot.c */; settings = {ATTRIBUTES = (); }; }; 15DAD68607591A1A0084A6ED /* SCP.c in Sources */ = {isa = PBXBuildFile; fileRef = 15CB698405C0722B0099E85F /* SCP.c */; settings = {ATTRIBUTES = (); }; }; @@ -975,6 +1004,23 @@ 15E1B05316EBAE3C00E5F06F /* libSystemConfiguration_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 1596A7AF14EDB73D00798C39 /* libSystemConfiguration_server.c */; }; 15E1B05416EBAE3C00E5F06F /* scprefs_observer.c in Sources */ = {isa = PBXBuildFile; fileRef = D61AAEAD1522C99C0066B003 /* scprefs_observer.c */; }; 15E1B05516EBAE3C00E5F06F /* IPMonitorControlPrefs.c in Sources */ = {isa = PBXBuildFile; fileRef = F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */; }; + 15E56C552193840000088C51 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15A5A26A0D5B94190087BDA0 /* SystemConfiguration.framework */; }; + 15E56C5921939B6400088C51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 725CB7541BF439C6000C05A8 /* Foundation.framework */; }; + 15E56C5B21939B7B00088C51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15E56C5A21939B7B00088C51 /* Foundation.framework */; }; + 15E56C5C21939B8E00088C51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15E56C5A21939B7B00088C51 /* Foundation.framework */; }; + 15E91DB721893E83001155DC /* test-objC.m in Sources */ = {isa = PBXBuildFile; fileRef = 72D3E66B1AE6EAF600DB4C69 /* test-objC.m */; }; + 15E91DB921893E83001155DC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1547072E0D1F70C80075C28D /* SystemConfiguration.framework */; }; + 15E91DD021893EE1001155DC /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72D3E6601AE6EA3A00DB4C69 /* main.swift */; }; + 15EF899F21894452003B2C5C /* SCNetworkInterfaceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F90E43542012AD3900EF27C4 /* SCNetworkInterfaceProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 15EF89A021894533003B2C5C /* SNHelperPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = B0C967F717441F0E00889853 /* SNHelperPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 15EF89AA21894636003B2C5C /* test-objC.m in Sources */ = {isa = PBXBuildFile; fileRef = 72D3E66B1AE6EAF600DB4C69 /* test-objC.m */; }; + 15EF89AC21894636003B2C5C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1547072E0D1F70C80075C28D /* SystemConfiguration.framework */; }; + 15EF89B621894665003B2C5C /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72D3E6601AE6EA3A00DB4C69 /* main.swift */; }; + 15EF89C921894AA5003B2C5C /* SCNetworkInterfaceProvider.c in Sources */ = {isa = PBXBuildFile; fileRef = F90E43552012AD4500EF27C4 /* SCNetworkInterfaceProvider.c */; }; + 15EF89CA21894AB4003B2C5C /* SNHelper.c in Sources */ = {isa = PBXBuildFile; fileRef = B0C9689B174426C200889853 /* SNHelper.c */; }; + 15EF89CB21894B1A003B2C5C /* IPMonitorControlPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7AE5E1862116500C78D18 /* IPMonitorControlPrivate.h */; }; + 15EF89CC21894B28003B2C5C /* IPMonitorControl.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7AE5D1862116500C78D18 /* IPMonitorControl.h */; }; + 15EF89CD21894B32003B2C5C /* IPMonitorControl.c in Sources */ = {isa = PBXBuildFile; fileRef = F9B7AE5C1862116500C78D18 /* IPMonitorControl.c */; }; 15F21618110F823500E89CF7 /* libbsm.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 15BAA32207F0699A00D9EC95 /* libbsm.dylib */; }; 15F742DD1EC6370000DA2E7A /* liblog_SystemConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 151D060D1EC14C6700E02E48 /* liblog_SystemConfiguration.m */; }; 15F742DF1EC6370000DA2E7A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 725CB7541BF439C6000C05A8 /* Foundation.framework */; }; @@ -998,7 +1044,7 @@ 720A4C0C1C585C97007436B8 /* dnsAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7280157C1BE16833009F4F60 /* dnsAgent.h */; }; 720A4C0D1C585C9F007436B8 /* proxyAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7280157F1BE16833009F4F60 /* proxyAgent.h */; }; 7214BCE31BEB392000A8F056 /* Network.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 728015951BE16B6C009F4F60 /* Network.framework */; }; - 7214BCE41BEB392300A8F056 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 728015961BE16B6C009F4F60 /* NetworkExtension.framework */; }; + 7214BCE41BEB392300A8F056 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 728015961BE16B6C009F4F60 /* NetworkExtension.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 72499BA41AC9B7AB0090C49F /* get-network-info in Resources */ = {isa = PBXBuildFile; fileRef = 72499BA31AC9B7AB0090C49F /* get-network-info */; }; 72499BA51AC9B7AB0090C49F /* get-network-info in Resources */ = {isa = PBXBuildFile; fileRef = 72499BA31AC9B7AB0090C49F /* get-network-info */; }; 72573D291D667372004975AD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 72573D281D667372004975AD /* main.m */; }; @@ -1048,7 +1094,7 @@ 728015911BE1686C009F4F60 /* proxyAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 728015801BE16833009F4F60 /* proxyAgent.m */; }; 728015921BE1686F009F4F60 /* proxyAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 728015801BE16833009F4F60 /* proxyAgent.m */; }; 728015971BE16B6C009F4F60 /* Network.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 728015951BE16B6C009F4F60 /* Network.framework */; }; - 728015981BE16B6C009F4F60 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 728015961BE16B6C009F4F60 /* NetworkExtension.framework */; }; + 728015981BE16B6C009F4F60 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 728015961BE16B6C009F4F60 /* NetworkExtension.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 728015991BE1812B009F4F60 /* agent-monitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 728015931BE1697E009F4F60 /* agent-monitor.h */; }; 7280159B1BE1812B009F4F60 /* configAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 728015781BE16833009F4F60 /* configAgent.h */; }; 7280159C1BE1812B009F4F60 /* controller.h in Headers */ = {isa = PBXBuildFile; fileRef = 7280157A1BE16833009F4F60 /* controller.h */; }; @@ -1083,6 +1129,13 @@ C42633891A9E4991009F7AE4 /* VPNFlow.c in Sources */ = {isa = PBXBuildFile; fileRef = C4CDB8141631935700819B44 /* VPNFlow.c */; }; C4666C72206ED01800247AB6 /* EventFactory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15FA0F74203A390E00C7702F /* EventFactory.framework */; }; C4666C7A206ED27800247AB6 /* EventFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 1597A9A41FBCECCD000FAA86 /* EventFactory.m */; }; + C469CB2920EED6C100A7AD35 /* StateDumpParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C469CB2820EED6C100A7AD35 /* StateDumpParser.m */; }; + C496A09620F909FF0098B3E5 /* IPConfigurationParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C496A09520F909FF0098B3E5 /* IPConfigurationParser.m */; }; + C4C5FB0520EA9B6F00F35614 /* SCLogParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C4C5FB0420EA9B6F00F35614 /* SCLogParser.m */; }; + C4C5FB0620EA9C3200F35614 /* KernelEventMonitorParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C4C5FB0220EA9A5A00F35614 /* KernelEventMonitorParser.m */; }; + C4C5FB0920EAB0DD00F35614 /* InterfaceNamerParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C4C5FB0820EAB0DD00F35614 /* InterfaceNamerParser.m */; }; + C4C5FB0C20EABD9E00F35614 /* IPMonitorParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C4C5FB0B20EABD9E00F35614 /* IPMonitorParser.m */; }; + C4C5FB0F20EAC05200F35614 /* PreferencesMonitorParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C4C5FB0E20EAC05200F35614 /* PreferencesMonitorParser.m */; }; C4CDB8151631935700819B44 /* VPNFlow.c in Sources */ = {isa = PBXBuildFile; fileRef = C4CDB8141631935700819B44 /* VPNFlow.c */; }; C4CDB8161631935700819B44 /* VPNFlow.c in Sources */ = {isa = PBXBuildFile; fileRef = C4CDB8141631935700819B44 /* VPNFlow.c */; }; C4CDB8171631938000819B44 /* VPNFlow.h in Headers */ = {isa = PBXBuildFile; fileRef = C4CDB8111631933400819B44 /* VPNFlow.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -1105,6 +1158,10 @@ D6986A79136891650091C931 /* network_information.c in Sources */ = {isa = PBXBuildFile; fileRef = D6986A77136891300091C931 /* network_information.c */; }; E49173E1137C4E4F0000089F /* network_state_information_priv.c in Sources */ = {isa = PBXBuildFile; fileRef = D6986A75136891120091C931 /* network_state_information_priv.c */; }; E4F211D3137B0AB900BBB915 /* network_state_information_priv.c in Sources */ = {isa = PBXBuildFile; fileRef = D6986A75136891120091C931 /* network_state_information_priv.c */; }; + F90E43562012AD4F00EF27C4 /* SCNetworkInterfaceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F90E43542012AD3900EF27C4 /* SCNetworkInterfaceProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F90E43572012AD6000EF27C4 /* SCNetworkInterfaceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F90E43542012AD3900EF27C4 /* SCNetworkInterfaceProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F90E43582012AD6900EF27C4 /* SCNetworkInterfaceProvider.c in Sources */ = {isa = PBXBuildFile; fileRef = F90E43552012AD4500EF27C4 /* SCNetworkInterfaceProvider.c */; }; + F90E43592012AD6B00EF27C4 /* SCNetworkInterfaceProvider.c in Sources */ = {isa = PBXBuildFile; fileRef = F90E43552012AD4500EF27C4 /* SCNetworkInterfaceProvider.c */; }; F9347FF7187C796E003D4178 /* IPMonitorControl.c in Sources */ = {isa = PBXBuildFile; fileRef = F9B7AE5C1862116500C78D18 /* IPMonitorControl.c */; }; F9347FF8187C7993003D4178 /* IPMonitorControl.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7AE5D1862116500C78D18 /* IPMonitorControl.h */; }; F9347FF9187C7993003D4178 /* IPMonitorControlPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7AE5E1862116500C78D18 /* IPMonitorControlPrivate.h */; }; @@ -1112,13 +1169,12 @@ F95B8A430B03E07A00993BA3 /* SCNetworkSignature.c in Sources */ = {isa = PBXBuildFile; fileRef = F95B8A420B03E07A00993BA3 /* SCNetworkSignature.c */; }; F95B8A460B03E09300993BA3 /* SCNetworkSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = F95B8A440B03E09300993BA3 /* SCNetworkSignature.h */; settings = {ATTRIBUTES = (Private, ); }; }; F95B8A470B03E09300993BA3 /* SCNetworkSignaturePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F95B8A450B03E09300993BA3 /* SCNetworkSignaturePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; - F97F9FC7202CBD5A0040BD50 /* SCNetworkInterfaceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F97F9FC5202CBD130040BD50 /* SCNetworkInterfaceProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; - F97F9FC8202CBD600040BD50 /* SCNetworkInterfaceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F97F9FC5202CBD130040BD50 /* SCNetworkInterfaceProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; - F97F9FC9202CBD710040BD50 /* SCNetworkInterfaceProvider.c in Sources */ = {isa = PBXBuildFile; fileRef = F97F9FC6202CBD230040BD50 /* SCNetworkInterfaceProvider.c */; }; - F999388920FE54DB005EE20D /* AwdMetadata-0x81-IPMonitor.bin in CopyFiles */ = {isa = PBXBuildFile; fileRef = F999388820FE54CB005EE20D /* AwdMetadata-0x81-IPMonitor.bin */; }; + F963401020FE8E6000F1E1F1 /* AwdMetadata-0x81-IPMonitor.bin in CopyFiles */ = {isa = PBXBuildFile; fileRef = F963400E20FE8E1D00F1E1F1 /* AwdMetadata-0x81-IPMonitor.bin */; }; + F97289D322652D0600080596 /* serviceIDNumber.c in Sources */ = {isa = PBXBuildFile; fileRef = F97289D122652CE600080596 /* serviceIDNumber.c */; }; + F97289D422652D0A00080596 /* serviceIDNumber.c in Sources */ = {isa = PBXBuildFile; fileRef = F97289D122652CE600080596 /* serviceIDNumber.c */; }; + F97289D522652D0D00080596 /* serviceIDNumber.c in Sources */ = {isa = PBXBuildFile; fileRef = F97289D122652CE600080596 /* serviceIDNumber.c */; }; F9A3781016A4847700C57CDC /* IPMonitorControlPrefs.c in Sources */ = {isa = PBXBuildFile; fileRef = F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */; }; F9A3781116A4849100C57CDC /* IPMonitorControlPrefs.c in Sources */ = {isa = PBXBuildFile; fileRef = F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */; }; - F9AF76C1202CCD86008D3BEB /* SCNetworkInterfaceProvider.c in Sources */ = {isa = PBXBuildFile; fileRef = F97F9FC6202CBD230040BD50 /* SCNetworkInterfaceProvider.c */; }; F9B50FF316A4CBB200CA274E /* IPMonitorControlPrefs.c in Sources */ = {isa = PBXBuildFile; fileRef = F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */; }; F9B50FF416A4CBB800CA274E /* IPMonitorControlPrefs.c in Sources */ = {isa = PBXBuildFile; fileRef = F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */; }; F9B7AE641862119300C78D18 /* IPMonitorControl.c in Sources */ = {isa = PBXBuildFile; fileRef = F9B7AE5C1862116500C78D18 /* IPMonitorControl.c */; }; @@ -1135,8 +1191,8 @@ F9B7AE6F186211F600C78D18 /* symbol_scope.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7AE631862116500C78D18 /* symbol_scope.h */; }; F9D7304B20DDBE9900521181 /* AWDIPMonitorInterfaceAdvisoryReport.m in Sources */ = {isa = PBXBuildFile; fileRef = F9D7304920DD89C600521181 /* AWDIPMonitorInterfaceAdvisoryReport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; F9D7304C20DDBEAB00521181 /* IPMonitorAWDReport.m in Sources */ = {isa = PBXBuildFile; fileRef = F9D7303D20DD894C00521181 /* IPMonitorAWDReport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F9D7304F20E41D9C00521181 /* ProtocolBuffer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9D7304E20E41D9C00521181 /* ProtocolBuffer.framework */; }; - F9D7305120E41DD500521181 /* WirelessDiagnostics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9D7305020E41DD500521181 /* WirelessDiagnostics.framework */; settings = {ATTRIBUTES = (Required, ); }; }; + F9D7304F20E41D9C00521181 /* ProtocolBuffer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9D7304E20E41D9C00521181 /* ProtocolBuffer.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F9D7305120E41DD500521181 /* WirelessDiagnostics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9D7305020E41DD500521181 /* WirelessDiagnostics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; F9D7305220E4211900521181 /* AWDIPMonitorInterfaceAdvisoryReport.m in Sources */ = {isa = PBXBuildFile; fileRef = F9D7304920DD89C600521181 /* AWDIPMonitorInterfaceAdvisoryReport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; F9D7305320E4211900521181 /* IPMonitorAWDReport.m in Sources */ = {isa = PBXBuildFile; fileRef = F9D7303D20DD894C00521181 /* IPMonitorAWDReport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; F9D7305420E4387A00521181 /* ProtocolBuffer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9D7304E20E41D9C00521181 /* ProtocolBuffer.framework */; }; @@ -1144,6 +1200,20 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 150EC100210171AE0047F4BF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 72D3E6681AE6EAF600DB4C69; + remoteInfo = "SCTest-ObjC"; + }; + 150EC102210171B60047F4BF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 72D3E65D1AE6EA3900DB4C69; + remoteInfo = "SCTest-Swift"; + }; 150ECB2F0D0042DA0065E94D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; @@ -1165,6 +1235,27 @@ remoteGlobalIDString = 158337990CFB6B9E0033AB93; remoteInfo = "SCHelper-Embedded"; }; + 15401C2B21991B05006326B7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15401C1C21991506006326B7; + remoteInfo = configd_extras; + }; + 15401C2D21991B1B006326B7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15401C21219915BC006326B7; + remoteInfo = "configd_extras-Embedded"; + }; + 15401C2F21991B31006326B7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15401C26219915C6006326B7; + remoteInfo = "configd_extras-EmbeddedSimulator"; + }; 1558480507550D470046C2E9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; @@ -1186,6 +1277,20 @@ remoteGlobalIDString = 155847FA07550D210046C2E9; remoteInfo = configd_executables; }; + 155C626021C2B6FD008DCB1A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 157433DD0D4A8122002ACA73; + remoteInfo = "scselect-Embedded"; + }; + 155C626421C2B6FD008DCB1A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7271EA1B1D76600B0055B1AA; + remoteInfo = "sctest-Embedded"; + }; 155F49A81C8650E900E47D08 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; @@ -1270,13 +1375,6 @@ remoteGlobalIDString = 157433F00D4A8137002ACA73; remoteInfo = "scutil-Embedded"; }; - 157434200D4A8166002ACA73 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; - proxyType = 1; - remoteGlobalIDString = 157433DD0D4A8122002ACA73; - remoteInfo = "scselect-Embedded"; - }; 157A85470D56CA0B00B6F1A0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; @@ -1592,26 +1690,75 @@ remoteGlobalIDString = 15FD13BF0D59485000F9409C; remoteInfo = "All-EmbeddedSimulator"; }; - 723050311AE6F292004AC149 /* PBXContainerItemProxy */ = { + 15EF89A121894601003B2C5C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; proxyType = 1; - remoteGlobalIDString = 15DAD63F07591A1A0084A6ED; - remoteInfo = SystemConfiguration.framework; + remoteGlobalIDString = 1572C4A60CFB55B400E2776E; + remoteInfo = "SystemConfiguration.framework-Embedded"; }; - 723050331AE6F29D004AC149 /* PBXContainerItemProxy */ = { + 15EF89A32189461B003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1572C4A60CFB55B400E2776E; + remoteInfo = "SystemConfiguration.framework-Embedded"; + }; + 15EF89BD2189467B003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15A5A1E40D5B94190087BDA0; + remoteInfo = "SystemConfiguration.framework-EmbeddedSimulator"; + }; + 15EF89BF21894688003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15A5A1E40D5B94190087BDA0; + remoteInfo = "SystemConfiguration.framework-EmbeddedSimulator"; + }; + 15EF89C121894837003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15E91DB221893E83001155DC; + remoteInfo = "SCTest-ObjC-Embedded"; + }; + 15EF89C321894837003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15E91DCC21893EE1001155DC; + remoteInfo = "SCTest-Swift-Embedded"; + }; + 15EF89C52189484C003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15EF89A521894636003B2C5C; + remoteInfo = "SCTest-ObjC-EmbeddedSimulator"; + }; + 15EF89C72189484C003B2C5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 15EF89B221894665003B2C5C; + remoteInfo = "SCTest-Swift-EmbeddedSimulator"; + }; + 723050311AE6F292004AC149 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; proxyType = 1; remoteGlobalIDString = 15DAD63F07591A1A0084A6ED; remoteInfo = SystemConfiguration.framework; }; - 7271EA331D7660980055B1AA /* PBXContainerItemProxy */ = { + 723050331AE6F29D004AC149 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 15CB6A7705C0722B0099E85F /* Project object */; proxyType = 1; - remoteGlobalIDString = 7271EA1B1D76600B0055B1AA; - remoteInfo = "sctest-Embedded"; + remoteGlobalIDString = 15DAD63F07591A1A0084A6ED; + remoteInfo = SystemConfiguration.framework; }; 72C12CB01D6EA2CA000EE61C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -1748,15 +1895,40 @@ name = "Copy Files"; runOnlyForDeploymentPostprocessing = 1; }; - 15D9DCF910DD909F004E545D /* AppWorkaround.plist */ = { + 15E91DBA21893E83001155DC /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstPath = /usr/local/AppSpecificWorkaround/SystemConfiguration; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 15E91DD221893EE1001155DC /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 15EF89AD21894636003B2C5C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 15EF89B821894665003B2C5C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( - 15D9DCFB10DD90A1004E545D /* AppWorkaround.plist in AppWorkaround.plist */, ); - name = AppWorkaround.plist; runOnlyForDeploymentPostprocessing = 1; }; 15FF5C380CDF778F00EEC8AA /* CopyFiles */ = { @@ -1809,13 +1981,13 @@ ); runOnlyForDeploymentPostprocessing = 1; }; - F999388720FE546D005EE20D /* CopyFiles */ = { + F963400F20FE8E4100F1E1F1 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /System/Library/AWD/Metadata; dstSubfolderSpec = 0; files = ( - F999388920FE54DB005EE20D /* AwdMetadata-0x81-IPMonitor.bin in CopyFiles */, + F963401020FE8E6000F1E1F1 /* AwdMetadata-0x81-IPMonitor.bin in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 1; }; @@ -1856,6 +2028,10 @@ 153ACCA614E322D5005029A5 /* network_information_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 0; name = network_information_server.c; path = nwi/network_information_server.c; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.c; }; 153ACCA714E322D5005029A5 /* network_information_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = network_information_server.h; path = nwi/network_information_server.h; sourceTree = ""; }; 1540E3600987DA9500157C07 /* com.apple.configd.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = com.apple.configd.plist; sourceTree = ""; }; + 1542400421626DD300C7CE8B /* SCDCache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SCDCache.c; sourceTree = ""; }; + 15436251218AA22800283462 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = SCMonitor/en.lproj/Localizable.strings; sourceTree = ""; }; + 15436253218AA26100283462 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 15436255218AA27400283462 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NetworkInterface.strings; sourceTree = ""; }; 1543636A0752D03C00A8EC6C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 1547001D08455B98006787CE /* SCHelper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = SCHelper; sourceTree = BUILT_PRODUCTS_DIR; }; 1547072E0D1F70C80075C28D /* SystemConfiguration.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SystemConfiguration.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1894,7 +2070,6 @@ 1574341A0D4A8137002ACA73 /* scutil */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = scutil; sourceTree = BUILT_PRODUCTS_DIR; }; 1575FD2512CD15C60003D86E /* proxy-configuration.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "proxy-configuration.c"; sourceTree = ""; }; 1575FD2612CD15C60003D86E /* proxy-configuration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "proxy-configuration.h"; sourceTree = ""; }; - 1577252F06EFB96700D7B52B /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/NetworkInterface.strings; sourceTree = ""; }; 157A84E80D56C63900B6F1A0 /* libsystem_configuration.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libsystem_configuration.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 157A85020D56C7E800B6F1A0 /* libIPMonitor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libIPMonitor.a; sourceTree = BUILT_PRODUCTS_DIR; }; 157A850D0D56C8AA00B6F1A0 /* libInterfaceNamer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libInterfaceNamer.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1936,8 +2111,6 @@ 159D53BA07528B36004F8947 /* ev_ipv6.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ev_ipv6.h; sourceTree = ""; }; 159D53C107528B36004F8947 /* linkconfig.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = linkconfig.c; sourceTree = ""; }; 159D53C307528B36004F8947 /* prefsmon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = prefsmon.c; sourceTree = ""; }; - 159D53CA07528B36004F8947 /* cache.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = cache.c; sourceTree = ""; }; - 159D53CB07528B36004F8947 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cache.h; sourceTree = ""; }; 159D53D407528BDA004F8947 /* libKernelEventMonitor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libKernelEventMonitor.a; sourceTree = BUILT_PRODUCTS_DIR; }; 159D53E507528C4A004F8947 /* libInterfaceNamer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libInterfaceNamer.a; sourceTree = BUILT_PRODUCTS_DIR; }; 159D53EC07528C61004F8947 /* libIPMonitor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libIPMonitor.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1951,7 +2124,6 @@ 15A509A306C2518F001F0AB7 /* net.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = net.c; sourceTree = ""; }; 15A509A406C2518F001F0AB7 /* net.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = net.h; sourceTree = ""; }; 15A5A26A0D5B94190087BDA0 /* SystemConfiguration.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SystemConfiguration.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 15A6F7C30A4B266D00B907EA /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; 15AAA7F1108E310700C2A607 /* VPNTunnelPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VPNTunnelPrivate.h; sourceTree = ""; }; 15AAA7F2108E310700C2A607 /* VPNTunnel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VPNTunnel.h; sourceTree = ""; }; 15AAA7F3108E310700C2A607 /* VPNTunnel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VPNTunnel.c; sourceTree = ""; }; @@ -2010,7 +2182,6 @@ 15CB697605C0722B0099E85F /* SCDNotifierWait.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCDNotifierWait.c; sourceTree = ""; }; 15CB697805C0722B0099E85F /* SCDNotifierInformViaCallback.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCDNotifierInformViaCallback.c; sourceTree = ""; }; 15CB697C05C0722B0099E85F /* SCDNotifierInformViaFD.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCDNotifierInformViaFD.c; sourceTree = ""; }; - 15CB697E05C0722B0099E85F /* SCDNotifierInformViaSignal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCDNotifierInformViaSignal.c; sourceTree = ""; }; 15CB698005C0722B0099E85F /* SCDNotifierCancel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCDNotifierCancel.c; sourceTree = ""; }; 15CB698205C0722B0099E85F /* SCDSnapshot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCDSnapshot.c; sourceTree = ""; }; 15CB698405C0722B0099E85F /* SCP.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SCP.c; sourceTree = ""; }; @@ -2041,14 +2212,12 @@ 15CB69CF05C0722B0099E85F /* configd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = configd.h; sourceTree = ""; }; 15CB69D105C0722B0099E85F /* _SCD.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _SCD.h; sourceTree = ""; }; 15CB69D305C0722B0099E85F /* configd_server.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = configd_server.h; sourceTree = ""; }; - 15CB69D505C0722B0099E85F /* notify_server.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = notify_server.h; sourceTree = ""; }; 15CB69D705C0722B0099E85F /* plugin_support.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = plugin_support.h; sourceTree = ""; }; 15CB69D905C0722B0099E85F /* session.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = session.h; sourceTree = ""; }; 15CB69DB05C0722B0099E85F /* pattern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pattern.h; sourceTree = ""; }; 15CB69E005C0722B0099E85F /* configd.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = configd.m; sourceTree = ""; }; 15CB69E205C0722B0099E85F /* _SCD.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _SCD.c; sourceTree = ""; }; 15CB69E405C0722B0099E85F /* configd_server.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = configd_server.c; sourceTree = ""; }; - 15CB69E605C0722B0099E85F /* notify_server.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = notify_server.c; sourceTree = ""; }; 15CB69E805C0722B0099E85F /* plugin_support.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = plugin_support.c; sourceTree = ""; }; 15CB69EA05C0722B0099E85F /* session.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = session.c; sourceTree = ""; }; 15CB69EC05C0722B0099E85F /* pattern.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pattern.c; sourceTree = ""; }; @@ -2066,7 +2235,6 @@ 15CB6A0C05C0722B0099E85F /* _notifychanges.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _notifychanges.c; sourceTree = ""; }; 15CB6A0E05C0722B0099E85F /* _notifyviaport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _notifyviaport.c; sourceTree = ""; }; 15CB6A1005C0722B0099E85F /* _notifyviafd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _notifyviafd.c; sourceTree = ""; }; - 15CB6A1205C0722B0099E85F /* _notifyviasignal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _notifyviasignal.c; sourceTree = ""; }; 15CB6A1405C0722B0099E85F /* _notifycancel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _notifycancel.c; sourceTree = ""; }; 15CB6A1605C0722B0099E85F /* _snapshot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = _snapshot.c; sourceTree = ""; }; 15CB6A2005C0722B0099E85F /* configd.8 */ = {isa = PBXFileReference; explicitFileType = text.man; path = configd.8; sourceTree = ""; }; @@ -2101,7 +2269,6 @@ 15D92B9D1FFC61F400DF2632 /* libnetwork.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libnetwork.tbd; path = usr/lib/libnetwork.tbd; sourceTree = SDKROOT; }; 15D92BA01FFC641500DF2632 /* libnetwork.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libnetwork.tbd; path = usr/lib/libnetwork.tbd; sourceTree = SDKROOT; }; 15D92BA61FFC669000DF2632 /* MobileWiFi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileWiFi.framework; path = System/Library/PrivateFrameworks/MobileWiFi.framework; sourceTree = SDKROOT; }; - 15D9DCFA10DD90A1004E545D /* AppWorkaround.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = AppWorkaround.plist; sourceTree = ""; }; 15DAD5EE075913CE0084A6ED /* libsystem_configuration.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libsystem_configuration.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 15DAF2D808466D4900D1B2BD /* SCHelper_client.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = SCHelper_client.c; path = helper/SCHelper_client.c; sourceTree = ""; }; 15DAF2D908466D4900D1B2BD /* SCHelper_server.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = SCHelper_server.c; path = helper/SCHelper_server.c; sourceTree = ""; }; @@ -2115,6 +2282,11 @@ 15DC346E0711D49400A3311C /* net_set.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = net_set.h; sourceTree = ""; }; 15E1B05916EBAE3C00E5F06F /* libIPMonitor_sim.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libIPMonitor_sim.a; sourceTree = BUILT_PRODUCTS_DIR; }; 15E1B06116EBAE7800E5F06F /* IPMonitor.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IPMonitor.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 15E56C5A21939B7B00088C51 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.0.Internal.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 15E91DBE21893E83001155DC /* SCTest-ObjC-Embedded */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "SCTest-ObjC-Embedded"; sourceTree = BUILT_PRODUCTS_DIR; }; + 15E91DD621893EE1001155DC /* SCTest-Swift-Embedded */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "SCTest-Swift-Embedded"; sourceTree = BUILT_PRODUCTS_DIR; }; + 15EF89B121894636003B2C5C /* SCTest-ObjC-EmbeddedSimulator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "SCTest-ObjC-EmbeddedSimulator"; sourceTree = BUILT_PRODUCTS_DIR; }; + 15EF89BC21894665003B2C5C /* SCTest-Swift-EmbeddedSimulator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "SCTest-Swift-EmbeddedSimulator"; sourceTree = BUILT_PRODUCTS_DIR; }; 15F742E41EC6370000DA2E7A /* liblog_SystemConfiguration.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = liblog_SystemConfiguration.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 15F742F11EC638D100DA2E7A /* liblog_SystemConfiguration.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = liblog_SystemConfiguration.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 15FA0F73203A379600C7702F /* EventFactory.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = EventFactory.framework; sourceTree = ""; }; @@ -2134,7 +2306,6 @@ 15FD743E0754DE7A001CC321 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 15FD7B3B101E439200C56621 /* BridgeConfiguration.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = BridgeConfiguration.c; sourceTree = ""; }; 15FEE80D0CCFD341001312F9 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; - 15FEE8160CD03CA3001312F9 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = SCMonitor/English.lproj/Localizable.strings; sourceTree = ""; }; 15FF5C290CDF770500EEC8AA /* com.apple.SCHelper.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = com.apple.SCHelper.plist; path = helper/com.apple.SCHelper.plist; sourceTree = ""; }; 23C1E2B4062DD2C700835B54 /* pppcontroller_types.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = pppcontroller_types.h; path = usr/local/include/ppp/pppcontroller_types.h; sourceTree = SDKROOT; }; 23C1E2B8062DD45900835B54 /* pppcontroller.defs */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.mig; name = pppcontroller.defs; path = SystemConfiguration.fproj/pppcontroller.defs; sourceTree = ""; }; @@ -2190,8 +2361,23 @@ B0A88CA616397A1200A60B3A /* VPNAppLayerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = VPNAppLayerPrivate.h; sourceTree = ""; tabWidth = 4; }; B0C967F717441F0E00889853 /* SNHelperPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNHelperPrivate.h; sourceTree = ""; }; B0C9689B174426C200889853 /* SNHelper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SNHelper.c; sourceTree = ""; }; + C43F873A226D3A18000E8CE5 /* entitlements.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = entitlements.plist; sourceTree = ""; }; C4666C71206ED01800247AB6 /* SystemConfigurationEventFactory.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SystemConfigurationEventFactory.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; C4666C74206ED01800247AB6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C469CB2720EED63C00A7AD35 /* StateDumpParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StateDumpParser.h; sourceTree = ""; }; + C469CB2820EED6C100A7AD35 /* StateDumpParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StateDumpParser.m; sourceTree = ""; }; + C496A09420F909BD0098B3E5 /* IPConfigurationParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IPConfigurationParser.h; sourceTree = ""; }; + C496A09520F909FF0098B3E5 /* IPConfigurationParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IPConfigurationParser.m; sourceTree = ""; }; + C4C5FB0020EA98AC00F35614 /* KernelEventMonitorParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KernelEventMonitorParser.h; sourceTree = ""; }; + C4C5FB0120EA992700F35614 /* SCLogParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SCLogParser.h; sourceTree = ""; }; + C4C5FB0220EA9A5A00F35614 /* KernelEventMonitorParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KernelEventMonitorParser.m; sourceTree = ""; }; + C4C5FB0420EA9B6F00F35614 /* SCLogParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SCLogParser.m; sourceTree = ""; }; + C4C5FB0720EAB0BC00F35614 /* InterfaceNamerParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterfaceNamerParser.h; sourceTree = ""; }; + C4C5FB0820EAB0DD00F35614 /* InterfaceNamerParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterfaceNamerParser.m; sourceTree = ""; }; + C4C5FB0A20EABD5F00F35614 /* IPMonitorParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IPMonitorParser.h; sourceTree = ""; }; + C4C5FB0B20EABD9E00F35614 /* IPMonitorParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IPMonitorParser.m; sourceTree = ""; }; + C4C5FB0D20EAC01900F35614 /* PreferencesMonitorParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PreferencesMonitorParser.h; sourceTree = ""; }; + C4C5FB0E20EAC05200F35614 /* PreferencesMonitorParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PreferencesMonitorParser.m; sourceTree = ""; }; C4CDB8111631933400819B44 /* VPNFlow.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = VPNFlow.h; sourceTree = ""; tabWidth = 4; }; C4CDB8141631935700819B44 /* VPNFlow.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.c; path = VPNFlow.c; sourceTree = ""; tabWidth = 4; }; C4F1847F16237AFC00D97043 /* VPNService.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VPNService.c; sourceTree = ""; }; @@ -2202,12 +2388,14 @@ D6986A77136891300091C931 /* network_information.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = network_information.c; path = nwi/network_information.c; sourceTree = ""; }; D6986A781368913C0091C931 /* network_information.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = network_information.h; path = nwi/network_information.h; sourceTree = ""; }; D6AEB89815AE4446009F2FAF /* ip_plugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ip_plugin.h; sourceTree = ""; }; + F90E43542012AD3900EF27C4 /* SCNetworkInterfaceProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCNetworkInterfaceProvider.h; sourceTree = ""; }; + F90E43552012AD4500EF27C4 /* SCNetworkInterfaceProvider.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SCNetworkInterfaceProvider.c; sourceTree = ""; }; F95B8A420B03E07A00993BA3 /* SCNetworkSignature.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = SCNetworkSignature.c; sourceTree = ""; }; F95B8A440B03E09300993BA3 /* SCNetworkSignature.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SCNetworkSignature.h; sourceTree = ""; }; F95B8A450B03E09300993BA3 /* SCNetworkSignaturePrivate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SCNetworkSignaturePrivate.h; sourceTree = ""; }; - F97F9FC5202CBD130040BD50 /* SCNetworkInterfaceProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCNetworkInterfaceProvider.h; sourceTree = ""; }; - F97F9FC6202CBD230040BD50 /* SCNetworkInterfaceProvider.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SCNetworkInterfaceProvider.c; sourceTree = ""; }; - F999388820FE54CB005EE20D /* AwdMetadata-0x81-IPMonitor.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = "AwdMetadata-0x81-IPMonitor.bin"; sourceTree = ""; }; + F963400E20FE8E1D00F1E1F1 /* AwdMetadata-0x81-IPMonitor.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = "AwdMetadata-0x81-IPMonitor.bin"; sourceTree = ""; }; + F97289D122652CE600080596 /* serviceIDNumber.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = serviceIDNumber.c; sourceTree = ""; }; + F97289D222652CE600080596 /* serviceIDNumber.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = serviceIDNumber.h; sourceTree = ""; }; F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IPMonitorControlPrefs.c; sourceTree = ""; }; F9A3780F16A4846E00C57CDC /* IPMonitorControlPrefs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IPMonitorControlPrefs.h; sourceTree = ""; }; F9B7AE5C1862116500C78D18 /* IPMonitorControl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IPMonitorControl.c; sourceTree = ""; }; @@ -2427,6 +2615,39 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 15E91DB821893E83001155DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15E91DB921893E83001155DC /* SystemConfiguration.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 15E91DD121893EE1001155DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15E56C5B21939B7B00088C51 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 15EF89AB21894636003B2C5C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15EF89AC21894636003B2C5C /* SystemConfiguration.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 15EF89B721894665003B2C5C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15E56C5C21939B8E00088C51 /* Foundation.framework in Frameworks */, + 15E56C552193840000088C51 /* SystemConfiguration.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 15F742DE1EC6370000DA2E7A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2471,6 +2692,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 15E56C5921939B6400088C51 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2478,6 +2700,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 150EC0FF21016BFD0047F4BF /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2719,6 +2942,8 @@ 15812A2D1EA5540B001CF384 /* nat64-configuration.c */, 1575FD2612CD15C60003D86E /* proxy-configuration.h */, 1575FD2512CD15C60003D86E /* proxy-configuration.c */, + F97289D122652CE600080596 /* serviceIDNumber.c */, + F97289D222652CE600080596 /* serviceIDNumber.h */, 155D22390AF13A7300D52ED0 /* set-hostname.h */, 159D53AB07528B36004F8947 /* set-hostname.c */, 155D223A0AF13A7300D52ED0 /* smb-configuration.h */, @@ -2786,8 +3011,6 @@ 15FB1F881E27E9A000B4F809 /* InterfaceNamerControlPrefs.c */, F9A3780F16A4846E00C57CDC /* IPMonitorControlPrefs.h */, F9A3780E16A4846E00C57CDC /* IPMonitorControlPrefs.c */, - 159D53CA07528B36004F8947 /* cache.c */, - 159D53CB07528B36004F8947 /* cache.h */, 1572AA8B1D8234500021E093 /* plugin_shared.h */, ); name = common; @@ -2812,7 +3035,6 @@ 15B6861D0678B61900FF4023 /* Supporting Files */ = { isa = PBXGroup; children = ( - 15D9DCFA10DD90A1004E545D /* AppWorkaround.plist */, 15A6F7C20A4B266D00B907EA /* Localizable.strings */, 15B686220678B65C00FF4023 /* NetworkConfiguration.plist */, 1577253606EFBF3100D7B52B /* NetworkInterface.strings */, @@ -2883,6 +3105,7 @@ 15CB695805C0722B0099E85F /* SCDOpen.c */, 15CB695E05C0722B0099E85F /* SCDList.c */, 15CB696005C0722B0099E85F /* SCDAdd.c */, + 1542400421626DD300C7CE8B /* SCDCache.c */, 15CB696405C0722B0099E85F /* SCDGet.c */, 15CB696605C0722B0099E85F /* SCDSet.c */, 15CB696805C0722B0099E85F /* SCDRemove.c */, @@ -2894,7 +3117,6 @@ 15CB697605C0722B0099E85F /* SCDNotifierWait.c */, 15CB697805C0722B0099E85F /* SCDNotifierInformViaCallback.c */, 15CB697C05C0722B0099E85F /* SCDNotifierInformViaFD.c */, - 15CB697E05C0722B0099E85F /* SCDNotifierInformViaSignal.c */, 15CB698005C0722B0099E85F /* SCDNotifierCancel.c */, 15CB698205C0722B0099E85F /* SCDSnapshot.c */, ); @@ -3060,17 +3282,17 @@ 15CB690705C0722A0099E85F /* SystemConfiguration */, 151F5DA80CCE995D0093AC3B /* SCMonitor */, 15CB69C205C0722B0099E85F /* configd */, - 15CB6A2205C0722B0099E85F /* scselect */, - 15CB6A3705C0722B0099E85F /* scutil */, 159D53A207528B06004F8947 /* Plugins */, F9B7AE5B1862116500C78D18 /* IPMonitorControl */, - 15CB6A6E05C0722B0099E85F /* External Frameworks and Libraries */, - 72D3E65F1AE6EA3A00DB4C69 /* SCTest-Swift */, - 72D3E66A1AE6EAF600DB4C69 /* SCTest-ObjC */, + 15CB6A3705C0722B0099E85F /* scutil */, + 15CB6A2205C0722B0099E85F /* scselect */, 72573D271D667372004975AD /* sctest */, C4666C73206ED01800247AB6 /* EventFactory */, + 72D3E66A1AE6EAF600DB4C69 /* SCTest-ObjC */, + 72D3E65F1AE6EA3A00DB4C69 /* SCTest-Swift */, 15CB690F05C0722B0099E85F /* Products */, 90507AAE1CE2F55B0067D16B /* Frameworks */, + 15CB6A6E05C0722B0099E85F /* External Frameworks and Libraries */, ); indentWidth = 8; name = configd; @@ -3087,7 +3309,7 @@ 1547002E084561B4006787CE /* SCHelper */, 15C330DB134B9B8B0028E36B /* SCNetworkConfiguration */, 15C330DE134B9C290028E36B /* SCNetworkConnection */, - F97F9FC2202CBCA00040BD50 /* SCNetworkInterfaceProvider */, + F90E43512012ACF900EF27C4 /* SCNetworkInterfaceProvider */, 15C330B4134B91930028E36B /* SCNetworkReachability */, 15C330E1134B9C8E0028E36B /* VPN */, 15CB691205C0722B0099E85F /* Other Headers */, @@ -3124,6 +3346,10 @@ 15F742E41EC6370000DA2E7A /* liblog_SystemConfiguration.dylib */, 15F742F11EC638D100DA2E7A /* liblog_SystemConfiguration.dylib */, C4666C71206ED01800247AB6 /* SystemConfigurationEventFactory.bundle */, + 15E91DBE21893E83001155DC /* SCTest-ObjC-Embedded */, + 15E91DD621893EE1001155DC /* SCTest-Swift-Embedded */, + 15EF89B121894636003B2C5C /* SCTest-ObjC-EmbeddedSimulator */, + 15EF89BC21894665003B2C5C /* SCTest-Swift-EmbeddedSimulator */, ); name = Products; sourceTree = ""; @@ -3187,7 +3413,6 @@ 15CB69CF05C0722B0099E85F /* configd.h */, 15CB69D105C0722B0099E85F /* _SCD.h */, 15CB69D305C0722B0099E85F /* configd_server.h */, - 15CB69D505C0722B0099E85F /* notify_server.h */, 15CB69D705C0722B0099E85F /* plugin_support.h */, 15CB69D905C0722B0099E85F /* session.h */, 15CB69DB05C0722B0099E85F /* pattern.h */, @@ -3201,7 +3426,6 @@ 15CB69E005C0722B0099E85F /* configd.m */, 15CB69E205C0722B0099E85F /* _SCD.c */, 15CB69E405C0722B0099E85F /* configd_server.c */, - 15CB69E605C0722B0099E85F /* notify_server.c */, 15CB69E805C0722B0099E85F /* plugin_support.c */, 15CB69EA05C0722B0099E85F /* session.c */, 15CB69EC05C0722B0099E85F /* pattern.c */, @@ -3219,7 +3443,6 @@ 15CB6A0C05C0722B0099E85F /* _notifychanges.c */, 15CB6A0E05C0722B0099E85F /* _notifyviaport.c */, 15CB6A1005C0722B0099E85F /* _notifyviafd.c */, - 15CB6A1205C0722B0099E85F /* _notifyviasignal.c */, 15CB6A1405C0722B0099E85F /* _notifycancel.c */, 15CB6A1605C0722B0099E85F /* _snapshot.c */, ); @@ -3321,6 +3544,7 @@ isa = PBXGroup; children = ( 15CB6A6A05C0722B0099E85F /* scutil.8 */, + C43F873A226D3A18000E8CE5 /* entitlements.plist */, ); name = "Supporting Files"; sourceTree = ""; @@ -3453,6 +3677,7 @@ 90507AAE1CE2F55B0067D16B /* Frameworks */ = { isa = PBXGroup; children = ( + 15E56C5A21939B7B00088C51 /* Foundation.framework */, F9D7305020E41DD500521181 /* WirelessDiagnostics.framework */, F9D7304E20E41D9C00521181 /* ProtocolBuffer.framework */, 1562569020856CCC00FCD61E /* liblockdown.dylib */, @@ -3472,6 +3697,20 @@ children = ( 1597A9A31FBCECCD000FAA86 /* EventFactory.h */, 1597A9A41FBCECCD000FAA86 /* EventFactory.m */, + C4C5FB0120EA992700F35614 /* SCLogParser.h */, + C4C5FB0420EA9B6F00F35614 /* SCLogParser.m */, + C4C5FB0020EA98AC00F35614 /* KernelEventMonitorParser.h */, + C4C5FB0220EA9A5A00F35614 /* KernelEventMonitorParser.m */, + C4C5FB0720EAB0BC00F35614 /* InterfaceNamerParser.h */, + C4C5FB0820EAB0DD00F35614 /* InterfaceNamerParser.m */, + C496A09420F909BD0098B3E5 /* IPConfigurationParser.h */, + C496A09520F909FF0098B3E5 /* IPConfigurationParser.m */, + C4C5FB0A20EABD5F00F35614 /* IPMonitorParser.h */, + C4C5FB0B20EABD9E00F35614 /* IPMonitorParser.m */, + C4C5FB0D20EAC01900F35614 /* PreferencesMonitorParser.h */, + C4C5FB0E20EAC05200F35614 /* PreferencesMonitorParser.m */, + C469CB2720EED63C00A7AD35 /* StateDumpParser.h */, + C469CB2820EED6C100A7AD35 /* StateDumpParser.m */, C4666C74206ED01800247AB6 /* Info.plist */, ); path = EventFactory; @@ -3509,29 +3748,29 @@ name = Sources; sourceTree = ""; }; - F97F9FC2202CBCA00040BD50 /* SCNetworkInterfaceProvider */ = { + F90E43512012ACF900EF27C4 /* SCNetworkInterfaceProvider */ = { isa = PBXGroup; children = ( - F97F9FC4202CBCF50040BD50 /* Headers */, - F97F9FC3202CBCF10040BD50 /* Source */, + F90E43522012AD1900EF27C4 /* Headers */, + F90E43532012AD2300EF27C4 /* Source */, ); name = SCNetworkInterfaceProvider; sourceTree = ""; }; - F97F9FC3202CBCF10040BD50 /* Source */ = { + F90E43522012AD1900EF27C4 /* Headers */ = { isa = PBXGroup; children = ( - F97F9FC6202CBD230040BD50 /* SCNetworkInterfaceProvider.c */, + F90E43542012AD3900EF27C4 /* SCNetworkInterfaceProvider.h */, ); - name = Source; + name = Headers; sourceTree = ""; }; - F97F9FC4202CBCF50040BD50 /* Headers */ = { + F90E43532012AD2300EF27C4 /* Source */ = { isa = PBXGroup; children = ( - F97F9FC5202CBD130040BD50 /* SCNetworkInterfaceProvider.h */, + F90E43552012AD4500EF27C4 /* SCNetworkInterfaceProvider.c */, ); - name = Headers; + name = Source; sourceTree = ""; }; F9B7AE5B1862116500C78D18 /* IPMonitorControl */ = { @@ -3556,7 +3795,7 @@ F9D7304420DD89C600521181 /* AWD */ = { isa = PBXGroup; children = ( - F999388820FE54CB005EE20D /* AwdMetadata-0x81-IPMonitor.bin */, + F963400E20FE8E1D00F1E1F1 /* AwdMetadata-0x81-IPMonitor.bin */, F9D7304620DD89C600521181 /* AWDIPMonitorInterfaceAdvisoryReport.h */, F9D7304720DD89C600521181 /* AWDIPMonitorGlobalEnums.h */, F9D7304820DD89C600521181 /* AWDMetricIds_IPMonitor.h */, @@ -3663,7 +3902,7 @@ 1572C4B90CFB55B400E2776E /* SCNetworkConfiguration.h in Headers */, 1572C4BA0CFB55B400E2776E /* SCNetworkConfigurationInternal.h in Headers */, D61AAEB61522C9E60066B003 /* scprefs_observer.h in Headers */, - F97F9FC8202CBD600040BD50 /* SCNetworkInterfaceProvider.h in Headers */, + F90E43572012AD6000EF27C4 /* SCNetworkInterfaceProvider.h in Headers */, 1572C4BB0CFB55B400E2776E /* SCNetwork.h in Headers */, 1572C4BC0CFB55B400E2776E /* SCNetworkConnection.h in Headers */, 1572C4BD0CFB55B400E2776E /* SCNetworkReachability.h in Headers */, @@ -3707,7 +3946,6 @@ 15732A7816EA503200F3AC4C /* configd.h in Headers */, 15732A7916EA503200F3AC4C /* _SCD.h in Headers */, 15732A7A16EA503200F3AC4C /* configd_server.h in Headers */, - 15732A7B16EA503200F3AC4C /* notify_server.h in Headers */, 15732A7C16EA503200F3AC4C /* plugin_support.h in Headers */, 15732A7D16EA503200F3AC4C /* session.h in Headers */, 15732A7E16EA503200F3AC4C /* pattern.h in Headers */, @@ -3842,7 +4080,6 @@ buildActionMask = 2147483647; files = ( 157A85170D56C8E000B6F1A0 /* eventmon.h in Headers */, - 157A85120D56C8E000B6F1A0 /* cache.h in Headers */, 157A85140D56C8E000B6F1A0 /* ev_dlil.h in Headers */, 157A85150D56C8E000B6F1A0 /* ev_ipv4.h in Headers */, 157A85160D56C8E000B6F1A0 /* ev_ipv6.h in Headers */, @@ -3872,7 +4109,6 @@ 158317250CFB80A1006F62B9 /* configd.h in Headers */, 158317260CFB80A1006F62B9 /* _SCD.h in Headers */, 158317270CFB80A1006F62B9 /* configd_server.h in Headers */, - 158317280CFB80A1006F62B9 /* notify_server.h in Headers */, 158317290CFB80A1006F62B9 /* plugin_support.h in Headers */, 1583172A0CFB80A1006F62B9 /* session.h in Headers */, 1583172B0CFB80A1006F62B9 /* pattern.h in Headers */, @@ -3893,7 +4129,6 @@ buildActionMask = 2147483647; files = ( 159D541407528DB5004F8947 /* eventmon.h in Headers */, - 159D540A07528D3B004F8947 /* cache.h in Headers */, 159D540E07528DAE004F8947 /* ev_dlil.h in Headers */, 159D541007528DB1004F8947 /* ev_ipv4.h in Headers */, 159D541207528DB3004F8947 /* ev_ipv6.h in Headers */, @@ -3961,7 +4196,6 @@ 159D54A407529FFF004F8947 /* configd.h in Headers */, 159D54A507529FFF004F8947 /* _SCD.h in Headers */, 159D54A607529FFF004F8947 /* configd_server.h in Headers */, - 159D54A707529FFF004F8947 /* notify_server.h in Headers */, 159D54A807529FFF004F8947 /* plugin_support.h in Headers */, 159D54A907529FFF004F8947 /* session.h in Headers */, 159D54AA07529FFF004F8947 /* pattern.h in Headers */, @@ -3973,6 +4207,8 @@ buildActionMask = 2147483647; files = ( 15A5A2090D5B94190087BDA0 /* pppcontroller.h in Headers */, + 15EF899F21894452003B2C5C /* SCNetworkInterfaceProvider.h in Headers */, + 15EF89CC21894B28003B2C5C /* IPMonitorControl.h in Headers */, 15A5A2080D5B94190087BDA0 /* pppcontroller_types.h in Headers */, 1572C57F171CCFE200870549 /* pppcontroller_mach_defines.h in Headers */, 15A5A1E70D5B94190087BDA0 /* SCSchemaDefinitions.h in Headers */, @@ -4007,6 +4243,7 @@ 15A5A2050D5B94190087BDA0 /* SCPreferencesPathKey.h in Headers */, 15A5A2060D5B94190087BDA0 /* dnsinfo.h in Headers */, 15A5A2070D5B94190087BDA0 /* dnsinfo_private.h in Headers */, + 15EF89CB21894B1A003B2C5C /* IPMonitorControlPrivate.h in Headers */, 15A5A20C0D5B94190087BDA0 /* SCPreferencesSetSpecificPrivate.h in Headers */, 15A5A20D0D5B94190087BDA0 /* SCPreferencesGetSpecificPrivate.h in Headers */, 727AF255191386A0009AB153 /* VPNFlow.h in Headers */, @@ -4014,6 +4251,7 @@ 15A5A2100D5B94190087BDA0 /* SCHelper_client.h in Headers */, 15A5A2110D5B94190087BDA0 /* SCNetworkConnectionPrivate.h in Headers */, 15A5A2120D5B94190087BDA0 /* SCPreferencesKeychainPrivate.h in Headers */, + 15EF89A021894533003B2C5C /* SNHelperPrivate.h in Headers */, 15A5A2130D5B94190087BDA0 /* SCSchemaDefinitionsPrivate.h in Headers */, 15A5A2140D5B94190087BDA0 /* SCNetworkSignature.h in Headers */, 15A5A2150D5B94190087BDA0 /* SCNetworkSignaturePrivate.h in Headers */, @@ -4031,7 +4269,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 15C8C6C0170AAB4E005375CE /* cache.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4076,7 +4313,7 @@ 15DAD65107591A1A0084A6ED /* SCPreferencesSetSpecific.h in Headers */, 15DAD65207591A1A0084A6ED /* SCNetworkConfiguration.h in Headers */, D61AAEB51522C9D00066B003 /* scprefs_observer.h in Headers */, - F97F9FC7202CBD5A0040BD50 /* SCNetworkInterfaceProvider.h in Headers */, + F90E43562012AD4F00EF27C4 /* SCNetworkInterfaceProvider.h in Headers */, 15DAD65307591A1A0084A6ED /* SCNetworkConfigurationInternal.h in Headers */, F9B7AE66186211BE00C78D18 /* IPMonitorControlPrivate.h in Headers */, 15DAD65407591A1A0084A6ED /* SCNetwork.h in Headers */, @@ -4478,7 +4715,7 @@ buildPhases = ( 157A84F50D56C7E800B6F1A0 /* Headers */, 157A84F90D56C7E800B6F1A0 /* Sources */, - F999388720FE546D005EE20D /* CopyFiles */, + F963400F20FE8E4100F1E1F1 /* CopyFiles */, ); buildRules = ( ); @@ -4875,7 +5112,6 @@ 15A66BB11F18177100F7253B /* Update "install_path" for address|thread sanitizers */, 15DAD66807591A1A0084A6ED /* Resources */, 15DAD6B007591A1A0084A6ED /* get-mobility-info */, - 15D9DCF910DD909F004E545D /* AppWorkaround.plist */, 158D6D881C974E7E00A08E78 /* Logging Preferences */, ); buildRules = ( @@ -4920,6 +5156,80 @@ productReference = 15E1B06116EBAE7800E5F06F /* IPMonitor.bundle */; productType = "com.apple.product-type.bundle"; }; + 15E91DB221893E83001155DC /* SCTest-ObjC-Embedded */ = { + isa = PBXNativeTarget; + buildConfigurationList = 15E91DBB21893E83001155DC /* Build configuration list for PBXNativeTarget "SCTest-ObjC-Embedded" */; + buildPhases = ( + 15E91DB521893E83001155DC /* Flush Module Cache */, + 15E91DB621893E83001155DC /* Sources */, + 15E91DB821893E83001155DC /* Frameworks */, + 15E91DBA21893E83001155DC /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + 15EF89A221894601003B2C5C /* PBXTargetDependency */, + ); + name = "SCTest-ObjC-Embedded"; + productName = "SCTest-ObjC"; + productReference = 15E91DBE21893E83001155DC /* SCTest-ObjC-Embedded */; + productType = "com.apple.product-type.tool"; + }; + 15E91DCC21893EE1001155DC /* SCTest-Swift-Embedded */ = { + isa = PBXNativeTarget; + buildConfigurationList = 15E91DD321893EE1001155DC /* Build configuration list for PBXNativeTarget "SCTest-Swift-Embedded" */; + buildPhases = ( + 15E91DCF21893EE1001155DC /* Sources */, + 15E91DD121893EE1001155DC /* Frameworks */, + 15E91DD221893EE1001155DC /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + 15EF89A42189461B003B2C5C /* PBXTargetDependency */, + ); + name = "SCTest-Swift-Embedded"; + productName = "SCTest-Swift"; + productReference = 15E91DD621893EE1001155DC /* SCTest-Swift-Embedded */; + productType = "com.apple.product-type.tool"; + }; + 15EF89A521894636003B2C5C /* SCTest-ObjC-EmbeddedSimulator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 15EF89AE21894636003B2C5C /* Build configuration list for PBXNativeTarget "SCTest-ObjC-EmbeddedSimulator" */; + buildPhases = ( + 15EF89A821894636003B2C5C /* Flush Module Cache */, + 15EF89A921894636003B2C5C /* Sources */, + 15EF89AB21894636003B2C5C /* Frameworks */, + 15EF89AD21894636003B2C5C /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + 15EF89BE2189467B003B2C5C /* PBXTargetDependency */, + ); + name = "SCTest-ObjC-EmbeddedSimulator"; + productName = "SCTest-ObjC"; + productReference = 15EF89B121894636003B2C5C /* SCTest-ObjC-EmbeddedSimulator */; + productType = "com.apple.product-type.tool"; + }; + 15EF89B221894665003B2C5C /* SCTest-Swift-EmbeddedSimulator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 15EF89B921894665003B2C5C /* Build configuration list for PBXNativeTarget "SCTest-Swift-EmbeddedSimulator" */; + buildPhases = ( + 15EF89B521894665003B2C5C /* Sources */, + 15EF89B721894665003B2C5C /* Frameworks */, + 15EF89B821894665003B2C5C /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + 15EF89C021894688003B2C5C /* PBXTargetDependency */, + ); + name = "SCTest-Swift-EmbeddedSimulator"; + productName = "SCTest-Swift"; + productReference = 15EF89BC21894665003B2C5C /* SCTest-Swift-EmbeddedSimulator */; + productType = "com.apple.product-type.tool"; + }; 15F742DA1EC6370000DA2E7A /* liblog_SystemConfiguration-Embedded */ = { isa = PBXNativeTarget; buildConfigurationList = 15F742E11EC6370000DA2E7A /* Build configuration list for PBXNativeTarget "liblog_SystemConfiguration-Embedded" */; @@ -5081,6 +5391,7 @@ isa = PBXNativeTarget; buildConfigurationList = 72D3E66D1AE6EAF600DB4C69 /* Build configuration list for PBXNativeTarget "SCTest-ObjC" */; buildPhases = ( + 150EC0FE21016BAA0047F4BF /* Flush Module Cache */, 72D3E6651AE6EAF600DB4C69 /* Sources */, 72D3E6661AE6EAF600DB4C69 /* Frameworks */, 72D3E6671AE6EAF600DB4C69 /* CopyFiles */, @@ -5101,7 +5412,6 @@ buildPhases = ( C4666C6D206ED01800247AB6 /* Sources */, C4666C6E206ED01800247AB6 /* Frameworks */, - C4666C6F206ED01800247AB6 /* Resources */, ); buildRules = ( ); @@ -5118,8 +5428,11 @@ 15CB6A7705C0722B0099E85F /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1100; TargetAttributes = { + 15401C1C21991506006326B7 = { + CreatedOnToolsVersion = 11.0; + }; 72573D251D667372004975AD = { CreatedOnToolsVersion = 8.0; ProvisioningStyle = Automatic; @@ -5138,13 +5451,11 @@ }; buildConfigurationList = 156EB63E0905594A00EEF749 /* Build configuration list for PBXProject "configd" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( - English, - Japanese, - French, - German, + en, + Base, ); mainGroup = 15CB68FC05C072220099E85F /* configd */; productRefGroup = 15CB690F05C0722B0099E85F /* Products */; @@ -5156,14 +5467,13 @@ 15DAD5DF075913CE0084A6ED /* libsystem_configuration */, 157BB8AE075924360025DA7A /* configd_base */, 15DAD63F07591A1A0084A6ED /* SystemConfiguration.framework */, - 1547001808455B98006787CE /* SCHelper */, 159D542007528E7C004F8947 /* configd_plugins */, - 159D53EB07528C61004F8947 /* IPMonitor */, - 15FD72A10754DA4C001CC321 /* IPMonitor.bundle */, - 159D53E407528C4A004F8947 /* InterfaceNamer */, - 15FD72930754DA2B001CC321 /* InterfaceNamer.bundle */, 159D53D307528BDA004F8947 /* KernelEventMonitor */, 15828AE60753B5F900AD4710 /* KernelEventMonitor.bundle */, + 159D53E407528C4A004F8947 /* InterfaceNamer */, + 15FD72930754DA2B001CC321 /* InterfaceNamer.bundle */, + 159D53EB07528C61004F8947 /* IPMonitor */, + 15FD72A10754DA4C001CC321 /* IPMonitor.bundle */, 159D53F207528C79004F8947 /* LinkConfiguration */, 15FD72B10754DA69001CC321 /* LinkConfiguration.bundle */, 159D53F907528C95004F8947 /* PreferencesMonitor */, @@ -5175,20 +5485,21 @@ 159D549F07529FFF004F8947 /* configd */, 1558481207550EC10046C2E9 /* scselect */, 155847430754FDCD0046C2E9 /* scutil */, - 72573D251D667372004975AD /* sctest */, + 1547001808455B98006787CE /* SCHelper */, 151F5D990CCE98E50093AC3B /* SCMonitor */, + 72573D251D667372004975AD /* sctest */, C4666C70206ED01800247AB6 /* SystemConfigurationEventFactory */, + 15401C1C21991506006326B7 /* configd_extras */, 151C1CC60CFB487000C5AFD6 /* All-Embedded */, 15C64A280F684C6B00D78394 /* configd_libSystem-Embedded */, 157A84D80D56C63900B6F1A0 /* libsystem_configuration-Embedded */, 158316CF0CFB774B006F62B9 /* configd_base-Embedded */, 1572C4A60CFB55B400E2776E /* SystemConfiguration.framework-Embedded */, - 158337990CFB6B9E0033AB93 /* SCHelper-Embedded */, 158316E30CFB7761006F62B9 /* configd_plugins-Embedded */, - 157A84F40D56C7E800B6F1A0 /* IPMonitor-Embedded */, - 1583177D0CFB85C8006F62B9 /* IPMonitor.bundle-Embedded */, 157A85050D56C8AA00B6F1A0 /* InterfaceNamer-Embedded */, 158317870CFB85DD006F62B9 /* InterfaceNamer.bundle-Embedded */, + 157A84F40D56C7E800B6F1A0 /* IPMonitor-Embedded */, + 1583177D0CFB85C8006F62B9 /* IPMonitor.bundle-Embedded */, 157A85100D56C8E000B6F1A0 /* KernelEventMonitor-Embedded */, 158317900CFB85F7006F62B9 /* KernelEventMonitor.bundle-Embedded */, 157A85260D56C91100B6F1A0 /* LinkConfiguration-Embedded */, @@ -5202,7 +5513,9 @@ 158317230CFB80A1006F62B9 /* configd-Embedded */, 157433DD0D4A8122002ACA73 /* scselect-Embedded */, 157433F00D4A8137002ACA73 /* scutil-Embedded */, + 158337990CFB6B9E0033AB93 /* SCHelper-Embedded */, 7271EA1B1D76600B0055B1AA /* sctest-Embedded */, + 15401C21219915BC006326B7 /* configd_extras-Embedded */, 15FD13BF0D59485000F9409C /* All-EmbeddedSimulator */, 157FDE3B164A075F0040D6A8 /* configd_libSystem-EmbeddedSimulator */, 15732AD616EA6B6700F3AC4C /* libsystem_configuration-EmbeddedSimulator */, @@ -5216,10 +5529,15 @@ 15F742E71EC638D100DA2E7A /* liblog_SystemConfiguration-EmbeddedSimulator */, 15732A7616EA503200F3AC4C /* configd-EmbeddedSimulator */, 15732AAD16EA511900F3AC4C /* scutil-EmbeddedSimulator */, - 151F63DA09328A3C0096DCC9 /* Schema */, + 15401C26219915C6006326B7 /* configd_extras-EmbeddedSimulator */, 15E83104167F9AF600FD51EC /* EVERYTHING */, - 72D3E65D1AE6EA3900DB4C69 /* SCTest-Swift */, + 151F63DA09328A3C0096DCC9 /* Schema */, 72D3E6681AE6EAF600DB4C69 /* SCTest-ObjC */, + 15E91DB221893E83001155DC /* SCTest-ObjC-Embedded */, + 15EF89A521894636003B2C5C /* SCTest-ObjC-EmbeddedSimulator */, + 72D3E65D1AE6EA3900DB4C69 /* SCTest-Swift */, + 15E91DCC21893EE1001155DC /* SCTest-Swift-Embedded */, + 15EF89B221894665003B2C5C /* SCTest-Swift-EmbeddedSimulator */, ); }; /* End PBXProject section */ @@ -5365,13 +5683,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C4666C6F206ED01800247AB6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -5390,6 +5701,25 @@ shellScript = "#\n# move libsystem_configuration_[at]san.dylib out of /usr/lib/system\n#\n# Note: to use the asan/tsan .dylib, set DYLD_INSERT_LIBRARIES=...\n#\nfor VARIANT in ${BUILD_VARIANTS}\ndo\n if [ \"${VARIANT}\" = \"asan\" -o \"${VARIANT}\" = \"tsan\" ]; then\n DIR_O=\"/usr/lib/system\"\n DIR_N=\"/usr/local/lib\"\n DYLIB=\"libsystem_configuration_${VARIANT}.dylib\"\n\n\t\tmkdir -p \"${DSTROOT}/${DIR_N}\"\n\t\tmv \"${DSTROOT}/${DIR_O}/${DYLIB}\" \"${DSTROOT}/${DIR_N}/${DYLIB}\"\n\t\tif [ -d \"${DSTROOT}/${DIR_O}/${DYLIB}.dSYM\" ]; then\n\t\t\tmv \"${DSTROOT}/${DIR_O}/${DYLIB}.dSYM\" \"${DSTROOT}/${DIR_N}/${DYLIB}.dSYM\"\n\t\tfi\n fi\ndone"; showEnvVarsInLog = 0; }; + 150EC0FE21016BAA0047F4BF /* Flush Module Cache */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Flush Module Cache"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "rm -rf \"${CLANG_MODULE_CACHE_PATH}\"\n"; + showEnvVarsInLog = 0; + }; 1510A7301B17E1AF00125A85 /* Add framework symlink (TEMPORARY) */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -5630,7 +5960,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ -x ${SCRIPT_INPUT_FILE_0} ]; then\n ${SCRIPT_INPUT_FILE_0}\nfi\n"; + shellScript = "if [ -x ${SCRIPT_INPUT_FILE_0} ]; then\n ${SCRIPT_INPUT_FILE_0} \"${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}\"\nfi\n"; showEnvVarsInLog = 0; }; 1535FEDC1B0FDDCD00B2A3AD /* Add framework symlink (TEMPORARY) */ = { @@ -5648,9 +5978,66 @@ shellScript = "if [ \"${USING_PRIVATE_SYSTEMCONFIGURATION_FRAMEWORK}\" = \"YES\" ]; then\n mkdir -p ${DSTROOT}/System/Library/Frameworks\n cd ${DSTROOT}/System/Library/Frameworks\n rm -rf SystemConfiguration.framework\n ln -s ../PrivateFrameworks/SystemConfiguration.framework .\nfi"; showEnvVarsInLog = 0; }; - 154070A01B968548003195EF /* Update "install_path" for address|thread sanitizers */ = { + 15401C2021991549006326B7 /* Create non-empty Root */ = { isa = PBXShellScriptBuildPhase; - buildActionMask = 12; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Create non-empty Root"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "mkdir -p \"${DSTROOT}/AppleInternal\"\n"; + showEnvVarsInLog = 0; + }; + 15401C22219915BC006326B7 /* Create non-empty Root */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Create non-empty Root"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "mkdir -p \"${DSTROOT}/AppleInternal\"\n"; + showEnvVarsInLog = 0; + }; + 15401C27219915C6006326B7 /* Create non-empty Root */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Create non-empty Root"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "mkdir -p \"${DSTROOT}/AppleInternal\"\n"; + showEnvVarsInLog = 0; + }; + 154070A01B968548003195EF /* Update "install_path" for address|thread sanitizers */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; files = ( ); inputPaths = ( @@ -5721,7 +6108,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ -x ${SCRIPT_INPUT_FILE_0} ]; then\n ${SCRIPT_INPUT_FILE_0}\nfi\n"; + shellScript = "if [ -x ${SCRIPT_INPUT_FILE_0} ]; then\n${SCRIPT_INPUT_FILE_0} \"${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}\"\nfi\n"; showEnvVarsInLog = 0; }; 15A66BB11F18177100F7253B /* Update "install_path" for address|thread sanitizers */ = { @@ -5801,6 +6188,44 @@ shellScript = "mkdir -p \"${DSTROOT}/usr/local/bin\"\nln -fs \"${INSTALL_PATH}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/get-mobility-info\" \"${DSTROOT}/usr/local/bin/\"\n"; showEnvVarsInLog = 0; }; + 15E91DB521893E83001155DC /* Flush Module Cache */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Flush Module Cache"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "rm -rf \"${CLANG_MODULE_CACHE_PATH}\"\n"; + showEnvVarsInLog = 0; + }; + 15EF89A821894636003B2C5C /* Flush Module Cache */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Flush Module Cache"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "rm -rf \"${CLANG_MODULE_CACHE_PATH}\"\n"; + showEnvVarsInLog = 0; + }; 15FBB54D17D75DE70035D752 /* Update MachServices */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -5978,7 +6403,6 @@ 1572C4F20CFB55B400E2776E /* SCDNotifierWait.c in Sources */, 1572C4F30CFB55B400E2776E /* SCDNotifierInformViaCallback.c in Sources */, 1572C4F50CFB55B400E2776E /* SCDNotifierInformViaFD.c in Sources */, - 1572C4F60CFB55B400E2776E /* SCDNotifierInformViaSignal.c in Sources */, 1572C4F70CFB55B400E2776E /* SCDNotifierCancel.c in Sources */, 1572C4F80CFB55B400E2776E /* SCDSnapshot.c in Sources */, 1572C4F90CFB55B400E2776E /* SCP.c in Sources */, @@ -5992,7 +6416,7 @@ 1572C5000CFB55B400E2776E /* SCPSet.c in Sources */, 1572C5010CFB55B400E2776E /* SCPRemove.c in Sources */, 1572C5020CFB55B400E2776E /* SCPCommit.c in Sources */, - F97F9FC9202CBD710040BD50 /* SCNetworkInterfaceProvider.c in Sources */, + F90E43592012AD6B00EF27C4 /* SCNetworkInterfaceProvider.c in Sources */, 1572C5040CFB55B400E2776E /* SCPPath.c in Sources */, 1572C5030CFB55B400E2776E /* SCPApply.c in Sources */, 1572C5060CFB55B400E2776E /* SCDHostName.c in Sources */, @@ -6007,6 +6431,7 @@ 1572C5150CFB55B400E2776E /* SCPreferencesPathKey.c in Sources */, 1572C5190CFB55B400E2776E /* SCNetworkConfigurationInternal.c in Sources */, 1572C51A0CFB55B400E2776E /* SCNetworkInterface.c in Sources */, + 1542400621626F5C00C7CE8B /* SCDCache.c in Sources */, 1572C51B0CFB55B400E2776E /* SCNetworkProtocol.c in Sources */, 1572C51C0CFB55B400E2776E /* SCNetworkService.c in Sources */, 1572C51D0CFB55B400E2776E /* SCNetworkSet.c in Sources */, @@ -6036,7 +6461,6 @@ 15732A8016EA503200F3AC4C /* configd.m in Sources */, 15732A8116EA503200F3AC4C /* _SCD.c in Sources */, 15732A8216EA503200F3AC4C /* configd_server.c in Sources */, - 15732A8316EA503200F3AC4C /* notify_server.c in Sources */, 15732A8416EA503200F3AC4C /* plugin_support.c in Sources */, 15732A8516EA503200F3AC4C /* session.c in Sources */, 15732A8616EA503200F3AC4C /* pattern.c in Sources */, @@ -6054,7 +6478,6 @@ 15732A9216EA503200F3AC4C /* _notifychanges.c in Sources */, 15732A9316EA503200F3AC4C /* _notifyviaport.c in Sources */, 15732A9416EA503200F3AC4C /* _notifyviafd.c in Sources */, - 15732A9516EA503200F3AC4C /* _notifyviasignal.c in Sources */, 15732A9616EA503200F3AC4C /* _notifycancel.c in Sources */, 15732A9716EA503200F3AC4C /* _snapshot.c in Sources */, ); @@ -6139,14 +6562,16 @@ files = ( 157A84FB0D56C7E800B6F1A0 /* dns-configuration.c in Sources */, 15D48EC10F67061F00B4711E /* dnsinfo_create.c in Sources */, + 159FFD5F2110EA44009311DD /* dnsinfo_flatfile.c in Sources */, + 150BEC1A14CA252200237116 /* dnsinfo_server.c in Sources */, 7280158E1BE16863009F4F60 /* dnsAgent.m in Sources */, F9B7AE69186211CE00C78D18 /* IPMonitorControlServer.c in Sources */, 728015881BE16851009F4F60 /* configAgent.m in Sources */, 728015911BE1686C009F4F60 /* proxyAgent.m in Sources */, - 150BEC1A14CA252200237116 /* dnsinfo_server.c in Sources */, 155281020E3E4A0F00C54315 /* ip_plugin.c in Sources */, E4F211D3137B0AB900BBB915 /* network_state_information_priv.c in Sources */, 153ACCA914E322D5005029A5 /* network_information_server.c in Sources */, + F97289D322652D0600080596 /* serviceIDNumber.c in Sources */, 1575FD2712CD15C60003D86E /* proxy-configuration.c in Sources */, 157A84FC0D56C7E800B6F1A0 /* set-hostname.c in Sources */, 1501F76A1EA8019D006A71B0 /* nat64-configuration.c in Sources */, @@ -6173,7 +6598,6 @@ buildActionMask = 2147483647; files = ( 157A851E0D56C8E000B6F1A0 /* eventmon.c in Sources */, - 157A85190D56C8E000B6F1A0 /* cache.c in Sources */, 157A851B0D56C8E000B6F1A0 /* ev_dlil.c in Sources */, 157A851C0D56C8E000B6F1A0 /* ev_ipv4.c in Sources */, 157A851D0D56C8E000B6F1A0 /* ev_ipv6.c in Sources */, @@ -6205,7 +6629,6 @@ 1583172D0CFB80A1006F62B9 /* configd.m in Sources */, 1583172E0CFB80A1006F62B9 /* _SCD.c in Sources */, 1583172F0CFB80A1006F62B9 /* configd_server.c in Sources */, - 158317300CFB80A1006F62B9 /* notify_server.c in Sources */, 158317310CFB80A1006F62B9 /* plugin_support.c in Sources */, 158317320CFB80A1006F62B9 /* session.c in Sources */, 158317330CFB80A1006F62B9 /* pattern.c in Sources */, @@ -6223,7 +6646,6 @@ 158317410CFB80A1006F62B9 /* _notifychanges.c in Sources */, 158317420CFB80A1006F62B9 /* _notifyviaport.c in Sources */, 158317430CFB80A1006F62B9 /* _notifyviafd.c in Sources */, - 158317440CFB80A1006F62B9 /* _notifyviasignal.c in Sources */, 158317450CFB80A1006F62B9 /* _notifycancel.c in Sources */, 158317460CFB80A1006F62B9 /* _snapshot.c in Sources */, ); @@ -6243,7 +6665,6 @@ buildActionMask = 2147483647; files = ( 159D541307528DB5004F8947 /* eventmon.c in Sources */, - 159D540907528D3A004F8947 /* cache.c in Sources */, 159D540D07528DAE004F8947 /* ev_dlil.c in Sources */, 159D540F07528DB0004F8947 /* ev_ipv4.c in Sources */, 159D541107528DB2004F8947 /* ev_ipv6.c in Sources */, @@ -6286,6 +6707,7 @@ F9B7AE6A186211D300C78D18 /* IPMonitorControlServer.c in Sources */, F9D7305320E4211900521181 /* IPMonitorAWDReport.m in Sources */, F9D7305220E4211900521181 /* AWDIPMonitorInterfaceAdvisoryReport.m in Sources */, + F97289D422652D0A00080596 /* serviceIDNumber.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6313,7 +6735,6 @@ 159D54AC07529FFF004F8947 /* configd.m in Sources */, 159D54AD07529FFF004F8947 /* _SCD.c in Sources */, 159D54AE07529FFF004F8947 /* configd_server.c in Sources */, - 159D54AF07529FFF004F8947 /* notify_server.c in Sources */, 159D54B007529FFF004F8947 /* plugin_support.c in Sources */, 159D54B107529FFF004F8947 /* session.c in Sources */, 159D54B207529FFF004F8947 /* pattern.c in Sources */, @@ -6331,7 +6752,6 @@ 159D54C007529FFF004F8947 /* _notifychanges.c in Sources */, 159D54C107529FFF004F8947 /* _notifyviaport.c in Sources */, 159D54C207529FFF004F8947 /* _notifyviafd.c in Sources */, - 159D54C307529FFF004F8947 /* _notifyviasignal.c in Sources */, 159D54C407529FFF004F8947 /* _notifycancel.c in Sources */, 159D54C507529FFF004F8947 /* _snapshot.c in Sources */, ); @@ -6363,9 +6783,10 @@ 15A5A2310D5B94190087BDA0 /* SCDNotifierWait.c in Sources */, 15A5A2320D5B94190087BDA0 /* SCDNotifierInformViaCallback.c in Sources */, 15A5A2340D5B94190087BDA0 /* SCDNotifierInformViaFD.c in Sources */, - 15A5A2350D5B94190087BDA0 /* SCDNotifierInformViaSignal.c in Sources */, + 1542400721626F6000C7CE8B /* SCDCache.c in Sources */, 15A5A2360D5B94190087BDA0 /* SCDNotifierCancel.c in Sources */, 15A5A2370D5B94190087BDA0 /* SCDSnapshot.c in Sources */, + 15EF89CA21894AB4003B2C5C /* SNHelper.c in Sources */, 15A5A2380D5B94190087BDA0 /* SCP.c in Sources */, 15A5A2390D5B94190087BDA0 /* SCPOpen.c in Sources */, 15A5A23A0D5B94190087BDA0 /* SCPLock.c in Sources */, @@ -6376,6 +6797,7 @@ 15A5A23F0D5B94190087BDA0 /* SCPSet.c in Sources */, 15A5A2400D5B94190087BDA0 /* SCPRemove.c in Sources */, 15A5A2410D5B94190087BDA0 /* SCPCommit.c in Sources */, + 15EF89C921894AA5003B2C5C /* SCNetworkInterfaceProvider.c in Sources */, 15A5A2420D5B94190087BDA0 /* SCPApply.c in Sources */, 15A5A2430D5B94190087BDA0 /* SCPPath.c in Sources */, 15A5A2450D5B94190087BDA0 /* SCDHostName.c in Sources */, @@ -6406,6 +6828,7 @@ D61AAEB21522C99C0066B003 /* scprefs_observer.c in Sources */, C4F1848316237B1400D97043 /* VPNService.c in Sources */, B0FEF41B1644089200174B99 /* VPNAppLayer.c in Sources */, + 15EF89CD21894B32003B2C5C /* IPMonitorControl.c in Sources */, 727AF25919138E24009AB153 /* VPNTunnel.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6415,7 +6838,6 @@ buildActionMask = 2147483647; files = ( 15D3083916F3EB8600014F82 /* simulator_support.c in Sources */, - 15C8C6BF170AAB4E005375CE /* cache.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6443,6 +6865,7 @@ 15DAD66F07591A1A0084A6ED /* SCDPrivate.c in Sources */, 15DAD67007591A1A0084A6ED /* SCDPlugin.c in Sources */, 7264C144147319E7004FD76D /* CaptiveNetwork.c in Sources */, + 1542400521626F5A00C7CE8B /* SCDCache.c in Sources */, 15DAD67107591A1A0084A6ED /* SCDOpen.c in Sources */, 15DAD67407591A1A0084A6ED /* SCDList.c in Sources */, 15DAD67507591A1A0084A6ED /* SCDAdd.c in Sources */, @@ -6458,7 +6881,6 @@ 15DAD67F07591A1A0084A6ED /* SCDNotifierWait.c in Sources */, 15DAD68007591A1A0084A6ED /* SCDNotifierInformViaCallback.c in Sources */, 15DAD68207591A1A0084A6ED /* SCDNotifierInformViaFD.c in Sources */, - 15DAD68307591A1A0084A6ED /* SCDNotifierInformViaSignal.c in Sources */, 15DAD68407591A1A0084A6ED /* SCDNotifierCancel.c in Sources */, 15DAD68507591A1A0084A6ED /* SCDSnapshot.c in Sources */, 15DAD68607591A1A0084A6ED /* SCP.c in Sources */, @@ -6491,7 +6913,7 @@ 15DAD6A707591A1A0084A6ED /* SCNetworkInterface.c in Sources */, 15DAD6A807591A1A0084A6ED /* SCNetworkProtocol.c in Sources */, 15DAD6A907591A1A0084A6ED /* SCNetworkService.c in Sources */, - F9AF76C1202CCD86008D3BEB /* SCNetworkInterfaceProvider.c in Sources */, + F90E43582012AD6900EF27C4 /* SCNetworkInterfaceProvider.c in Sources */, 15DAD6AA07591A1A0084A6ED /* SCNetworkSet.c in Sources */, 55A3DB9E183C2AD900ED3DB7 /* SCNetworkMigration.c in Sources */, 15DAD6AB07591A1A0084A6ED /* BondConfiguration.c in Sources */, @@ -6515,8 +6937,10 @@ files = ( 15E1B04B16EBAE3C00E5F06F /* dns-configuration.c in Sources */, 15E1B04C16EBAE3C00E5F06F /* dnsinfo_create.c in Sources */, + 159FFD612110EA71009311DD /* dnsinfo_flatfile.c in Sources */, 15E1B04D16EBAE3C00E5F06F /* dnsinfo_server.c in Sources */, 15E1B04E16EBAE3C00E5F06F /* ip_plugin.c in Sources */, + F97289D522652D0D00080596 /* serviceIDNumber.c in Sources */, 15E1B04F16EBAE3C00E5F06F /* network_state_information_priv.c in Sources */, 15E1B05016EBAE3C00E5F06F /* network_information_server.c in Sources */, 15E1B05116EBAE3C00E5F06F /* proxy-configuration.c in Sources */, @@ -6526,6 +6950,38 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 15E91DB621893E83001155DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 15E91DB721893E83001155DC /* test-objC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 15E91DCF21893EE1001155DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 15E91DD021893EE1001155DC /* main.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 15EF89A921894636003B2C5C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 15EF89AA21894636003B2C5C /* test-objC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 15EF89B521894665003B2C5C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 15EF89B621894665003B2C5C /* main.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 15F742DC1EC6370000DA2E7A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -6594,13 +7050,30 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C496A09620F909FF0098B3E5 /* IPConfigurationParser.m in Sources */, C4666C7A206ED27800247AB6 /* EventFactory.m in Sources */, + C4C5FB0C20EABD9E00F35614 /* IPMonitorParser.m in Sources */, + C4C5FB0520EA9B6F00F35614 /* SCLogParser.m in Sources */, + C4C5FB0920EAB0DD00F35614 /* InterfaceNamerParser.m in Sources */, + C469CB2920EED6C100A7AD35 /* StateDumpParser.m in Sources */, + C4C5FB0F20EAC05200F35614 /* PreferencesMonitorParser.m in Sources */, + C4C5FB0620EA9C3200F35614 /* KernelEventMonitorParser.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 150EC101210171AE0047F4BF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 72D3E6681AE6EAF600DB4C69 /* SCTest-ObjC */; + targetProxy = 150EC100210171AE0047F4BF /* PBXContainerItemProxy */; + }; + 150EC103210171B60047F4BF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 72D3E65D1AE6EA3900DB4C69 /* SCTest-Swift */; + targetProxy = 150EC102210171B60047F4BF /* PBXContainerItemProxy */; + }; 150ECB300D0042DA0065E94D /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 151F5D990CCE98E50093AC3B /* SCMonitor */; @@ -6616,6 +7089,21 @@ target = 158337990CFB6B9E0033AB93 /* SCHelper-Embedded */; targetProxy = 1523BBE11E075859006281F1 /* PBXContainerItemProxy */; }; + 15401C2C21991B05006326B7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15401C1C21991506006326B7 /* configd_extras */; + targetProxy = 15401C2B21991B05006326B7 /* PBXContainerItemProxy */; + }; + 15401C2E21991B1B006326B7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15401C21219915BC006326B7 /* configd_extras-Embedded */; + targetProxy = 15401C2D21991B1B006326B7 /* PBXContainerItemProxy */; + }; + 15401C3021991B31006326B7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15401C26219915C6006326B7 /* configd_extras-EmbeddedSimulator */; + targetProxy = 15401C2F21991B31006326B7 /* PBXContainerItemProxy */; + }; 1558480607550D470046C2E9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 159D549F07529FFF004F8947 /* configd */; @@ -6631,6 +7119,16 @@ target = 155847FA07550D210046C2E9 /* configd_executables */; targetProxy = 1558480E07550DD00046C2E9 /* PBXContainerItemProxy */; }; + 155C626121C2B6FD008DCB1A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 157433DD0D4A8122002ACA73 /* scselect-Embedded */; + targetProxy = 155C626021C2B6FD008DCB1A /* PBXContainerItemProxy */; + }; + 155C626521C2B6FD008DCB1A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 7271EA1B1D76600B0055B1AA /* sctest-Embedded */; + targetProxy = 155C626421C2B6FD008DCB1A /* PBXContainerItemProxy */; + }; 155F49A91C8650E900E47D08 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 155F49861C864F1400E47D08 /* QoSMarking */; @@ -6691,11 +7189,6 @@ target = 157433F00D4A8137002ACA73 /* scutil-Embedded */; targetProxy = 1574341E0D4A815E002ACA73 /* PBXContainerItemProxy */; }; - 157434210D4A8166002ACA73 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 157433DD0D4A8122002ACA73 /* scselect-Embedded */; - targetProxy = 157434200D4A8166002ACA73 /* PBXContainerItemProxy */; - }; 157A85480D56CA0B00B6F1A0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 157A84F40D56C7E800B6F1A0 /* IPMonitor-Embedded */; @@ -6921,6 +7414,46 @@ target = 15FD13BF0D59485000F9409C /* All-EmbeddedSimulator */; targetProxy = 15E8310C167F9B1200FD51EC /* PBXContainerItemProxy */; }; + 15EF89A221894601003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1572C4A60CFB55B400E2776E /* SystemConfiguration.framework-Embedded */; + targetProxy = 15EF89A121894601003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89A42189461B003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1572C4A60CFB55B400E2776E /* SystemConfiguration.framework-Embedded */; + targetProxy = 15EF89A32189461B003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89BE2189467B003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15A5A1E40D5B94190087BDA0 /* SystemConfiguration.framework-EmbeddedSimulator */; + targetProxy = 15EF89BD2189467B003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89C021894688003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15A5A1E40D5B94190087BDA0 /* SystemConfiguration.framework-EmbeddedSimulator */; + targetProxy = 15EF89BF21894688003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89C221894837003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15E91DB221893E83001155DC /* SCTest-ObjC-Embedded */; + targetProxy = 15EF89C121894837003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89C421894837003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15E91DCC21893EE1001155DC /* SCTest-Swift-Embedded */; + targetProxy = 15EF89C321894837003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89C62189484C003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15EF89A521894636003B2C5C /* SCTest-ObjC-EmbeddedSimulator */; + targetProxy = 15EF89C52189484C003B2C5C /* PBXContainerItemProxy */; + }; + 15EF89C82189484C003B2C5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 15EF89B221894665003B2C5C /* SCTest-Swift-EmbeddedSimulator */; + targetProxy = 15EF89C72189484C003B2C5C /* PBXContainerItemProxy */; + }; 723050321AE6F292004AC149 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 15DAD63F07591A1A0084A6ED /* SystemConfiguration.framework */; @@ -6931,11 +7464,6 @@ target = 15DAD63F07591A1A0084A6ED /* SystemConfiguration.framework */; targetProxy = 723050331AE6F29D004AC149 /* PBXContainerItemProxy */; }; - 7271EA341D7660980055B1AA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7271EA1B1D76600B0055B1AA /* sctest-Embedded */; - targetProxy = 7271EA331D7660980055B1AA /* PBXContainerItemProxy */; - }; 72C12CB11D6EA2CA000EE61C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 72573D251D667372004975AD /* sctest */; @@ -6962,7 +7490,7 @@ 1577253606EFBF3100D7B52B /* NetworkInterface.strings */ = { isa = PBXVariantGroup; children = ( - 1577252F06EFB96700D7B52B /* English */, + 15436255218AA27400283462 /* en */, ); name = NetworkInterface.strings; sourceTree = ""; @@ -6970,7 +7498,7 @@ 15A6F7C20A4B266D00B907EA /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 15A6F7C30A4B266D00B907EA /* English */, + 15436253218AA26100283462 /* en */, ); name = Localizable.strings; sourceTree = ""; @@ -6978,7 +7506,7 @@ 15FEE8180CD03CBB001312F9 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 15FEE8160CD03CA3001312F9 /* English */, + 15436251218AA22800283462 /* en */, ); name = Localizable.strings; sourceTree = ""; @@ -7020,7 +7548,6 @@ STRIP_INSTALLED_PRODUCT_normal = YES; STRIP_INSTALLED_PRODUCT_profile = NO; STRIP_INSTALLED_PRODUCT_tsan = NO; - VERSION_INFO_PREFIX = liblog_; }; name = Debug; }; @@ -7042,7 +7569,6 @@ STRIP_INSTALLED_PRODUCT_normal = YES; STRIP_INSTALLED_PRODUCT_profile = NO; STRIP_INSTALLED_PRODUCT_tsan = NO; - VERSION_INFO_PREFIX = liblog_; }; name = Release; }; @@ -7124,6 +7650,52 @@ }; name = Release; }; + 15401C1E21991506006326B7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = configd_extras; + }; + name = Debug; + }; + 15401C1F21991506006326B7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = configd_extras; + }; + name = Release; + }; + 15401C24219915BC006326B7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "configd_extras (Embedded)"; + SUPPORTED_PLATFORMS = "iphoneos watchos tvos bridgeos"; + }; + name = Debug; + }; + 15401C25219915BC006326B7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "configd_extras (Embedded)"; + SUPPORTED_PLATFORMS = "iphoneos watchos tvos bridgeos"; + }; + name = Release; + }; + 15401C29219915C6006326B7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "configd_extras (EmbeddedSimulator)"; + SUPPORTED_PLATFORMS = "iphonesimulator tvossimulator watchsimulator bridgesimulator"; + }; + name = Debug; + }; + 15401C2A219915C6006326B7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "configd_extras (EmbeddedSimulator)"; + SUPPORTED_PLATFORMS = "iphonesimulator tvossimulator watchsimulator bridgesimulator"; + }; + name = Release; + }; 155F498B1C864F1400E47D08 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -7232,7 +7804,7 @@ 15631D241ECF98FB0088EEDD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = "configd_executables (EmbeddedSimulator)"; SUPPORTED_PLATFORMS = "iphonesimulator tvossimulator watchsimulator bridgesimulator"; }; name = Debug; @@ -7240,7 +7812,7 @@ 15631D251ECF98FB0088EEDD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = "configd_executables (EmbeddedSimulator)"; SUPPORTED_PLATFORMS = "iphonesimulator tvossimulator watchsimulator bridgesimulator"; }; name = Release; @@ -7383,13 +7955,14 @@ "$(SYMROOT)", "$(SDKROOT)/usr/local/lib", ); - MODULEMAP_FILE = SystemConfiguration.fproj/Modules/sc_modules.modulemap; + MODULEMAP_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap; + MODULEMAP_PRIVATE_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap; OTHER_CFLAGS = ( "$(inherited)", "-DSC_LOG_OR_PRINT", ); OTHER_CFLAGS_debug = "-O0"; - OTHER_TAPI_FLAGS = "$(inherited) -DEXCLUDE_VPN_TUNNEL_PLUGIN_FUNCTIONS -I$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SystemConfigurationInternal.h --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SCDynamicStoreInternal.h"; + OTHER_TAPI_FLAGS = "$(inherited) -DEXCLUDE_VPN_TUNNEL_PLUGIN_FUNCTIONS -I$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SystemConfigurationInternal.h --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SCDynamicStoreInternal.h --verify-api-skip-external-headers"; PRODUCT_BUNDLE_IDENTIFIER = com.apple.SystemConfiguration; PRODUCT_NAME = SystemConfiguration; WRAPPER_EXTENSION = framework; @@ -7416,13 +7989,14 @@ "$(SYMROOT)", "$(SDKROOT)/usr/local/lib", ); - MODULEMAP_FILE = SystemConfiguration.fproj/Modules/sc_modules.modulemap; + MODULEMAP_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap; + MODULEMAP_PRIVATE_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap; OTHER_CFLAGS = ( "$(inherited)", "-DSC_LOG_OR_PRINT", ); OTHER_CFLAGS_debug = "-O0"; - OTHER_TAPI_FLAGS = "$(inherited) -DEXCLUDE_VPN_TUNNEL_PLUGIN_FUNCTIONS -I$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SystemConfigurationInternal.h --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SCDynamicStoreInternal.h"; + OTHER_TAPI_FLAGS = "$(inherited) -DEXCLUDE_VPN_TUNNEL_PLUGIN_FUNCTIONS -I$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SystemConfigurationInternal.h --extra-private-header=$(PROJECT_DIR)/SystemConfiguration.fproj/SCDynamicStoreInternal.h --verify-api-skip-external-headers"; PRODUCT_BUNDLE_IDENTIFIER = com.apple.SystemConfiguration; PRODUCT_NAME = SystemConfiguration; SECTORDER_FLAGS = ( @@ -7481,7 +8055,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_IPMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_IPMonitor\"", ); PRODUCT_NAME = IPMonitor; STRIP_INSTALLED_PRODUCT = NO; @@ -7499,7 +8073,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_IPMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_IPMonitor\"", ); PRODUCT_NAME = IPMonitor; STRIP_INSTALLED_PRODUCT = NO; @@ -7534,7 +8108,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_InterfaceNamer()\"", + "-DSC_LOG_HANDLE=\"__log_InterfaceNamer\"", ); PRODUCT_NAME = InterfaceNamer; STRIP_INSTALLED_PRODUCT = NO; @@ -7549,7 +8123,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_InterfaceNamer()\"", + "-DSC_LOG_HANDLE=\"__log_InterfaceNamer\"", ); PRODUCT_NAME = InterfaceNamer; STRIP_INSTALLED_PRODUCT = NO; @@ -7606,7 +8180,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor\"", ); PRODUCT_NAME = KernelEventMonitor; STRIP_INSTALLED_PRODUCT = NO; @@ -7623,7 +8197,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor\"", ); PRODUCT_NAME = KernelEventMonitor; STRIP_INSTALLED_PRODUCT = NO; @@ -7804,6 +8378,7 @@ 156EB62B0905594A00EEF749 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_ENTITLEMENTS = scutil.tproj/entitlements.plist; FRAMEWORK_SEARCH_PATHS = "$(SYMROOT)"; GCC_DYNAMIC_NO_PIC = NO; INSTALL_PATH = /usr/sbin; @@ -7815,6 +8390,7 @@ 156EB62C0905594A00EEF749 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_ENTITLEMENTS = scutil.tproj/entitlements.plist; FRAMEWORK_SEARCH_PATHS = "$(SYMROOT)"; GCC_DYNAMIC_NO_PIC = NO; INSTALL_PATH = /usr/sbin; @@ -7854,28 +8430,37 @@ 156EB63F0905594A00EEF749 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; APPLY_RULES_IN_COPY_FILES = YES; BUILD_VARIANTS = ( normal, "${EXTRA_BUILD_VARIANT}", ); CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; + CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_MODULE_CACHE_PATH = "$(CONFIGURATION_TEMP_DIR)/ModuleCache"; + CLANG_STATIC_ANALYZER_MODE = deep; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = "$(RC_ProjectSourceVersion)"; @@ -7908,7 +8493,6 @@ "$(inherited)", "-fconstant-cfstrings", "-fstack-protector-all", - "-DOS_ACTIVITY_OBJECT_API=1", ); OTHER_CFLAGS_asan = "-fsanitize=address"; "OTHER_CFLAGS_asan[arch=i386]" = ""; @@ -7923,8 +8507,10 @@ SDKROOT = macosx.internal; SUPPORTED_PLATFORMS = macosx; SUPPORTS_TEXT_BASED_API = YES; - TAPI_VERIFY_MODE = ErrorsAndWarnings; + SWIFT_VERSION = 4.2; + TAPI_VERIFY_MODE = Pedantic; VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = "__attribute__((visibility(\"hidden\")))"; WARNING_CFLAGS = ( "-Wall", "-Wextra", @@ -7940,28 +8526,37 @@ 156EB6400905594A00EEF749 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; APPLY_RULES_IN_COPY_FILES = YES; BUILD_VARIANTS = ( normal, "${EXTRA_BUILD_VARIANT}", ); CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; + CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_MODULE_CACHE_PATH = "$(CONFIGURATION_TEMP_DIR)/ModuleCache"; + CLANG_STATIC_ANALYZER_MODE = deep; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = "$(RC_ProjectSourceVersion)"; DEAD_CODE_STRIPPING = YES; @@ -7986,7 +8581,6 @@ "$(inherited)", "-fconstant-cfstrings", "-fstack-protector-all", - "-DOS_ACTIVITY_OBJECT_API=1", ); OTHER_CFLAGS_asan = "-fsanitize=address"; "OTHER_CFLAGS_asan[arch=i386]" = ""; @@ -8001,8 +8595,10 @@ SUPPORTED_PLATFORMS = macosx; SUPPORTS_TEXT_BASED_API = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TAPI_VERIFY_MODE = ErrorsAndWarnings; + SWIFT_VERSION = 4.2; + TAPI_VERIFY_MODE = Pedantic; VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = "__attribute__((visibility(\"hidden\")))"; WARNING_CFLAGS = ( "-Wall", "-Wextra", @@ -8028,12 +8624,12 @@ "INSTALL_PATH[sdk=appletv*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=iphone*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=watch*]" = "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; - IS_ZIPPERED = YES; LIBRARY_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)/usr/local/lib", ); - MODULEMAP_FILE = SystemConfiguration.fproj/Modules/sc_modules.modulemap; + MODULEMAP_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap; + MODULEMAP_PRIVATE_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap; OTHER_CFLAGS = ( "$(inherited)", "-DSC_LOG_OR_PRINT", @@ -8064,12 +8660,12 @@ "INSTALL_PATH[sdk=appletv*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=iphone*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=watch*]" = "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; - IS_ZIPPERED = YES; LIBRARY_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)/usr/local/lib", ); - MODULEMAP_FILE = SystemConfiguration.fproj/Modules/sc_modules.modulemap; + MODULEMAP_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap; + MODULEMAP_PRIVATE_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap; OTHER_CFLAGS = ( "$(inherited)", "-DSC_LOG_OR_PRINT", @@ -8133,6 +8729,7 @@ isa = XCBuildConfiguration; buildSettings = { BUILD_VARIANTS = normal; + CODE_SIGN_ENTITLEMENTS = scutil.tproj/entitlements.plist; FRAMEWORK_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", @@ -8152,6 +8749,7 @@ isa = XCBuildConfiguration; buildSettings = { BUILD_VARIANTS = normal; + CODE_SIGN_ENTITLEMENTS = scutil.tproj/entitlements.plist; FRAMEWORK_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", @@ -8175,7 +8773,6 @@ GENERATE_PROFILING_CODE_profile = YES; INSTALLHDRS_COPY_PHASE = YES; INSTALL_PATH = /usr/lib/system; - IS_ZIPPERED = YES; LINK_WITH_STANDARD_LIBRARIES = NO; OTHER_LDFLAGS = ( "-Wl,-umbrella,System", @@ -8212,7 +8809,6 @@ GENERATE_PROFILING_CODE_profile = YES; INSTALLHDRS_COPY_PHASE = YES; INSTALL_PATH = /usr/lib/system; - IS_ZIPPERED = YES; LINK_WITH_STANDARD_LIBRARIES = NO; OTHER_LDFLAGS = ( "-Wl,-umbrella,System", @@ -8266,6 +8862,7 @@ 157434170D4A8137002ACA73 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_ENTITLEMENTS = scutil.tproj/entitlements.plist; FRAMEWORK_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", @@ -8284,6 +8881,7 @@ 157434180D4A8137002ACA73 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_ENTITLEMENTS = scutil.tproj/entitlements.plist; FRAMEWORK_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", @@ -8308,7 +8906,6 @@ INSTALL_PATH = /usr/lib/system; INSTALL_PATH_asan = /usr/local/lib; INSTALL_PATH_tsan = /usr/local/lib; - IS_ZIPPERED = YES; LINK_WITH_STANDARD_LIBRARIES = NO; OTHER_LDFLAGS = ( "-Wl,-umbrella,System", @@ -8363,7 +8960,6 @@ INSTALL_PATH = /usr/lib/system; INSTALL_PATH_asan = /usr/local/lib; INSTALL_PATH_tsan = /usr/local/lib; - IS_ZIPPERED = YES; LINK_WITH_STANDARD_LIBRARIES = NO; OTHER_LDFLAGS = ( "-Wl,-umbrella,System", @@ -8420,7 +9016,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_IPMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_IPMonitor\"", ); PRODUCT_NAME = IPMonitor; SDKROOT = iphoneos.internal; @@ -8440,7 +9036,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_IPMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_IPMonitor\"", ); PRODUCT_NAME = IPMonitor; SDKROOT = iphoneos.internal; @@ -8457,7 +9053,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_InterfaceNamer()\"", + "-DSC_LOG_HANDLE=\"__log_InterfaceNamer\"", ); PRODUCT_NAME = InterfaceNamer; SDKROOT = iphoneos.internal; @@ -8474,7 +9070,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_InterfaceNamer()\"", + "-DSC_LOG_HANDLE=\"__log_InterfaceNamer\"", ); PRODUCT_NAME = InterfaceNamer; SDKROOT = iphoneos.internal; @@ -8492,7 +9088,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor\"", ); PRODUCT_NAME = KernelEventMonitor; SDKROOT = iphoneos.internal; @@ -8510,7 +9106,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_KernelEventMonitor\"", ); PRODUCT_NAME = KernelEventMonitor; SDKROOT = iphoneos.internal; @@ -8853,12 +9449,12 @@ "INSTALL_PATH[sdk=appletv*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=iphone*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=watch*]" = "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; - IS_ZIPPERED = YES; LIBRARY_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)/usr/local/lib", ); - MODULEMAP_FILE = SystemConfiguration.fproj/Modules/sc_modules.modulemap; + MODULEMAP_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap; + MODULEMAP_PRIVATE_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap; OTHER_CFLAGS = ( "$(inherited)", "-idirafter", @@ -8892,12 +9488,12 @@ "INSTALL_PATH[sdk=appletv*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=iphone*]" = "$(SYSTEM_LIBRARY_DIR)/Frameworks"; "INSTALL_PATH[sdk=watch*]" = "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; - IS_ZIPPERED = YES; LIBRARY_SEARCH_PATHS = ( "$(SYMROOT)", "$(SDKROOT)/usr/local/lib", ); - MODULEMAP_FILE = SystemConfiguration.fproj/Modules/sc_modules.modulemap; + MODULEMAP_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.modulemap; + MODULEMAP_PRIVATE_FILE = SystemConfiguration.fproj/Modules/SystemConfiguration.private.modulemap; OTHER_CFLAGS = ( "$(inherited)", "-idirafter", @@ -8957,7 +9553,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_SimulatorSupport()\"", + "-DSC_LOG_HANDLE=\"__log_SimulatorSupport\"", ); PRODUCT_NAME = SimulatorSupport_sim; SDKROOT = iphoneos.internal; @@ -8976,7 +9572,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_SimulatorSupport()\"", + "-DSC_LOG_HANDLE=\"__log_SimulatorSupport\"", ); PRODUCT_NAME = SimulatorSupport_sim; SDKROOT = iphoneos.internal; @@ -9020,7 +9616,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_IPMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_IPMonitor\"", ); PRODUCT_BUNDLE_IDENTIFIER = com.apple.SystemConfiguration.IPMonitor; PRODUCT_NAME = IPMonitor_sim; @@ -9041,7 +9637,7 @@ LIBRARY_STYLE = STATIC; OTHER_CFLAGS = ( "$(inherited)", - "-DSC_LOG_HANDLE=\"__log_IPMonitor()\"", + "-DSC_LOG_HANDLE=\"__log_IPMonitor\"", ); PRODUCT_BUNDLE_IDENTIFIER = com.apple.SystemConfiguration.IPMonitor; PRODUCT_NAME = IPMonitor_sim; @@ -9089,6 +9685,106 @@ }; name = Release; }; + 15E91DBC21893E83001155DC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_MODULES_DISABLE_PRIVATE_WARNING = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-Wnon-modular-include-in-module", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphoneos; + }; + name = Debug; + }; + 15E91DBD21893E83001155DC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_MODULES_DISABLE_PRIVATE_WARNING = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-Wnon-modular-include-in-module", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphoneos; + }; + name = Release; + }; + 15E91DD421893EE1001155DC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphoneos; + }; + name = Debug; + }; + 15E91DD521893EE1001155DC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphoneos; + }; + name = Release; + }; + 15EF89AF21894636003B2C5C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_MODULES_DISABLE_PRIVATE_WARNING = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-Wnon-modular-include-in-module", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphonesimulator; + }; + name = Debug; + }; + 15EF89B021894636003B2C5C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_MODULES_DISABLE_PRIVATE_WARNING = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-Wnon-modular-include-in-module", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphonesimulator; + }; + name = Release; + }; + 15EF89BA21894665003B2C5C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphonesimulator; + }; + name = Debug; + }; + 15EF89BB21894665003B2C5C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos.internal; + SUPPORTED_PLATFORMS = iphonesimulator; + }; + name = Release; + }; 15F742E21EC6370000DA2E7A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -9098,7 +9794,6 @@ GENERATE_PROFILING_CODE_profile = YES; INSTALLHDRS_COPY_PHASE = YES; INSTALL_PATH = /usr/lib/log; - IS_ZIPPERED = YES; OTHER_CFLAGS_debug = "-O0"; OTHER_TAPI_FLAGS = "$(inherited) --extra-private-header=$(PROJECT_DIR)/logging/liblog_SystemConfiguration_internal.h"; PRODUCT_NAME = SystemConfiguration; @@ -9109,7 +9804,6 @@ STRIP_INSTALLED_PRODUCT_profile = NO; STRIP_INSTALLED_PRODUCT_tsan = NO; SUPPORTED_PLATFORMS = "iphoneos tvos watchos bridgeos"; - VERSION_INFO_PREFIX = liblog_; }; name = Debug; }; @@ -9122,7 +9816,6 @@ GENERATE_PROFILING_CODE_profile = YES; INSTALLHDRS_COPY_PHASE = YES; INSTALL_PATH = /usr/lib/log; - IS_ZIPPERED = YES; OTHER_CFLAGS_debug = "-O0"; OTHER_TAPI_FLAGS = "$(inherited) --extra-private-header=$(PROJECT_DIR)/logging/liblog_SystemConfiguration_internal.h"; PRODUCT_NAME = SystemConfiguration; @@ -9133,7 +9826,6 @@ STRIP_INSTALLED_PRODUCT_profile = NO; STRIP_INSTALLED_PRODUCT_tsan = NO; SUPPORTED_PLATFORMS = "iphoneos tvos watchos bridgeos"; - VERSION_INFO_PREFIX = liblog_; }; name = Release; }; @@ -9146,7 +9838,6 @@ GENERATE_PROFILING_CODE_profile = YES; INSTALLHDRS_COPY_PHASE = YES; INSTALL_PATH = /usr/lib/log; - IS_ZIPPERED = YES; OTHER_CFLAGS_debug = "-O0"; OTHER_TAPI_FLAGS = "$(inherited) --extra-private-header=$(PROJECT_DIR)/logging/liblog_SystemConfiguration_internal.h"; PRODUCT_NAME = SystemConfiguration; @@ -9157,7 +9848,6 @@ STRIP_INSTALLED_PRODUCT_profile = NO; STRIP_INSTALLED_PRODUCT_tsan = NO; SUPPORTED_PLATFORMS = "iphonesimulator tvossimulator watchsimulator bridgesimulator"; - VERSION_INFO_PREFIX = liblog_; }; name = Debug; }; @@ -9170,7 +9860,6 @@ GENERATE_PROFILING_CODE_profile = YES; INSTALLHDRS_COPY_PHASE = YES; INSTALL_PATH = /usr/lib/log; - IS_ZIPPERED = YES; OTHER_CFLAGS_debug = "-O0"; OTHER_TAPI_FLAGS = "$(inherited) --extra-private-header=$(PROJECT_DIR)/logging/liblog_SystemConfiguration_internal.h"; PRODUCT_NAME = SystemConfiguration; @@ -9181,7 +9870,6 @@ STRIP_INSTALLED_PRODUCT_profile = NO; STRIP_INSTALLED_PRODUCT_tsan = NO; SUPPORTED_PLATFORMS = "iphonesimulator tvossimulator watchsimulator bridgesimulator"; - VERSION_INFO_PREFIX = liblog_; }; name = Release; }; @@ -9204,14 +9892,12 @@ 72573D2B1D667372004975AD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = NO; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = "sctest/sctest-entitlements.plist"; CODE_SIGN_IDENTITY = "-"; FRAMEWORK_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; HEADER_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders"; INSTALL_PATH = /usr/local/bin; - MTL_ENABLE_DEBUG_INFO = YES; PLIST_FILE_OUTPUT_FORMAT = "same-as-input"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -9220,14 +9906,12 @@ 72573D2C1D667372004975AD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = NO; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = "sctest/sctest-entitlements.plist"; CODE_SIGN_IDENTITY = "-"; FRAMEWORK_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; HEADER_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders"; INSTALL_PATH = /usr/local/bin; - MTL_ENABLE_DEBUG_INFO = NO; PLIST_FILE_OUTPUT_FORMAT = "same-as-input"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -9236,14 +9920,12 @@ 7271EA301D76600B0055B1AA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = NO; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = "sctest/sctest-entitlements.plist"; CODE_SIGN_IDENTITY = "-"; FRAMEWORK_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; HEADER_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders"; INSTALL_PATH = /usr/local/bin; - MTL_ENABLE_DEBUG_INFO = YES; PLIST_FILE_OUTPUT_FORMAT = "same-as-input"; PRODUCT_NAME = sctest; SDKROOT = iphoneos.internal; @@ -9254,14 +9936,12 @@ 7271EA311D76600B0055B1AA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = NO; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = "sctest/sctest-entitlements.plist"; CODE_SIGN_IDENTITY = "-"; FRAMEWORK_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"; HEADER_SEARCH_PATHS = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders"; INSTALL_PATH = /usr/local/bin; - MTL_ENABLE_DEBUG_INFO = NO; PLIST_FILE_OUTPUT_FORMAT = "same-as-input"; PRODUCT_NAME = sctest; SDKROOT = iphoneos.internal; @@ -9272,148 +9952,48 @@ 72D3E6631AE6EA3A00DB4C69 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; 72D3E6641AE6EA3A00DB4C69 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; }; name = Release; }; 72D3E66E1AE6EAF600DB4C69 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; + CLANG_MODULES_DISABLE_PRIVATE_WARNING = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-Wnon-modular-include-in-module", + ); PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; }; name = Debug; }; 72D3E66F1AE6EAF600DB4C69 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = NO; + CLANG_MODULES_DISABLE_PRIVATE_WARNING = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-Wnon-modular-include-in-module", + ); PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; }; name = Release; }; C4666C75206ED01800247AB6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -9427,35 +10007,29 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT = YES; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", "$(SDKROOT)$(APPLE_INTERNAL_LIBRARY_DIR)/Frameworks", ); GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = EventFactory/Info.plist; INSTALL_PATH = "$(APPLE_INTERNAL_LIBRARY_DIR)/Frameworks/EventFactory.framework/PlugIns"; + LD_RUNPATH_SEARCH_PATHS = "@loader_path/../../../../../"; MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.apple.$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx.internal; - SKIP_INSTALL = NO; }; name = Debug; }; C4666C76206ED01800247AB6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -9470,6 +10044,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; + DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT = ""; ENABLE_NS_ASSERTIONS = NO; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", @@ -9480,12 +10055,11 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = EventFactory/Info.plist; INSTALL_PATH = "$(APPLE_INTERNAL_LIBRARY_DIR)/Frameworks/EventFactory.framework/PlugIns"; + LD_RUNPATH_SEARCH_PATHS = "@loader_path/../../../../../"; MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.apple.$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx.internal; - SKIP_INSTALL = NO; }; name = Release; }; @@ -9537,6 +10111,33 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 15401C1D21991506006326B7 /* Build configuration list for PBXAggregateTarget "configd_extras" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15401C1E21991506006326B7 /* Debug */, + 15401C1F21991506006326B7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 15401C23219915BC006326B7 /* Build configuration list for PBXAggregateTarget "configd_extras-Embedded" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15401C24219915BC006326B7 /* Debug */, + 15401C25219915BC006326B7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 15401C28219915C6006326B7 /* Build configuration list for PBXAggregateTarget "configd_extras-EmbeddedSimulator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15401C29219915C6006326B7 /* Debug */, + 15401C2A219915C6006326B7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 155F498A1C864F1400E47D08 /* Build configuration list for PBXNativeTarget "QoSMarking" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -10050,6 +10651,42 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 15E91DBB21893E83001155DC /* Build configuration list for PBXNativeTarget "SCTest-ObjC-Embedded" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15E91DBC21893E83001155DC /* Debug */, + 15E91DBD21893E83001155DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 15E91DD321893EE1001155DC /* Build configuration list for PBXNativeTarget "SCTest-Swift-Embedded" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15E91DD421893EE1001155DC /* Debug */, + 15E91DD521893EE1001155DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 15EF89AE21894636003B2C5C /* Build configuration list for PBXNativeTarget "SCTest-ObjC-EmbeddedSimulator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15EF89AF21894636003B2C5C /* Debug */, + 15EF89B021894636003B2C5C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 15EF89B921894665003B2C5C /* Build configuration list for PBXNativeTarget "SCTest-Swift-EmbeddedSimulator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15EF89BA21894665003B2C5C /* Debug */, + 15EF89BB21894665003B2C5C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 15F742E11EC6370000DA2E7A /* Build configuration list for PBXNativeTarget "liblog_SystemConfiguration-Embedded" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/dnsinfo/dnsinfo_copy.c b/dnsinfo/dnsinfo_copy.c index 31d28fb..b5fda07 100644 --- a/dnsinfo/dnsinfo_copy.c +++ b/dnsinfo/dnsinfo_copy.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, 2008-2013, 2015-2017 Apple Inc. All rights reserved. + * Copyright (c) 2004, 2006, 2008-2013, 2015-2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -33,9 +33,6 @@ #include #include #include -#ifdef VERBOSE_ACTIVITY_LOGGING -#include -#endif // VERBOSE_ACTIVITY_LOGGING #include #ifndef SC_LOG_HANDLE @@ -68,24 +65,6 @@ static int dnsinfo_active = 0; static libSC_info_client_t *dnsinfo_client = NULL; -#ifdef VERBOSE_ACTIVITY_LOGGING -static os_activity_t -__dns_configuration_activity() -{ - static os_activity_t activity; - static dispatch_once_t once; - - dispatch_once(&once, ^{ - activity = os_activity_create("accessing DNS configuration", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - }); - - return activity; -} -#endif // VERBOSE_ACTIVITY_LOGGING - - static dispatch_queue_t __dns_configuration_queue() { @@ -149,11 +128,6 @@ dns_configuration_copy() return NULL; } -#ifdef VERBOSE_ACTIVITY_LOGGING - // scope DNS configuration activity - os_activity_scope(__dns_configuration_activity()); -#endif // VERBOSE_ACTIVITY_LOGGING - // create message reqdict = xpc_dictionary_create(NULL, NULL, 0); diff --git a/dnsinfo/dnsinfo_create.c b/dnsinfo/dnsinfo_create.c index 26328a0..06dc182 100644 --- a/dnsinfo/dnsinfo_create.c +++ b/dnsinfo/dnsinfo_create.c @@ -108,7 +108,7 @@ config_add_attribute(dns_create_config_t *_config, // add attribute [data] - bcopy(attribute, &header->attribute[0], attribute_length); + memcpy(&header->attribute[0], attribute, attribute_length); for (uint32_t i = attribute_length; i < rounded_length; i++) { header->attribute[i] = 0; } @@ -185,28 +185,28 @@ _dns_configuration_signature(dns_create_config_t *_config, unsigned char *signature, size_t signature_len) { - bzero(signature, signature_len); + memset(signature, 0, signature_len); if (_config != NULL) { _dns_config_buf_t *config = (_dns_config_buf_t *)*_config; if (config != NULL) { - CC_SHA1_CTX ctx; + CC_SHA256_CTX ctx; uint64_t generation_save; - unsigned char *sha1; - unsigned char sha1_buf[CC_SHA1_DIGEST_LENGTH]; + unsigned char *sha256; + unsigned char sha256_buf[CC_SHA256_DIGEST_LENGTH]; generation_save = config->config.generation; config->config.generation = 0; - sha1 = (signature_len >= CC_SHA1_DIGEST_LENGTH) ? signature : sha1_buf; - CC_SHA1_Init(&ctx); - CC_SHA1_Update(&ctx, + sha256 = (signature_len >= CC_SHA256_DIGEST_LENGTH) ? signature : sha256_buf; + CC_SHA256_Init(&ctx); + CC_SHA256_Update(&ctx, config, sizeof(_dns_config_buf_t) + ntohl(config->n_attribute)); - CC_SHA1_Final(sha1, &ctx); - if (sha1 != signature) { - bcopy(sha1, signature, signature_len); + CC_SHA256_Final(sha256, &ctx); + if (sha256 != signature) { + memcpy(signature, sha256, signature_len); } config->config.generation = generation_save; @@ -278,7 +278,7 @@ _dns_resolver_add_attribute(dns_create_resolver_t *_resolver, // add attribute [data] - bcopy(attribute, &header->attribute[0], attribute_length); + memcpy(&header->attribute[0], attribute, attribute_length); for (uint32_t i = attribute_length; i < rounded_length; i++) { header->attribute[i] = 0; } diff --git a/dnsinfo/dnsinfo_create.h b/dnsinfo/dnsinfo_create.h index d80a653..8dd83a6 100644 --- a/dnsinfo/dnsinfo_create.h +++ b/dnsinfo/dnsinfo_create.h @@ -41,11 +41,13 @@ typedef const struct __dns_create_config * dns_create_config_t; typedef const struct __dns_create_resolver * dns_create_resolver_t; -#if !TARGET_OS_IPHONE #ifndef _PATH_RESOLVER_DIR +#if TARGET_OS_OSX #define _PATH_RESOLVER_DIR "/etc/resolver" +#else +#define _PATH_RESOLVER_DIR "/Library/Preferences/SystemConfiguration/resolver" +#endif #endif -#endif /* !TARGET_OS_IPHONE */ __BEGIN_DECLS @@ -62,7 +64,7 @@ _dns_configuration_add_resolver (dns_create_config_t *_config, void _dns_configuration_signature (dns_create_config_t *_config, unsigned char *signature, - size_t signature_len) API_AVAILABLE(macos(10.7), ios(5.0)); // signature_len >= CC_SHA1_DIGEST_LENGTH + size_t signature_len) API_AVAILABLE(macos(10.7), ios(5.0)); // signature_len >= CC_SHA256_DIGEST_LENGTH void _dns_configuration_free (dns_create_config_t *_config) API_AVAILABLE(macos(10.4), ios(2.0)); @@ -127,16 +129,14 @@ _dns_resolver_set_service_identifier void _dns_resolver_free (dns_create_resolver_t *_resolver) API_AVAILABLE(macos(10.4), ios(2.0)); -#if !TARGET_OS_IPHONE /* * DNS [resolver] flat-file configuration creation APIs */ void -_dnsinfo_flatfile_add_resolvers (dns_create_config_t *config) API_AVAILABLE(macos(10.6)) API_UNAVAILABLE(ios, tvos, watchos, bridgeos); +_dnsinfo_flatfile_add_resolvers (dns_create_config_t *config) API_AVAILABLE(macos(10.6)) SPI_AVAILABLE(ios(10.15), tvos(13.0), watchos(6.0), bridgeos(6.0)); void -_dnsinfo_flatfile_set_flags (uint32_t flags) API_AVAILABLE(macos(10.9)) API_UNAVAILABLE(ios, tvos, watchos, bridgeos); -#endif // !TARGET_OS_IPHONE +_dnsinfo_flatfile_set_flags (uint32_t flags) API_AVAILABLE(macos(10.9)) SPI_AVAILABLE(ios(10.15), tvos(13.0), watchos(6.0), bridgeos(6.0)); __END_DECLS diff --git a/dnsinfo/dnsinfo_flatfile.c b/dnsinfo/dnsinfo_flatfile.c index 7317d25..2820371 100644 --- a/dnsinfo/dnsinfo_flatfile.c +++ b/dnsinfo/dnsinfo_flatfile.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, 2012, 2014, 2015, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2009, 2011, 2012, 2014, 2015, 2017-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -466,7 +466,7 @@ _dnsinfo_flatfile_create_resolver(const char *dir, const char *path) long number = -1; number = strtol(word, NULL, 0); - if (number < 0 || number > UINT32_MAX) break; + if (number < 0 || number > (long)UINT32_MAX) break; _dns_resolver_set_order(&res, (uint32_t)number); break; } @@ -490,13 +490,12 @@ _dnsinfo_flatfile_create_resolver(const char *dir, const char *path) long number = -1; number = strtol(word, NULL, 0); - if (number < 0 || number > UINT32_MAX) break; + if (number < 0 || number > (long)UINT32_MAX) break; _dns_resolver_set_timeout(&res, (uint32_t)number); break; } } } - if (line != NULL) free(line); // set the domain to the basename of the path if not specified if ((res != NULL) && (token_count[TOKEN_DOMAIN] == 0)) { @@ -522,6 +521,7 @@ _dnsinfo_flatfile_create_resolver(const char *dir, const char *path) done : + if (line != NULL) free(line); fclose(f); return res; } diff --git a/dnsinfo/dnsinfo_internal.h b/dnsinfo/dnsinfo_internal.h index c37e949..52f2d57 100644 --- a/dnsinfo/dnsinfo_internal.h +++ b/dnsinfo/dnsinfo_internal.h @@ -293,8 +293,8 @@ _dns_configuration_buffer_create(const void *dataRef, size_t dataLen) // allocate a buffer large enough to hold both the configuration // data and the padding. buf = malloc(bufLen); - bcopy((void *)dataRef, buf, dataLen); - bzero(&buf[dataLen], n_padding); + memcpy(buf, (void *)dataRef, dataLen); + memset(&buf[dataLen], 0, n_padding); return (_dns_config_buf_t *)(void *)buf; } diff --git a/dnsinfo/dnsinfo_server.c b/dnsinfo/dnsinfo_server.c index b6c96a3..419279c 100644 --- a/dnsinfo/dnsinfo_server.c +++ b/dnsinfo/dnsinfo_server.c @@ -51,7 +51,7 @@ #ifdef SC_LOG_HANDLE #include -os_log_t SC_LOG_HANDLE; +os_log_t SC_LOG_HANDLE(void); #endif //SC_LOG_HANDLE diff --git a/get-mobility-info b/get-mobility-info index 92ae111..f6e5e87 100755 --- a/get-mobility-info +++ b/get-mobility-info @@ -318,7 +318,7 @@ fi # open files # if [ -x /usr/sbin/lsof ]; then - ${PRIV} /usr/sbin/lsof -n -O -P -T q > lsof 2>&1 & + ${PRIV} /usr/sbin/lsof +c 0 -n -O -P -T q > lsof 2>&1 & LSOF_PID=$! # Init a watchdog for lsof ( @@ -445,7 +445,7 @@ if [ -x /usr/sbin/lsof -a -x /bin/ls ]; then N=`expr ${N} + 1` echo "#" >> system-statistics - ${PRIV} /usr/sbin/lsof -- ${lock} >> system-statistics 2>&1 + ${PRIV} /usr/sbin/lsof +c 0 -- ${lock} >> system-statistics 2>&1 done fi diff --git a/get-network-info b/get-network-info index a3ca6d3..e2749fd 100755 --- a/get-network-info +++ b/get-network-info @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2017 Apple Inc. +# Copyright © 2015-2019 Apple Inc. # # get-network-info # @@ -25,7 +25,7 @@ process_opts () { COLLECT_NDF_INFO="Y" shift ;; - -P) + -P) COLLECT_PCAP="N" shift ;; @@ -70,13 +70,14 @@ setup () { # __COMMAND_ROUTINES_BEGIN__ -# note: the daemons dump to syslog so you need to wait a bit before -# capturing the logs. +# +# mDNSResponder state dump +# /usr/bin/dns-sd -O -stdout will print the state of mDNSResponder to STDOUT +# collect_state_dump_sensitive () { - ${PRIV} /usr/bin/killall -INFO mDNSResponder 2>/dev/null - - sleep 1 & + echo "`date +"%Y-%m-%d %H:%M:%S"`: collect_state_dump_sensitive" >> get-network-info.txt + ${PRIV} /usr/bin/dns-sd -O -stdout > mDNSResponder_state_dump.txt 2>&1 } @@ -89,6 +90,7 @@ run_ifconfig () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_ifconfig" >> get-network-info.txt /sbin/ifconfig -a -L -b -m -r -v -v > ifconfig.txt 2>&1 if [ $? -ne 0 ]; then /sbin/ifconfig -a > ifconfig.txt 2>&1 @@ -105,15 +107,16 @@ run_netstat () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_netstat" >> get-network-info.txt echo "#" > netstat.txt echo "# netstat -n -r -a -l" >> netstat.txt echo "#" >> netstat.txt /usr/sbin/netstat -n -r -a -l >> netstat.txt 2>&1 echo "#" >> netstat.txt - echo "# netstat -A -a -l -n -v" >> netstat.txt + echo "# netstat -A -a -l -n -v -W" >> netstat.txt echo "#" >> netstat.txt - /usr/sbin/netstat -A -a -l -n -v >> netstat.txt 2>&1 + /usr/sbin/netstat -A -a -l -n -v -W >> netstat.txt 2>&1 echo "#" >> netstat.txt echo "# netstat -s" >> netstat.txt @@ -158,6 +161,11 @@ run_netstat () { if [ -x /sbin/ifconfig ]; then for if in ${IF_LIST} do + echo "#" >> netstat.txt + echo "# netstat -s -I ${if}" >> netstat.txt + echo "#" >> netstat.txt + /usr/sbin/netstat -s -I ${if} >> netstat.txt 2>&1 + IF_INFO=`/sbin/ifconfig -v ${if}` `echo $IF_INFO | grep -q TXSTART` if [ $? -eq 0 ]; then @@ -166,6 +174,7 @@ run_netstat () { echo "#" >> netstat.txt /usr/sbin/netstat -qq -I ${if} >> netstat.txt 2>&1 fi + `echo $IF_INFO | grep -q RXPOLL` if [ $? -eq 0 ]; then echo "#" >> netstat.txt @@ -187,6 +196,7 @@ run_ndp () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_ndp" >> get-network-info.txt echo "#" > ndp-info.txt echo "# ndp -n -a" >> ndp-info.txt echo "#" >> ndp-info.txt @@ -223,6 +233,7 @@ run_arp () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_arp" >> get-network-info.txt echo "#" > arp-info.txt echo "# arp -n -a" >> arp-info.txt echo "#" >> arp-info.txt @@ -239,6 +250,7 @@ run_ipconfig () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_ipconfig" >> get-network-info.txt for if in ${IF_LIST} do case ${if} in @@ -285,9 +297,10 @@ run_setkey () { return fi - echo "#" > ipsec.txt - echo "# setkey -D" >> ipsec.txt - echo "#" >> ipsec.txt + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_setkey" >> get-network-info.txt + echo "#" > ipsec.txt + echo "# setkey -D" >> ipsec.txt + echo "#" >> ipsec.txt ${PRIV} /usr/sbin/setkey -D \ | /usr/bin/perl -l -n -e ' if (/^(\s+[AE]:\s+\S+\s+)"?(.*)"?\s*$/) { @@ -295,13 +308,13 @@ run_setkey () { } else { printf "%s\n", $_; } - ' >> ipsec.txt + ' >> ipsec.txt - echo "" >> ipsec.txt - echo "#" >> ipsec.txt - echo "# setkey -Pp -D" >> ipsec.txt - echo "#" >> ipsec.txt - ${PRIV} /usr/sbin/setkey -Pp -D >> ipsec.txt + echo "" >> ipsec.txt + echo "#" >> ipsec.txt + echo "# setkey -Pp -D" >> ipsec.txt + echo "#" >> ipsec.txt + ${PRIV} /usr/sbin/setkey -Pp -D >> ipsec.txt for CF in /var/run/racoon/*.conf do @@ -309,10 +322,10 @@ run_setkey () { continue fi - echo "" >> ipsec.txt - echo "#" >> ipsec.txt - echo "# ${CF}" >> ipsec.txt - echo "#" >> ipsec.txt + echo "" >> ipsec.txt + echo "#" >> ipsec.txt + echo "# ${CF}" >> ipsec.txt + echo "#" >> ipsec.txt ${PRIV} cat ${CF} \ | /usr/bin/perl -l -n -e ' if (/^(\s+shared_secret\s+use\s+)"?([^\s;"]+)"?(.*)/) { @@ -320,7 +333,7 @@ run_setkey () { } else { printf "%s\n", $_; } - ' >> ipsec.txt + ' >> ipsec.txt done } @@ -334,6 +347,7 @@ run_skywalk () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_skywalk" >> get-network-info.txt echo "#" > skywalk.txt echo "# skywalkctl show" >> skywalk.txt echo "#" >> skywalk.txt @@ -410,10 +424,11 @@ run_nettop () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_nettop" >> get-network-info.txt echo "#" > nettop.txt - echo "# nettop -U -l 1" >> nettop.txt + echo "# nettop -n -l 1" >> nettop.txt echo "#" >> nettop.txt - /usr/bin/nettop -U -l 1 >> nettop.txt 2>&1 + /usr/bin/nettop -n -l 1 >> nettop.txt 2>&1 } @@ -422,6 +437,7 @@ run_nettop () { # collect_configuration_files () { + echo "`date +"%Y-%m-%d %H:%M:%S"`: collect_configuration_files" >> get-network-info.txt for f in \ /Library/Preferences/com.apple.networkextension.plist \ /Library/Preferences/com.apple.networkextension.control.plist \ @@ -438,18 +454,18 @@ collect_configuration_files () { do if [ -e "${f}" ]; then b="`basename ${f}`" - cat "${f}" > "${b}" 2>&1 + cat "${f}" > "${b}" 2>&1 fi done if [ -e /etc/resolv.conf ]; then - cat /etc/resolv.conf > etc-resolv-conf.txt 2>&1 + cat /etc/resolv.conf > etc-resolv-conf.txt 2>&1 fi if [ -e /var/run/resolv.conf ]; then - cat /var/run/resolv.conf > var-run-resolv-conf.txt 2>&1 + cat /var/run/resolv.conf > var-run-resolv-conf.txt 2>&1 fi if [ -e /etc/resolver ]; then - tar -c -H /etc/resolver > etc-resolver.tar 2>/dev/null + tar -c -H /etc/resolver > etc-resolver.tar 2>/dev/null fi } @@ -458,6 +474,7 @@ collect_configuration_files () { # collect_vpn_logs () { + echo "`date +"%Y-%m-%d %H:%M:%S"`: collect_vpn_logs" >> get-network-info.txt for f in \ /var/log/vpnd.log \ /var/log/racoon.log \ @@ -465,7 +482,7 @@ collect_vpn_logs () { do if [ -e "${f}" ]; then b="`basename ${f}`" - ${PRIV} cat "${f}" > "${b}".txt 2>&1 + ${PRIV} cat "${f}" > "${b}".txt 2>&1 fi done } @@ -479,16 +496,17 @@ run_neutil () { return fi + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_neutil" >> get-network-info.txt ( - echo "#" > necp.txt - echo "# neutil policy dump" >> necp.txt - echo "#" >> necp.txt - /usr/local/bin/neutil policy dump >> necp.txt 2>&1 + echo "#" > necp.txt + echo "# neutil policy dump" >> necp.txt + echo "#" >> necp.txt + /usr/local/bin/neutil policy dump >> necp.txt 2>&1 - echo "#" > network-agents.txt - echo "# neutil agent dump" >> network-agents.txt - echo "#" >> network-agents.txt - /usr/local/bin/neutil agent dump >> network-agents.txt 2>&1 + echo "#" > network-agents.txt + echo "# neutil agent dump" >> network-agents.txt + echo "#" >> network-agents.txt + /usr/local/bin/neutil agent dump >> network-agents.txt 2>&1 # Generates a default-level log message containing the current file handles that UserEventAgent has /usr/local/bin/neutil session log-file-handles @@ -505,7 +523,8 @@ run_network_test () { return fi - /usr/local/bin/network_test path_watcher > nw_path.txt 2>&1 + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_network_test" >> get-network-info.txt + /usr/local/bin/network_test path_watcher -dump > nw_path.txt 2>&1 } @@ -518,50 +537,51 @@ run_scutil () { return fi - echo "#" > network-information.txt - echo "# scutil -d -v --nwi" >> network-information.txt - echo "#" >> network-information.txt - /usr/sbin/scutil -d -v --nwi >> network-information.txt 2>&1 + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_scutil" >> get-network-info.txt + echo "#" > network-information.txt + echo "# scutil -d -v --nwi" >> network-information.txt + echo "#" >> network-information.txt + /usr/sbin/scutil -d -v --nwi >> network-information.txt 2>&1 for if in ${IF_LIST} do - echo "" >> network-information.txt - echo "#" >> network-information.txt - echo "# scutil --nwi ${if}" >> network-information.txt - echo "#" >> network-information.txt - scutil --nwi ${if} >> network-information.txt 2>&1 + echo "" >> network-information.txt + echo "#" >> network-information.txt + echo "# scutil --nwi ${if}" >> network-information.txt + echo "#" >> network-information.txt + scutil --nwi ${if} >> network-information.txt 2>&1 done - echo "#" > dns-configuration.txt - echo "# scutil -d -v --dns" >> dns-configuration.txt - echo "#" >> dns-configuration.txt - /usr/sbin/scutil -d -v --dns >> dns-configuration.txt 2>&1 + echo "#" > dns-configuration.txt + echo "# scutil -d -v --dns" >> dns-configuration.txt + echo "#" >> dns-configuration.txt + /usr/sbin/scutil -d -v --dns >> dns-configuration.txt 2>&1 - echo "#" > proxy-configuration.txt - echo "# scutil -d -v --proxy" >> proxy-configuration.txt - echo "#" >> proxy-configuration.txt - /usr/sbin/scutil -d -v --proxy >> proxy-configuration.txt 2>&1 + echo "#" > proxy-configuration.txt + echo "# scutil -d -v --proxy" >> proxy-configuration.txt + echo "#" >> proxy-configuration.txt + /usr/sbin/scutil -d -v --proxy >> proxy-configuration.txt 2>&1 - echo "#" > reachability-info.txt - echo '# scutil -d -v -r www.apple.com' >> reachability-info.txt - echo "#" >> reachability-info.txt - /usr/sbin/scutil -d -v -r www.apple.com >> reachability-info.txt 2>&1 + echo "#" > reachability-info.txt + echo '# scutil -d -v -r www.apple.com' >> reachability-info.txt + echo "#" >> reachability-info.txt + /usr/sbin/scutil -d -v -r www.apple.com >> reachability-info.txt 2>&1 - echo "#" >> reachability-info.txt - echo '# scutil -d -v -r 0.0.0.0' >> reachability-info.txt - echo "#" >> reachability-info.txt - /usr/sbin/scutil -d -v -r 0.0.0.0 >> reachability-info.txt 2>&1 + echo "#" >> reachability-info.txt + echo '# scutil -d -v -r 0.0.0.0' >> reachability-info.txt + echo "#" >> reachability-info.txt + /usr/sbin/scutil -d -v -r 0.0.0.0 >> reachability-info.txt 2>&1 - echo "#" >> reachability-info.txt - echo '# scutil -d -v -r 169.254.0.0' >> reachability-info.txt - echo "#" >> reachability-info.txt - /usr/sbin/scutil -d -v -r 169.254.0.0 >> reachability-info.txt 2>&1 + echo "#" >> reachability-info.txt + echo '# scutil -d -v -r 169.254.0.0' >> reachability-info.txt + echo "#" >> reachability-info.txt + /usr/sbin/scutil -d -v -r 169.254.0.0 >> reachability-info.txt 2>&1 - echo "#" > nc-info.txt - echo '# scutil --nc list' >> nc-info.txt - echo "#" >> nc-info.txt - /usr/sbin/scutil --nc list >> nc-info.txt 2>&1 + echo "#" > nc-info.txt + echo '# scutil --nc list' >> nc-info.txt + echo "#" >> nc-info.txt + /usr/sbin/scutil --nc list >> nc-info.txt 2>&1 - /usr/sbin/scutil -p --snapshot SCDynamicStore.plist 2>&1 + /usr/sbin/scutil -p --snapshot SCDynamicStore.plist 2>&1 } @@ -574,15 +594,16 @@ run_route () { return fi - echo "#" > route-info.txt - echo '# route -n -v get www.apple.com' >> route-info.txt - echo "#" >> route-info.txt - /sbin/route -n -v get www.apple.com >> route-info.txt 2>&1 + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_route" >> get-network-info.txt + echo "#" > route-info.txt + echo '# route -n -v get www.apple.com' >> route-info.txt + echo "#" >> route-info.txt + /sbin/route -n -v get www.apple.com >> route-info.txt 2>&1 - echo "#" >> route-info.txt - echo '# route -n -v get 0.0.0.0' >> route-info.txt - echo "#" >> route-info.txt - /sbin/route -n -v get 0.0.0.0 >> route-info.txt 2>&1 + echo "#" >> route-info.txt + echo '# route -n -v get 0.0.0.0' >> route-info.txt + echo "#" >> route-info.txt + /sbin/route -n -v get 0.0.0.0 >> route-info.txt 2>&1 } @@ -595,10 +616,11 @@ run_dig () { return fi - echo "#" > dig-info.txt - echo '# dig -t any -c any www.apple.com' >> dig-info.txt - echo "#" >> dig-info.txt - /usr/bin/dig +time=2 -t any -c any www.apple.com >> dig-info.txt 2>/dev/null + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_dig" >> get-network-info.txt + echo "#" > dig-info.txt + echo '# dig -t any -c any www.apple.com' >> dig-info.txt + echo "#" >> dig-info.txt + /usr/bin/dig +time=2 -t any -c any www.apple.com >> dig-info.txt 2>/dev/null } @@ -611,7 +633,8 @@ run_hostname () { return fi - /bin/hostname > hostname.txt 2>&1 + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_hostname" >> get-network-info.txt + /bin/hostname > hostname.txt 2>&1 } @@ -624,14 +647,15 @@ run_lsof () { return fi - ${PRIV} /usr/sbin/lsof -i -n -O -P -T q > lsof.txt 2>&1 & + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_lsof" >> get-network-info.txt + ${PRIV} /usr/sbin/lsof +c 0 -X -n -O -P -T q > lsof.txt 2>&1 & LSOF_PID=$! # start a watchdog for lsof ( WAIT_TIME=5 while [ $WAIT_TIME -gt 0 ] do - ${PRIV} kill -0 ${LSOF_PID} 2>/dev/null + ${PRIV} kill -0 ${LSOF_PID} 2>/dev/null if [ $? -eq 0 ]; then # lsof is [still] gathering data... sleep 1 @@ -645,19 +669,34 @@ run_lsof () { if [ $WAIT_TIME -eq 0 ]; then # lsof timed out - ${PRIV} kill ${LSOF_PID} 2>/dev/null + ${PRIV} kill ${LSOF_PID} 2>/dev/null fi ) & } +# +# sysctl +# +run_sysctl () { + + if [ ! -x /usr/sbin/sysctl ]; then + return + fi + + echo "`date +"%Y-%m-%d %H:%M:%S"`: run_sysctl" >> get-network-info.txt + ${PRIV} /usr/sbin/sysctl -a > sysctl.txt 2>&1 & + +} + start_pcap() { # # collect a packet capture if netdiagnose is available # if [ -x /usr/local/bin/netdiagnose ]; then + echo "`date +"%Y-%m-%d %H:%M:%S"`: start_pcap" >> get-network-info.txt trap stop_pcap SIGINT - /usr/local/bin/netdiagnose -p "${REQUESTED_OUTDIR}" start sysdiagpcap 2>&1 1>/dev/null + /usr/local/bin/netdiagnose -p "${REQUESTED_OUTDIR}" start sysdiagpcap 2>&1 1>/dev/null PCAP_STARTED=1 fi } @@ -665,12 +704,14 @@ start_pcap() { stop_pcap () { if [ ${PCAP_STARTED} -ne 0 ]; then trap '' SIGINT - /usr/local/bin/netdiagnose stop sysdiagpcap 2>&1 1>/dev/null + /usr/local/bin/netdiagnose stop sysdiagpcap 2>&1 1>/dev/null + echo "`date +"%Y-%m-%d %H:%M:%S"`: stop_pcap done" >> get-network-info.txt fi } collect_ndf_info () { run_lsof + run_sysctl } collect_sensitive_info () { diff --git a/libSystemConfiguration/libSystemConfiguration_client.c b/libSystemConfiguration/libSystemConfiguration_client.c index 3860ad5..8f25077 100644 --- a/libSystemConfiguration/libSystemConfiguration_client.c +++ b/libSystemConfiguration/libSystemConfiguration_client.c @@ -21,7 +21,6 @@ * @APPLE_LICENSE_HEADER_END@ */ -#include #include #include #include diff --git a/libSystemConfiguration/libSystemConfiguration_internal.h b/libSystemConfiguration/libSystemConfiguration_internal.h index ccd600e..52e24be 100644 --- a/libSystemConfiguration/libSystemConfiguration_internal.h +++ b/libSystemConfiguration/libSystemConfiguration_internal.h @@ -28,9 +28,6 @@ #include #include -extern const unsigned char * libsystem_configurationVersionString; -extern const double libsystem_configurationVersionNumber; - __BEGIN_DECLS void diff --git a/libSystemConfiguration/libSystemConfiguration_server.c b/libSystemConfiguration/libSystemConfiguration_server.c index 3d8e43d..c193147 100644 --- a/libSystemConfiguration/libSystemConfiguration_server.c +++ b/libSystemConfiguration/libSystemConfiguration_server.c @@ -21,7 +21,6 @@ * @APPLE_LICENSE_HEADER_END@ */ -#include #include #include #include @@ -37,7 +36,7 @@ #ifdef SC_LOG_HANDLE #include -os_log_t SC_LOG_HANDLE; +os_log_t SC_LOG_HANDLE(void); #endif //SC_LOG_HANDLE @@ -113,7 +112,7 @@ _handle_entitlement_check_failure(pid_t pid) __private_extern__ void _libSC_info_server_init(libSC_info_server_t *server_info) { - bzero(server_info, sizeof(*server_info)); + memset(server_info, 0, sizeof(*server_info)); server_info->info = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, diff --git a/logging/liblog_SystemConfiguration_internal.h b/logging/liblog_SystemConfiguration_internal.h index 81aed02..e62933b 100644 --- a/logging/liblog_SystemConfiguration_internal.h +++ b/logging/liblog_SystemConfiguration_internal.h @@ -30,9 +30,6 @@ #include #include -extern const unsigned char * liblog_SystemConfigurationVersionString; -extern const double liblog_SystemConfigurationVersionNumber; - // #ifdef __OBJC__ #import diff --git a/nwi/network_information.c b/nwi/network_information.c index d6e7656..96c5f86 100644 --- a/nwi/network_information.c +++ b/nwi/network_information.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2018 Apple Inc. All rights reserved. + * Copyright (c) 2011-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -28,9 +28,6 @@ #include #include #include -#ifdef VERBOSE_ACTIVITY_LOGGING -#include -#endif // VERBOSE_ACTIVITY_LOGGING #include #include @@ -62,24 +59,6 @@ static int nwi_active = 0; static libSC_info_client_t *nwi_client = NULL; -#ifdef VERBOSE_ACTIVITY_LOGGING -static os_activity_t -__nwi_client_activity() -{ - static os_activity_t activity; - static dispatch_once_t once; - - dispatch_once(&once, ^{ - activity = os_activity_create("accessing network information", - OS_ACTIVITY_CURRENT, - OS_ACTIVITY_FLAG_DEFAULT); - }); - - return activity; -} -#endif // VERBOSE_ACTIVITY_LOGGING - - static dispatch_queue_t __nwi_client_queue() { @@ -233,11 +212,6 @@ _nwi_state_copy_data() return NULL; } -#ifdef VERBOSE_ACTIVITY_LOGGING - // scope NWI activity - os_activity_scope(__nwi_client_activity()); -#endif // VERBOSE_ACTIVITY_LOGGING - // create message reqdict = xpc_dictionary_create(NULL, NULL, 0); @@ -260,7 +234,7 @@ _nwi_state_copy_data() dataRef = xpc_dictionary_get_data(reply, NWI_CONFIGURATION, &dataLen); if (dataRef != NULL) { nwi_state = malloc(dataLen); - bcopy((void *)dataRef, nwi_state, dataLen); + memcpy(nwi_state, (void *)dataRef, dataLen); if (nwi_state->version != NWI_STATE_VERSION) { /* make sure the version matches */ nwi_state_free(nwi_state); @@ -297,11 +271,6 @@ _nwi_config_agent_copy_data(const struct netagent *agent, uint64_t *length) _nwi_client_init(); -#ifdef VERBOSE_ACTIVITY_LOGGING - // scope NWI activity - os_activity_scope(__nwi_client_activity()); -#endif // VERBOSE_ACTIVITY_LOGGING - reqdict = xpc_dictionary_create(NULL, NULL, 0); xpc_dictionary_set_int64(reqdict, NWI_REQUEST, NWI_CONFIG_AGENT_REQUEST_COPY); @@ -324,7 +293,7 @@ _nwi_config_agent_copy_data(const struct netagent *agent, uint64_t *length) if ((xpc_buffer != NULL) && (len > 0)) { buffer = malloc(len); *length = len; - bcopy((void *)xpc_buffer, (void *)buffer, len); + memcpy((void *)buffer, (void *)xpc_buffer, len); } xpc_release(reply); } @@ -912,11 +881,11 @@ nwi_ifstate_print(nwi_ifstate_t ifstate) ifstate->ifname, diff_str, (ifstate->flags & NWI_IFSTATE_FLAGS_HAS_DNS) != 0 - ? " dns" : "", + ? " dns" : "", (ifstate->flags & NWI_IFSTATE_FLAGS_HAS_CLAT46) != 0 - ? " clat46" : "", + ? " clat46" : "", (ifstate->flags & NWI_IFSTATE_FLAGS_NOT_IN_LIST) != 0 - ? " never" : "", + ? " never" : "", ifstate->rank, addr_str, (vpn_addr_str != NULL) ? " vpn_server_addr: " : "", @@ -1050,7 +1019,7 @@ doit(void) state = nwi_state_new(state, 10); nwi_state_print(state); - bzero(&addr6, sizeof(addr6)); + memset(&addr6, 0, sizeof(addr6)); /* populate old_state */ old_state = nwi_state_new(NULL, 5); for (int i = 0; i < 5; i++) { diff --git a/nwi/network_information.h b/nwi/network_information.h index 944ce25..3ca3d04 100644 --- a/nwi/network_information.h +++ b/nwi/network_information.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2018 Apple Inc. All rights reserved. + * Copyright (c) 2011-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -132,6 +132,7 @@ nwi_ifstate_get_ifname(nwi_ifstate_t ifstate); #define NWI_IFSTATE_FLAGS_HAS_IPV4 0x1 /* has IPv4 connectivity */ #define NWI_IFSTATE_FLAGS_HAS_IPV6 0x2 /* has IPv6 connectivity */ #define NWI_IFSTATE_FLAGS_HAS_DNS 0x4 /* has DNS configured */ +#define NWI_IFSTATE_FLAGS_HAS_CLAT46 0x0040 /* has CLAT46 configured */ typedef uint64_t nwi_ifstate_flags; /* diff --git a/nwi/network_information_server.c b/nwi/network_information_server.c index d50a930..805798c 100644 --- a/nwi/network_information_server.c +++ b/nwi/network_information_server.c @@ -52,7 +52,7 @@ #ifdef SC_LOG_HANDLE #include -os_log_t SC_LOG_HANDLE; +os_log_t SC_LOG_HANDLE(void); #endif //SC_LOG_HANDLE diff --git a/nwi/network_state_information_logging.h b/nwi/network_state_information_logging.h index d2c52b1..560965a 100644 --- a/nwi/network_state_information_logging.h +++ b/nwi/network_state_information_logging.h @@ -232,7 +232,7 @@ _nwi_ifstate_log(nwi_ifstate_t ifstate, boolean_t debug, my_log_context_type my_ uint32_t rank_index; const char *rank_str; const uint8_t *signature; - int signature_length; + int signature_length = 0; // Rank rank = ifstate->rank; @@ -249,7 +249,7 @@ _nwi_ifstate_log(nwi_ifstate_t ifstate, boolean_t debug, my_log_context_type my_ if (signature != NULL) { CFDataRef digest; - digest = CFDataCreate(NULL, signature, CC_SHA1_DIGEST_LENGTH); + digest = CFDataCreate(NULL, signature, signature_length); my_log(LOG_INFO, " signature : %@", digest); CFRelease(digest); } diff --git a/nwi/network_state_information_priv.c b/nwi/network_state_information_priv.c index 129732b..85024d2 100644 --- a/nwi/network_state_information_priv.c +++ b/nwi/network_state_information_priv.c @@ -176,7 +176,7 @@ nwi_state_make_copy(nwi_state_t src) dest = (nwi_state_t)malloc(size); if (dest != NULL) { - bcopy(src, dest, size); + memcpy(dest, src, size); } return dest; } @@ -201,23 +201,23 @@ nwi_state_new(nwi_state_t old_state, int max_if_count) } size = nwi_state_compute_size(max_if_count); state = (nwi_state_t)malloc(size); - bzero(state, size); + memset(state, 0, size); state->max_if_count = max_if_count; state->version = NWI_STATE_VERSION; if (old_state != NULL) { state->ipv6_count = old_state->ipv6_count; if (state->ipv6_count > 0) { - bcopy((void *)&old_state->ifstate_list[old_state->max_if_count], - (void *)&state->ifstate_list[state->max_if_count], - old_state->ipv6_count * sizeof(nwi_ifstate)); + memcpy((void *)&state->ifstate_list[state->max_if_count], + (void *)&old_state->ifstate_list[old_state->max_if_count], + old_state->ipv6_count * sizeof(nwi_ifstate)); } state->ipv4_count = old_state->ipv4_count; if (state->ipv4_count > 0) { - bcopy((void *)old_state->ifstate_list, - (void *)state->ifstate_list, - old_state->ipv4_count * sizeof(nwi_ifstate)); + memcpy((void *)state->ifstate_list, + (void *)old_state->ifstate_list, + old_state->ipv4_count * sizeof(nwi_ifstate)); } /* we grew the arrays so re-compute the offsets */ nwi_state_fix_af_aliases(state, old_state->max_if_count); @@ -264,7 +264,7 @@ __private_extern__ void nwi_ifstate_set_signature(nwi_ifstate_t ifstate, uint8_t * signature) { - bcopy(signature, ifstate->signature, sizeof(ifstate->signature)); + memcpy(ifstate->signature, signature, sizeof(ifstate->signature)); ifstate->flags |= NWI_IFSTATE_FLAGS_HAS_SIGNATURE; return; } @@ -326,7 +326,7 @@ nwi_state_add_ifstate(nwi_state_t state, prev->flags &= ~NWI_IFSTATE_FLAGS_LAST_ITEM; } - bzero(ifstate, sizeof(*ifstate)); + memset(ifstate, 0, sizeof(*ifstate)); strlcpy(ifstate->ifname, ifname, sizeof(ifstate->ifname)); ifstate->af = af; /* this is the new last ifstate */ @@ -702,29 +702,30 @@ _nwi_state_update_interface_generations(nwi_state_t old_state, nwi_state_t state __private_extern__ void -_nwi_state_compute_sha1_hash(nwi_state_t state, - unsigned char hash[CC_SHA1_DIGEST_LENGTH]) +_nwi_state_compute_sha256_hash(nwi_state_t state, + unsigned char hash[CC_SHA256_DIGEST_LENGTH]) { + CC_SHA256_CTX ctx; + uint64_t generation_save; + if (state == NULL) { - bzero(hash, CC_SHA1_DIGEST_LENGTH); + memset(hash, 0, CC_SHA256_DIGEST_LENGTH); + return; } - else { - CC_SHA1_CTX ctx; - uint64_t generation_save; - generation_save = state->generation_count; + /* preserve generation */ + generation_save = state->generation_count; - /* zero out the generation count before computing hash */ - state->generation_count = 0; + /* zero out the generation count before computing hash */ + state->generation_count = 0; - /* compute hash */ - CC_SHA1_Init(&ctx); - CC_SHA1_Update(&ctx, state, (CC_LONG)nwi_state_size(state)); - CC_SHA1_Final(hash, &ctx); + /* compute hash */ + CC_SHA256_Init(&ctx); + CC_SHA256_Update(&ctx, state, (CC_LONG)nwi_state_size(state)); + CC_SHA256_Final(hash, &ctx); - /* restore generation */ - state->generation_count = generation_save; - } + /* restore generation */ + state->generation_count = generation_save; return; } diff --git a/nwi/network_state_information_priv.h b/nwi/network_state_information_priv.h index 23c9e7a..06d31c4 100644 --- a/nwi/network_state_information_priv.h +++ b/nwi/network_state_information_priv.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2013, 2016-2018 Apple Inc. All rights reserved. + * Copyright (c) 2011-2013, 2016-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -40,7 +40,6 @@ #define NWI_IFSTATE_FLAGS_NOT_IN_LIST 0x0008 #define NWI_IFSTATE_FLAGS_HAS_SIGNATURE 0x0010 #define NWI_IFSTATE_FLAGS_NOT_IN_IFLIST 0x0020 -#define NWI_IFSTATE_FLAGS_HAS_CLAT46 0x0040 /* has CLAT46 configured */ /* * NWI_IFSTATE_FLAGS_MASK @@ -86,6 +85,8 @@ typedef uint32_t Rank; typedef int32_t nwi_ifindex_t; +#define NWI_SIGNATURE_LENGTH 20 + #pragma pack(4) typedef struct _nwi_ifstate { char ifname[IFNAMSIZ]; @@ -103,7 +104,7 @@ typedef struct _nwi_ifstate { struct sockaddr_in vpn_server_address4; struct sockaddr_in6 vpn_server_address6; } vpn_server_address; - unsigned char signature[CC_SHA1_DIGEST_LENGTH]; + unsigned char signature[NWI_SIGNATURE_LENGTH]; } nwi_ifstate; #pragma pack() @@ -279,8 +280,7 @@ _nwi_ifstate_set_vpn_server(nwi_ifstate_t ifstate, struct sockaddr *serv_addr) size_t len; if (serv_addr == NULL) { - bzero(&ifstate->vpn_server_address, - sizeof(ifstate->vpn_server_address)); + memset(&ifstate->vpn_server_address, 0, sizeof(ifstate->vpn_server_address)); return; } @@ -349,7 +349,7 @@ void _nwi_state_update_interface_generations(nwi_state_t old_state, nwi_state_t state, nwi_state_t changes); void -_nwi_state_compute_sha1_hash(nwi_state_t state, - unsigned char hash[CC_SHA1_DIGEST_LENGTH]); +_nwi_state_compute_sha256_hash(nwi_state_t state, + unsigned char hash[CC_SHA256_DIGEST_LENGTH]); -#endif // _NETWORK_STATE_INFORMATION_PRIV_H_ +#endif // _NETWORK_STATE_INFORMATION_PRIV_H_ diff --git a/scselect.tproj/scselect.c b/scselect.tproj/scselect.c index a84e808..8140cbd 100644 --- a/scselect.tproj/scselect.c +++ b/scselect.tproj/scselect.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2009, 2011, 2012, 2014, 2015 Apple Inc. All rights reserved. + * Copyright (c) 2000-2009, 2011, 2012, 2014, 2015, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -134,7 +134,7 @@ main(int argc, char **argv) CFRelease(newSet); CFStringDelete(str, CFRangeMake(0, CFStringGetLength(prefix))); - newSet = CFStringCreateCopy(NULL, newSet); + newSet = CFStringCreateCopy(NULL, str); CFRelease(str); range = CFStringFind(newSet, CFSTR("/"), 0); diff --git a/scutil.tproj/cache.c b/scutil.tproj/cache.c index b04dc05..7ac2efe 100644 --- a/scutil.tproj/cache.c +++ b/scutil.tproj/cache.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2000-2005, 2011, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2005, 2011, 2017, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -35,167 +35,13 @@ #include "scutil.h" #include "cache.h" +#include "SCDynamicStoreInternal.h" #pragma mark - #pragma mark SCDynamicStore "cache" -static Boolean use_cache = FALSE; - -static CFMutableDictionaryRef cached_keys = NULL; -static CFMutableDictionaryRef cached_set = NULL; -static CFMutableArrayRef cached_removals = NULL; -static CFMutableArrayRef cached_notifys = NULL; - - -static void -cache_open(void) -{ - if (use_cache) { - // if we are already using the cache - cache_close(); - } - - cached_keys = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - cached_set = CFDictionaryCreateMutable(NULL, - 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - cached_removals = CFArrayCreateMutable(NULL, - 0, - &kCFTypeArrayCallBacks); - cached_notifys = CFArrayCreateMutable(NULL, - 0, - &kCFTypeArrayCallBacks); - - use_cache = TRUE; - return; -} - - -static CFPropertyListRef -cache_SCDynamicStoreCopyValue(SCDynamicStoreRef store, CFStringRef key) -{ - CFPropertyListRef value; - - value = CFDictionaryGetValue(cached_set, key); - if (value) { - // if we have "set" a new value - return (CFRetain(value)); - } - - if (CFArrayContainsValue(cached_removals, - CFRangeMake(0, CFArrayGetCount(cached_removals)), - key)) { - // if we have "removed" the key - _SCErrorSet(kSCStatusNoKey); - return NULL; - } - - value = CFDictionaryGetValue(cached_keys, key); - if (value) { - // if we have a cached value - return (CFRetain(value)); - } - - value = SCDynamicStoreCopyValue(store, key); - if (value) { - CFDictionarySetValue(cached_keys, key, value); - } - - return value; -} - - -static void -cache_SCDynamicStoreSetValue(SCDynamicStoreRef store, CFStringRef key, CFPropertyListRef value) -{ -#pragma unused (store) - CFIndex i; - - i = CFArrayGetFirstIndexOfValue(cached_removals, - CFRangeMake(0, CFArrayGetCount(cached_removals)), - key); - if (i != kCFNotFound) { - // if previously "removed" - CFArrayRemoveValueAtIndex(cached_removals, i); - } - - CFDictionarySetValue(cached_set, key, value); - - return; -} - -static void -cache_SCDynamicStoreRemoveValue(SCDynamicStoreRef store, CFStringRef key) -{ -#pragma unused (store) - CFDictionaryRemoveValue(cached_set, key); - - if (!CFArrayContainsValue(cached_removals, - CFRangeMake(0, CFArrayGetCount(cached_removals)), - key)) { - CFArrayAppendValue(cached_removals, key); - } - - return; -} - - -static void -cache_SCDynamicStoreNotifyValue(SCDynamicStoreRef store, CFStringRef key) -{ -#pragma unused (store) - if (!CFArrayContainsValue(cached_notifys, - CFRangeMake(0, CFArrayGetCount(cached_notifys)), - key)) { - CFArrayAppendValue(cached_notifys, key); - } - - return; -} - - -static void -cache_write(SCDynamicStoreRef store) -{ - if ((CFDictionaryGetCount(cached_set) > 0) || - (CFArrayGetCount(cached_removals) > 0) || - (CFArrayGetCount(cached_notifys) > 0)) { - if (!SCDynamicStoreSetMultiple(store, - cached_set, - cached_removals, - cached_notifys)) { - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); - } - } - - return; -} - - -__private_extern__ -void -cache_close(void) -{ - if (!use_cache) { - return; - } - - CFRelease(cached_keys); - CFRelease(cached_set); - CFRelease(cached_removals); - CFRelease(cached_notifys); - - use_cache = FALSE; - return; -} - - #pragma mark - #pragma mark SCDynamicStore operations @@ -222,38 +68,43 @@ do_block(int argc, char **argv) return; } } else { - enable = !use_cache; // toggle + enable = !_SCDynamicStoreCacheIsActive(store); // toggle } if (enable) { // begin block of SCDynamicStore operations - if (use_cache) { + if (_SCDynamicStoreCacheIsActive(store)) { SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(kSCStatusLocked)); return; } SCPrint(TRUE, stdout, CFSTR("Begin block of SCDynamicStore operations\n")); - cache_open(); + _SCDynamicStoreCacheOpen(store); } else { - CFIndex n; + CFIndex n = 0; + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; // end block of SCDynamicStore operations - if (!use_cache) { + if (!_SCDynamicStoreCacheIsActive(store)) { SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(kSCStatusNeedLock)); return; } - n = CFDictionaryGetCount(cached_keys) + - CFArrayGetCount(cached_removals) + - CFArrayGetCount(cached_notifys); + n += (storePrivate->cached_set != NULL) + ? CFDictionaryGetCount(storePrivate->cached_set) : 0; + n += (storePrivate->cached_removals != NULL) + ? CFArrayGetCount(storePrivate->cached_removals) : 0; + n += (storePrivate->cached_notifys != NULL) + ? CFArrayGetCount(storePrivate->cached_notifys) : 0; + SCPrint(TRUE, stdout, CFSTR("End block of SCDynamicStore operations%s\n"), (n > 0) ? ", posting changes" : ""); if (n > 0) { - cache_write(store); + _SCDynamicStoreCacheCommitChanges(store); } - cache_close(); + _SCDynamicStoreCacheClose(store); } return; @@ -277,11 +128,12 @@ __private_extern__ void do_list(int argc, char **argv) { - int i; - CFStringRef pattern; - CFArrayRef list; - CFIndex listCnt; - CFMutableArrayRef sortedList; + int i; + CFStringRef pattern; + CFArrayRef list; + CFIndex listCnt; + CFMutableArrayRef sortedList; + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; pattern = CFStringCreateWithCString(NULL, (argc >= 1) ? argv[0] : ".*", @@ -294,13 +146,14 @@ do_list(int argc, char **argv) SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); return; } else { - if (!use_cache) { + if (!_SCDynamicStoreCacheIsActive(store)) { SCPrint(TRUE, stdout, CFSTR(" no keys.\n")); return; } else { CFIndex n; - n = CFDictionaryGetCount(cached_set); + n = (storePrivate->cached_set != NULL) + ? CFDictionaryGetCount(storePrivate->cached_set) : 0; if (n > 0) { const void * cachedKeys_q[N_QUICK]; const void ** cachedKeys = cachedKeys_q; @@ -308,7 +161,7 @@ do_list(int argc, char **argv) if (n > (CFIndex)(sizeof(cachedKeys_q) / sizeof(CFStringRef))) { cachedKeys = CFAllocatorAllocate(NULL, n * sizeof(CFStringRef), 0); } - CFDictionaryGetKeysAndValues(cached_set, cachedKeys, NULL); + CFDictionaryGetKeysAndValues(storePrivate->cached_set, cachedKeys, NULL); list = CFArrayCreate(NULL, cachedKeys, n, &kCFTypeArrayCallBacks); if (cachedKeys != cachedKeys_q) { CFAllocatorDeallocate(NULL, cachedKeys); @@ -319,8 +172,11 @@ do_list(int argc, char **argv) } } } - } else if (use_cache && - ((CFDictionaryGetCount(cached_set) > 0) || (CFArrayGetCount(cached_removals) > 0))) { + } else if (_SCDynamicStoreCacheIsActive(store) && + (((storePrivate->cached_set != NULL) && + (CFDictionaryGetCount(storePrivate->cached_set) > 0)) || + ((storePrivate->cached_removals != NULL) && + (CFArrayGetCount(storePrivate->cached_removals) > 0)))) { SCPrint(TRUE, stdout, CFSTR(" Note: SCDynamicStore transactions in progress, key list (below) may be out of date.\n\n")); } @@ -359,41 +215,20 @@ do_add(int argc, char **argv) key = CFStringCreateWithCString(NULL, argv[0], kCFStringEncodingUTF8); if (argc < 2) { - if (!use_cache) { + if (!_SCDynamicStoreCacheIsActive(store)) { if (!SCDynamicStoreAddValue(store, key, value)) { SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); } } else { - CFTypeRef val; - - val = cache_SCDynamicStoreCopyValue(store, key); - if (val != NULL) { - CFRelease(val); - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(kSCStatusKeyExists)); - } else { - cache_SCDynamicStoreSetValue(store, key, value); - } + SCPrint(TRUE, stdout, CFSTR(" Cannot \"add\" with block\n")); } } else { - if (!use_cache) { + if (!_SCDynamicStoreCacheIsActive(store)) { if (!SCDynamicStoreAddTemporaryValue(store, key, value)) { SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); } } else { - CFTypeRef val; - - val = cache_SCDynamicStoreCopyValue(store, key); - if (val != NULL) { - CFRelease(val); - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(kSCStatusKeyExists)); - } else { - if (!SCDynamicStoreAddTemporaryValue(store, key, value)) { - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); - } else { - // and save the temp value in the cache too! - cache_SCDynamicStoreSetValue(store, key, value); - } - } + SCPrint(TRUE, stdout, CFSTR(" Cannot \"add temporary\" with block\n")); } } @@ -411,11 +246,7 @@ do_get(int argc, char **argv) CFPropertyListRef newValue; key = CFStringCreateWithCString(NULL, argv[0], kCFStringEncodingUTF8); - if (!use_cache) { - newValue = SCDynamicStoreCopyValue(store, key); - } else { - newValue = cache_SCDynamicStoreCopyValue(store, key); - } + newValue = SCDynamicStoreCopyValue(store, key); CFRelease(key); if (newValue == NULL) { SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); @@ -439,12 +270,8 @@ do_set(int argc, char **argv) CFStringRef key; key = CFStringCreateWithCString(NULL, argv[0], kCFStringEncodingUTF8); - if (!use_cache) { - if (!SCDynamicStoreSetValue(store, key, value)) { - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); - } - } else { - cache_SCDynamicStoreSetValue(store, key, value); + if (!SCDynamicStoreSetValue(store, key, value)) { + SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); } CFRelease(key); return; @@ -461,20 +288,17 @@ do_show(int argc, char **argv) key = CFStringCreateWithCString(NULL, argv[0], kCFStringEncodingUTF8); if (argc == 1) { - if (!use_cache) { - newValue = SCDynamicStoreCopyValue(store, key); - } else { - newValue = cache_SCDynamicStoreCopyValue(store, key); - } + newValue = SCDynamicStoreCopyValue(store, key); } else { CFArrayRef patterns; patterns = CFArrayCreate(NULL, (const void **)&key, 1, &kCFTypeArrayCallBacks); - if (!use_cache) { + if (!_SCDynamicStoreCacheIsActive(store)) { newValue = SCDynamicStoreCopyMultiple(store, NULL, patterns); } else { - CFArrayRef keys; - CFMutableDictionaryRef newDict; + CFArrayRef keys; + CFMutableDictionaryRef newDict; + SCDynamicStorePrivateRef storePrivate = (SCDynamicStorePrivateRef)store; newDict = CFDictionaryCreateMutable(NULL, 0, @@ -491,7 +315,7 @@ do_show(int argc, char **argv) CFTypeRef storeVal; storeKey = CFArrayGetValueAtIndex(keys, i); - storeVal = cache_SCDynamicStoreCopyValue(store, storeKey); + storeVal = SCDynamicStoreCopyValue(store, storeKey); if (storeVal != NULL) { CFDictionarySetValue(newDict, storeKey, storeVal); CFRelease(storeVal); @@ -500,7 +324,10 @@ do_show(int argc, char **argv) CFRelease(keys); } - if ((CFDictionaryGetCount(cached_set) > 0) || (CFArrayGetCount(cached_removals) > 0)) { + if (((storePrivate->cached_set != NULL) && + (CFDictionaryGetCount(storePrivate->cached_set) > 0)) || + ((storePrivate->cached_removals != NULL) && + (CFArrayGetCount(storePrivate->cached_removals) > 0))) { SCPrint(TRUE, stdout, CFSTR(" Note: SCDynamicStore locked, keys included (below) may be out of date.\n\n")); } @@ -529,12 +356,8 @@ do_remove(int argc, char **argv) CFStringRef key; key = CFStringCreateWithCString(NULL, argv[0], kCFStringEncodingUTF8); - if (!use_cache) { - if (!SCDynamicStoreRemoveValue(store, key)) { - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); - } - } else { - cache_SCDynamicStoreRemoveValue(store, key); + if (!SCDynamicStoreRemoveValue(store, key)) { + SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); } CFRelease(key); return; @@ -549,12 +372,8 @@ do_notify(int argc, char **argv) CFStringRef key; key = CFStringCreateWithCString(NULL, argv[0], kCFStringEncodingUTF8); - if (!use_cache) { - if (!SCDynamicStoreNotifyValue(store, key)) { - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); - } - } else { - cache_SCDynamicStoreNotifyValue(store, key); + if (!SCDynamicStoreNotifyValue(store, key)) { + SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); } CFRelease(key); return; diff --git a/scutil.tproj/cache.h b/scutil.tproj/cache.h index 5e32284..3d71556 100644 --- a/scutil.tproj/cache.h +++ b/scutil.tproj/cache.h @@ -40,8 +40,6 @@ __BEGIN_DECLS -void cache_close (void); - void do_block (int argc, char **argv); void do_list (int argc, char **argv); diff --git a/scutil.tproj/commands.c b/scutil.tproj/commands.c index 24afcdd..aeab336 100644 --- a/scutil.tproj/commands.c +++ b/scutil.tproj/commands.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2011, 2013, 2014, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2011, 2013, 2014, 2017, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -75,7 +75,7 @@ const cmdInfo commands_store[] = { " d.show : show dictionary contents" }, { "d.add", 2, 101, do_dictSetKey, 1, 0, - " d.add key [*#?] val [v2 ...] : add information to dictionary\n" + " d.add key [*#?%] val [v2 ...] : add information to dictionary\n" " (*=array, #=number, ?=boolean, %=hex data)" }, { "d.remove", 1, 1, do_dictRemoveKey, 1, 0, @@ -131,9 +131,6 @@ const cmdInfo commands_store[] = { { "n.wait", 0, 0, do_notify_wait, 5, 2, " n.wait : wait for changes" }, - { "n.signal", 1, 2, do_notify_signal, 5, 2, - " n.signal sig [pid] : signal changes" }, - { "n.file", 0, 1, do_notify_file, 5, 2, " n.file [identifier] : watch for changes via file" }, @@ -266,7 +263,7 @@ const cmdInfo commands_prefs[] = { " d.show : show dictionary contents" }, { "d.add", 2, 101, do_dictSetKey, 1, 0, - " d.add key [*#?] val [v2 ...] : add information to dictionary\n" + " d.add key [*#?%] val [v2 ...] : add information to dictionary\n" " (*=array, #=number, ?=boolean, %=hex data)" }, { "d.remove", 1, 1, do_dictRemoveKey, 1, 0, diff --git a/scutil.tproj/entitlements.plist b/scutil.tproj/entitlements.plist new file mode 100644 index 0000000..8fc7442 --- /dev/null +++ b/scutil.tproj/entitlements.plist @@ -0,0 +1,8 @@ + + + + + com.apple.private.networkextension.configuration + + + diff --git a/scutil.tproj/nc.c b/scutil.tproj/nc.c index 5460782..b4b6766 100644 --- a/scutil.tproj/nc.c +++ b/scutil.tproj/nc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2015, 2017, 2018 Apple Inc. All rights reserved. + * Copyright (c) 2010-2015, 2017-2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -44,6 +44,9 @@ #include #include +#if !TARGET_OS_SIMULATOR +#include +#endif // !TARGET_OS_SIMULATOR CFStringRef username = NULL; CFStringRef password = NULL; @@ -1097,7 +1100,12 @@ nc_select(int argc, char **argv) SCNetworkSetRef current_set; int exit_code = 1; SCNetworkServiceRef service = NULL; +#if NE_HAS_ENABLE_VPN + uuid_string_t config_id_string; + uuid_t config_id; +#else // NE_HAS_ENABLE_VPN Boolean status; +#endif // NE_HAS_ENABLE_VPN do_prefs_init(); /* initialization */ do_prefs_open(0, NULL); /* open default prefs */ @@ -1114,6 +1122,18 @@ nc_select(int argc, char **argv) goto done; } +#if NE_HAS_ENABLE_VPN + memset(config_id_string, 0, sizeof(config_id_string)); + if (_SC_cfstring_to_cstring(SCNetworkServiceGetServiceID(service), config_id_string, sizeof(config_id_string), kCFStringEncodingUTF8) != NULL && + uuid_parse(config_id_string, config_id) == 0) + { + if (!NEHelperVPNSetEnabled(config_id, true)) { + SCPrint(TRUE, stderr, CFSTR("Unable to enable service\n")); + } + } else { + SCPrint(TRUE, stderr, CFSTR("Invalid service ID: %@\n"), SCNetworkServiceGetServiceID(service)); + } +#else // NE_HAS_ENABLE_VPN #if !TARGET_OS_IPHONE status = SCNetworkServiceSetEnabled(service, TRUE); if (!status) { @@ -1129,6 +1149,7 @@ nc_select(int argc, char **argv) #endif // !TARGET_OS_IPHONE _prefs_save(); +#endif // NE_HAS_ENABLE_VPN exit_code = 0; done: my_CFRelease(&service); diff --git a/scutil.tproj/net_interface.c b/scutil.tproj/net_interface.c index c570db5..37f6fc5 100644 --- a/scutil.tproj/net_interface.c +++ b/scutil.tproj/net_interface.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2011, 2013-2017 Apple Inc. All rights reserved. + * Copyright (c) 2004-2011, 2013-2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -2206,14 +2206,20 @@ static options pppOptions[] = { { "IdleReminder" , NULL , isBoolean , &kSCPropNetPPPIdleReminder , NULL , NULL }, { "IdleReminderTimer" , "time" , isNumber , &kSCPropNetPPPIdleReminderTimer , NULL , NULL }, { "Logfile" , "path" , isString , &kSCPropNetPPPLogfile , NULL , NULL }, +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated" { "Plugins" , "plugin" , isStringArray , &kSCPropNetPPPPlugins , NULL , NULL }, +#pragma GCC diagnostic pop { "RetryConnectTime" , "time" , isNumber , &kSCPropNetPPPRetryConnectTime , NULL , NULL }, { "SessionTimer" , "time" , isNumber , &kSCPropNetPPPSessionTimer , NULL , NULL }, { "UseSessionTimer" , NULL , isBoolean , &kSCPropNetPPPUseSessionTimer , NULL , NULL }, { "VerboseLogging" , NULL , isBoolean , &kSCPropNetPPPVerboseLogging , NULL , NULL }, // --- Auth: --- +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated" { "AuthEAPPlugins" , "plugin" , isStringArray , &kSCPropNetPPPAuthEAPPlugins , NULL , NULL }, +#pragma GCC diagnostic pop { "AuthName" , "account" , isString , &kSCPropNetPPPAuthName , NULL , NULL }, { "Account" , "account" , isString , &kSCPropNetPPPAuthName , NULL , NULL }, { "AuthPassword" , "password" , isOther , &kSCPropNetPPPAuthPassword , __doPPPAuthPW , NULL }, diff --git a/scutil.tproj/net_protocol.c b/scutil.tproj/net_protocol.c index 81f4ac7..f76b6e0 100644 --- a/scutil.tproj/net_protocol.c +++ b/scutil.tproj/net_protocol.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2004-2009, 2011, 2014, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2004-2009, 2011, 2014, 2017, 2019 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -856,6 +856,7 @@ static options ipv6Options[] = { , isChooseOne, &kSCPropNetIPv6ConfigMethod, __doIPv6ConfigMethod, (void *)ipv6ConfigMethods }, { "Addresses" , "address" , isOther , &kSCPropNetIPv6Addresses , __doIPv6Addresses , (void *)TRUE }, { "address" , "address" , isOther , &kSCPropNetIPv6Addresses , __doIPv6Addresses , (void *)TRUE }, + { "EnableCGA" , NULL , isBoolean , &kSCPropNetIPv6EnableCGA , NULL , NULL }, { "PrefixLength", "prefix length", isNumber , &kSCPropNetIPv6PrefixLength, NULL , NULL }, { "Router" , "address" , isOther , &kSCPropNetIPv6Router , __doIPv6Addresses , (void *)FALSE }, @@ -1724,6 +1725,7 @@ _protocol_description(SCNetworkProtocolRef protocol, Boolean skipEmpty) CFArrayGetValueAtIndex(addresses, 0)); } else if (CFEqual(method, kSCValNetIPv4ConfigMethodManual) && isA_CFArray(addresses)) { + CFArrayRef masks; CFStringRef router; CFStringAppendFormat(description, @@ -1732,6 +1734,16 @@ _protocol_description(SCNetworkProtocolRef protocol, Boolean skipEmpty) method, CFArrayGetValueAtIndex(addresses, 0)); + if (CFDictionaryGetValueIfPresent(configuration, + kSCPropNetIPv4SubnetMasks, + (const void **)&masks) && + isA_CFArray(masks)) { + CFStringAppendFormat(description, + NULL, + CFSTR(", mask=%@"), + CFArrayGetValueAtIndex(masks, 0)); + } + if (CFDictionaryGetValueIfPresent(configuration, kSCPropNetIPv4Router, (const void **)&router) && diff --git a/scutil.tproj/notifications.c b/scutil.tproj/notifications.c index fd0e539..8528340 100644 --- a/scutil.tproj/notifications.c +++ b/scutil.tproj/notifications.c @@ -42,10 +42,6 @@ #include "notifications.h" -static int osig; -static struct sigaction *oact = NULL; - - static char * elapsed() { @@ -380,7 +376,7 @@ do_notify_file(int argc, char **argv) return; } - bzero(buf.data, sizeof(buf.data)); + memset(buf.data, 0, sizeof(buf.data)); bufPtr = &buf.data[0]; needed = sizeof(buf.gotID); while (needed > 0) { @@ -420,82 +416,6 @@ do_notify_file(int argc, char **argv) } -static void -signalCatcher(int signum) -{ - static int n = 0; - - SCPrint(TRUE, stdout, CFSTR("Received sig%s (#%d).\n"), sys_signame[signum], n++); - return; -} - - -__private_extern__ -void -do_notify_signal(int argc, char **argv) -{ - int sig; - pid_t pid; - struct sigaction nact; - - if (isdigit(*argv[0])) { - if ((sscanf(argv[0], "%d", &sig) != 1) || (sig <= 0) || (sig >= NSIG)) { - SCPrint(TRUE, stdout, CFSTR("signal must be in the range of 1 .. %d.\n"), NSIG-1); - return; - } - } else { - for (sig = 1; sig < NSIG; sig++) { - if (strcasecmp(argv[0], sys_signame[sig]) == 0) - break; - } - if (sig >= NSIG) { - CFMutableStringRef str; - - SCPrint(TRUE, stdout, CFSTR("Signal must be one of the following:\n")); - - str = CFStringCreateMutable(NULL, 0); - for (sig = 1; sig < NSIG; sig++) { - CFStringAppendFormat(str, NULL, CFSTR(" %-6s"), sys_signame[sig]); - if ((sig % 10) == 0) { - CFStringAppendFormat(str, NULL, CFSTR("\n")); - } - } - if ((sig % 10) != 0) { - CFStringAppendFormat(str, NULL, CFSTR("\n")); - } - SCPrint(TRUE, stdout, CFSTR("%@"), str); - CFRelease(str); - return; - } - - } - - if ((argc != 2) || (sscanf(argv[1], "%d", &pid) != 1)) { - pid = getpid(); - } - - if (oact != NULL) { - (void) sigaction(osig, oact, NULL); /* restore original signal handler */ - } else { - oact = malloc(sizeof(struct sigaction)); - } - - nact.sa_handler = signalCatcher; - sigemptyset(&nact.sa_mask); - nact.sa_flags = SA_RESTART; - (void) sigaction(sig, &nact, oact); - osig = sig; - SCPrint(TRUE, stdout, CFSTR("signal handler started.\n")); - - if (!SCDynamicStoreNotifySignal(store, pid, sig)) { - SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError())); - return; - } - - return; -} - - __private_extern__ void do_notify_cancel(int argc, char **argv) @@ -524,11 +444,5 @@ do_notify_cancel(int argc, char **argv) CFRunLoopStop(notifyRl); } - if (oact != NULL) { - (void) sigaction(osig, oact, NULL); /* restore original signal handler */ - free(oact); - oact = NULL; - } - return; } diff --git a/scutil.tproj/notifications.h b/scutil.tproj/notifications.h index 27a9f39..33003ef 100644 --- a/scutil.tproj/notifications.h +++ b/scutil.tproj/notifications.h @@ -1,15 +1,15 @@ /* - * Copyright (c) 2000, 2001, 2004, 2011 Apple Inc. All rights reserved. + * Copyright (c) 2000, 2001, 2004, 2011, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -48,10 +48,9 @@ void do_notify_remove (int argc, char **argv); void do_notify_changes (int argc, char **argv); void do_notify_watch (int argc, char **argv); void do_notify_wait (int argc, char **argv); -void do_notify_signal (int argc, char **argv); void do_notify_file (int argc, char **argv); void do_notify_cancel (int argc, char **argv); __END_DECLS -#endif /* !_NOTIFICATIONS_H */ +#endif /* !_NOTIFICATIONS_H */ diff --git a/scutil.tproj/scutil.h b/scutil.tproj/scutil.h index 4be484d..b72f280 100644 --- a/scutil.tproj/scutil.h +++ b/scutil.tproj/scutil.h @@ -37,7 +37,7 @@ #include #include -#define SC_LOG_HANDLE _SC_LOG_DEFAULT() +#define SC_LOG_HANDLE _SC_LOG_DEFAULT #include #include #include diff --git a/scutil.tproj/session.c b/scutil.tproj/session.c index 3655aae..9e5b803 100644 --- a/scutil.tproj/session.c +++ b/scutil.tproj/session.c @@ -1,15 +1,15 @@ /* - * Copyright (c) 2000-2004, 2010, 2011, 2017 Apple Inc. All rights reserved. + * Copyright (c) 2000-2004, 2010, 2011, 2017, 2018 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -17,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ @@ -85,7 +85,7 @@ do_open(int argc, char **argv) watchedKeys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); watchedPatterns = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - cache_close(); + _SCDynamicStoreCacheClose(store); return; } @@ -121,7 +121,7 @@ do_close(int argc, char **argv) watchedPatterns = NULL; } - cache_close(); + _SCDynamicStoreCacheClose(store); return; } diff --git a/scutil.tproj/tests.c b/scutil.tproj/tests.c index 876d766..38b6579 100644 --- a/scutil.tproj/tests.c +++ b/scutil.tproj/tests.c @@ -169,11 +169,11 @@ _setupReachability(int argc, char **argv, SCNetworkReachabilityContext *context) struct sockaddr_in6 sin6; SCNetworkReachabilityRef target = NULL; - bzero(&sin, sizeof(sin)); + memset(&sin, 0, sizeof(sin)); sin.sin_len = sizeof(sin); sin.sin_family = AF_INET; - bzero(&sin6, sizeof(sin6)); + memset(&sin6, 0, sizeof(sin6)); sin6.sin6_len = sizeof(sin6); sin6.sin6_family = AF_INET6; @@ -201,7 +201,7 @@ _setupReachability(int argc, char **argv, SCNetworkReachabilityContext *context) struct sockaddr_in r_sin; if (argc > 1) { - bzero(&r_sin, sizeof(r_sin)); + memset(&r_sin, 0, sizeof(r_sin)); r_sin.sin_len = sizeof(r_sin); r_sin.sin_family = AF_INET; } @@ -290,7 +290,7 @@ _setupReachability(int argc, char **argv, SCNetworkReachabilityContext *context) } if (argc > 1) { - bzero(&r_sin6, sizeof(r_sin6)); + memset(&r_sin6, 0, sizeof(r_sin6)); r_sin6.sin6_len = sizeof(r_sin6); r_sin6.sin6_family = AF_INET6; } @@ -1110,7 +1110,7 @@ do_wait(char *waitKey, int timeout) if (timeout > 0) { signal(SIGALRM, waitTimeout); - bzero(&itv, sizeof(itv)); + memset(&itv, 0, sizeof(itv)); itv.it_value.tv_sec = timeout; if (setitimer(ITIMER_REAL, &itv, NULL) == -1) { SCPrint(TRUE, stderr, -- 2.45.2