private static void CaptureUnzipFileRequest(RequestWrapper request) { var req = request.Request as C2S_UnzipFileRequest; string path = null; if (req == null || !FileManager.FileExists(req.S64Sha256, out path) || !request.Connection.Authorized(DfsPermissions.UnzipFile)) { request.TrySendResponse(new S2C_UnzipFileResult(null, false, false), out _); return; } FileStream fs; try { fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete); } catch { request.TrySendResponse(new S2C_UnzipFileResult(null, false, false), out _); return; } UnzipQueue.Enqueue(new UnzipFileItem { FileStream = fs, Request = request }, CryptoHelper.BuildDiscriminatorFromS64(req.S64Sha256)); }
private static void Server_ClientDisconnected(Connection connection, Exception exception) { var role = connection.Data.Get <string>("_R", null) != null; if (role) { VerifyQueue.RemoveClient(); SendQueue.RemoveClient(); UnzipQueue.RemoveClient(); //var targetDict = role == DfsClientType.Shard ? Shards : Realms; //targetDict.TryRemove(connection.Identifier, out _); } }
private static bool AcceptClient(Connection client) { if (client.SslCertificates.RemotePolicyErrors != SslPolicyErrors.None) { return(false); } if (!PermissionManager.Authorize(client)) { return(false); } VerifyQueue.NewClient(); SendQueue.NewClient(); UnzipQueue.NewClient(); //targetDict.TryAdd(client.Identifier, client); //client.Data["Role"] = type.ToString(); return(true); }