Esempio n. 1
0
        int DefaultAutoRequestTime  = 15000; //1 minutes
        // ===============================
        private void ThreadWorker()
        {
            bStopAutoRequest = true;
            // ===============================
            // tack cuc nay` ra ham` cua mai` ben lop' nao` do'
            requestTarget  = 0;
            requestTarget |= RequestTarget.Towns;
            requestTarget |= RequestTarget.Building;
            requestTarget |= RequestTarget.Troops;

            requestTarget |= RequestTarget.Diplomacy;
            requestTarget |= RequestTarget.Research;

            makeRequest();
            //dang starting nen ko cho client tiep can
            //xem nhu server down

            bStopAutoRequest = false;
            requestTarget    = 0;
            while (!bStopAutoRequest)
            {
                //DEBUG("starting request...");
                //Request requestTarget
                //BUS.RequestSomething();
                //Update requestTarget
                //requestTarget = RequestTarget.Towns;

                makeRequest();

                requestTarget = (RequestTarget)GetNextRequest(out DefaultAutoRequestTime);
                //DEBUG("done request...");
                Thread.Sleep(DefaultAutoRequestTime); //Sua thanh wait de
            }
            // ===============================
        }
        public void testFindUrl_MultiSite1()
        {
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "printxml", "false" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },

                { "multiSite", "true" },
                { "printMultiSiteDebug", "true" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "4" },
                { "maxHoursWithoutSwitch", "48" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            RequestTarget rt = cmg.findUrl();

            Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt.getUrl());
            Assert.True(rt.getUrl().Equals(site1Url) || rt.getUrl().Equals(site2Url));
        }
            public void runPerformanceTest()
            {
                Random rand                 = new Random();
                long   startTime            = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                long   totalTransactionTime = 0;

                for (int n = 0; n < cycleCount; n++)
                {
                    requestCount++;
                    RequestTarget target = CommManager.instance(config).findUrl();
                    try
                    {
                        int sleepTime = 100 + rand.Next(500);
                        totalTransactionTime += sleepTime;
                        Thread.Sleep(sleepTime);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.ToString());
                    }
                    CommManager.instance(config).reportResult(target, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200);
                }
                long duration = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - startTime;

                Console.WriteLine("Thread " + threadId + " completed. Total Requests:" + requestCount + "  Elapsed Time:" + (duration / 1000) + " secs    Average Txn Time:" + (totalTransactionTime / requestCount) + " ms");
            }
Esempio n. 4
0
    public void Execute(BattleUnit source, AbilityData abilityData, RequestTarget requestTarget)
    {
        //BattleLog.Log("【D2Event】{0},source:{1},target:{2}", GetType().Name, source.GetName(), requestTarget.ToString());

        foreach (D2Action action in m_Actions)
        {
            action.Execute(source, abilityData, requestTarget);
        }
    }
Esempio n. 5
0
 public D2Modifier(BattleUnit caster, ModifierData modifierData, BattleUnit target, AbilityData abilityData)
 {
     this.caster       = caster;
     this.target       = target;
     this.abilityData  = abilityData;
     this.modifierData = modifierData;
     requestTarget     = new RequestTarget();
     requestTarget.SetUnitTarget(target);
 }
Esempio n. 6
0
        public void ParseAbsoluteUri_Regularv2UriWithAbsentAuthority_ValidRequestTarget()
        {
            string        uriString;
            RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("filescheme", "/testpath", "test_query=1&second=2", out uriString);

            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(rt, result);
        }
Esempio n. 7
0
        public void ParseAbsoluteUri_Regularv3UriWithAbsentAuthority_ValidRequestTarget()
        {
            string        uriString;
            RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("https", "/", "q=1&qqq=222", out uriString);

            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(rt, result);
        }
Esempio n. 8
0
        public void ParseAbsoluteUri_Regularv4UriWithAbsentAuthority_ValidRequestTarget()
        {
            string        uriString;
            RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("ldap", "/example/foledr_NAME", "q=123123123123123123", out uriString);

            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(rt, result);
        }
Esempio n. 9
0
        public void ParseAbsoluteUri_RegularUri1CharLength_ValidOutput()
        {
            string        uriString;
            RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("a", "/", "q", out uriString);

            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(rt, result);
        }
