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;
        }
Beispiel #2
0
 protected virtual void OnPacketSent(PacketEventArgs e)
 {
     if (PacketSent != null)
         PacketSent(this, e);
 }
Beispiel #3
0
 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);
 }
Beispiel #6
0
 private void OnPacketReceived(object sender, PacketEventArgs e)
 {
     lock (workerPoolManager)
     {
         workerPoolManager.AddJob(1, e); 
     }
 }