Exemple #1
0
        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);
        }
Exemple #2
0
        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
            }));
        }
Exemple #3
0
 public static GetServerCapabilitiesResponse Deserialize(IPCReader reader) => new GetServerCapabilitiesResponse
 {
     Info = CapabilityInfo.Deserialize(reader)
 };
Exemple #4
0
 /// <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;
 }
Exemple #5
0
 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); });
 }
Exemple #6
0
 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); });
 }