public UdpRequestResolver(IPEndPoint dns, int timeout = 5000, IPEndPoint localEndPoint = default(IPEndPoint)) { this.dns = dns; this.fallback = new NullRequestResolver(); this.timeout = timeout; this.localEndPoint = localEndPoint; }
public RecursiveRequestResolver(IRequestResolver innerResolver) { if (innerResolver == null) { throw new ArgumentNullException(nameof(innerResolver)); } this.innerResolver = innerResolver; }
private async Task <IResponse> SafeResolve(IRequestResolver resolver, IRequest request, CancellationToken cancellationToken) { // Ensure that we create a state machine, so we don't synchronously throw an exception await Task.Yield(); try { return(await resolver.Resolve(request, cancellationToken)); } catch { throw; } }
private async static Task Create(IRequestResolver requestResolver, Func <DnsServer, Task> action) { TaskCompletionSource <object> tcs = new TaskCompletionSource <object>(); DnsServer server = new DnsServer(requestResolver); server.Listening += async() => { try { await action(server); tcs.SetResult(null); } catch (Exception e) { tcs.SetException(e); } finally { server.Dispose(); } }; await Task.WhenAll(server.Listen(PORT), tcs.Task); }
/* Request syntax: * * <tdcs> * <type>memory-monitor</type> * <params> * ... * </params> * </tdcs> * * <tdcs> * or * <type>status</type><params></params></tdcs> */ public string OnRequest(string request) { // parse xml string typeString = ""; string response = ""; string error = ""; XmlDocument xmlDoc = new XmlDocument(); //* create an xml document object. try { xmlDoc.LoadXml(request); //XmlElement rootElement = xmlDoc.GetElementBy ("tdcs"); XmlNodeList typeElements = xmlDoc.GetElementsByTagName("type"); if (null == typeElements || 0 == typeElements.Count) { throw new Exception("Request has no element type"); } typeString = typeElements[0].InnerText; IRequestResolver resolver = mTaskManager.GetRequestResolverByName(typeString); if (null == resolver) { throw new Exception("Request type has no resolver"); } // resolver response = resolver.ProcessRequest(request); // error? } catch (XmlException ex) { error = ex.Message; request = "invalid_request"; } catch (Exception ex) { error = ex.Message; request = "request_handling_error"; } return(BuildResponse(typeString, request, response, error)); }
// returns request resolver by task name public IRequestResolver GetRequestResolverByName(string taskType) { IRequestResolver resolver = null; if (taskType == StatusResolver.RESOLVER_NAME) { resolver = new StatusResolver(this); } else if (taskType == MemoryMonitorResolver.RESOLVER_NAME) { resolver = new MemoryMonitorResolver(this); } else if (taskType == ProcessorMonitorResolver.RESOLVER_NAME) { resolver = new ProcessorMonitorResolver(this); } else if (taskType == AppPoolMonitorResolver.RESOLVER_NAME) { resolver = new AppPoolMonitorResolver(this); } else if (taskType == ClearFolderResolver.RESOLVER_NAME) { resolver = new ClearFolderResolver(this); } else if (taskType == RecycleAppPoolResolver.RESOLVER_NAME) { resolver = new RecycleAppPoolResolver(this); } if (null == resolver) { // if there are no task type, return default resolver resolver = new UnknownResolver(this); } return(resolver); }
public DnsServer(IRequestResolver resolver) { this.resolver = resolver; }
public UdpRequestResolver(IRequestResolver fallback) { this.fallback = fallback; }
public ClientRequest(IPAddress ip, int port = DEFAULT_PORT, IRequest request = null, IRequestResolver resolver = null) : this(new IPEndPoint(ip, port), request, resolver) { }
public ClientRequest(string ip, int port = DEFAULT_PORT, IRequest request = null, IRequestResolver resolver = null) : this(IPAddress.Parse(ip), port, request, resolver) { }
public ClientRequest(IPEndPoint dns, IRequest request = null, IRequestResolver resolver = null) { this.dns = dns; this.request = request == null ? new Request() : new Request(request); this.resolver = resolver == null ? new UdpRequestResolver() : resolver; }
public DnsServer(IRequestResolver resolver) { _Resolver = resolver; }
public ClientRequest(IRequestResolver resolver, IRequest request = null) { this.resolver = resolver; this.request = request == null ? new Request() : new Request(request); }
public DnsClient(IRequestResolver resolver) { _Resolver = resolver; }
public ActionExecutor(IRequestResolver resolver, IModelBindingController modelBindingController) { _resolver = resolver; _modelBindingController = modelBindingController; }
public DnsClient(IPEndPoint dns, IRequestResolver resolver = null) { this.dns = dns; this.resolver = resolver == null ? new UdpRequestResolver(new TcpRequestResolver()) : resolver; }
public AuthFunction(IRequestResolver requestResolver) { this.requestResolver = requestResolver; }
public ErrorFunction(IRequestResolver requestResolver) { this.requestResolver = requestResolver; }
public HelloWorldFunction(IRequestResolver requestResolver) { this.requestResolver = requestResolver; }
public UdpRequestResolver(IPEndPoint dns, IRequestResolver fallback, int timeout = 5000) { this.dns = dns; this.fallback = fallback; this.timeout = timeout; }
protected SignalRMethodExecutor(IRequestResolver resolver, ExecutionContext executionContext) { Resolver = resolver ?? throw new ArgumentNullException(nameof(resolver)); ExecutionContext = executionContext ?? throw new ArgumentNullException(nameof(executionContext)); }
public UdpRequestResolver(IPEndPoint dns, int timeout = 5000) { this.dns = dns; this.fallback = new NullRequestResolver(); this.timeout = timeout; }
public SignalRInvocationMethodExecutor(IRequestResolver resolver, ExecutionContext executionContext) : base(resolver, executionContext) { }
public DnsClient(IPEndPoint dns, IRequestResolver resolver = null) { this.dns = dns; this.resolver = resolver == null ? new UdpRequestResolver(new TcpRequestResolver()) : resolver; }
public static UdpRequestResolver Create(IPEndPoint endpoint, bool tcpFallback = true) { IRequestResolver fallback = tcpFallback ? new TcpRequestResolver(endpoint) : (IRequestResolver) new NullRequestResolver(); return(new UdpRequestResolver(endpoint, fallback)); }
public UdpRequestResolver() { this.fallback = new NullRequestResolver(); }
public ClientRequest(IPAddress ip, int port = DEFAULT_PORT, IRequest request = null, IRequestResolver resolver = null) : this(new IPEndPoint(ip, port), request, resolver) { }
public UdpRequestResolver(IRequestResolver fallback) { this.fallback = fallback; }
public ClientRequest(IPEndPoint dns, IRequest request = null, IRequestResolver resolver = null) { this.dns = dns; this.request = request == null ? new Request() : new Request(request); this.resolver = resolver == null ? new UdpRequestResolver() : resolver; }
public DnsServer(IRequestResolver resolver, string endServer, int port = DEFAULT_PORT) : this(resolver, IPAddress.Parse(endServer), port) { }
public ClientRequest(string ip, int port = DEFAULT_PORT, IRequest request = null, IRequestResolver resolver = null) : this(IPAddress.Parse(ip), port, request, resolver) { }
public VariablesFunction(IRequestResolver requestResolver) { this.requestResolver = requestResolver; }
public UdpRequestResolver() { this.fallback = new NullRequestResolver(); }
public SignalRConnectMethodExecutor(IRequestResolver resolver, ExecutionContext executionContext) : base(resolver, executionContext) { }
public NoHandlerFunction(IRequestResolver requestResolver) { this.requestResolver = requestResolver; }
public BeforeAndAfterEveryRequest(IRequestResolver requestResolver) { this.requestResolver = requestResolver; }