diff options
Diffstat (limited to 'src/htscore.c')
-rw-r--r-- | src/htscore.c | 254 |
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 |