Exemplo n.º 1
0
        private void p_UserChannelCreated(object sender, ChannelCreatedEventArgs e)
        {
            e.CanDisposeChannel = false;
            SendFileInfo info = (SendFileInfo)e.Data;

            ServerClient otherClient;

            lock (fClients)
                fClients.TryGetValue(info.To, out otherClient);

            if (otherClient == null)
            {
                return;
            }

            var otherRemotingClient = RemotingClient.GetFromRemoteObject(otherClient.fClient);

            using (var otherChannel = otherRemotingClient.CreateUserChannel(info))
            {
                UnlimitedThreadPool.Run
                (
                    delegate
                {
                    try
                    {
                        while (true)
                        {
                            int b = otherChannel.ReadByte();
                            if (b == -1)
                            {
                                e.Channel.Dispose();
                                return;
                            }

                            e.Channel.WriteByte((byte)b);
                            e.Channel.Flush();
                        }
                    }
                    catch
                    {
                        otherChannel.Dispose();
                        e.Channel.Dispose();
                    }
                }
                );

                byte[] buffer = new byte[8 * 1024];
                while (true)
                {
                    int read = e.Channel.Read(buffer, 0, buffer.Length);
                    if (read <= 0)
                    {
                        return;
                    }

                    otherChannel.Write(buffer, 0, read);
                    otherChannel.Flush();
                }
            }
        }
Exemplo n.º 2
0
 public async ValueTask HandleChannelCreated(object sender, ChannelCreatedEventArgs e)
 {
     foreach (var service in ChannelCreatedServices)
     {
         await ExecuteAsync((service, e) => service.OnChannelCreated(e), service, e).ConfigureAwait(false);
     }
 }
        public ValueTask HandleChannelCreated(object sender, ChannelCreatedEventArgs e)
        {
            foreach (var service in _channelCreatedServices)
            {
                _ = ExecuteAsync((service, e) => service.OnChannelCreated(e), service, e);
            }

            return(default);
Exemplo n.º 4
0
        private void onChannelCreated(object sender, ChannelCreatedEventArgs e)
        {
            ListResponse <uint> test2 = queryRunner.GetClientDatabaseIdsByUniqueId("sR/12P6fJAJngNXQqK+JMA9CFuw=");

            uint test = queryRunner.GetClientDatabaseIdsByUniqueId(e.InvokerUniqueId).Values[0];
            ListResponse <ServerGroupLight> servergroups = queryRunner.GetServerGroupsByClientId(test);

            bool          allowed            = false;
            List <string> admin_servergroups = new List <string>();

            admin_servergroups.AddRange(sql.getProperty(serverinfo.id, "admins_servergroup_ids").Split(','));

            foreach (ServerGroupLight servergroup in servergroups)
            {
                foreach (string admin_servergroup in admin_servergroups)
                {
                    if (servergroup.Id == (uint)Convert.ToInt32(admin_servergroup))
                    {
                        allowed = true;
                    }
                }
            }

            if (allowed)
            {
                //User was allowed to do this, however now we want to re-scan the room list.
                ScanRooms();
            }
            else
            {
                ListResponse <ChannelListEntry> channels = queryRunner.GetChannelList(true, false, false, false, false);
                //SimpleResponse response = queryRunner.DeleteChannel((uint)Convert.ToInt32(values["cid"]));

                foreach (ChannelListEntry channel in channels)
                {
                    if (channel.Topic == "temporary_area")
                    {
                        SimpleResponse response = queryRunner.MoveChannel((uint)Convert.ToInt32(e.ChannelId), channel.ChannelId);

                        ChannelModification mod = new ChannelModification();
                        mod.IsTemporary     = true;
                        mod.IsPermanent     = false;
                        mod.IsSemiPermanent = false;

                        queryRunner.EditChannel((uint)Convert.ToInt32(e.ChannelId), mod);
                        break;
                    }
                }
            }
        }
Exemplo n.º 5
0
        private void p_UserChannelCreated(object sender, ChannelCreatedEventArgs e)
        {
            Invoke
            (
                new Action
                (
                    delegate
            {
                SendFileInfo sendFileInfo = (SendFileInfo)e.Data;

                using (var dialog = new SaveFileDialog())
                {
                    dialog.FileName = sendFileInfo.FileName;
                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    FormTransferFile form = null;
                    FileStream fileStream = null;
                    try
                    {
                        fileStream = File.Create(dialog.FileName);
                        form       = new FormTransferFile(sendFileInfo, fileStream, e.Channel, false);
                        form.Show();

                        e.CanDisposeChannel = false;
                    }
                    catch (Exception exception)
                    {
                        if (fileStream != null)
                        {
                            fileStream.Dispose();
                        }

                        if (form != null)
                        {
                            form.Dispose();
                        }

                        MessageBox.Show(exception.Message);
                    }
                }
            }
                )
            );
        }
Exemplo n.º 6
0
 private void Notifications_ChannelCreated(object sender, ChannelCreatedEventArgs e)
 {
     //throw new NotImplementedException();
 }
Exemplo n.º 7
0
 private async void ChannelTrackingStatusCreated(object sender, ChannelCreatedEventArgs e)
 {
     await AddChannel(e.ChannelId);
 }
Exemplo n.º 8
0
        //private void atd_ServerClosedConnection(object sender, EventArgs e)
        //{
        //    throw new NotImplementedException();
        //}

        private void onChannelCreated(object sender, ChannelCreatedEventArgs e)
        {
        }
 protected internal virtual ValueTask OnChannelCreated(ChannelCreatedEventArgs e)
 => default;
Exemplo n.º 10
0
 public virtual void onChannelCreated(object sender, ChannelCreatedEventArgs e)
 {
 }