Beispiel #1
0
        // Token: 0x06000314 RID: 788 RVA: 0x000137EC File Offset: 0x000119EC
        private RfriStatus EndWrapper(string methodName, ICancelableAsyncResult asyncResult, Func <RfriDispatchTask, RfriStatus> endDelegate)
        {
            RfriStatus rfriStatus = RfriStatus.Success;

            RfriAsyncDispatch.ConditionalExceptionWrapper(ExTraceGlobals.ReferralTracer.IsTraceEnabled(TraceType.DebugTrace), delegate
            {
                DispatchTaskAsyncResult dispatchTaskAsyncResult = asyncResult as DispatchTaskAsyncResult;
                if (dispatchTaskAsyncResult != null)
                {
                    RfriDispatchTask rfriDispatchTask = (RfriDispatchTask)dispatchTaskAsyncResult.DispatchTask;
                    using (DisposeGuard disposeGuard = default(DisposeGuard))
                    {
                        disposeGuard.Add <RfriDispatchTask>(rfriDispatchTask);
                        rfriStatus = endDelegate(rfriDispatchTask);
                    }
                    ExTraceGlobals.ReferralTracer.TraceDebug <string, RfriStatus>(0, 0L, "{0} succeeded. RfriStatus={1}.", methodName, rfriStatus);
                    return;
                }
                FailureAsyncResult <RfriStatus> failureAsyncResult = asyncResult as FailureAsyncResult <RfriStatus>;
                if (failureAsyncResult != null)
                {
                    rfriStatus = failureAsyncResult.ErrorCode;
                    ExTraceGlobals.ReferralTracer.TraceDebug <string, RfriStatus, Exception>(0, 0L, "{0} failed. RfriStatus={1}. Exception={2}.", methodName, rfriStatus, failureAsyncResult.Exception);
                    return;
                }
                throw new InvalidOperationException(string.Format("Invalid IAsyncResult encountered; {0}", asyncResult));
            }, delegate(Exception exception)
            {
                ExTraceGlobals.ReferralTracer.TraceDebug <string, Exception>(0, 0L, "{0} failed. Exception={1}.", methodName, exception);
            });
            return(rfriStatus);
        }
 internal void Append(string operation, RfriStatus status, int queuedTime, int processingTime)
 {
     if (ProtocolLog.Enabled)
     {
         this.Append(operation, (status == RfriStatus.Success) ? null : string.Format(NumberFormatInfo.InvariantInfo, "{0:X}", new object[]
         {
             (int)status
         }), queuedTime, processingTime);
     }
 }
Beispiel #3
0
        internal RfriStatus GetAddressBookUrl(string hostname, string userDn, out string serverUrl)
        {
            serverUrl = string.Empty;
            RfriStatus result = RfriStatus.NoSuchObject;
            string     mailboxId;

            if (this.TryGetPersonalizedServer(userDn, out mailboxId))
            {
                serverUrl = MapiHttpEndpoints.GetAddressBookUrl(hostname, mailboxId);
                result    = RfriStatus.Success;
            }
            return(result);
        }
Beispiel #4
0
        internal RfriStatus GetMailboxUrl(string hostname, string serverDn, out string serverUrl)
        {
            serverUrl = string.Empty;
            string     text;
            RfriStatus rfriStatus = this.GetFQDNFromLegacyDN(serverDn, out text);

            if (rfriStatus == RfriStatus.Success)
            {
                if (text.Contains("@"))
                {
                    serverUrl = MapiHttpEndpoints.GetMailboxUrl(hostname, text);
                }
                else
                {
                    rfriStatus = RfriStatus.NoSuchObject;
                }
            }
            return(rfriStatus);
        }
Beispiel #5
0
        internal RfriStatus GetFQDNFromLegacyDN(string legacyDN, out string serverFQDN)
        {
            RfriStatus rfriStatus = RfriStatus.Success;

            serverFQDN = null;
            RfriContext.ReferralTracer.TraceDebug <string>((long)this.ContextHandle, "Requested DN: {0}", RfriContext.GetString(legacyDN));
            if (legacyDN.Contains("@"))
            {
                LegacyDN legacyDN2;
                if (LegacyDN.TryParse(legacyDN, out legacyDN2))
                {
                    string text;
                    legacyDN2.GetParentLegacyDN(out text, out serverFQDN);
                    if (string.IsNullOrEmpty(serverFQDN) || !serverFQDN.Contains("@"))
                    {
                        rfriStatus = RfriStatus.NoSuchObject;
                    }
                }
                else
                {
                    rfriStatus = RfriStatus.NoSuchObject;
                }
            }
            else
            {
                legacyDN   = ExchangeRpcClientAccess.FixFakeRedirectLegacyDNIfNeeded(legacyDN);
                rfriStatus = ServerFqdnCache.LookupFQDNByLegacyDN(legacyDN, out serverFQDN);
            }
            if (rfriStatus != RfriStatus.Success || string.IsNullOrEmpty(serverFQDN))
            {
                if (rfriStatus == RfriStatus.Success)
                {
                    rfriStatus = RfriStatus.NoSuchObject;
                }
                this.ProtocolLogSession[ProtocolLog.Field.Failures] = RfriContext.GetString(legacyDN);
            }
            else
            {
                RfriContext.ReferralTracer.TraceDebug <string>((long)this.ContextHandle, "Referring to {0}", serverFQDN);
            }
            return(rfriStatus);
        }
 // Token: 0x06000316 RID: 790 RVA: 0x0001385C File Offset: 0x00011A5C
 internal RfriException(RfriStatus status, string message) : base(message)
 {
     base.HResult = (int)status;
 }