public bool OnRequesting(PacketEventArgs requestFilter) { //// filtering header //// 1. get string using encoding ibm850 //// 2. decrypt using rijndael //// 3. split with "</>" if (configuration == null) { configuration = ObjectPool.Instance.Resolve<GSMServer.Configuration.IConfiguration>(); } if (string.IsNullOrEmpty(signature) || (string.IsNullOrEmpty(encodingName) || (encoding == null))) { signature = ((ApplicationSettings)configuration).General.SMSGWSignature; encodingName = ((ApplicationSettings)configuration).General.DefaultEncoding; encoding = Encoding.GetEncoding(encodingName); } lock (s_InternalSyncObject) { string dataFilter = ""; if (requestFilter.Data.Length > 0) { try { dataFilter = c.Decrypt(encoding.GetString(requestFilter.Data)); } catch(FormatException fe) { IErrorLogging log = ObjectPool.Instance.Resolve<IErrorLogging>(); log.Write(fe.Message + " - on requesting"); return false; } requestFilter.Data = encoding.GetBytes(dataFilter); } if (!string.IsNullOrEmpty(dataFilter)) { Request request = JsonConvert.DeserializeObject<Request>(dataFilter, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects }); request.RemoteEndPoint = (IPEndPoint)requestFilter.Client.RemoteEndPoint; if (request.Header != null) { if (request.Header.Signature != null) { if (!request.Header.Signature.Equals(signature)) { request.Cancel = true; return false; } } } else return false; } } return true; }
protected virtual void OnPacketSent(PacketEventArgs e) { if (PacketSent != null) PacketSent(this, e); }
public virtual void OnPacketReceived(PacketEventArgs e) { lock (e) { if (e.Data.Length > 0) { object ret = action.TryInvoke("OnRequesting", new object[] { e }); if (ret == null) return; if (ret.GetType().Equals(typeof(bool))) { if (PacketReceived != null) { if ((bool)ret == true) PacketReceived(this, e); } } } } }
public void AddJob(int workerPoolIndex, PacketEventArgs item) { container[workerPoolIndex].Add(item); }
public void AddJob(PacketEventArgs item) { int randomGet = rnd.Next(0, container.Count); container[randomGet].Add(item); }
private void OnPacketReceived(object sender, PacketEventArgs e) { lock (workerPoolManager) { workerPoolManager.AddJob(1, e); } }