Plugin para teste de velocidade

Publicado por andersonscinfo, Enero 03, 2015, 10:07:23 PM

Tema anterior - Siguiente tema

andersonscinfo

Boa noite, estou tentando fazer meu primeiro plugin de velocidade, mas ainda não sei se ta funcionando, gostaria que alguem desse uma olhada, segue abaixo.


#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o rjnet.com.br.so rjnet.com.br.cpp
// Regex
// http.*\.rjnet\.com\.br.*(\.swf|\.jpg|\.bmp|\.txt|\.jpeg)



string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       

               
  if ( (url.find("rjnet.com.br") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "rjnet.com.br";       
      } else {
         r.match = false;
      }
   }
   else
   {
      r.match = false;
   }
   return r;
}



Att.
Anderson Junior

firecold

Cita de: andersonscinfo en Enero 03, 2015, 10:07:23 PM
Boa noite, estou tentando fazer meu primeiro plugin de velocidade, mas ainda não sei se ta funcionando, gostaria que alguem desse uma olhada, segue abaixo.


#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o rjnet.com.br.so rjnet.com.br.cpp
// Regex
// http.*\.rjnet\.com\.br.*(\.swf|\.jpg|\.bmp|\.txt|\.jpeg)



string get_filename(string url) {
               vector<string> resultado;
       string retorna = "";
       stringexplode(url, "/", &resultado);
       retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
       return retorna;
}

extern "C" resposta getmatch(const string url) {
       resposta r;        

               
 if ( (url.find("rjnet.com.br") != string::npos)
    ) {
     r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "rjnet.com.br";      
     } else {
        r.match = false;
     }
  }
  else
  {
     r.match = false;
  }
  return r;
}


Att.
Anderson Junior

Amigo tienes las urls de dicho sitio, ya que dependiendo como se entrega el contenido el sitio, asi tambien cambia la forma de crear el plugin, Saludos

andersonscinfo

Ola, ainda não tenho facilidade em fazer os plugins, conheço o raptorcache a 5 dias, se entendi bem você disse que pode mudar a forma de fazer o plugin dependendo da url, segue as urls que acho que devem ser cacheadas.

onde fica o medidor de velocidade.
http://www.rjnet.com.br/3velocimetro.php

olhando para os fontes tambem achei esse endereço
http://www.rjnet.com.br/speedtest.swf?v=2.2

se puder dar uma olhada fico agradecido.

Att.
Anderson Junior

francisco.romero87

pruebalo y nos avisas

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o rjnet.com.br.so rjnet.com.br.cpp
// Regex
// http.*\.rjnet\.com\.br.*(\.jpeg|\.png)

string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       
               
  if ( (url.find("rjnet.com.br/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "rjnet.com.br";       
      } else {
         r.match = false;
      }
   }
   else
   {
      r.match = false;
   }
   return r;
}

andersonscinfo

Ola, obrigado pelo exemplo, mas ainda não funcionou, percebi que o arquivo usado pelo velocimetro é um arquivo com a extenção jpg exemplo:

http://www.rjnet.com.br/speedtest/random350x350.jpg?x=1420591701100-2

alterei o regex para:

http.*\.rjnet\.com\.br.*(\.jpg\?.*|\.png)

só que mesmo assim não funcionou, ainda não encontrei onde estou errando.

Att.
Anderson Junior

firecold

Cita de: andersonscinfo en Enero 06, 2015, 07:53:53 PM
Ola, obrigado pelo exemplo, mas ainda não funcionou, percebi que o arquivo usado pelo velocimetro é um arquivo com a extenção jpg exemplo:

http://www.rjnet.com.br/speedtest/random350x350.jpg?x=1420591701100-2

alterei o regex para:

http.*\.rjnet\.com\.br.*(\.jpg\?.*|\.png)

só que mesmo assim não funcionou, ainda não encontrei onde estou errando.

Att.
Anderson Junior

Para evitar tanta cosa puedes hacerlo con este:

string get_filename(string url) {
        vector<string> resultado;
        if (url.find("?") != string::npos) {
            stringexplode(url, "?", &resultado);
            stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
            return resultado.at(resultado.size()-1);           
        } else {
            stringexplode(url, "/", &resultado);
            return resultado.at(resultado.size()-1);
        }
}


Asi evitamos los de los signos de interrogacion, Saludos

andersonscinfo

Ola, obrigado pela dica, fiz a alteração no plugin, mas parece não ter surtido efeito, olhando para o header da pagina parece que o squid continua fazendo o trabalho que era pra ser do raptor, o squid mesmo com o regex dizendo para não cachear ele continua cacheando, olhe a imagem por favor.



Att.
Anderson Junior

Calamardo

Yo a igual que tu ando loco realizando pluings para engañar al cliente y que salga del cache pero a lo que he leido es imposible de hacer ya  :(

brunosaraiva

Bom dia a todos,

Aproveitando os códigos acima, consegui fazer MISS do arquivos deste site de testes: speedtest.copel.net, mas não esta dando HIT.

Acredito que seja a REGEX que esteja com algum erro, gostaria da ajuda dos mais experientes, para dizer onde estou errando e como devo proceder!


#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include "../utils.cpp"

using namespace std;

// use this line to compile
// g++ -I. -fPIC -shared -g -o speedtest.copel.net.so speedtest.copel.net.cpp
// Regex
// http.*\.speedtest.copel\.net.*(\.jpeg|\.png|\.txt)

string get_filename(string url) {
                vector<string> resultado;
        string retorna = "";
        stringexplode(url, "/", &resultado);
        retorna = resultado.at(resultado.size()-2) + "-"+resultado.at(resultado.size()-1);
        return retorna;
}

extern "C" resposta getmatch(const string url) {
        resposta r;       
               
  if ( (url.find("speedtest.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest.copel.net";       
      } else {
         r.match = false;
      }
   }
   else  if ( (url.find("speedtest2.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest2.copel.net";       
      } else {
         r.match = false;
      }
   }else if ( (url.find("speedtest7.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest7.copel.net";       
      } else {
         r.match = false;
      }
   }else if ( (url.find("speedtest8.copel.net/speedtest/") != string::npos)
     ) {
      r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;
         r.domain = "speedtest8.copel.net";       
      } else {
         r.match = false;
      }
   }else{
      r.match = false;
   }
   return r;
}


OBS.: O .txt, é para testar a possibilidade de diminuir a latencia, mas acredito não fazer diferença usando deste modo.

Att