Esempio n. 10
0
        public void ParseAbsoluteUri_Regularv1UriWithAbsentAuthority_ValidRequestTarget()
        {
            string        uriString;
            RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("ftp", "/path/to/some/file", "q=1&q=2&q=3", out uriString);

            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(rt, result);
        }
Esempio n. 11
0
        public RequestHeader(HttpMethod method, RequestTarget target, HttpVersion version, IHeaderField[] headerFields)
        {
            Method  = method;
            Target  = target;
            Version = version;

            undefinedHfList        = new List <UndefinedHf>();
            cookieHfList           = new List <IHeaderField>();
            onlySingleHeaderFields = new Dictionary <HFType, IHeaderField>();

            AddFields(headerFields);
        }
Esempio n. 12
0
        public void ParseAbsoluteUri_ValidInputFullUriStringv1_ValidOutputRequestTarget()
        {
            string        uriString;
            RequestTarget expected = BuildFullUriAndRequestTarget("http", "user.info", "www.test.com", 8080, "/", "param1=v1", out uriString);

            RequestTargetParser parser = new RequestTargetParser();

            RequestTarget actual = parser.ParseAbsoluteUri(uriString);


            Assert.AreEqual(expected, actual);
        }
Esempio n. 13
0
        public void ParseAbsoluteUri_ValidInputFullUriStringv2_ValidOutputRequestTarget()
        {
            string        uriString;
            RequestTarget expected = BuildFullUriAndRequestTarget("https", "user2.info345", "www.data.test.com", 443, "/some/path", "p=1&p=2&p=3", out uriString);

            RequestTargetParser parser = new RequestTargetParser();

            RequestTarget actual = parser.ParseAbsoluteUri(uriString);


            Assert.AreEqual(expected, actual);
        }
Esempio n. 14
0
    public Ability(int id, int priority, BattleUnit battleEntity, AbilityData abilityData)
    {
        ID            = id;
        this.priority = priority;
        caster        = battleEntity;
        m_AbilityData = abilityData;

        castTime      = 0f;
        CD            = m_AbilityData.cooldown;
        abilityState  = AbilityState.None;
        requestTarget = new RequestTarget();
    }
Esempio n. 15
0
        public void ParseAbsoluteUri_ValidInputFullUriStringv3_ValidOutputRequestTarget()
        {
            string        uriString;
            RequestTarget expected = BuildFullUriAndRequestTarget("ftp", "ftp.test.client", "ftp.host.test", 223, "//", "p=123", out uriString);

            RequestTargetParser parser = new RequestTargetParser();

            RequestTarget actual = parser.ParseAbsoluteUri(uriString);


            Assert.AreEqual(expected, actual);
        }
Esempio n. 16
0
        public void ParseAbsoluteUri_ValidInputFullUriString_AllComponents1CharLength_ValidOutputRequestTarget()
        {
            string        uriString;
            RequestTarget expected = BuildFullUriAndRequestTarget("a", "b", "c", 1, "/", "d", out uriString);

            RequestTargetParser parser = new RequestTargetParser();

            RequestTarget actual = parser.ParseAbsoluteUri(uriString);


            Assert.AreEqual(expected, actual);
        }
Esempio n. 17
0
    public void ExecuteEvent(AbilityEvent abilityEvent, BattleUnit source, RequestTarget requestTarget)
    {
        BattleLog.Log("【AbilityData】ExecuteEvent:{0},source:{1},target:{2}", abilityEvent.ToString(), source.GetName(), requestTarget.ToString());

        string  eventName = Enum.GetName(typeof(AbilityEvent), abilityEvent);
        D2Event @event;

        eventMap.TryGetValue(eventName, out @event);
        if (@event != null)
        {
            @event.Execute(source, this, requestTarget);
        }
    }
