Beispiel #1
0
 // Token: 0x06000369 RID: 873 RVA: 0x00012A98 File Offset: 0x00010C98
 private static void OnNotification(ADNotificationEventArgs args)
 {
     if (args != null)
     {
         ADNotificationAdapter.WrappedContext wrappedContext = args.Context as ADNotificationAdapter.WrappedContext;
         if (wrappedContext != null && wrappedContext.Callback != null)
         {
             wrappedContext.Callback.SerializedRun(args);
         }
     }
 }
Beispiel #2
0
            // Token: 0x0600036E RID: 878 RVA: 0x00012BA0 File Offset: 0x00010DA0
            public void SerializedRun(ADNotificationEventArgs args)
            {
                bool flag = false;

                lock (this)
                {
                    if (!this.hasQueuedRun)
                    {
                        this.hasQueuedRun = true;
                        flag = true;
                    }
                }
                if (flag)
                {
                    bool timedOut = !this.waitHandle.WaitOne(600000, false);
                    this.RunCallback(args, timedOut);
                }
            }
Beispiel #3
0
 // Token: 0x0600036F RID: 879 RVA: 0x00012C08 File Offset: 0x00010E08
 private void RunCallback(ADNotificationEventArgs args, bool timedOut)
 {
     if (!timedOut)
     {
         lock (this)
         {
             this.hasQueuedRun = false;
         }
         try
         {
             try
             {
                 this.callback(args);
             }
             catch (ADInvalidCredentialException)
             {
                 ExTraceGlobals.ADNotificationsTracer.TraceError(0L, "Some component's AD Notification callback didn't catch ADInvalidCredentialException.");
             }
             catch (ADTransientException)
             {
                 ExTraceGlobals.ADNotificationsTracer.TraceError(0L, "Some component's AD Notification callback didn't catch ADTransientException.");
             }
             catch (DataValidationException)
             {
                 ExTraceGlobals.ADNotificationsTracer.TraceError(0L, "Some component's AD Notification callback didn't catch DataValidationException.");
             }
             return;
         }
         finally
         {
             this.waitHandle.Set();
         }
     }
     Globals.LogEvent(DirectoryEventLogConstants.Tuple_DSC_EVENT_AD_NOTIFICATION_CALLBACK_TIMED_OUT, args.Type.Name, new object[]
     {
         args.Type.Name
     });
     ExTraceGlobals.ADNotificationsTracer.TraceError(0L, "Some component's AD Notification callback hasn't returned after 10 minutes. config. change notifications ARE NO LONGER BEING DELIVERED TO SUCH COMPONENT.");
 }