Menú principal
Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Menú Mostrar Mensajes

Mensajes - firecold

#3381
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 21, 2012, 09:50:26 AM
Cita de: dgonzaleznet en Noviembre 21, 2012, 01:40:02 AM
Firecold que debes tener en cuenta a la hora de hacer un plugin? mas especificamente en los regex veo que en algunos regex anteriores tenian la extension.js y ahora solo en uno creo que aparece en el resto no estan... pero veo que los plugs funcan bien

Quiero hacer algunos plugs de paginas locales y no me resultan me sale todo regado por todas partes cuando ya estan en produccion toca retirarlos de nuevo...

Gracias por tu ayuda

Gracias Amigo dgonzaleznet, fijate que la extension .js al principio funciono bien pero no en todos los juegos, despues de 3 semanas de prueba resulta que los .js los actualizaron osea tenian el mismo nombre pero no el mismo contenido, y no dejaban correr el juego como deberia, entonces los omiti y agregue el .mp3, ya que en muchos de los juegos de facebook usan mucho el mp3 y con lo de tu problema cuanto pasa eso, a mi me paso al principio con imageshack, aunque imageshack todavia tiene problemas, puedes probar de esta manera Ejemplo:

if ( (url.find(".dungeonbusters.com/") != string::npos) and ((url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos))
        ) {


Si te das cuenta desde and hay dos ( y al terminar de especificar las extensiones tambien, o lo que puedes hacer es publicar el codigo para verlo y revisar que es lo que esta pasando ya sabes que dos cabezas piensan mejor que una, Saludos 
#3382
Discución General / Re:liberar velocidad paginas web.
Noviembre 20, 2012, 05:17:25 PM
Cita de: ingjaab en Noviembre 20, 2012, 05:01:38 PM
si fuera en 2.7 mcomo seria se agradece la ayuda

no hay ninguna diferencia las reglas de las acl's y delay pools no cambiaron en nada de squid2.7 a squid3.x, asi que no habria problema en que la uses de squid2.7 para arriba, es mas si usaras squid3.3 seria igual, Saludos
#3383
Discución General / Re:liberar velocidad paginas web.
Noviembre 20, 2012, 12:47:44 PM
Cita de: roxdng en Noviembre 20, 2012, 12:38:48 PM
disculpa, pero haz leido algo? esta lleno de manuales aca mismo.

-1

Amigo hay que comprarse un Dorival, no se ofusque, por cosas que no valen la pena, usted ayude si puede, si no, pues a veces hay que quedarse callado, por lo demas que tenga un Buen Dia.
#3384
Discución General / Re:liberar velocidad paginas web.
Noviembre 20, 2012, 12:43:48 PM
Cita de: HarukiWifi en Noviembre 20, 2012, 08:21:28 AM
buen dia amigos alguien sabe alguna conf. para poder ver las webs mas rapido ??? y si me consumiria mas memoria gracias de antemano

Yo lo ago de esta manera:

acl accesototal src "/etc/squid3/accesototal.txt"  # mi maquina
acl mired src "/etc/squid3/mired.txt"  # clientes
acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados.txt"
acl magic_words1 url_regex -i 192.168.1 # segmento de red
acl magic_words2 url_regex -i .exe .mp3 .zip .rar .avi .mpeg .mpe .mpg .wav .mov .3gp .mov .flv .mp2 .mp5 .aac .wma .ogg .mka .asf .iff .amv   # archivos a limitar

# -----------------------------------------------------------------------------
# DELAY POOL PARAMETERS
# -----------------------------------------------------------------------------
delay_pools 3
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow accesototal   # a mi maquina sin limites
# -----------------------------------------------------------------------------
delay_class 2 2
#-1/-1 significa que no hay limites.
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow magic_words1   # al segmento de red sin limites lo que va a hacer que la navegacion no tenga limitaciones
# -----------------------------------------------------------------------------
delay_class 3 2
delay_parameters 3 55000/55000 55000/55000
delay_access 3 allow magic_words2   # y los archivos que quieres limitar la velocidad de descarga

De este modo lo hago yo me imagino que hay mas formas de hacerlo, Saludos
#3385
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 20, 2012, 12:32:54 PM
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o zgncdn.com.so zgncdn.com.cpp
// regex
// http.*\.zgncdn\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

       if ( (url.find(".zgncdn.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_zgncdn";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o zynga.com.so zynga.com.cpp
// regex
// http.*\.zynga\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".zynga.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_zynga";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o dungeonbusters.com.so dungeonbusters.com.cpp
// regex
// http.*\.dungeonbusters\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".dungeonbusters.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_dungeonbusters";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}
#3386
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 20, 2012, 12:31:10 PM
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o llnwd.net.so llnwd.net.cpp
// regex
// http.*\.llnwd\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

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


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o tetrisfb.com.so tetrisfb.com.cpp
// regex
// http.*\.tetrisfb\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

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


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o cloudfront.net.so cloudfront.net.cpp
// regex
// http.*\.cloudfront\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
     }
}

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

if ( (url.find(".cloudfront.net") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {

      r.file = get_filename(url);
     if (!r.file.empty()) {
        r.match = true;
        r.domain = "GAMESF_cloudfront";
     } else {
        r.match = false;
     }
  } else {
     r.match = false;
  }
  return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o akamaihd.net.so akamaihd.net.cpp
// regex
// http.*\.akamaihd\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".akamaihd.net/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_akamaihd";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}
#3387
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 20, 2012, 12:29:01 PM
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o vostucdn.com.so vostucdn.com.cpp
// regex
// http.*\.vostucdn\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".vostucdn.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_vostucdn";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o geewa.net.so geewa.net.cpp
// regex
// http.*\.geewa\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

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


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o appspot.com.so appspot.com.cpp
// regex
// http.*\.appspot\.com.*(\.jpg|\.png|\.gif|\.swf|\.js|\.mp3)

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);
               }
}

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

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


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o socialpointgames.com.so socialpointgames.com.cpp
// regex
// http.*\.socialpointgames\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".socialpointgames.com") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_socialpointgames";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}
#3388
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 20, 2012, 12:27:09 PM
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o popcap.com.so popcap.com.cpp
// regex
// http.*\.popcap\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".popcap.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_popcap";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o amazonaws.com.so amazonaws.com.cpp
// regex
// http.*\.amazonaws\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".amazonaws.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_amazonaws";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o telaxo.com.so telaxo.com.cpp
// regex
// http.*\.telaxo\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".telaxo.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_telaxo";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o wooga.com.so wooga.com.cpp
// regex
// http.*\.wooga\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".wooga.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_wooga";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}
#3389
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 20, 2012, 12:19:11 PM
Buenos Dias a todos publicare todos los plugins que tengo de facebook de cuatro en cuatro:

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

// use this line to compile
// g++ -I. -fPIC -shared -g -o edgecastcdn.net.so edgecastcdn.net.cpp
// regex
// http.*\.edgecastcdn\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".edgecastcdn.net") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos))
       {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_edgecastcdn";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o miniclip.com.so miniclip.com.cpp
// regex
// http.*\.miniclip\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".miniclip.com") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_miniclip";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o kixeye.com.so kixeye.com.cpp
// regex
// http.*\.kixeye\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

       if ( (url.find(".kixeye.com") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_kixeye";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o nordeus.com.so nordeus.com.cpp
// regex
// http.*\.nordeus\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

       if ( (url.find(".nordeus.com") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".mp3") != string::npos)
) {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_nordeus";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}
#3390
Plugins para ThunderCache 3.1.2 / Re:Plugin Imageshack
Noviembre 19, 2012, 10:59:11 AM
Cita de: roxdng en Noviembre 18, 2012, 11:24:45 PM
Pero esto no lo debería haber Squid?

el punto no es si squid lo cachea o no, si no volver este proyecto de thundercache algo independiente eso quiere decir que deje de usar squid, es cierto que no vamos hacer un plugin por cada pagina pero por lo meno empecemos con las paginas mas populares, y despues pensar en un plugin dinamico, pero hasta ese momento seguire tratando de colaborar para que este proyecto siga adelante, no para beneficio de algunos, si no de todos, Saludos
#3391
Cita de: monfi en Noviembre 18, 2012, 11:46:04 AM
Por favor si pueden dar un link, donde puedo encontraro los plugins fuentes .cpp, con el proposito de evaluarlos y mostrar mis resultados. o cambios que relice

http://www.brazilfw.com.br/downloads/addons/bfw3.x/sources/bfwcache/  --> cache modificado por BRAZIL firewall

Por el momento les dejo un link : intersante de plugins .cpp y su desarrolo para BF cache, el mismo cache pero maquillado.

http://www.brazilfw.com.br/forum/viewtopic.php?f=12&t=83337

Nota : no quiero las muestras que hay en /etc/thunder/pluginmaker/plugins

Desde ya gracias...!

Amigo lo que puedes hacer es un nuevo tema con lo que necesitas, yo con gusto te ayudare con lo que necesitas, en el apartado de plugins de thunder hay varios codigos fuentes de plugins que puedes revisar, y puedes pedir ayuda a joemg6 para los demas codigos cpp, asi tanto usted como nosotros nos beneficiamos, Saludos
#3392
Plugins para ThunderCache 3.1.2 / Plugin Imageshack
Noviembre 18, 2012, 09:52:45 PM
Buenos noches a todos los Amigos del foro aqui presentando este nuevo plugin aun no terminado, hace cache de las imagenes de imageshack pero cuanto uno quiere ver una foto ya cacheada en ves de visualizarla la descarga automaticamente, ese en realidad es el problema por lo demas funciona muy bien, pido ayuda para ver el codigo me imagina con toda seguridad que algo estoy haciendo mal:

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

// use this line to compile
// g++ -I. -fPIC -shared -g -o imageshack.us.so imageshack.us.cpp
// regex
// http.*imageshack\.us.*(\.jpg|\.png)


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);
      }
}

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

if ( (url.find("imageshack.us") != string::npos) and ((url.find(".jpg") != string::npos) or (url.find(".png") != string::npos))
   ) {
     
       r.file = get_filename(url);
      if (!r.file.empty()) {
         r.match = true;         
         r.domain = "imageshack";
      } else {
         r.match = false;
      }
   } else {
      r.match = false;
   }
   return r;
}


Gracias de antemano por su ayuda, Gracias
#3393
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 18, 2012, 06:01:20 PM


Con las correcciones que acabo de hacer, esto fue lo que ahorro en 30 MINUTOS de pruebas, para ver si los plugins funcionan y como dicen los hechos valen mas que las palabras, Saludos
#3394
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 18, 2012, 01:47:32 PM
Gracias Amigo dgonzaleznet, lo que paso es que adicione el mp3 y se me olvido, gracias por fijarte, Saludos
#3395
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 17, 2012, 08:02:30 PM
Bueno yo creo que apartir de ahora pueden hacer sus peticiones de los juegos de facebook que no tengan plugin para poder hacerlos y como siempre estare publicando los plugins que ustedes quieran, no solo para compartir si no que tambien si hay un error mejorarlo y hacer nuestro thunder mas poderoso y eficiente, Saludos
#3396
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 17, 2012, 07:21:13 PM
Buenas Tardes a todos los Amigos del foro aqui aportando 6 nuevos plugins de juegos de facebook los tres probados por 2 semanas, sin ningun problemas hasta el momento, reportar algun problema si lo hubiera:

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

// use this line to compile
// g++ -I. -fPIC -shared -g -o llnwd.net.so llnwd.net.cpp
// regex
// http.*\.llnwd\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".llnwd.net/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".js") != string::npos) or (url.find(".mp3") != string::npos) )
        {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_llnwd";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o miniclip.com.so miniclip.com.cpp
// regex
// http.*\.miniclip\.com.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".miniclip.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".js") != string::npos) or (url.find(".mp3") != string::npos))
        {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_miniclip";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o nordeus.com.so nordeus.com.cpp
// regex
// http.*\.nordeus\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

       if ( (url.find(".nordeus.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".js") != string::npos) or (url.find(".mp3") != string::npos) )
        {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_nordeus";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o tetrisfb.com.so tetrisfb.com.cpp
// regex
// http.*\.tetrisfb\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

       if ( (url.find(".tetrisfb.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".js") != string::npos) or (url.find(".mp3") != string::npos) )
        {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_tetrisfb";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o kixeye.com.so kixeye.com.cpp
// regex
// http.*\.kixeye\.com.*(\.swf|\.mp3|\.png|\.jpg|\.gif)

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);
               }
}

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

       if ( (url.find(".kixeye.com/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".js") != string::npos) or (url.find(".mp3") != string::npos) )
        {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_kixeye";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


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

// use this line to compile
// g++ -I. -fPIC -shared -g -o edgecastcdn.net.so edgecastcdn.net.cpp
// regex
// http.*\.edgecastcdn\.net.*(\.jpg|\.png|\.gif|\.swf|\.mp3)

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);
               }
}

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

       if ( (url.find(".edgecastcdn.net/") != string::npos) and (url.find(".jpg") != string::npos) or (url.find(".png") != string::npos) or (url.find(".gif") != string::npos) or (url.find(".swf") != string::npos) or (url.find(".js") != string::npos) or (url.find(".mp3") != string::npos) )
        {
               
           r.file = get_filename(url);
               if (!r.file.empty()) {
                       r.match = true;
                       r.domain = "GAMESF_edgecastcdn";
               } else {
                       r.match = false;
               }
       } else {
               r.match = false;
       }
       return r;
}


Espero les sirva, mañana publicare las mejoras de los plugins anteriores, ya que algunos dieron problemas despues de un mes de estarlos usando, Saludos  :-[  :-*

Nota: esta areglado, el ) que le faltaba y quite una extension .js ya que da problemas en algunos juegos no de inmediato pero si no con el tiempo, ya que los que actualizan el juego no cambian nombres si no utilizan el mismo, obviamente que actualizado, pero funcionan seguire en las pruebas y si surge alguna otra correcion estare posteando, Saludos
#3397
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 16, 2012, 06:09:51 PM
Cita de: dgonzaleznet en Noviembre 16, 2012, 05:21:54 PM
En cristiano eso quiere decir que es como las sesiones de youtube personales que son https y que solo harían cache solo para la sesión del cliente en esa pc en particular... en caso de que se hiciera un plug no es asi?

Si tienes una cuenta de gmail puedes quitar el https de youtube, es facil solo vas a tu gmail en la parte superior izquierda hay un engranaje, de despeja una pestaña y das click en configuracion y en general buscas conexion del navegador y lo dejan en No usar siempre https y cuando entren a youtube, entrara en http o en cristiano por el puerto 80 y por ende lo captara thunder, Espero les Sirva Saludos
#3398
Plugins de juegos / Re:Plugin para juegos de facebook
Noviembre 16, 2012, 03:37:41 PM
Cita de: tonyvzla en Noviembre 10, 2012, 01:22:10 PM
Alguien le ha hecho pruebas a los juegos de simsocial?

Amigo tonyvzla todos los juegos de los Sims los maneja cloudfront.net que desgraciadamente usa https y por eso usan el puerto 443 y no el 80 y el thunder ni los percibe, Ejemplo:

https://d2x3w3mc51yw0w.cloudfront.net/code/console-client-5.0.0.2-JETSET_SECRETS_HOTFIX-2/swf/RPCProxy.swf
https://d2syub29v5lge2.cloudfront.net/bankui/res/2.0.0.20/images/layout_continue_button_grey.png
https://d2x3w3mc51yw0w.cloudfront.net/console/assets_library/slots_71200-71299/slot_71259_SCS128X_H.gif


nada mas cachea algunas cosas que no deja en https, lastimosamente tampoco squid lo cachea, que lastima pero que se puede hacer, Saludos
#3399
Fuentes Fotos Muro pequeñas Perfil
Server
profile.ak.fbcdn.net
Fuentes
http://profile.ak.fbcdn.net/hprofile-ak-snc6/275022_100001708367896_1298900006_q.jpg
http://profile.ak.fbcdn.net/hprofile-ak-snc6/275691_100002434691458_331885746_q.jpg
http://profile.ak.fbcdn.net/hprofile-ak-ash4/203539_43891091288_672353104_q.jpg
http://profile.ak.fbcdn.net/hprofile-ak-snc6/187474_100001700994710_1244764218_q.jpg


Fuentes Fotos Muro Grandes Muro
Server
sphotos-h.ak.fbcdn.net
Fuentes
http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash4/p370x247/297061_102467589903748_1720540381_n.jpg
http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc7/s480x480/402409_498194700213708_1830748802_n.jpg
http://sphotos-h.ak.fbcdn.net/hphotos-ak-ash3/s480x480/575258_388770171199196_1457028279_n.jpg
http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/s480x480/198356_468833559826470_1687747775_n.jpg
http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/c0.0.403.403/p403x403/532138_371548259597264_1702622300_n.jpg


Fuentes Fotos Muro Medianas
Server
photos-f.ak.fbcdn.net
Fuentes
http://photos-f.ak.fbcdn.net/hphotos-ak-snc6/230181_366247740133046_332954292_a.jpg
http://photos-c.ak.fbcdn.net/hphotos-ak-snc6/223001_504147096291612_341196013_a.jpg
http://photos-e.ak.fbcdn.net/hphotos-ak-ash3/581533_503583306347991_801903278_a.jpg
http://photos-c.ak.fbcdn.net/hphotos-ak-prn1/532342_365184796906007_936005102_a.jpg


Fuentes Fotos Muro pequeñas Png y Gif
Server
static.ak.fbcdn.net
Fuentes
http://static.ak.fbcdn.net/rsrc.php/v2/yS/x/lkWWfknPttv.png
http://static.ak.fbcdn.net/rsrc.php/v2/y2/x/iYxPaZPX35F.png
http://static.ak.fbcdn.net/rsrc.php/v2/yz/x/thq6v5di-N9.png
http://static.ak.fbcdn.net/rsrc.php/v2/yl/x/pgEFhPxsWZX.gif
http://static.ak.fbcdn.net/rsrc.php/v2/yB/x/2HyXe3NzW7v.png


Tambien pequeñas pero Png
Server
platform.ak.fbcdn.net
Fuentes
http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=164285363593426&v=1&size=z&cksum=46cc6eff72c025d79eaeba1f4f98dc7d&src=https%3A%2F%2Fempire-s.assets.zgncdn.com%2Fassets%2Fhashed%2F5e5acac3b55e621e7b5b2fd996b9b3d8.png
http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=164285363593426&v=1&size=z&cksum=fe11a2555fcf92ce8da638aa3f5ebdbd&src=https%3A%2F%2Fempire-s.assets.zgncdn.com%2Fassets%2Fhashed%2F29b81c380104894d9c085ce4ec94f841.png
http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=164285363593426&v=1&size=z&cksum=827132ff9d79f5e1f1d89352027e098b&src=http%3A%2F%2Fempire-zc.static.zgncdn.com%2Fassets%2Fhashed%2F10dceca1d45bac78fa01a0f7d5a11cd0.png
http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=164285363593426&v=1&size=z&cksum=2790296139fff86c4f940bc2b97fdb31&src=http%3A%2F%2Fempire-zc.static.zgncdn.com%2Fassets%2Fhashed%2Fbfdd91700e7d03fb6150435c46e8ea3b.png


Fuentes de Fotos Externas Jpg y Png
Server
external.ak.fbcdn.net
Fuentes
http://external.ak.fbcdn.net/safe_image.php?d=AQAW9wbhpHSNceFl&url=http%3A%2F%2Fvthumb.ak.fbcdn.net%2Fhvthumb-ak-snc6%2F245184_4879855362383_4879846522162_24193_2358_t.jpg&jq=100
http://external.ak.fbcdn.net/safe_image.php?d=AQB_wfjbjZ6VSPxX&w=90&h=90&url=http%3A%2F%2Fask.fm%2Fimages%2F75x75.gif&cfs=1
http://external.ak.fbcdn.net/safe_image.php?d=AQAzhl1mmtw9hDvW&url=http%3A%2F%2Fi3.ytimg.com%2Fvi%2FjjHc0s8CruQ%2Fmqdefault.jpg&jq=100


Espero Sirva, Perdon a todos mis amigos del foro pero no habia podido estar presente en este foro por razones de trabajo pero ya regrese con muchas ganas de seguir ayudando y que me ayuden claro esta, nadie es perfecto, y seguire contribuyendo para los juegos de facebook, Saludos  :-[  :-*
#3400
Squid 2.7 & Squid 3.x / Re:optimizacion squid
Noviembre 04, 2012, 05:15:32 PM
Cita de: roxdng en Noviembre 04, 2012, 03:11:45 AM
hace poco me tope con el siguiente hilo optimizacion sistema

donde encontré cosas interesantes para agilizar nuestro sistema, por ende también squid.

recalco lo interesante

Optimizaciones y acceso a discos

Después de muchas investigaciones se descubrió que el acceso al cache cuando es utilizado o reiserfs llega a ser 20% más rapido que otros filesystem, por ejemplo ext3, ext2.

Se aconseja a todos que cuando efectúen la instalación del SO dejen una partición solamente para el cache, eso agiliza la lectura de los datos .

--------------------------------------

Otro consejos para montar el filesystem "/cache" añadir notail, noatime (eso agiliza mucho a la hora de lectura y escritura una vez que el squid tenga su propio tiempo, usando estas funciones usted evita que el sistema al guardar un archivo lo haga 2 veces).

Entre al directorio "/etc/fstab" y agregue:

/dev/sda5 /cache reiserfs defaults,notail,noatime 1 2
-----------------------------------------------------

Optimización del SO
Vamos a ir mostrando como optimizar el sistema para que el mismo acepte que varias conexiones sean realizadas en varios archivos utilizando los file descriptors. Muchas personas que instalan el squid terminan pasando por ese problema, el sistema bloque para que el maximo 1024 instancias de archivos sean abiertas.

Para comprobar cuántos archivos pueden ser abiertos por el sistema operativo, sólo tienes que escribir en la consola:

# ulimit -n
# ulimit -a

Vamos a comenzar con la optimización:

acceda a "/etc/sysctl.conf", y agregue la siguiente linea:


fs.file-max = 65535


Despues escribimos en la consola:

# sysctl -p

Despues accedemos en "/etc/security/limits.conf", adicionamos las siguientes linas al final del archivo;

root soft nofile 16384
root hard nofile 32768
* soft nofile 16384
* hard nofile 32768


Mucha gente pregunta que despues de hacer esas modificaciones el sistema aplica las configuraciones, pero una vez que le damos reboot al SO el limite vuele para 1024. Para resolver ese problema solo agregamos la siguiente linea de comando en"/etc/pam.d/common-account":

session required pam_limits.so


Hecho esto cuando el sistema operativo inicia el cambio sera puesto a punto"startado" y todo el sistema estará optimizado para recibir las solicitudes.

Finalizando la verificación de las optimizaciones
Al final de estas guias vamos a confirmar si el sistema arranco con todas las optimizaciones y si el servidor esta listo para recibir altas tasas de conexiones simultaneas.

En primer lugar vamos a la consola y vemos lo siguiente:

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 16384
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Vemos que el SO ahora está permitieneo que 16384 archivos sean abiertos a lo que anteriormente solo eran 1024.

Despues en el archivo "cache.log" del squid:

# cat cache.log
2011/07/11 14:19:07| Starting Squid Cache version 3.1.14 for x86_64-unknown-linux-gnu...
2011/07/11 14:19:07| Process ID 31325
2011/07/11 14:19:07| With 16000 file descriptors available
-------------------------------------------------------------

por otro lado también el refresh ideal para sistemas de alta concurrencias con respecto a imágenes seria este.

# Para imagenes – tiempo de 1 día y un máximo 3 para descargar nuevamente.
refresh_pattern -i \.gif$ 1440 80% 4320
refresh_pattern -i \.tiff?$ 1440 80% 4320
refresh_pattern -i \.bmp$ 1440 80% 4320
refresh_pattern -i \.jpe?g$ 1440 80% 4320
refresh_pattern -i \.xbm$ 1440 80% 4320
refresh_pattern -i \.png$ 1440 80% 4320
refresh_pattern -i \.wrl$ 1440 80% 4320
refresh_pattern -i \.ico$ 1440 80% 4320
refresh_pattern -i \.pnm$ 1440 80% 4320
refresh_pattern -i \.pbm$ 1440 80% 4320
refresh_pattern -i \.pgm$ 1440 80% 4320
refresh_pattern -i \.ppm$ 1440 80% 4320
refresh_pattern -i \.rgb$ 1440 80% 4320
refresh_pattern -i \.ppm$ 1440 80% 4320
refresh_pattern -i \.rgb$ 1440 80% 4320
refresh_pattern -i \.xpm$ 1440 80% 4320
refresh_pattern -i \.xwd$ 1440 80% 4320
refresh_pattern -i \.pict?$ 1440 80% 4320


Espero que les sirva, saludos.

Amigo roxdng quiero decirte que antes de cambiar los filedescriptors tienes que ver cuanto tienes antes de hacer un cambio, por que el valor que pusiste el muy bajo: ejemplo: el mio default esta en 380000 y 65535 es muy poco, entonces primero tienes que ver cuanto tiene el sistema asignado antes de cambiarlo, para saber en que valor esta, escribes esto en consola

cat /proc/sys/fs/file-max

lo te que te muestre son archivos de usuario normal puede tener abiertos en la sesión de inicio de sesión único. Para ver los valores duros y blandos, ejecute el comando siguiente:

ulimit -Hn
ulimit -Sn


Apartir de esto puedes cambiar los valores, el número de descriptores de archivos abiertos simultáneamente en todo el sistema se puede cambiar a través de /etc/sysctl.conf bajo sistemas operativos Linux.

El número de archivos máximo se alcanzó, ¿Cómo puedo solucionar este problema?

Muchas aplicaciones, como Oracle de base de datos o el servidor web Apache necesita este rango bastante alto. Así que usted puede aumentar el número máximo de archivos abiertos mediante el establecimiento de un nuevo valor en la variable kernel /proc/sys/fs/file-max de la siguiente manera, hay que editar el archivo /etc/sysctl.conf y poner siguiendo la línea de manera que al iniciar el sistema el ajuste se conservará como es:

fs.file-max = cantidad que crean conveniente para su sistema

Guarde y cierre el archivo. Los usuarios tienen que cerrar la sesión y volver a iniciarla de nuevo a los cambios surtan efecto o simplemente escriba el siguiente comando:

sudo sysctl -p

El procedimiento anterior establece todo el sistema de descriptores de archivos, ahora para fijar un limite a cada usuario editamos /etc/security/limits.conf, en mi caso lo tengo de esta manera:

* soft nofile 819200
* hard nofile 819200
root soft nofile 819200
root hard nofile 819200
* soft core unlimited
root soft core unlimited


y para que no se pierda el valor al reiniciar simple solo editas /etc/profile, esxribiendo esto al final ulimit -n 0000, donde esta 0000 el numero que quieres dejar para ti, para cuando reinicies escribes ulimit -a y en mi caso me dice esto:

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 24084
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 24084
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


Por lo demas amigo todo esta excelente buena info amigo sigue asi, Saludos