public void TestDnsRequestProcessedConverter() { AGDnsApi.ag_dns_request_processed_event dnsRequestNative = new AGDnsApi.ag_dns_request_processed_event(); DnsRequestProcessedEventArgs dnsRequest = DnsApiConverter.FromNativeObject(dnsRequestNative); Assert.IsNotNull(dnsRequest); }
/// <summary> /// <see cref="AGDnsApi.AGDnsProxyServerCallbacks.ag_dns_request_processed_cb"/> adapter /// </summary> /// <param name="pInfo">The pointer to an instance of /// <see cref="AGDnsApi.ag_dns_request_processed_event"/></param> private void AGCOnDnsRequestProcessed(IntPtr pInfo) { try { AGDnsApi.ag_dns_request_processed_event coreArgs = MarshalUtils.PtrToStructure <AGDnsApi.ag_dns_request_processed_event>(pInfo); DnsRequestProcessedEventArgs args = DnsApiConverter.FromNativeObject(coreArgs); m_DnsServerCallbackConfiguration.OnDnsRequestProcessed(m_ProxyServer, args); } catch (Exception ex) { DnsExceptionHandler.HandleManagedException(ex); } }
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); }