Esempio n. 18
0
        public int Send(RequestTarget target, SerializationWriter sw)
        {
            if (Cache)
            {
                byte[] cache = byteCache[(int)target];

                if (cache != null)
                {
                    //use the byte-cache, since it is present.
                    if (cache.Length > 0)
                    {
                        sw.Seek(0, SeekOrigin.Begin);
                        sw.BaseStream.Write(cache, 0, cache.Length);
                    }

                    return(cache.Length);
                }

                //cache miss; we will fill it later on...
            }

            int sendLength;

            switch (target)
            {
            case RequestTarget.Irc:
                sendLength = sendIrc(sw);
                break;

            default:
            case RequestTarget.Osu:
                sendLength = sendOsu(sw);
                break;
            }

            if (Cache)
            {
                //fill the byte-cache.
                byte[] cache = new byte[sendLength];
                if (sendLength > 0)
                {
                    sw.Seek(0, SeekOrigin.Begin);
                    sw.BaseStream.Read(cache, 0, sendLength);
                }

                byteCache[(int)target] = cache;
            }

            return(sendLength);
        }
Esempio n. 19
0
        int DefaultAutoRequestTime  = 15000; //1 minutes
        // ===============================
        private void ThreadWorker()
        {
            try
            {
                //init vai ham truoc khi khoi tao
                BUSCity.requestCities();
                //cap nhat danh sach

                requestTarget  = 0;
                requestTarget |= RequestTarget.Towns;
                requestTarget |= RequestTarget.Building;
                requestTarget |= RequestTarget.Troops;

                requestTarget |= RequestTarget.Diplomacy;
                requestTarget |= RequestTarget.Research;
                requestTarget |= RequestTarget.Event;

                makeRequest();
                //dang starting nen ko cho client tiep can
                //xem nhu server down

                bLoadingData = false;
                //bStopAutoRequest = false;
                requestTarget = 0;
                while (!bStopAutoRequest)
                {
                    //DEBUG("starting request...");
                    //Request requestTarget
                    //BUS.RequestSomething();
                    //Update requestTarget
                    //requestTarget = RequestTarget.Towns;

                    makeRequest();

                    requestTarget = (RequestTarget)GetNextRequest();
                    //DEBUG("done request...");

                    if (bStopAutoRequest)
                    {
                        return;
                    }
                    Thread.Sleep(RequestTime); //Sua thanh wait de
                }
            }
            catch (Exception ex)
            {
                Debug.ErrorLogging(ex.Message);
            }
        }
Esempio n. 20
0
        //Instead of parsing, this method 'Gets' because asterisk form is constant.
        public RequestTarget GetRequestTargetArteriskForm()
        {
            RequestTarget target = new RequestTarget();

            target.Form                     = RequestTarget.RequestTargetForm.Asterisk;
            target.Host                     =
                target.Path                 =
                    target.Query            =
                        target.Scheme       =
                            target.UserInfo =
                                string.Empty;

            target.Port = -1;

            return(target);
        }
        public void testFindUrl_MultiSiteMaxHours()
        {
            // test that url is switched when number of hours since last switch exceeds threshold
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "printxml", "false" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },

                { "multiSite", "true" },
                { "printMultiSiteDebug", "true" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "3" },
                { "maxHoursWithoutSwitch", "4" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            Assert.AreEqual(cmg.getMultiSiteThreshold(), 3);

            RequestTarget rt1 = cmg.findUrl();

            Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt1.getUrl());
            cmg.reportResult(rt1, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200);
            RequestTarget rt2 = cmg.findUrl();

            Assert.AreEqual(rt1.getUrl(), rt2.getUrl());
            cmg.reportResult(rt2, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200);

            // set last switch time to 6 hours earlier
            DateTime gc = new DateTime(cmg.getLastSiteSwitchTime() * 10000);

            gc = gc.Add(new System.TimeSpan(-6, 0, 0));
            cmg.setLastSiteSwitchTime((gc.Ticks / 10000));

            RequestTarget rt3 = cmg.findUrl();

            Assert.IsFalse(rt3.getUrl().Equals(rt1.getUrl()));
        }
        public void testFindUrl_MultiSite2()
        {
            // test that url is switched when errors reach threshold
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "printxml", "false" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },

                { "multiSite", "true" },
                { "printMultiSiteDebug", "false" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "3" },
                { "maxHoursWithoutSwitch", "48" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            Assert.AreEqual(cmg.getMultiSiteThreshold(), 3);

            RequestTarget rt1 = cmg.findUrl();

            Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt1.getUrl());
            cmg.reportResult(rt1, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0);
            RequestTarget rt2 = cmg.findUrl();

            Assert.AreEqual(rt1.getUrl(), rt2.getUrl());
            cmg.reportResult(rt2, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0);
            RequestTarget rt3 = cmg.findUrl();

            Assert.AreEqual(rt1.getUrl(), rt3.getUrl());
            cmg.reportResult(rt3, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0);
            Assert.AreEqual(cmg.getErrorCount(), 3);

            RequestTarget rt4 = cmg.findUrl();

            Assert.IsFalse(rt4.getUrl().Equals(rt1.getUrl()));
        }
