summaryrefslogtreecommitdiff
path: root/src/htscore.c
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2013-05-14 19:20:14 +0000
committerXavier Roche <xroche@users.noreply.github.com>2013-05-14 19:20:14 +0000
commit0573b166b2aa2ee40be1a328636cb539d96aeeac (patch)
tree60225c1335ff26c5e4f29bc7043548daa44c7d73 /src/htscore.c
parenteaef7eb1f7ae092d73eeffa245ab418d70748fdf (diff)
Merge sources from windows-1252 to utf-8
Diffstat (limited to 'src/htscore.c')
-rw-r--r--src/htscore.c254
1 files changed, 127 insertions, 127 deletions
diff --git a/src/htscore.c b/src/htscore.c
index f77124f..3f623b7 100644
--- a/src/htscore.c
+++ b/src/htscore.c
@@ -112,17 +112,17 @@ int nsocDEBUG=0;
int longest_hash[3]={0,0,0},hashnumber=0;
#endif
-// Début de httpmirror, routines annexes
+// Début de httpmirror, routines annexes
-// pour alléger la syntaxe, des raccourcis sont créés
+// pour alléger la syntaxe, des raccourcis sont créés
#define urladr (liens[ptr]->adr)
#define urlfil (liens[ptr]->fil)
#define savename (liens[ptr]->sav)
//#define level (liens[ptr]->depth)
-// au cas où nous devons quitter rapidement xhttpmirror (plus de mémoire, etc)
-// note: partir de liens_max.. vers 0.. sinon erreur de violation de mémoire: les liens suivants
-// ne sont plus à nous.. agh! [dur celui-là]
+// au cas où nous devons quitter rapidement xhttpmirror (plus de mémoire, etc)
+// note: partir de liens_max.. vers 0.. sinon erreur de violation de mémoire: les liens suivants
+// ne sont plus à nous.. agh! [dur celui-là]
#define HTMLCHECK_UNINIT { \
hts_log_print(opt, LOG_INFO, "engine: end"); \
RUN_CALLBACK0(opt, end); \
@@ -182,9 +182,9 @@ RUN_CALLBACK0(opt, end); \
#define XH_uninit do { XH_extuninit; if (r.adr) { freet(r.adr); r.adr=NULL; } } while(0)
// Enregistrement d'un lien:
-// on calcule la taille nécessaire: taille des 3 chaînes à stocker (taille forcée paire, plus 2 octets de sécurité)
-// puis on vérifie qu'on a assez de marge dans le buffer - sinon on en réalloue un autre
-// enfin on écrit à l'adresse courante du buffer, qu'on incrémente. on décrémente la taille dispo d'autant ensuite
+// on calcule la taille nécessaire: taille des 3 chaînes à stocker (taille forcée paire, plus 2 octets de sécurité)
+// puis on vérifie qu'on a assez de marge dans le buffer - sinon on en réalloue un autre
+// enfin on écrit à l'adresse courante du buffer, qu'on incrémente. on décrémente la taille dispo d'autant ensuite
// codebase: si non nul et si .class stockee on le note pour chemin primaire pour classes
// FA,FS: former_adr et former_fil, lien original
#define liens_record_sav_len(A)
@@ -253,7 +253,7 @@ if (makeindex_fp) { \
tempo \
); \
fflush(makeindex_fp); \
- fclose(makeindex_fp); /* à ne pas oublier sinon on passe une nuit blanche */ \
+ fclose(makeindex_fp); /* à ne pas oublier sinon on passe une nuit blanche */ \
makeindex_fp=NULL; \
usercommand(opt,0,NULL,fconcat(OPT_GET_BUFF(opt),StringBuff(opt->path_html_utf8),"index.html"),"",""); \
} \
@@ -264,28 +264,28 @@ makeindex_done=1; /* ok c'est fait */ \
-// Début de httpmirror, robot
-// url1 peut être multiple
+// Début de httpmirror, robot
+// url1 peut être multiple
int httpmirror(char* url1, httrackp* opt) {
- char* primary=NULL; // première page, contenant les liens à scanner
+ char* primary=NULL; // première page, contenant les liens à scanner
int lien_tot=0; // nombre de liens pour le moment
lien_url** liens=NULL; // les pointeurs sur les liens
- hash_struct hash; // système de hachage, accélère la recherche dans les liens
+ hash_struct hash; // système de hachage, accélère la recherche dans les liens
hash_struct* hashptr = &hash;
t_cookie BIGSTK cookie; // gestion des cookies
int lien_max=0;
size_t lien_size=0; // octets restants dans buffer liens dispo
char* lien_buffer=NULL; // buffer liens actuel
- int add_tab_alloc=256000; // +256K de liens à chaque fois
+ int add_tab_alloc=256000; // +256K de liens à chaque fois
//char* tab_alloc=NULL;
int ptr; // pointeur actuel sur les liens
//
int numero_passe=0; // deux passes pour html puis images
struct_back* sback=NULL;
htsblk BIGSTK r; // retour de certaines fonctions
- // pour les stats, nombre de fichiers & octets écrits
+ // pour les stats, nombre de fichiers & octets écrits
LLint stat_fragment=0; // pour la fragmentation
- //TStamp istat_timestart; // départ pour calcul instantanné
+ //TStamp istat_timestart; // départ pour calcul instantanné
//
TStamp last_info_shell=0;
int info_shell=0;
@@ -302,7 +302,7 @@ int httpmirror(char* url1, httrackp* opt) {
FILE* makestat_fp=NULL; // fichier de stats taux transfert
FILE* maketrack_fp=NULL; // idem pour le tracking
TStamp makestat_time=0; // attente (secondes)
- LLint makestat_total=0; // repère du nombre d'octets transférés depuis denrière stat
+ LLint makestat_total=0; // repère du nombre d'octets transférés depuis denrière stat
int makestat_lnk=0; // idem, pour le nombre de liens
//
char BIGSTK codebase[HTS_URLMAXSIZE*2]; // base pour applet java
@@ -322,7 +322,7 @@ int httpmirror(char* url1, httrackp* opt) {
cookie.auth.auth[0]=cookie.auth.prefix[0]='\0';
//
- // noter heure actuelle de départ en secondes
+ // noter heure actuelle de départ en secondes
memset(&HTS_STAT, 0, sizeof(HTS_STAT));
HTS_STAT.stat_timestart=time_local();
//istat_timestart=stat_timestart;
@@ -344,14 +344,14 @@ int httpmirror(char* url1, httrackp* opt) {
opt->cookie=&cookie;
cookie.max_len=30000; // max len
strcpybuff(cookie.data,"");
- // Charger cookies.txt par défaut ou cookies.txt du miroir
+ // Charger cookies.txt par défaut ou cookies.txt du miroir
cookie_load(opt->cookie,StringBuff(opt->path_log),"cookies.txt");
cookie_load(opt->cookie,"","cookies.txt");
} else
opt->cookie=NULL;
// initialiser exit_xh
- opt->state.exit_xh=0; // sortir prématurément (var globale)
+ opt->state.exit_xh=0; // sortir prématurément (var globale)
// initialiser usercommand
usercommand(opt,opt->sys_com_exec,StringBuff(opt->sys_com),"","","");
@@ -438,7 +438,7 @@ int httpmirror(char* url1, httrackp* opt) {
{
int i;
for(i=0;i<HTS_HASH_SIZE;i++)
- hash.hash[0][i]=hash.hash[1][i]=hash.hash[2][i] = -1; // pas d'entrées
+ hash.hash[0][i]=hash.hash[1][i]=hash.hash[2][i] = -1; // pas d'entrées
hash.liens = liens;
hash.max_lien=0;
}
@@ -452,9 +452,9 @@ int httpmirror(char* url1, httrackp* opt) {
}
primary_len += (int) strlen(url1)*2;
- // création de la première page, qui contient les liens de base à scanner
- // c'est plus propre et plus logique que d'entrer à la main les liens dans la pile
- // on bénéficie ainsi des vérifications et des tests du robot pour les liens "primaires"
+ // création de la première page, qui contient les liens de base à scanner
+ // c'est plus propre et plus logique que d'entrer à la main les liens dans la pile
+ // on bénéficie ainsi des vérifications et des tests du robot pour les liens "primaires"
primary=(char*) malloct(primary_len);
if (primary) {
primary[0]='\0';
@@ -468,7 +468,7 @@ int httpmirror(char* url1, httrackp* opt) {
int i;
int joker=0;
- // vérifier qu'il n'y a pas de * dans l'url
+ // vérifier qu'il n'y a pas de * dans l'url
if (*a=='+')
joker=1;
else if (*a=='-')
@@ -494,7 +494,7 @@ int httpmirror(char* url1, httrackp* opt) {
tempo[i++]='\0';
while(isspace((unsigned char)*a)) { a++; }
- // sauter les + sans rien après..
+ // sauter les + sans rien après..
if (strnotempty(tempo)) {
if ((plus==0) && (type==1)) { // implicite: *www.edf.fr par exemple
if (tempo[strlen(tempo)-1]!='*') {
@@ -594,19 +594,19 @@ int httpmirror(char* url1, httrackp* opt) {
// lien primaire
liens_record("primary","/primary",fslash(OPT_GET_BUFF(opt),fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html_utf8),"index.html")),"","",opt->urlhack);
- if (liens[lien_tot]==NULL) { // erreur, pas de place réservée
+ if (liens[lien_tot]==NULL) { // erreur, pas de place réservée
printf("PANIC! : Not enough memory [%d]\n",__LINE__);
hts_log_print(opt, LOG_PANIC, "Not enough memory, can not re-allocate %d bytes",(int)((add_tab_alloc+1)*sizeof(lien_url)));
- XH_extuninit; // désallocation mémoire & buffers
+ XH_extuninit; // désallocation mémoire & buffers
return 0;
}
liens[lien_tot]->testmode=0; // pas mode test
liens[lien_tot]->link_import=0; // pas mode import
- liens[lien_tot]->depth=opt->depth+1; // lien de priorité maximale
- liens[lien_tot]->pass2=0; // 1ère passe
- liens[lien_tot]->retry=opt->retry; // lien de priorité maximale
- liens[lien_tot]->premier=lien_tot; // premier lien, objet-père=objet
- liens[lien_tot]->precedent=lien_tot; // lien précédent
+ liens[lien_tot]->depth=opt->depth+1; // lien de priorité maximale
+ liens[lien_tot]->pass2=0; // 1ère passe
+ liens[lien_tot]->retry=opt->retry; // lien de priorité maximale
+ liens[lien_tot]->premier=lien_tot; // premier lien, objet-père=objet
+ liens[lien_tot]->precedent=lien_tot; // lien précédent
lien_tot++;
// Initialiser cache
@@ -642,10 +642,10 @@ int httpmirror(char* url1, httrackp* opt) {
#if BDEBUG==2
_CLRSCR;
#endif
- // Nombre de fichiers HTML pouvant être présents en mémoire de manière simultannée
- // On prévoit large: les fichiers HTML ne prennent que peu de place en mémoire, et les
- // fichiers non html sont sauvés en direct sur disque.
- // --> 1024 entrées + 32 entrées par socket en supplément
+ // Nombre de fichiers HTML pouvant être présents en mémoire de manière simultannée
+ // On prévoit large: les fichiers HTML ne prennent que peu de place en mémoire, et les
+ // fichiers non html sont sauvés en direct sur disque.
+ // --> 1024 entrées + 32 entrées par socket en supplément
sback = back_new(opt->maxsoc*32+1024);
if (sback == NULL) {
hts_log_print(opt, LOG_PANIC, "Not enough memory, can not allocate %d bytes",(int)((opt->maxsoc+1)*sizeof(lien_back)));
@@ -662,7 +662,7 @@ int httpmirror(char* url1, httrackp* opt) {
}
}
- // tracking -- débuggage
+ // tracking -- débuggage
if (opt->maketrack) {
maketrack_fp=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-track.txt"),"wb");
if (maketrack_fp != NULL) {
@@ -671,7 +671,7 @@ int httpmirror(char* url1, httrackp* opt) {
}
}
- // on n'a pas de liens!! (exemple: httrack www.* impossible sans départ..)
+ // on n'a pas de liens!! (exemple: httrack www.* impossible sans départ..)
if (lien_tot<=0) {
hts_log_print(opt, LOG_ERROR, "You MUST specify at least one complete URL, and not only wildcards!");
}
@@ -733,7 +733,7 @@ int httpmirror(char* url1, httrackp* opt) {
opt->state._hts_in_html_parsing=0;
// note: recopie de plus haut
- // noter heure actuelle de départ en secondes
+ // noter heure actuelle de départ en secondes
HTS_STAT.stat_timestart=time_local();
if (opt->shell) {
last_info_shell=HTS_STAT.stat_timestart;
@@ -754,7 +754,7 @@ int httpmirror(char* url1, httrackp* opt) {
// ------------------------------------------------------------
// ------------------------------------------------------------
- // Boucle générale de parcours des liens
+ // Boucle générale de parcours des liens
// ------------------------------------------------------------
do {
int error=0; // si error alors sauter
@@ -763,8 +763,8 @@ int httpmirror(char* url1, httrackp* opt) {
int is_loaded_from_file=0; // has been loaded from a file (implies is_write=1)
char BIGSTK loc[HTS_URLMAXSIZE*2]; // adresse de relocation
- // Ici on charge le fichier (html, gif..) en mémoire
- // Les HTMLs sont traités (si leur priorité est suffisante)
+ // Ici on charge le fichier (html, gif..) en mémoire
+ // Les HTMLs sont traités (si leur priorité est suffisante)
// effacer r
hts_init_htsblk(&r);
@@ -794,7 +794,7 @@ int httpmirror(char* url1, httrackp* opt) {
( ((urlfil != NULL)?(urlfil):(" "))[0]=='\0') ||
( (liens[ptr]->pass2 == -1) )
)
- ) { // sauter si lien annulé (ou fil vide)
+ ) { // sauter si lien annulé (ou fil vide)
if (liens[ptr] != NULL && liens[ptr]->pass2 == -1) {
hts_log_print(opt, LOG_DEBUG, "link #%d is ready, skipping: %s%s..",ptr,((urladr != NULL)?(urladr):(" ")),((urlfil != NULL)?(urlfil):(" ")));
} else {
@@ -807,7 +807,7 @@ int httpmirror(char* url1, httrackp* opt) {
ptr++;
}
}
- if (liens[ptr] != NULL) { // on a qq chose à récupérer?
+ if (liens[ptr] != NULL) { // on a qq chose à récupérer?
hts_log_print(opt, LOG_DEBUG, "Wait get: %s%s",urladr,urlfil);
#if DEBUG_ROBOTS
@@ -817,14 +817,14 @@ int httpmirror(char* url1, httrackp* opt) {
#endif
// ------------------------------------------------------------
// DEBUT --RECUPERATION LIEN---
- if (ptr==0) { // premier lien à parcourir: lien primaire construit avant
+ if (ptr==0) { // premier lien à parcourir: lien primaire construit avant
r.adr=primary; primary=NULL;
r.statuscode=HTTP_OK;
r.size=strlen(r.adr);
r.soc=INVALID_SOCKET;
strcpybuff(r.contenttype,"text/html");
- /*} else if (opt->maxsoc<=0) { // fichiers 1 à 1 en attente (pas de backing)
- // charger le fichier en mémoire tout bêtement
+ /*} else if (opt->maxsoc<=0) { // fichiers 1 à 1 en attente (pas de backing)
+ // charger le fichier en mémoire tout bêtement
r=xhttpget(urladr,urlfil);
//
*/
@@ -935,7 +935,7 @@ int httpmirror(char* url1, httrackp* opt) {
// ---tester taille a posteriori---
// tester r.adr
if (!error) {
- // erreur, pas de fichier chargé:
+ // erreur, pas de fichier chargé:
if ((!r.adr) && (r.is_write==0)
&& (r.statuscode!=301)
&& (r.statuscode!=302)
@@ -946,7 +946,7 @@ int httpmirror(char* url1, httrackp* opt) {
) {
// error=1;
- // peut être que le fichier était trop gros?
+ // peut être que le fichier était trop gros?
if ((istoobig(opt,r.totalsize,opt->maxfile_html,opt->maxfile_nonhtml,r.contenttype))
|| (istoobig(opt,r.totalsize,opt->maxfile_html,opt->maxfile_nonhtml,r.contenttype))) {
error=0;
@@ -1328,16 +1328,16 @@ int httpmirror(char* url1, httrackp* opt) {
LOAD_IN_MEMORY_IF_NECESSARY();
// ------------------------------------------------------
- // ok, fichier chargé localement
+ // ok, fichier chargé localement
// ------------------------------------------------------
- // Vérificateur d'intégrité
+ // Vérificateur d'intégrité
#if DEBUG_CHECKINT
{
int i;
for(i = 0 ; i < sback->count ; i++) {
char si[256];
- sprintf(si,"Test global après back_wait, index %d",i);
+ sprintf(si,"Test global après back_wait, index %d",i);
_CHECKINT(&back[i],si)
}
}
@@ -1347,8 +1347,8 @@ int httpmirror(char* url1, httrackp* opt) {
/* info: updated */
/*
if (ptr>0) {
- // "mis à jour"
- if ((!r.notmodified) && (opt->is_update) && (!store_errpage)) { // page modifiée
+ // "mis à jour"
+ if ((!r.notmodified) && (opt->is_update) && (!store_errpage)) { // page modifiée
if (strnotempty(savename)) {
HTS_STAT.stat_updated_files++;
//if ((opt->debug>0) && (opt->log!=NULL)) {
@@ -1378,7 +1378,7 @@ int httpmirror(char* url1, httrackp* opt) {
&& (r.size>0) /* And not empty */
&& (!store_errpage) /* Not an html error page */
&& (savename[0]!='\0') /* Output filename exists */
- ) { // ne traiter que le html si autorisé
+ ) { // ne traiter que le html si autorisé
// -- -- -- --
// Parsing HTML
if (!error) {
@@ -1512,7 +1512,7 @@ int httpmirror(char* url1, httrackp* opt) {
// sauver fichier
- /* En cas d'erreur, vérifier que fichier d'erreur existe */
+ /* En cas d'erreur, vérifier que fichier d'erreur existe */
if (strnotempty(savename) == 0) { // chemin de sauvegarde existant
if (strcmp(urlfil,"/robots.txt")==0) { // pas robots.txt
if (store_errpage) { // c'est une page d'erreur
@@ -1534,7 +1534,7 @@ int httpmirror(char* url1, httrackp* opt) {
default: /* don't know.. */
break;
}
- /* Créer message d'erreur ? */
+ /* Créer message d'erreur ? */
if (create_html_warning) {
char* adr=(char*)malloct(strlen(HTS_DATA_ERROR_HTML)+1100);
hts_log_print(opt, LOG_INFO, "Creating HTML warning file (%s)",r.msg);
@@ -1639,7 +1639,7 @@ int httpmirror(char* url1, httrackp* opt) {
}
}
}
- } else if (r.is_write) { // déja sauvé sur disque
+ } else if (r.is_write) { // déja sauvé sur disque
/*
if (!ishttperror(r.statuscode))
HTS_STAT.stat_files++;
@@ -1648,11 +1648,11 @@ int httpmirror(char* url1, httrackp* opt) {
//printf("ok......\n");
} else {
// Si on doit sauver une page HTML sans la scanner, cela signifie que le niveau de
- // récursion nous en empêche
+ // récursion nous en empêche
// Dans ce cas on met un fichier indiquant ce fait
- // Si par la suite on doit retraiter ce fichier avec un niveau de récursion plus
+ // Si par la suite on doit retraiter ce fichier avec un niveau de récursion plus
// fort, on supprimera le readme, et on scannera le fichier html!
- // note: sauté si store_errpage (càd si page d'erreur, non à scanner!)
+ // note: sauté si store_errpage (càd si page d'erreur, non à scanner!)
if ( (is_hypertext_mime(opt,r.contenttype, urlfil)) && (!store_errpage) && (r.size>0)) { // c'est du html!!
char BIGSTK tempo[HTS_URLMAXSIZE*2];
FILE* fp;
@@ -1661,7 +1661,7 @@ int httpmirror(char* url1, httrackp* opt) {
strcatbuff(tempo,".readme");
#if HTS_DOSNAME
- // remplacer / par des slash arrière
+ // remplacer / par des slash arrière
{
int i=0;
while(tempo[i]) {
@@ -1689,9 +1689,9 @@ int httpmirror(char* url1, httrackp* opt) {
hts_log_print(opt, LOG_WARNING, "Warning: store %s without scan: %s",r.contenttype,savename);
} else {
- if ((opt->getmode & 2)!=0) { // ok autorisé
+ if ((opt->getmode & 2)!=0) { // ok autorisé
hts_log_print(opt, LOG_DEBUG, "Store %s: %s",r.contenttype,savename);
- } else { // lien non autorisé! (ex: cgi-bin en html)
+ } else { // lien non autorisé! (ex: cgi-bin en html)
hts_log_print(opt, LOG_DEBUG, "non-html file ignored after upload at %s : %s",urladr,urlfil);
if (r.adr) {
freet(r.adr); r.adr=NULL;
@@ -1794,17 +1794,17 @@ int httpmirror(char* url1, httrackp* opt) {
} // if !error
jump_if_done:
- // libérer les liens
+ // libérer les liens
if (r.adr) {
freet(r.adr);
r.adr=NULL;
- } // libérer la mémoire!
+ } // libérer la mémoire!
// prochain lien
ptr++;
- // faut-il sauter le(s) lien(s) suivant(s)? (fichiers images à passer après les html)
- if (opt->getmode & 4) { // sauver les non html après
+ // faut-il sauter le(s) lien(s) suivant(s)? (fichiers images à passer après les html)
+ if (opt->getmode & 4) { // sauver les non html après
// sauter les fichiers selon la passe
if (!numero_passe) {
while((ptr<lien_tot)?( liens[ptr]->pass2):0) ptr++;
@@ -1812,7 +1812,7 @@ jump_if_done:
while((ptr<lien_tot)?( ! liens[ptr]->pass2):0) ptr++;
}
if (ptr>=lien_tot) { // fin de boucle
- if (!numero_passe) { // première boucle
+ if (!numero_passe) { // première boucle
hts_log_print(opt, LOG_DEBUG, "Now getting non-html files...");
numero_passe=1; // seconde boucle
ptr=0;
@@ -1829,7 +1829,7 @@ jump_if_done:
//if (!exit_xh && opt->state.exit_xh) {
// exit_xh=opt->state.exit_xh;
//}
- // a-t-on dépassé le quota?
+ // a-t-on dépassé le quota?
if (!back_checkmirror(opt)) {
ptr=lien_tot;
} else if (opt->state.exit_xh) { // sortir
@@ -1903,7 +1903,7 @@ jump_if_done:
int purge=0;
while(!feof(old_lst)) {
linput(old_lst,line,1000);
- if (!strstr(adr,line)) { // fichier non trouvé dans le nouveau?
+ if (!strstr(adr,line)) { // fichier non trouvé dans le nouveau?
char BIGSTK file[HTS_URLMAXSIZE*2];
strcpybuff(file,StringBuff(opt->path_html));
strcatbuff(file,line+1);
@@ -1924,11 +1924,11 @@ jump_if_done:
if (strnotempty(line))
line[strlen(line)-1]='\0';
if (strnotempty(line))
- if (!strstr(adr,line)) { // non trouvé?
+ if (!strstr(adr,line)) { // non trouvé?
char BIGSTK file[HTS_URLMAXSIZE*2];
strcpybuff(file,StringBuff(opt->path_html));
strcatbuff(file,line+1);
- while ((strnotempty(file)) && (rmdir(file)==0)) { // ok, éliminé (existait)
+ while ((strnotempty(file)) && (rmdir(file)==0)) { // ok, éliminé (existait)
purge=1;
if (opt->log) {
hts_log_print(opt, LOG_INFO, "Purging directory %s/",file);
@@ -1963,7 +1963,7 @@ jump_if_done:
if (opt->kindex)
index_finish(StringBuff(opt->path_html),opt->kindex);
- // afficher résumé dans log
+ // afficher résumé dans log
if (opt->log!=NULL) {
char BIGSTK finalInfo[8192];
int error = fspc(opt,NULL,"error");
@@ -2045,12 +2045,12 @@ jump_if_done:
printf("\n");
}
#endif
- // fin afficher résumé dans log
+ // fin afficher résumé dans log
// ending
usercommand(opt,0,NULL,NULL,NULL,NULL);
- // désallocation mémoire & buffers
+ // désallocation mémoire & buffers
XH_uninit;
return 1; // OK
@@ -2135,7 +2135,7 @@ void host_ban(httrackp* opt,lien_url** liens,int ptr,int lien_tot,struct_back* s
int i;
if (host[0]=='!')
- return; // erreur.. déja cancellé.. bizarre.. devrait pas arriver
+ return; // erreur.. déja cancellé.. bizarre.. devrait pas arriver
/* sanity check */
if (*_FILTERS_PTR + 1 >= opt->maxfilter) {
@@ -2162,18 +2162,18 @@ void host_ban(httrackp* opt,lien_url** liens,int ptr,int lien_tot,struct_back* s
if (strcmp(host,"file://")) {
//## if (host[0]!=lOCAL_CHAR) { // pas local
hts_log_print(opt, LOG_PANIC, "PANIC! HostCancel detected memory leaks [char %d]",host[0]);
- return; // purée
+ return; // purée
}
}
// couper connexion
for(i=0;i<back_max;i++) {
- if (back[i].status>=0) // réception OU prêt
+ if (back[i].status>=0) // réception OU prêt
if (strfield2(back[i].url_adr,host)) {
#if HTS_DEBUG_CLOSESOCK
DEBUG_W("host control: deletehttp\n");
#endif
- back[i].status=0; // terminé
+ back[i].status=0; // terminé
back_set_finished(sback, i);
if (back[i].r.soc!=INVALID_SOCKET) deletehttp(&back[i].r);
back[i].r.soc=INVALID_SOCKET;
@@ -2186,13 +2186,13 @@ void host_ban(httrackp* opt,lien_url** liens,int ptr,int lien_tot,struct_back* s
// effacer liens
//l=strlen(host);
for(i=0;i<lien_tot;i++) {
- //if (liens[i]->adr_len==l) { // même taille de chaîne
- // Calcul de taille sécurisée
+ //if (liens[i]->adr_len==l) { // même taille de chaîne
+ // Calcul de taille sécurisée
if (liens[i]) {
if (liens[i]->adr) {
int l = 0;
while((liens[i]->adr[l]) && (l<1020)) l++;
- if ((l > 0) && (l<1020)) { // sécurité
+ if ((l > 0) && (l<1020)) { // sécurité
if (strfield2(jump_identification(liens[i]->adr),host)) { // host
hts_log_print(opt, LOG_DEBUG, "Cancel: %s%s",liens[i]->adr,liens[i]->fil);
strcpybuff(liens[i]->adr,"!"); // cancel (invalide hash)
@@ -2245,10 +2245,10 @@ int filters_init(char*** ptrfilters, int maxfilter, int filterinc) {
from = 0;
else
from = filter_max - filterinc;
- for(i=0 ; i<=filter_max ; i++) { // PLUS UN (sécurité)
+ for(i=0 ; i<=filter_max ; i++) { // PLUS UN (sécurité)
filters[i]=filters[0]+i*(HTS_URLMAXSIZE*2);
}
- for(i=from ; i<=filter_max ; i++) { // PLUS UN (sécurité)
+ for(i=from ; i<=filter_max ; i++) { // PLUS UN (sécurité)
filters[i][0]='\0'; // clear
}
}
@@ -2516,7 +2516,7 @@ HTSEXT_API int structcheck_utf8(const char* path) {
// sauver un fichier
int filesave(httrackp* opt,const char* adr,int len,const char* s,const char* url_adr,const char* url_fil) {
FILE* fp;
- // écrire le fichier
+ // écrire le fichier
if ((fp = filecreate(&opt->state.strc, s))!=NULL) {
int nl=0;
if (len>0) {
@@ -2565,7 +2565,7 @@ FILE* filecreate(filenote_strc *strc, const char* s) {
strcpybuff(fname, s);
#if HTS_DOSNAME
- // remplacer / par des slash arrière
+ // remplacer / par des slash arrière
{
int i=0;
while(fname[i]) {
@@ -2609,11 +2609,11 @@ FILE* fileappend(filenote_strc *strc,const char* s) {
// noter lst
filenote(strc,s,NULL);
- // if (*s=='/') strcpybuff(fname,s+1); else strcpybuff(fname,s); // pas de / (root!!) // ** SIIIIIII!!! à cause de -O <path>
+ // if (*s=='/') strcpybuff(fname,s+1); else strcpybuff(fname,s); // pas de / (root!!) // ** SIIIIIII!!! à cause de -O <path>
strcpybuff(fname,s);
#if HTS_DOSNAME
- // remplacer / par des slash arrière
+ // remplacer / par des slash arrière
{
int i=0;
while(fname[i]) {
@@ -2828,7 +2828,7 @@ static void postprocess_file(httrackp* opt,const char* save, const char* adr, co
}
}
-// écrire n espaces dans fp
+// écrire n espaces dans fp
int fspc(httrackp *opt,FILE* fp,const char* type) {
fspc_strc* const strc = ( opt != NULL ) ? &opt->state.fspc : NULL;
if (fp != NULL) {
@@ -2871,22 +2871,22 @@ int fspc(httrackp *opt,FILE* fp,const char* type) {
}
-// vérifier taux de transfert
+// vérifier taux de transfert
#if 0
void check_rate(TStamp stat_timestart,int maxrate) {
- // vérifier taux de transfert (pas trop grand?)
+ // vérifier taux de transfert (pas trop grand?)
/*
if (maxrate>0) {
int r = (int) (HTS_STAT.HTS_TOTAL_RECV/(time_local()-stat_timestart)); // taux actuel de transfert
HTS_STAT.HTS_TOTAL_RECV_STATE=0;
- if (r>maxrate) { // taux>taux autorisé
+ if (r>maxrate) { // taux>taux autorisé
int taux = (int) (((TStamp) (r - maxrate) * 100) / (TStamp) maxrate);
if (taux<15)
- HTS_STAT.HTS_TOTAL_RECV_STATE=1; // ralentir un peu (<15% dépassement)
+ HTS_STAT.HTS_TOTAL_RECV_STATE=1; // ralentir un peu (<15% dépassement)
else if (taux<50)
- HTS_STAT.HTS_TOTAL_RECV_STATE=2; // beaucoup (<50% dépassement)
+ HTS_STAT.HTS_TOTAL_RECV_STATE=2; // beaucoup (<50% dépassement)
else
- HTS_STAT.HTS_TOTAL_RECV_STATE=3; // énormément (>50% dépassement)
+ HTS_STAT.HTS_TOTAL_RECV_STATE=3; // énormément (>50% dépassement)
}
}
*/
@@ -2894,7 +2894,7 @@ void check_rate(TStamp stat_timestart,int maxrate) {
#endif
// ---
-// sous routines liées au moteur et au backing
+// sous routines liées au moteur et au backing
// supplemental links ready (done) after ptr or ready in background
int backlinks_done(struct_back* sback,lien_url** liens,int lien_tot,int ptr) {
@@ -2917,10 +2917,10 @@ int backlinks_done(struct_back* sback,lien_url** liens,int lien_tot,int ptr) {
return n;
}
-// remplir backing si moins de max_bytes en mémoire
+// remplir backing si moins de max_bytes en mémoire
HTS_INLINE int back_fillmax(struct_back* sback,httrackp* opt,cache_back* cache,lien_url** liens,int ptr,int numero_passe,int lien_tot) {
if (!opt->state.stop) {
- if (back_incache(sback)<opt->maxcache) { // pas trop en mémoire?
+ if (back_incache(sback)<opt->maxcache) { // pas trop en mémoire?
return back_fill(sback,opt,cache,liens,ptr,numero_passe,lien_tot);
}
}
@@ -2953,7 +2953,7 @@ int back_pluggable_sockets(struct_back* sback, httrackp* opt) {
// ajouter autant de socket qu'on peut ajouter
n=back_pluggable_sockets_strict(sback, opt);
- // vérifier qu'il restera assez de place pour les tests ensuite (en théorie, 1 entrée libre restante suffirait)
+ // vérifier qu'il restera assez de place pour les tests ensuite (en théorie, 1 entrée libre restante suffirait)
n=min( n, back_available(sback) - 8 );
// no space left on backing stack - do not back anymore
@@ -2976,15 +2976,15 @@ int back_fill(struct_back* sback,httrackp* opt,cache_back* cache,lien_url** lien
}
p=ptr+1;
- /* on a déja parcouru */
+ /* on a déja parcouru */
if (p<cache->ptr_ant)
p=cache->ptr_ant;
while( (p<lien_tot) && (n>0) && back_checkmirror(opt)) {
//while((p<lien_tot) && (n>0) && (p < ptr+opt->maxcache_anticipate)) {
int ok=1;
- // on ne met pas le fichier en backing si il doit être traité après ou s'il a déja été traité
- if (liens[p]->pass2) { // 2è passe
+ // on ne met pas le fichier en backing si il doit être traité après ou s'il a déja été traité
+ if (liens[p]->pass2) { // 2è passe
if (numero_passe!=1)
ok=0;
} else {
@@ -3003,7 +3003,7 @@ int back_fill(struct_back* sback,httrackp* opt,cache_back* cache,lien_url** lien
ok = 0;
}
- // note: si un backing est fini, il reste en mémoire jusqu'à ce que
+ // note: si un backing est fini, il reste en mémoire jusqu'à ce que
// le ptr l'atteigne
if (ok) {
if (!back_exist(sback, opt, liens[p]->adr,liens[p]->fil,liens[p]->sav)) {
@@ -3023,7 +3023,7 @@ int back_fill(struct_back* sback,httrackp* opt,cache_back* cache,lien_url** lien
}
p++;
} // while
- /* sauver position dernière anticipation */
+ /* sauver position dernière anticipation */
cache->ptr_ant=p;
cache->ptr_last=ptr;
}
@@ -3050,7 +3050,7 @@ int back_fill(struct_back* sback,httrackp* opt,cache_back* cache,lien_url** lien
// Poll stdin.. si besoin
#if HTS_POLL
-// lecture stdin des caractères disponibles
+// lecture stdin des caractères disponibles
int read_stdin(char* s,int max) {
int i=0;
while((check_stdin()) && (i<(max-1)) )
@@ -3133,7 +3133,7 @@ int nombre_digit(int n) {
// renvoi adresse de la fin du token dans p
// renvoi NULL si la chaine est un token unique
-// (PATCHE également la chaine)
+// (PATCHE également la chaine)
// ex: "test" "test2" renvoi adresse sur espace
// flag==1 si chaine comporte des echappements comme \"
char* next_token(char* p,int flag) {
@@ -3233,13 +3233,13 @@ HTSEXT_API void hts_cancel_parsing(httrackp *opt) {
opt->state._hts_cancel=1;
}
-// en train de parser un fichier html? réponse: % effectués
-// flag>0 : refresh demandé
+// en train de parser un fichier html? réponse: % effectués
+// flag>0 : refresh demandé
HTSEXT_API int hts_is_parsing(httrackp *opt, int flag) {
if (opt->state._hts_in_html_parsing) { // parsing?
if (flag >= 0)
opt->state._hts_in_html_poll = 1; // faudrait un tit refresh
- return max(opt->state._hts_in_html_done, 1); // % effectués
+ return max(opt->state._hts_in_html_done, 1); // % effectués
} else {
return 0; // non
}
@@ -3278,7 +3278,7 @@ HTSEXT_API int hts_request_stop(httrackp* opt, int force) {
}
return 0;
}
-// régler en cours de route les paramètres réglables..
+// régler en cours de route les paramètres réglables..
// -1 : erreur
//HTSEXT_API int hts_setopt(httrackp* set_opt) {
// if (set_opt) {
@@ -3301,7 +3301,7 @@ HTSEXT_API int hts_resetaddurl(httrackp *opt) {
opt->state._hts_addurl = NULL;
return (opt->state._hts_addurl != NULL);
}
-// copier nouveaux paramètres si besoin
+// copier nouveaux paramètres si besoin
HTSEXT_API int copy_htsopt(const httrackp* from,httrackp* to) {
if (from->maxsite > -1)
to->maxsite = from->maxsite;
@@ -3397,7 +3397,7 @@ int htsAddLink(htsmoduleStruct* str, char* link) {
return 0;
}
- // adr = c'est la même
+ // adr = c'est la même
// fil et save: save2 et fil2
prio_fix=maximum(liens[ptr]->depth-1,0);
pass_fix=max(liens[ptr]->pass2,numero_passe);
@@ -3412,12 +3412,12 @@ int htsAddLink(htsmoduleStruct* str, char* link) {
while((*a) && (*a!='/') && ( a > codebase)) a--;
if (*a=='/')
*(a+1)='\0'; // couper
- } else { // couper http:// éventuel
+ } else { // couper http:// éventuel
if (strfield(codebase,"http://")) {
char BIGSTK tempo[HTS_URLMAXSIZE*2];
char* a=codebase+7;
- a=strchr(a,'/'); // après host
- if (a) { // ** msg erreur et vérifier?
+ a=strchr(a,'/'); // après host
+ if (a) { // ** msg erreur et vérifier?
strcpybuff(tempo,a);
strcpybuff(codebase,tempo); // couper host
} else {
@@ -3457,7 +3457,7 @@ int htsAddLink(htsmoduleStruct* str, char* link) {
b=opt->savename_83;
opt->savename_type=0;
opt->savename_83=0;
- // note: adr,fil peuvent être patchés
+ // note: adr,fil peuvent être patchés
r=url_savename(adr,fil,save,NULL,NULL,NULL,NULL,opt,liens,lien_tot,sback,cache,hashptr,ptr,numero_passe,NULL);
// resolve unresolved type
if (r != -1
@@ -3501,13 +3501,13 @@ int htsAddLink(htsmoduleStruct* str, char* link) {
if (r != -1) {
hts_log_print(opt, LOG_DEBUG, "(module): %s%s -> %s (base %s)",adr,fil,save,codebase);
- // modifié par rapport à l'autre version (cf prio_fix notamment et save2)
+ // modifié par rapport à l'autre version (cf prio_fix notamment et save2)
- // vérifier que le lien n'a pas déja été noté
- // si c'est le cas, alors il faut s'assurer que la priorité associée
- // au fichier est la plus grande des deux priorités
+ // vérifier que le lien n'a pas déja été noté
+ // si c'est le cas, alors il faut s'assurer que la priorité associée
+ // au fichier est la plus grande des deux priorités
//
- // On part de la fin et on essaye de se presser (économise temps machine)
+ // On part de la fin et on essaye de se presser (économise temps machine)
{
int i=hash_read(hashptr,save,"",0,opt->urlhack); // lecture type 0 (sav)
if (i>=0) {
@@ -3522,7 +3522,7 @@ int htsAddLink(htsmoduleStruct* str, char* link) {
// enregistrer fichier (MACRO)
liens_record(adr,fil,save,"","",opt->urlhack);
- if (liens[lien_tot]==NULL) { // erreur, pas de place réservée
+ if (liens[lien_tot]==NULL) { // erreur, pas de place réservée
printf("PANIC! : Not enough memory [%d]\n",__LINE__);
hts_log_print(opt, LOG_PANIC, "Not enough memory, can not re-allocate %d bytes",(int)((add_tab_alloc+1)*sizeof(lien_url)));
opt->state.exit_xh=-1; /* fatal error -> exit */
@@ -3534,14 +3534,14 @@ int htsAddLink(htsmoduleStruct* str, char* link) {
liens[lien_tot]->link_import=0; // pas mode import
- // écrire autres paramètres de la structure-lien
+ // écrire autres paramètres de la structure-lien
//if (meme_adresse)
liens[lien_tot]->premier=liens[ptr]->premier;
- //else // sinon l'objet père est le précédent lui même
+ //else // sinon l'objet père est le précédent lui même
// liens[lien_tot]->premier=ptr;
liens[lien_tot]->precedent=ptr;
- // noter la priorité
+ // noter la priorité
if (!set_prio_to)
liens[lien_tot]->depth=prio_fix;
else