internal static DnsProxySettings FromNativeObject( AGDnsApi.ag_dnsproxy_settings dnsProxySettingsC) { List <UpstreamOptions> upstreams = MarshalUtils.AgListToList <AGDnsApi.ag_upstream_options, UpstreamOptions>( dnsProxySettingsC.upstreams, FromNativeObject); List <UpstreamOptions> fallbacks = MarshalUtils.AgListToList <AGDnsApi.ag_upstream_options, UpstreamOptions>( dnsProxySettingsC.fallbacks, FromNativeObject); Dns64Settings dns64 = FromNativeObject(dnsProxySettingsC.pDns64); EngineParams engineParams = FromNativeObject(dnsProxySettingsC.FilterParams); List <ListenerSettings> listeners = MarshalUtils.AgListToList <AGDnsApi.ag_listener_settings, ListenerSettings>( dnsProxySettingsC.listeners, FromNativeObject); DnsProxySettings dnsProxySettings = new DnsProxySettings { Upstreams = upstreams, Fallbacks = fallbacks, Dns64 = dns64, EngineParams = engineParams, Listeners = listeners, }; MarshalUtils.CopyFieldsToProperties(dnsProxySettingsC, dnsProxySettings); MarshalUtils.AllPtrsToStrings(dnsProxySettingsC, dnsProxySettings); return(dnsProxySettings); }
internal static DnsStamp FromNativeObject(AGDnsApi.ag_dns_stamp agDnsStampC) { DnsStamp dnsStamp = new DnsStamp(); MarshalUtils.AllPtrsToStrings(agDnsStampC, dnsStamp); MarshalUtils.CopyFieldsToProperties(agDnsStampC, dnsStamp); return(dnsStamp); }
private static FilterParams FromNativeObject(AGDnsApi.ag_filter_params filterParamsC) { FilterParams filterParams = new FilterParams(); MarshalUtils.AllPtrsToStrings(filterParamsC, filterParams); MarshalUtils.CopyFieldsToProperties(filterParamsC, filterParams); return(filterParams); }
private static OutboundProxyAuthInfo FromNativeObject( AGDnsApi.ag_outbound_proxy_auth_info outboundProxyAuthInfoC) { OutboundProxyAuthInfo outboundProxyAuthInfo = new OutboundProxyAuthInfo(); MarshalUtils.CopyFieldsToProperties(outboundProxyAuthInfoC, outboundProxyAuthInfo); MarshalUtils.AllPtrsToStrings(outboundProxyAuthInfoC, outboundProxyAuthInfo); return(outboundProxyAuthInfo); }
private static ListenerSettings FromNativeObject(AGDnsApi.ag_listener_settings listenerSettingsC) { IPAddress address = CreateIpAddress(listenerSettingsC.address); int port = listenerSettingsC.port; IPEndPoint endPoint = CreateEndPoint(address, port); ListenerSettings listenerSettings = new ListenerSettings { EndPoint = endPoint }; MarshalUtils.CopyFieldsToProperties(listenerSettingsC, listenerSettings); return(listenerSettings); }
private static Dns64Settings FromNativeObject(AGDnsApi.ag_dns64_settings dns64C) { List <UpstreamOptions> dns64Upstreams = MarshalUtils.AgListToList <AGDnsApi.ag_upstream_options, UpstreamOptions>( dns64C.upstreams, FromNativeObject); Dns64Settings dns64 = new Dns64Settings { Upstreams = dns64Upstreams }; MarshalUtils.CopyFieldsToProperties(dns64C, dns64); return(dns64); }
internal static DnsStamp FromNativeObject(AGDnsApi.ag_dns_stamp agDnsStampC) { byte[] publicKey = MarshalUtils.AgBufferToBytes(agDnsStampC.server_public_key); List <byte[]> hashes = MarshalUtils.AgListToList <MarshalUtils.ag_buffer, byte[]>( agDnsStampC.hashes, MarshalUtils.AgBufferToBytes); DnsStamp dnsStamp = new DnsStamp { PublicKey = publicKey, Hashes = hashes }; MarshalUtils.AllPtrsToStrings(agDnsStampC, dnsStamp); MarshalUtils.CopyFieldsToProperties(agDnsStampC, dnsStamp); return(dnsStamp); }
private static UpstreamOptions FromNativeObject(AGDnsApi.ag_upstream_options upstreamOptionsC) { List <string> bootstrap = MarshalUtils.AgListToList <IntPtr, string>( upstreamOptionsC.bootstrap, MarshalUtils.PtrToString); IPAddress serverAddress = CreateIpAddress(upstreamOptionsC.resolved_ip_address); UpstreamOptions upstreamOptions = new UpstreamOptions { Bootstrap = bootstrap, ResolvedIpAddress = serverAddress }; MarshalUtils.CopyFieldsToProperties(upstreamOptionsC, upstreamOptions); MarshalUtils.AllPtrsToStrings(upstreamOptionsC, upstreamOptions); return(upstreamOptions); }
private static OutboundProxySettings FromNativeObject( AGDnsApi.ag_outbound_proxy_settings outboundProxySettingsC) { AGDnsApi.ag_outbound_proxy_auth_info outboundProxyAuthInfoC = MarshalUtils.PtrToStructure <AGDnsApi.ag_outbound_proxy_auth_info>( outboundProxySettingsC.auth_info); OutboundProxyAuthInfo authInfo = FromNativeObject(outboundProxyAuthInfoC); OutboundProxySettings outboundProxySettings = new OutboundProxySettings { AuthInfo = authInfo }; MarshalUtils.CopyFieldsToProperties(outboundProxySettingsC, outboundProxySettings); MarshalUtils.AllPtrsToStrings(outboundProxySettingsC, outboundProxySettings); return(outboundProxySettings); }
internal static DnsProxySettings FromNativeObject( AGDnsApi.ag_dnsproxy_settings dnsProxySettingsC) { List <UpstreamOptions> upstreams = MarshalUtils.AgListToList <AGDnsApi.ag_upstream_options, UpstreamOptions>( dnsProxySettingsC.upstreams, FromNativeObject); List <UpstreamOptions> fallbacks = MarshalUtils.AgListToList <AGDnsApi.ag_upstream_options, UpstreamOptions>( dnsProxySettingsC.fallbacks, FromNativeObject); List <string> fallbackDomains = MarshalUtils.AgListToList <IntPtr, string>( dnsProxySettingsC.fallbackDomains, MarshalUtils.PtrToString); AGDnsApi.ag_dns64_settings dns64C = MarshalUtils.PtrToStructure <AGDnsApi.ag_dns64_settings>(dnsProxySettingsC.pDns64); Dns64Settings dns64 = FromNativeObject(dns64C); EngineParams engineParams = FromNativeObject(dnsProxySettingsC.FilterParams); List <ListenerSettings> listeners = MarshalUtils.AgListToList <AGDnsApi.ag_listener_settings, ListenerSettings>( dnsProxySettingsC.listeners, FromNativeObject); AGDnsApi.ag_outbound_proxy_settings outboundProxySettingsC = MarshalUtils.PtrToStructure <AGDnsApi.ag_outbound_proxy_settings>(dnsProxySettingsC.outbound_proxy); OutboundProxySettings outboundProxySettings = FromNativeObject(outboundProxySettingsC); DnsProxySettings dnsProxySettings = new DnsProxySettings { Upstreams = upstreams, Fallbacks = fallbacks, FallbackDomains = fallbackDomains, Dns64 = dns64, EngineParams = engineParams, Listeners = listeners, OutboundProxySettings = outboundProxySettings }; MarshalUtils.CopyFieldsToProperties(dnsProxySettingsC, dnsProxySettings); MarshalUtils.AllPtrsToStrings(dnsProxySettingsC, dnsProxySettings); return(dnsProxySettings); }
internal static DnsRequestProcessedEventArgs FromNativeObject( AGDnsApi.ag_dns_request_processed_event coreArgsС) { List <string> rules = MarshalUtils.AgListToList <IntPtr, string>( coreArgsС.rules, MarshalUtils.PtrToString); List <int> filterListIds = MarshalUtils.AgListToList <IntPtr, int>( coreArgsС.filter_list_ids, filterId => (int)filterId); int?upstreamId = MarshalUtils.PtrToNullableInt(coreArgsС.pUpstreamId); DnsRequestProcessedEventArgs eventArgs = new DnsRequestProcessedEventArgs { UpstreamId = upstreamId, Rules = rules, FilterListIds = filterListIds }; MarshalUtils.AllPtrsToStrings(coreArgsС, eventArgs); MarshalUtils.CopyFieldsToProperties(coreArgsС, eventArgs); return(eventArgs); }