Esempio n. 23
0
    public virtual void Execute(BattleUnit source, AbilityData abilityData, RequestTarget requestTarget)
    {
        this.abilityData   = abilityData;
        this.requestTarget = requestTarget;

        var targetCollection = TargetSearcher.instance.GetActionTargets(source, abilityData, requestTarget, actionTarget);

        BattleLog.Log("【D2Action】{0}, source:{1},target:{2}", GetType().Name, source.GetName(), requestTarget.ToString());
        // 根据类型区分,单位和范围
        if (requestTarget.targetType == AbilityRequestTargetType.UNIT)
        {
            ExecuteByUnit(source, targetCollection.units);
        }
        else
        {
            ExecuteByPoint(source, targetCollection.points);
        }
    }
Esempio n. 24
0
        public WebServer(Guid id, RequestTarget type, string title, ref Filesystem fs, int port, string hostname)
        {
            this.instance = id;
            this.fs       = fs;
            this.title    = title;
            this.type     = type;
            this.hostname = hostname;
            this.passKey  = Guid.NewGuid();

            listener = new HttpListener
            {
                IgnoreWriteExceptions = true,
                AuthenticationSchemes = AuthenticationSchemes.Basic | AuthenticationSchemes.Anonymous
            };

            listener.Prefixes.Add(string.Format("http://*:{0}/",
                                                type == RequestTarget.Site ? port : (port + 1)));
        }
Esempio n. 25
0
        public void ParseAbsoluteUri_ValidFullUriAbsentPort_ValidOutputRequestTarget()
        {
            RequestTarget target = new RequestTarget();

            target.Form = RequestTarget.RequestTargetForm.Absolute;

            target.Host     = "w.host.c";
            target.Path     = "/";
            target.Port     = -1;
            target.Query    = "p=1&p=2";
            target.Scheme   = "scheme";
            target.UserInfo = "user.info";

            string uriString           = "scheme://[email protected]/?p=1&p=2";
            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(target, result);
        }
Esempio n. 26
0
        public RequestTarget BuildFullUriAndRequestTarget(string scheme, string userInfo, string host, int port, string path, string query, out string uriString)
        {
            RequestTarget target = new RequestTarget();

            target.Form = RequestTarget.RequestTargetForm.Absolute;

            target.Host     = host;
            target.Path     = path;
            target.Port     = port;
            target.Query    = query;
            target.Scheme   = scheme;
            target.UserInfo = userInfo;

            string uriFormatterString = string.Format("{0}://{1}@{2}:{3}{4}?{5}", scheme, userInfo, host, port, path, query);

            uriString = uriFormatterString;

            return(target);
        }
Esempio n. 27
0
        public RequestTarget BuildAbsentAuthorityUriAndRequestTarget(string scheme, string path, string query, out string uriString)
        {
            RequestTarget target = new RequestTarget();

            target.Form = RequestTarget.RequestTargetForm.Absolute;

            target.Host     = string.Empty;
            target.Path     = path;
            target.Port     = -1;
            target.Query    = query;
            target.Scheme   = scheme;
            target.UserInfo = string.Empty;

            string uriFormatterString = string.Format("{0}:{1}?{2}", scheme, path, query);

            uriString = uriFormatterString;

            return(target);
        }
Esempio n. 28
0
        public void ParseAbsoluteUri_ValidFullUriAbsentPort_AllComponents1CharLength_ValidOutputRequestTarget()
        {
            RequestTarget target = new RequestTarget();

            target.Form = RequestTarget.RequestTargetForm.Absolute;

            target.Host     = "w";
            target.Path     = "/";
            target.Port     = -1;
            target.Query    = "p";
            target.Scheme   = "s";
            target.UserInfo = "u";

            string uriString           = "s://u@w/?p";
            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(target, result);
        }
