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);
     }
 }
Beispiel #3
0
        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);
        }
 public void OnDnsRequestProcessed(object sender, DnsRequestProcessedEventArgs args)
 {
     Console.Out.WriteLine("OnDnsRequestProcessed called, args - {0}", args);
 }