private void GrantCapability(Guid requesterIdentity, byte[] destination, CapabilityInfo info) { var infoJson = JsonConvert.SerializeObject(info); var encryptor = _negotiator.GetEncryptorFor(requesterIdentity); var response = ResponseCreator.Create(encryptor, destination, MessageType.GrantCapability, infoJson); _router.SendMultipartMessage(response); }
public Task <IResponse> RunAsync() { foreach (var cap in _command.ExtensionCapabilities) { _client.Capabilities.Add(cap); } var info = new CapabilityInfo( version: typeof(CapabilityInfo).Assembly.GetName().Version.ToString(3), platform: RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ServerPlatform.Windows : ServerPlatform.Linux, capabilities: CapabilityInfo.LatestServerCapabilities ); return(Task.FromResult <IResponse>(new GetServerCapabilitiesResponse { Info = info })); }
public static GetServerCapabilitiesResponse Deserialize(IPCReader reader) => new GetServerCapabilitiesResponse { Info = CapabilityInfo.Deserialize(reader) };
/// <summary> /// Initializes an instance of the <see cref="CapabilityClient{TArgument,TReturn}" /> class /// </summary> /// <param name="socket">The socket used for communication</param> /// <param name="info">The capability info</param> /// <param name="encryptor">The encryption client</param> internal CapabilityClient(RequestSocket socket, CapabilityInfo info, SymetricEncryption encryptor) { _socket = socket; _info = info; _encryptor = encryptor; }
private void HandleGetCapability(byte[] requester, Guid requesterIdentity, CapabilityInfo info) { _registry.Get(info.Name) .Just(capability => { GrantCapability(requesterIdentity, requester, info); }) .Nothing(() => { ErrorMessageSender.SendError(requester, _router, ErrorCode.RequestDenied); }); }
private void HandleInvokeCapability(byte[] requester, Guid requesterIdentity, CapabilityInfo info, string requestContentJson) { _registry.Get(info.Name) .Just(capability => { InvokeCapability(requester, requesterIdentity, capability, requestContentJson); }) .Nothing(() => { ErrorMessageSender.SendError(requester, _router, ErrorCode.RequestDenied); }); }