Esempio n. 29
0
        public void ParseAbsoluteUri_ValidFullUriAbsentUserInfoAndPortAndQuery_Components1CharLength_ValidOutputRequestTarget()
        {
            RequestTarget target = new RequestTarget();

            target.Form = RequestTarget.RequestTargetForm.Absolute;

            target.Host     = "h";
            target.Path     = "/";
            target.Port     = -1;
            target.Query    = string.Empty;
            target.Scheme   = "h";
            target.UserInfo = string.Empty;

            string uriString           = "h://h/";
            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(target, result);
        }
Esempio n. 30
0
        public void ParseAbsoluteUri_ValidFullUriAbsentUserInfoAndPort_ValidOutputRequestTarget()
        {
            RequestTarget target = new RequestTarget();

            target.Form = RequestTarget.RequestTargetForm.Absolute;

            target.Host     = "host";
            target.Path     = "/path";
            target.Port     = -1;
            target.Query    = "query=value";
            target.Scheme   = "https";
            target.UserInfo = string.Empty;

            string uriString           = "https://host/path?query=value";
            RequestTargetParser parser = new RequestTargetParser();
            RequestTarget       result = parser.ParseAbsoluteUri(uriString);

            Assert.AreEqual(target, result);
        }
        public override bool TestOptionSet()
        {
            httpVerb = arguments.GetArgumentValue(Arguments.HTTP_VERB_ARG);

            if (!httpMethodTester.IsMatch(httpVerb))
                return false;

            url = arguments.GetArgumentValue(Arguments.URL_ARG);

            if (!urlTster.IsMatch(url))
                return false;

            type = DetermineRequestType(url);

            if (type == RequestTarget.ServiceManagement)
            {
                String thumbprint = arguments.GetArgumentValue(Arguments.THUMBPRINT_ARG);

                X509Store store = new X509Store(StoreName.My);

                try
                {
                    store.Open(OpenFlags.ReadWrite);

                    X509Certificate2Collection collection = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint.ToUpper(), false);

                    if (collection.Count < 1)
                        throw new CertificateNotFoundException(thumbprint);

                    managementCert = collection[0];
                }
                finally
                {
                    store.Close();
                }

            }
            else if (type == RequestTarget.Storage)
            {
                storageKey = arguments.GetArgumentValue<InvalidAccessKeyException>(Arguments.KEY_ARGS);

                isTableStorage = false;

                Uri uri = new Uri(url);
                storageAccount = uri.Host.Split('.')[0];

                storageKey = storageKey.Trim();
                storageAccount.Trim();
            }

            String header = arguments.GetArgumentValueWithoutAssertion(Arguments.HEADER_ARG);

            headers = new Dictionary<string, string>();

            if (!string.IsNullOrEmpty(header))
            {
                MatchCollection matches = HeaderSpliter.Matches(header);

                foreach (Match item in matches)
                {
                    string key = item.Groups[1].Value;
                    string value = item.Groups[2].Value;

                    headers.Add(key, value);
                }
            }

            String b = arguments.GetArgumentValueWithoutAssertion(Arguments.BODY_ARG);

            if (!String.IsNullOrEmpty(b))
            {
                body = Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(Convert.FromBase64String(b)));
            }

            String fileBody = arguments.GetArgumentValueWithoutAssertion(Arguments.FILE_BODY_ARG);

            if (!String.IsNullOrEmpty(fileBody))
            {

                if (type == RequestTarget.ServiceManagement) // this means we made a ServiceManagmenet request and specified a file as the body, not a string.
                {

                    String requestBody = readFileToString(fileBody); // this is the base 64 encoded string from the java code

                    String requestBodyXml = Encoding.UTF8.GetString(Convert.FromBase64String(requestBody)); // this is the actual xml

                    body = Encoding.UTF8.GetBytes(requestBodyXml); // this byte array will eventually be written in the response stream. just as before.
                }
                else
                {
                    using (FileStream fs = new FileStream(fileBody, FileMode.Open))
                    {
                        body = new byte[fs.Length];
                        fs.Read(body, 0, body.Length);
                    }
                }

                File.Delete(fileBody);
            }

            return true;
        }