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); }
private static EngineParams FromNativeObject(AGDnsApi.ag_filter_engine_params filterEngineParamsC) { List <FilterParams> filterParams = MarshalUtils.AgListToList <AGDnsApi.ag_filter_params, FilterParams>( filterEngineParamsC.filters, FromNativeObject); EngineParams engineParams = new EngineParams { FilterParams = filterParams }; return(engineParams); }
internal static CertificateVerificationEventArgs FromNativeObject( AGDnsApi.ag_certificate_verification_event coreArgsС) { byte[] certBytes = MarshalUtils.AgBufferToBytes(coreArgsС.pCertificate); List <byte[]> chain = MarshalUtils.AgListToList <AGDnsApi.ag_buffer, byte[]>( coreArgsС.chain, MarshalUtils.AgBufferToBytes); CertificateVerificationEventArgs eventArgs = new CertificateVerificationEventArgs { Certificate = certBytes, Chain = chain }; return(eventArgs); }
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); }
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); }