#ifndef CONFIG_AGENT_H
#define CONFIG_AGENT_H
#include <net/if.h>
#include <net/network_agent.h>
#include <net/necp.h>
#include <dnsinfo.h>
#include <sys/ioctl.h>
#include <network_information.h>
#include <notify.h>
#include <sys/kern_control.h>
#include <sys/sys_domain.h>
#include <SystemConfiguration/SystemConfiguration.h>
#include <SystemConfiguration/SCPrivate.h>
#import <Foundation/Foundation.h>
#import <Network/Network_Private.h>
#import <NetworkExtension/NEPolicySession.h>
#import <CommonCrypto/CommonDigest.h>
#import "configAgentDefines.h"
typedef NS_ENUM(NSUInteger, AgentType) {
kAgentTypeUnknown = 0,
kAgentTypeProxy,
kAgentTypeDNS
};
typedef NS_ENUM(NSUInteger, AgentSubType) {
kAgentSubTypeUnknown = 0,
kAgentSubTypeScoped,
kAgentSubTypeSupplemental,
kAgentSubTypeDefault,
kAgentSubTypeMulticast,
kAgentSubTypePrivate,
kAgentSubTypeServiceSpecific
};
os_log_t __log_IPMonitor();
#define kEntityName "EntityName"
#define kAgentSubType "AgentSubType"
@interface ConfigAgent : NSObject <NWNetworkAgent>
- (instancetype)initWithParameters:(NSDictionary *)parameters;
- (void)addAgentRegistrationObject:(NWNetworkAgentRegistration *)regObject;
- (NWNetworkAgentRegistration *)getRegistrationObject;
- (NSString *)getAssociatedEntity;
- (NSString *)getAgentName;
- (NSData *)getAgentData;
- (AgentType)getAgentType;
- (AgentSubType)getAgentSubType;
- (NSUUID *)getAgentUUID;
- (void)setStartHandler:(void (^)(void))startHandler;
- (BOOL)startAgentWithOptions:(NSDictionary *)options;
- (void)updateAgentData:(NSData *)data;
- (BOOL)shouldUpdateAgent;
- (id)getAgentMapping;
- (void)setAgentMapping:(id)agent;
- (NSUUID *)createUUIDForName:(NSString *)agentName;
@end
#endif