summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/htsback.c366
-rw-r--r--src/htsbase.h4
-rw-r--r--src/htsbauth.c42
-rw-r--r--src/htscache.c124
-rw-r--r--src/htscatchurl.c20
-rw-r--r--src/htsconfig.h42
-rw-r--r--src/htscore.c254
-rw-r--r--src/htscore.h54
-rw-r--r--src/htscoremain.c112
-rw-r--r--src/htscoremain.h2
-rw-r--r--src/htsfilters.c56
-rw-r--r--src/htsftp.c80
-rw-r--r--src/htsglobal.h28
-rw-r--r--src/htshash.c40
-rw-r--r--src/htshelp.c4
-rw-r--r--src/htsindex.c22
-rw-r--r--src/htsjava.c4
-rw-r--r--src/htslib.c402
-rw-r--r--src/htslib.h62
-rw-r--r--src/htsname.c174
-rw-r--r--src/htsopt.h88
-rw-r--r--src/htsparse.c622
-rw-r--r--src/htsrobots.c4
-rw-r--r--src/htsserver.c8
-rw-r--r--src/htsserver.h10
-rw-r--r--src/htstools.c52
-rw-r--r--src/htsweb.c14
-rw-r--r--src/htswizard.c180
-rw-r--r--src/httrack.c24
-rwxr-xr-xsrc/proxy/proxystrings.h2
-rw-r--r--src/proxy/proxytrack.c8
-rw-r--r--src/proxy/proxytrack.h8
-rw-r--r--src/proxy/store.c22
-rw-r--r--src/proxy/store.h8
34 files changed, 1471 insertions, 1471 deletions
diff --git a/src/htsback.c b/src/htsback.c
index 2e07121..0d4da0d 100644
--- a/src/htsback.c
+++ b/src/htsback.c
@@ -316,7 +316,7 @@ int back_cleanup_background(httrackp* opt,cache_back* cache,struct_back* sback)
return nclean;
}
-// nombre d'entrées libres dans le backing
+// nombre d'entrées libres dans le backing
int back_available(struct_back* sback) {
lien_back* const back = sback->lnk;
const int back_max = sback->count;
@@ -328,7 +328,7 @@ int back_available(struct_back* sback) {
return nb;
}
-// retourne estimation de la taille des html et fichiers stockés en mémoire
+// retourne estimation de la taille des html et fichiers stockés en mémoire
LLint back_incache(struct_back* sback) {
lien_back* const back = sback->lnk;
const int back_max = sback->count;
@@ -336,7 +336,7 @@ LLint back_incache(struct_back* sback) {
LLint sum=0;
for(i=0;i<back_max;i++)
if (back[i].status!=-1)
- if (back[i].r.adr) // ne comptabilier que les blocs en mémoire
+ if (back[i].r.adr) // ne comptabilier que les blocs en mémoire
sum+=max(back[i].r.size,back[i].r.totalsize);
// stored (ready) slots
#ifdef HTS_NO_BACK_ON_DISK
@@ -346,7 +346,7 @@ LLint back_incache(struct_back* sback) {
while((item = inthash_enum_next(&e))) {
lien_back* ritem = (lien_back*) item->value.ptr;
if (ritem->status!=-1)
- if (ritem->r.adr) // ne comptabilier que les blocs en mémoire
+ if (ritem->r.adr) // ne comptabilier que les blocs en mémoire
sum+=max(ritem->r.size,ritem->r.totalsize);
}
}
@@ -354,7 +354,7 @@ LLint back_incache(struct_back* sback) {
return sum;
}
-// retourne estimation de la taille des html et fichiers stockés en mémoire
+// retourne estimation de la taille des html et fichiers stockés en mémoire
int back_done_incache(struct_back* sback) {
lien_back* const back = sback->lnk;
const int back_max = sback->count;
@@ -381,12 +381,12 @@ int back_done_incache(struct_back* sback) {
}
-// le lien a-t-il été mis en backing?
+// le lien a-t-il été mis en backing?
HTS_INLINE int back_exist(struct_back* sback,httrackp* opt,char* adr,char* fil,char* sav) {
return (back_index_fetch(opt, sback, adr, fil, sav, /*don't fetch*/0) >= 0);
}
-// nombre de sockets en tâche de fond
+// nombre de sockets en tâche de fond
int back_nsoc(struct_back* sback) {
lien_back* const back = sback->lnk;
const int back_max = sback->count;
@@ -410,10 +410,10 @@ int back_nsoc_overall(struct_back* sback) {
return n;
}
-// objet (lien) téléchargé ou transféré depuis le cache
+// objet (lien) téléchargé ou transféré depuis le cache
//
-// fermer les paramètres de transfert,
-// et notamment vérifier les fichiers compressés (décompresser), callback etc.
+// fermer les paramètres de transfert,
+// et notamment vérifier les fichiers compressés (décompresser), callback etc.
int back_finalize(httrackp* opt, cache_back* cache, struct_back* sback, const int p) {
char catbuff[CATBUFF_SIZE];
lien_back* const back = sback->lnk;
@@ -448,14 +448,14 @@ int back_finalize(httrackp* opt, cache_back* cache, struct_back* sback, const in
if (!back[p].testmode) { // not test mode
char* state="unknown";
- /* décompression */
+ /* décompression */
#if HTS_USEZLIB
if (gz_is_available && back[p].r.compressed) {
if (back[p].r.size > 0) {
//if ( (back[p].r.adr) && (back[p].r.size>0) ) {
// stats
back[p].compressed_size=back[p].r.size;
- // en mémoire -> passage sur disque
+ // en mémoire -> passage sur disque
if (!back[p].r.is_write) {
#if 1
#ifdef _WIN32
@@ -500,7 +500,7 @@ int back_finalize(httrackp* opt, cache_back* cache, struct_back* sback, const in
fclose(back[p].r.out);
back[p].r.out=NULL;
}
- // décompression
+ // décompression
if (back[p].tmpfile != NULL && back[p].tmpfile[0] != '\0') {
if (back[p].url_sav[0]) {
LLint size;
@@ -508,7 +508,7 @@ int back_finalize(httrackp* opt, cache_back* cache, struct_back* sback, const in
filecreateempty(&opt->state.strc, back[p].url_sav); // filenote & co
if ((size = hts_zunpack(back[p].tmpfile, back[p].url_sav))>=0) {
back[p].r.size=back[p].r.totalsize=size;
- // fichier -> mémoire
+ // fichier -> mémoire
if (!back[p].r.is_write) {
deleteaddr(&back[p].r);
back[p].r.adr = readfile_utf8(back[p].url_sav);
@@ -647,7 +647,7 @@ int back_finalize(httrackp* opt, cache_back* cache, struct_back* sback, const in
HTS_STAT.stat_files++;
}
if ( (!back[p].r.notmodified) && (opt->is_update) ) {
- HTS_STAT.stat_updated_files++; // page modifiée
+ HTS_STAT.stat_updated_files++; // page modifiée
if (back[p].is_update) {
hts_log_print(opt, LOG_INFO, "engine: transfer-status: link updated: %s%s -> %s",back[p].url_adr,back[p].url_fil,back[p].url_sav);
} else {
@@ -1135,14 +1135,14 @@ int back_flush_output(httrackp* opt, cache_back* cache, struct_back* sback, cons
}
/* set file time */
if (back[p].r.is_write) { // ecriture directe
- /* écrire date "remote" */
+ /* écrire date "remote" */
if (strnotempty(back[p].url_sav)
&& strnotempty(back[p].r.lastmodified)
&& fexist_utf8(back[p].url_sav)) // normalement existe si on a un fichier de sortie
{
set_filetime_rfc822(back[p].url_sav,back[p].r.lastmodified);
}
- /* executer commande utilisateur après chargement du fichier */
+ /* executer commande utilisateur après chargement du fichier */
//xx usercommand(opt,0,NULL,back[p].url_sav, back[p].url_adr, back[p].url_fil);
back[p].r.is_write=0;
}
@@ -1151,13 +1151,13 @@ int back_flush_output(httrackp* opt, cache_back* cache, struct_back* sback, cons
return 0;
}
-// effacer entrée
+// effacer entrée
int back_delete(httrackp* opt, cache_back* cache, struct_back* sback, const int p) {
lien_back* const back = sback->lnk;
const int back_max = sback->count;
assertf(p >= 0 && p < back_max);
if (p >= 0 && p < sback->count) { // on sait jamais..
- // Vérificateur d'intégrité
+ // Vérificateur d'intégrité
#if DEBUG_CHECKINT
_CHECKINT(&back[p],"Appel back_delete")
#endif
@@ -1207,7 +1207,7 @@ static void back_set_free(lien_back* back) {
/* delete entry content (clear the entry), but don't unallocate the entry itself */
int back_clear_entry(lien_back* back) {
if (back != NULL) {
- // Libérer tous les sockets, handles, buffers..
+ // Libérer tous les sockets, handles, buffers..
if (back->r.soc!=INVALID_SOCKET) {
#if HTS_DEBUG_CLOSESOCK
DEBUG_W("back_delete: deletehttp\n");
@@ -1216,11 +1216,11 @@ int back_clear_entry(lien_back* back) {
back->r.soc=INVALID_SOCKET;
}
- if (back->r.adr!=NULL) { // reste un bloc à désallouer
+ if (back->r.adr!=NULL) { // reste un bloc à désallouer
freet(back->r.adr);
back->r.adr=NULL;
}
- if (back->chunk_adr!=NULL) { // reste un bloc à désallouer
+ if (back->chunk_adr!=NULL) { // reste un bloc à désallouer
freet(back->chunk_adr);
back->chunk_adr=NULL;
back->chunk_size=0;
@@ -1245,7 +1245,7 @@ int back_clear_entry(lien_back* back) {
back->r.soc = INVALID_SOCKET;
back->r.location = back->location_buffer;
- // Le plus important: libérer le champ
+ // Le plus important: libérer le champ
back_set_free(back);
return 1;
@@ -1288,7 +1288,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
}
#endif
- // vérifier cohérence de adr et fil (non vide!)
+ // vérifier cohérence de adr et fil (non vide!)
if (strnotempty(adr)==0) {
hts_log_print(opt, LOG_WARNING, "error: adr is empty for back_add");
return -1; // erreur!
@@ -1297,7 +1297,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
hts_log_print(opt, LOG_WARNING, "error: fil is empty for back_add");
return -1; // erreur!
}
- // FIN vérifier cohérence de adr et fil (non vide!)
+ // FIN vérifier cohérence de adr et fil (non vide!)
// stats
opt->state.back_add_stats++;
@@ -1305,7 +1305,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
// rechercher emplacement
back_clean(opt, cache, sback);
if ( ( p = back_search(opt, sback) ) >= 0) {
- back[p].send_too[0]='\0'; // éventuels paramètres supplémentaires à transmettre au serveur
+ back[p].send_too[0]='\0'; // éventuels paramètres supplémentaires à transmettre au serveur
// clear r
if (back[p].r.soc!=INVALID_SOCKET) { /* we never know */
@@ -1315,7 +1315,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
hts_init_htsblk(&back[p].r);
back[p].r.location=back[p].location_buffer;
- // créer entrée
+ // créer entrée
strcpybuff(back[p].url_adr,adr);
strcpybuff(back[p].url_fil,fil);
strcpybuff(back[p].url_sav,save);
@@ -1325,7 +1325,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
strcpybuff(back[p].referer_fil,"");
if ((referer_adr) && (referer_fil)) { // existe
if ((strnotempty(referer_adr)) && (strnotempty(referer_fil))) { // non vide
- if (referer_adr[0]!='!') { // non détruit
+ if (referer_adr[0]!='!') { // non détruit
if (strcmp(referer_adr,"file://")) { // PAS file://
if (strcmp(referer_adr,"primary")) { // pas referer 1er lien
strcpybuff(back[p].referer_adr,referer_adr);
@@ -1335,14 +1335,14 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
}
}
}
- // sav ne sert à rien pour le moment
- back[p].r.size=0; // rien n'a encore été chargé
- back[p].r.adr=NULL; // pas de bloc de mémoire
- back[p].r.is_write=0; // à priori stockage en mémoire
+ // sav ne sert à rien pour le moment
+ back[p].r.size=0; // rien n'a encore été chargé
+ back[p].r.adr=NULL; // pas de bloc de mémoire
+ back[p].r.is_write=0; // à priori stockage en mémoire
back[p].maxfile_html=opt->maxfile_html;
back[p].maxfile_nonhtml=opt->maxfile_nonhtml;
back[p].testmode=test; // mode test?
- if (!opt->http10) // option "forcer 1.0" désactivée
+ if (!opt->http10) // option "forcer 1.0" désactivée
back[p].http11=1; // autoriser http/1.1
back[p].head_request=0;
if (strcmp(back[p].url_sav,BACK_ADD_TEST)==0) // HEAD
@@ -1355,7 +1355,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
if (opt->state.stop && !opt->is_update) {
back[p].r.statuscode=STATUSCODE_INVALID; // fatal
strcpybuff(back[p].r.msg,"mirror stopped by user");
- back[p].status=STATUS_READY; // terminé
+ back[p].status=STATUS_READY; // terminé
back_set_finished(sback, p);
hts_log_print(opt, LOG_WARNING, "File not added due to mirror cancel: %s%s",adr,fil);
return 0;
@@ -1371,7 +1371,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
int code = 0;
if (sscanf(text, "%d", &code) == 1) { // got code
back[p].r.statuscode=code;
- back[p].status=STATUS_READY; // terminé
+ back[p].status=STATUS_READY; // terminé
if (lf != NULL && *lf != '\0') { // got location ?
strcpybuff(back[p].r.location, lf + 1);
}
@@ -1405,7 +1405,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
a=strstr(cache->use,buff);
#endif
- // Ok, noté en cache->. mais bien présent dans le cache ou sur disque?
+ // Ok, noté en cache->. mais bien présent dans le cache ou sur disque?
#if HTS_FAST_CACHE
// negative values when data is not in cache
if (hash_pos_return < 0) {
@@ -1420,7 +1420,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
#endif
#if HTS_FAST_CACHE==0
- if (pos<0) { // pas de mise en cache data, vérifier existence
+ if (pos<0) { // pas de mise en cache data, vérifier existence
#endif
/* note: no check with IS_DELAYED_EXT() enabled - postcheck by client please! */
if (save[0] != '\0' && !IS_DELAYED_EXT(save) && fsize_utf8(fconv(catbuff,save)) <= 0) { // fichier final n'existe pas ou est vide!
@@ -1455,11 +1455,11 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
#else
a=NULL;
#endif
- // dévalider car non présent sur disque dans structure originale!!!
- // sinon, le fichier est ok à priori, mais on renverra un if-modified-since pour
- // en être sûr
+ // dévalider car non présent sur disque dans structure originale!!!
+ // sinon, le fichier est ok à priori, mais on renverra un if-modified-since pour
+ // en être sûr
if (opt->norecatch) { // tester norecatch
- if (!fexist_utf8(fconv(catbuff,save))) { // fichier existe pas mais déclaré: on l'a effacé
+ if (!fexist_utf8(fconv(catbuff,save))) { // fichier existe pas mais déclaré: on l'a effacé
FILE* fp=FOPEN(fconv(catbuff,save),"wb");
if (fp) fclose(fp);
hts_log_print(opt, LOG_WARNING, "Previous file '%s' not found (erased by user ?), ignoring: %s%s",save,back[p].url_adr,back[p].url_fil);
@@ -1483,25 +1483,25 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
#endif
}
- // Existe pas en cache, ou bien pas de cache présent
+ // Existe pas en cache, ou bien pas de cache présent
#if HTS_FAST_CACHE
- if (hash_pos_return) { // OK existe en cache (et données aussi)!
+ if (hash_pos_return) { // OK existe en cache (et données aussi)!
#else
- if (a!=NULL) { // OK existe en cache (et données aussi)!
+ if (a!=NULL) { // OK existe en cache (et données aussi)!
#endif
const int cache_is_prioritary = cache->type == 1 || opt->state.stop != 0;
if (cache_is_prioritary) { // cache prioritaire (pas de test if-modified..)
- // dans ce cas on peut également lire des réponses cachées comme 404,302...
+ // dans ce cas on peut également lire des réponses cachées comme 404,302...
// lire dans le cache
if (!test)
back[p].r = cache_read(opt,cache,adr,fil,save, back[p].location_buffer);
else
- back[p].r = cache_read(opt,cache,adr,fil,NULL, back[p].location_buffer); // charger en tête uniquement du cache
+ back[p].r = cache_read(opt,cache,adr,fil,NULL, back[p].location_buffer); // charger en tête uniquement du cache
/* ensure correct location buffer set */
back[p].r.location=back[p].location_buffer;
- /* Interdiction taille par le wizard? --> détruire */
+ /* Interdiction taille par le wizard? --> détruire */
if (back[p].r.statuscode != -1) { // pas d'erreur de lecture
if (!back_checksize(opt,&back[p],0)) {
back[p].status=STATUS_READY; // FINI
@@ -1515,14 +1515,14 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
}
}
- if (back[p].r.statuscode != -1 || IS_DELAYED_EXT(save)) { // pas d'erreur de lecture ou test retardé
+ if (back[p].r.statuscode != -1 || IS_DELAYED_EXT(save)) { // pas d'erreur de lecture ou test retardé
if (!test) {
hts_log_print(opt, LOG_DEBUG, "File immediately loaded from cache: %s%s",back[p].url_adr,back[p].url_fil);
} else {
hts_log_print(opt, LOG_DEBUG, "File immediately tested from cache: %s%s",back[p].url_adr,back[p].url_fil);
}
- back[p].r.notmodified=1; // fichier non modifié
- back[p].status=STATUS_READY; // OK prêt
+ back[p].r.notmodified=1; // fichier non modifié
+ back[p].status=STATUS_READY; // OK prêt
//file_notify(back[p].url_adr, back[p].url_fil, back[p].url_sav, 0, 0, back[p].r.notmodified); // not modified
back_set_finished(sback, p);
@@ -1632,12 +1632,12 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
/* Not in cache or temporary cache ; found on disk ? (hack) */
else if (fexist_utf8(save)) {
off_t sz=fsize_utf8(save);
- // Bon, là il est possible que le fichier ait été partiellement transféré
- // (s'il l'avait été en totalité il aurait été inscrit dans le cache ET existerait sur disque)
- // PAS de If-Modified-Since, on a pas connaissance des données à la date du cache
- // On demande juste les données restantes si le date est valide (206), tout sinon (200)
- if ((ishtml(opt,save) != 1) && (ishtml(opt,back[p].url_fil)!=1)) { // NON HTML (liens changés!!)
- if (sz>0) { // Fichier non vide? (question bête, sinon on transfert tout!)
+ // Bon, là il est possible que le fichier ait été partiellement transféré
+ // (s'il l'avait été en totalité il aurait été inscrit dans le cache ET existerait sur disque)
+ // PAS de If-Modified-Since, on a pas connaissance des données à la date du cache
+ // On demande juste les données restantes si le date est valide (206), tout sinon (200)
+ if ((ishtml(opt,save) != 1) && (ishtml(opt,back[p].url_fil)!=1)) { // NON HTML (liens changés!!)
+ if (sz>0) { // Fichier non vide? (question bête, sinon on transfert tout!)
char lastmodified[256];
get_filetime_rfc822(save, lastmodified);
if (strnotempty(lastmodified)) { /* pas de If-.. possible */
@@ -1649,17 +1649,17 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
/* impossible - don't have etag or date
if (strnotempty(back[p].r.etag)) { // ETag (RFC2616)
sprintf(back[p].send_too,"If-None-Match: %s\r\n",back[p].r.etag);
- back[p].http11=1; // En tête 1.1
+ back[p].http11=1; // En tête 1.1
} else if (strnotempty(back[p].r.lastmodified)) {
sprintf(back[p].send_too,"If-Unmodified-Since: %s\r\n",back[p].r.lastmodified);
- back[p].http11=1; // En tête 1.1
+ back[p].http11=1; // En tête 1.1
} else
*/
if (strlen(lastmodified)) {
sprintf(back[p].send_too,
"If-Unmodified-Since: %s\r\nRange: bytes="LLintP"-\r\n"
, lastmodified, (LLint)sz);
- back[p].http11=1; // En tête 1.1
+ back[p].http11=1; // En tête 1.1
back[p].is_update=1; /* this is an update of a file */
back[p].range_req_size=sz;
back[p].r.req.range_used=1;
@@ -1670,13 +1670,13 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
} else {
hts_log_print(opt, LOG_NOTICE, "File partially present ("LLintP" bytes) retransfered due to lack of cache: %s%s",(LLint)sz,back[p].url_adr,back[p].url_fil);
- /* Sinon requête normale... */
+ /* Sinon requête normale... */
back[p].http11=0;
}
} else if (opt->norecatch) { // tester norecatch
- filenote(&opt->state.strc,save,NULL); // ne pas purger tout de même
+ filenote(&opt->state.strc,save,NULL); // ne pas purger tout de même
file_notify(opt,back[p].url_adr, back[p].url_fil, back[p].url_sav, 0, 0, back[p].r.notmodified);
- back[p].status=STATUS_READY; // OK prêt
+ back[p].status=STATUS_READY; // OK prêt
back_set_finished(sback, p);
back[p].r.statuscode=STATUSCODE_INVALID; // erreur
strcpybuff(back[p].r.msg,"Null-size file not recaught");
@@ -1684,7 +1684,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
}
} else {
hts_log_print(opt, LOG_NOTICE, "HTML file ("LLintP" bytes) retransfered due to lack of cache: %s%s",(LLint)sz,back[p].url_adr,back[p].url_fil);
- /* Sinon requête normale... */
+ /* Sinon requête normale... */
back[p].http11=0;
}
}
@@ -1694,18 +1694,18 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
if (opt->state.stop) {
back[p].r.statuscode=STATUSCODE_INVALID; // fatal
strcpybuff(back[p].r.msg,"mirror stopped by user");
- back[p].status=STATUS_READY; // terminé
+ back[p].status=STATUS_READY; // terminé
back_set_finished(sback, p);
hts_log_print(opt, LOG_WARNING, "File not added due to mirror cancel: %s%s",adr,fil);
return 0;
}
{
- ///htsblk r; non directement dans la structure-réponse!
+ ///htsblk r; non directement dans la structure-réponse!
T_SOC soc;
- // ouvrir liaison, envoyer requète
- // ne pas traiter ou recevoir l'en tête immédiatement
+ // ouvrir liaison, envoyer requète
+ // ne pas traiter ou recevoir l'en tête immédiatement
hts_init_htsblk(&back[p].r);
//memset(&(back[p].r), 0, sizeof(htsblk));
back[p].r.location=back[p].location_buffer;
@@ -1734,7 +1734,7 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
hts_log_print(opt, LOG_DEBUG, "error: forbidden test with ftp link for back_add");
return -1; // erreur pas de test permis
}
- if (!(back[p].r.req.proxy.active && opt->ftp_proxy)) { // connexion directe, gérée en thread
+ if (!(back[p].r.req.proxy.active && opt->ftp_proxy)) { // connexion directe, gérée en thread
FTPDownloadStruct *str = (FTPDownloadStruct*) malloc(sizeof(FTPDownloadStruct));
str->pBack = &back[p];
str->pOpt = opt;
@@ -1778,10 +1778,10 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
#if HDEBUG
printf("back_solve..\n");
#endif
- back[p].status=STATUS_WAIT_DNS; // tentative de résolution du nom de host
+ back[p].status=STATUS_WAIT_DNS; // tentative de résolution du nom de host
soc=INVALID_SOCKET; // pas encore ouverte
- back_solve(opt, &back[p]); // préparer
- if (host_wait(opt, &back[p])) { // prêt, par ex fichier ou dispo dans dns
+ back_solve(opt, &back[p]); // préparer
+ if (host_wait(opt, &back[p])) { // prêt, par ex fichier ou dispo dans dns
#if HDEBUG
printf("ok, dns cache ready..\n");
#endif
@@ -1826,14 +1826,14 @@ int back_add(struct_back* sback,httrackp* opt,cache_back* cache,char* adr,char*
back[p].timeout=-1; // pas de gestion (default)
}
- if (opt->rateout>0) { // gestion d'un taux minimum de transfert toléré
+ if (opt->rateout>0) { // gestion d'un taux minimum de transfert toléré
back[p].rateout=opt->rateout;
back[p].rateout_time=time_local();
} else {
back[p].rateout=-1; // pas de gestion (default)
}
- // Note: on charge les code-page erreurs (erreur 404, etc) dans le cas où cela est
+ // Note: on charge les code-page erreurs (erreur 404, etc) dans le cas où cela est
// rattrapable (exemple: 301,302 moved xxx -> refresh sur la page!)
//if ((back[p].statuscode!=HTTP_OK) || (soc<0)) { // ERREUR HTTP/autre
@@ -1861,7 +1861,7 @@ printf("Xfopen ok, poll..\n");
#if HTS_XCONN
back[p].status=STATUS_CONNECTING; // connexion en cours
#else
- back[p].status=99; // chargement en tête en cours
+ back[p].status=99; // chargement en tête en cours
#endif
else
back[p].status=1; // chargement fichier
@@ -1874,8 +1874,8 @@ printf("Xfopen ok, poll..\n");
}
- // note: si il y a erreur (404,etc) status=2 (terminé/échec) mais
- // le lien est considéré comme traité
+ // note: si il y a erreur (404,etc) status=2 (terminé/échec) mais
+ // le lien est considéré comme traité
//if (back[p].soc<0) // erreur
// return -1;
@@ -1940,12 +1940,12 @@ void Hostlookup(void* pP) {
t_hostent* hp;
int error_found=0;
- // recopier (après id:pass)
+ // recopier (après id:pass)
#if DEBUGDNS
printf("resolv in background: %s\n",jump_identification(iadr_p));
#endif
strcpybuff(iadr,jump_identification(str->iadr_p));
- // couper éventuel :
+ // couper éventuel :
{
char *a;
if ( (a=jump_toport(iadr)) )
@@ -2000,8 +2000,8 @@ void Hostlookup(void* pP) {
}
#endif
-// attendre que le host (ou celui du proxy) ait été résolu
-// si c'est un fichier, la résolution est immédiate
+// attendre que le host (ou celui du proxy) ait été résolu
+// si c'est un fichier, la résolution est immédiate
// idem pour ftp://
void back_solve(httrackp *opt, lien_back* back) {
if ((!strfield(back->url_adr,"file://"))
@@ -2010,14 +2010,14 @@ void back_solve(httrackp *opt, lien_back* back) {
&& ! strfield(back->url_adr,"mms://")
#endif
) {
- //## if (back->url_adr[0]!=lOCAL_CHAR) { // qq chose à préparer
+ //## if (back->url_adr[0]!=lOCAL_CHAR) { // qq chose à préparer
const char* a;
if (!(back->r.req.proxy.active))
a=back->url_adr;
else
a=back->r.req.proxy.name;
a = jump_protocol(a);
- if (!hts_dnstest(opt, a)) { // non encore testé!..
+ if (!hts_dnstest(opt, a)) { // non encore testé!..
// inscire en thread
#ifdef _WIN32
// Windows
@@ -2051,7 +2051,7 @@ void back_solve(httrackp *opt, lien_back* back) {
}
}
-// détermine si le host a pu être résolu
+// détermine si le host a pu être résolu
int host_wait(httrackp *opt, lien_back* back) {
if ((!strfield(back->url_adr,"file://"))
&& (!strfield(back->url_adr,"ftp://"))
@@ -2065,12 +2065,12 @@ int host_wait(httrackp *opt, lien_back* back) {
} else {
return (hts_dnstest(opt, back->r.req.proxy.name));
}
- } else return 1; // prêt, fichier local
+ } else return 1; // prêt, fichier local
}
#endif
-// élimine les fichiers non html en backing (anticipation)
+// élimine les fichiers non html en backing (anticipation)
// cleanup non-html files in backing to save backing space
// and allow faster "save in cache" operation
// also cleanup keep-alive sockets and ensure that not too many sockets are being opened
@@ -2219,9 +2219,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
struct timeval tv;
int do_wait=0;
int gestion_timeout=0;
- int busy_recv=0; // pas de données pour le moment
+ int busy_recv=0; // pas de données pour le moment
int busy_state=0; // pas de connexions
- int max_loop; // nombre de boucles max à parcourir..
+ int max_loop; // nombre de boucles max à parcourir..
int max_loop_chk=0;
unsigned int mod_random = (unsigned int) ( time_local() + HTS_STAT.HTS_TOTAL_RECV );
@@ -2233,7 +2233,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
back_clean(opt,cache,sback);
#endif
- // recevoir tant qu'il y a des données (avec un maximum de max_loop boucles)
+ // recevoir tant qu'il y a des données (avec un maximum de max_loop boucles)
do_wait=0;
gestion_timeout=0;
do {
@@ -2241,9 +2241,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
busy_state=busy_recv=0;
#if 0
- check_rate(stat_timestart,opt->maxrate); // vérifier taux de transfert
+ check_rate(stat_timestart,opt->maxrate); // vérifier taux de transfert
#endif
- // inscrire les sockets actuelles, et rechercher l'ID la plus élevée
+ // inscrire les sockets actuelles, et rechercher l'ID la plus élevée
FD_ZERO(&fds);
FD_ZERO(&fds_c);
FD_ZERO(&fds_e);
@@ -2256,7 +2256,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// for(i=0;i<back_max;i++) {
unsigned int i = ( i_mod + mod_random ) % ( back_max );
- // en cas de gestion du connect préemptif
+ // en cas de gestion du connect préemptif
#if HTS_XCONN
if (back[i].status==STATUS_CONNECTING) { // connexion
do_wait=1;
@@ -2272,7 +2272,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
max_c=0;
nfds=back[i].r.soc;
} else if (back[i].r.soc>nfds) {
- // ID socket la plus élevée
+ // ID socket la plus élevée
nfds=back[i].r.soc;
}
@@ -2280,11 +2280,11 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
#endif
#if HTS_XGETHOST
if (back[i].status==STATUS_WAIT_DNS) { // attente
- // rien à faire..
+ // rien à faire..
} else
#endif
// poll pour la lecture sur les sockets
- if ((back[i].status>0) && (back[i].status<100)) { // en réception http
+ if ((back[i].status>0) && (back[i].status<100)) { // en réception http
#if BDEBUG==1
//printf("....socket in progress: %d\n",back[i].r.soc);
@@ -2293,7 +2293,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (!back[i].r.is_file) {
//## if (back[i].url_adr[0]!=lOCAL_CHAR) {
- // vérification de sécurité
+ // vérification de sécurité
if (back[i].r.soc!=INVALID_SOCKET) { // hey, you never know..
// Do not endlessly wait when receiving SSL http data (Patrick Pfeifer)
if (!(back[i].r.ssl && back[i].status > 0 && back[i].status < 1000)) {
@@ -2305,7 +2305,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// noter socket error
FD_SET(back[i].r.soc,&fds_e);
- // incrémenter nombre de sockets
+ // incrémenter nombre de sockets
nsockets++;
// calculer max
@@ -2313,7 +2313,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
max_c=0;
nfds=back[i].r.soc;
} else if (back[i].r.soc>nfds) {
- // ID socket la plus élevée
+ // ID socket la plus élevée
nfds=back[i].r.soc;
}
}
@@ -2323,7 +2323,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
strcpybuff(back[i].r.msg,"Connect Error");
else
strcpybuff(back[i].r.msg,"Receive Error");
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
hts_log_print(opt, LOG_WARNING, "Unexpected socket error during pre-loop");
}
@@ -2368,7 +2368,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (!max_read_bytes)
busy_recv=0;
- // recevoir les données arrivées
+ // recevoir les données arrivées
for(i_mod = 0 ; i_mod < (unsigned int) back_max ; i_mod++) {
// for(i=0;i<back_max;i++) {
unsigned int i = ( i_mod + mod_random ) % ( back_max );
@@ -2392,7 +2392,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (back[i].status == STATUS_ALIVE) { /* Keep-alive socket */
back_delete(opt,cache,sback, i);
} else {
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
}
}
@@ -2403,12 +2403,12 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// ---- FLAG WRITE MIS A UN?: POUR LE CONNECT
if (back[i].status==STATUS_CONNECTING) { // attendre connect
int dispo=0;
- // vérifier l'existance de timeout-check
+ // vérifier l'existance de timeout-check
if (!gestion_timeout)
if (back[i].timeout>0)
gestion_timeout=1;
- // connecté?
+ // connecté?
dispo=FD_ISSET(back[i].r.soc,&fds_c);
if (dispo) { // ok connected!!
busy_state=1;
@@ -2458,7 +2458,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (back[i].timeout>0) { // refresh timeout si besoin est
back[i].timeout_refresh=back[i].ka_time_start;
}
- if (back[i].rateout>0) { // le taux de transfert de base sur le début de la connexion
+ if (back[i].rateout>0) { // le taux de transfert de base sur le début de la connexion
back[i].rateout_time=back[i].ka_time_start;
}
// envoyer header
@@ -2470,7 +2470,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
http_sendhead(opt, opt->cookie,0,back[i].send_too,back[i].url_adr,back[i].url_fil,back[i].referer_adr,back[i].referer_fil,&back[i].r);
else // test!
http_sendhead(opt, opt->cookie,1,back[i].send_too,back[i].url_adr,back[i].url_fil,back[i].referer_adr,back[i].referer_fil,&back[i].r);
- back[i].status=99; // attendre en tête maintenant
+ back[i].status=99; // attendre en tête maintenant
}
}
@@ -2527,12 +2527,12 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (back[i].timeout>0)
gestion_timeout=1;
- if (host_wait(opt, &back[i])) { // prêt
+ if (host_wait(opt, &back[i])) { // prêt
back[i].status=STATUS_CONNECTING; // attente connexion
if (back[i].timeout>0) { // refresh timeout si besoin est
back[i].timeout_refresh=time_local();
}
- if (back[i].rateout>0) { // le taux de transfert de base sur le début de la connexion
+ if (back[i].rateout>0) { // le taux de transfert de base sur le début de la connexion
back[i].rateout_time=time_local();
}
@@ -2558,10 +2558,10 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
#endif
#if USE_BEGINTHREAD
- // ..rien à faire, c'est magic les threads
+ // ..rien à faire, c'est magic les threads
#else
- else if (back[i].status==STATUS_FTP_TRANSFER) { // en réception ftp
- if (!fexist(back[i].location_buffer)) { // terminé
+ else if (back[i].status==STATUS_FTP_TRANSFER) { // en réception ftp
+ if (!fexist(back[i].location_buffer)) { // terminé
FILE* fp;
fp=FOPEN(fconcat(OPT_GET_BUFF(opt), back[i].location_buffer,".ok"),"rb");
if (fp) {
@@ -2597,15 +2597,15 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
back_finalize(opt,cache,sback,i);
}
}
- else if ((back[i].status>0) && (back[i].status<1000)) { // en réception http
+ else if ((back[i].status>0) && (back[i].status<1000)) { // en réception http
int dispo=0;
- // vérifier l'existance de timeout-check
+ // vérifier l'existance de timeout-check
if (!gestion_timeout)
if (back[i].timeout>0)
gestion_timeout=1;
- // données dispo?
+ // données dispo?
//## if (back[i].url_adr[0]!=lOCAL_CHAR)
if (back[i].r.is_file)
dispo=1;
@@ -2618,9 +2618,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (!max_read_bytes)
dispo=0; // limit transfer rate
- if (dispo) { // données dispo
+ if (dispo) { // données dispo
LLint retour_fread;
- busy_recv=1; // on récupère encore
+ busy_recv=1; // on récupère encore
#if BDEBUG==1
printf("..data available on socket %d\n",back[i].r.soc);
#endif
@@ -2631,10 +2631,10 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
#if HTS_DIRECTDISK
// Court-circuit:
// Peut-on stocker le fichier directement sur disque?
- // Ahh que ca serait vachement mieux et que ahh que la mémoire vous dit merci!
+ // Ahh que ca serait vachement mieux et que ahh que la mémoire vous dit merci!
if (back[i].status) {
- if (back[i].r.is_write==0) { // mode mémoire
- if (back[i].r.adr==NULL) { // rien n'a été écrit
+ if (back[i].r.is_write==0) { // mode mémoire
+ if (back[i].r.adr==NULL) { // rien n'a été écrit
if (!back[i].testmode) { // pas mode test
if (strnotempty(back[i].url_sav)) {
if (strcmp(back[i].url_fil,"/robots.txt")) {
@@ -2643,7 +2643,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (opt->getmode&2) { // on peut ecrire des non html
int fcheck=0;
int last_errno = 0;
- back[i].r.is_write=1; // écrire
+ back[i].r.is_write=1; // écrire
if (back[i].r.compressed
&&
/* .gz are *NOT* depacked!! */
@@ -2709,7 +2709,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
} else { // on coupe tout!
hts_log_print(opt, LOG_DEBUG, "File cancelled (non HTML): %s%s",back[i].url_adr,back[i].url_fil);
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
if (!back[i].testmode)
back[i].r.statuscode=STATUSCODE_INVALID; // EUHH CANCEL
@@ -2733,15 +2733,15 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
#endif
- // réception de données depuis socket ou fichier
+ // réception de données depuis socket ou fichier
if (back[i].status) {
if (back[i].status==STATUS_WAIT_HEADERS) // recevoir par bloc de lignes
retour_fread=http_xfread1(&(back[i].r),0);
- else if (back[i].status==STATUS_CHUNK_WAIT || back[i].status==STATUS_CHUNK_CR) { // recevoir longueur chunk en hexa caractère par caractère
+ else if (back[i].status==STATUS_CHUNK_WAIT || back[i].status==STATUS_CHUNK_CR) { // recevoir longueur chunk en hexa caractère par caractère
// backuper pour lire dans le buffer chunk
htsblk r;
memcpy(&r, &(back[i].r), sizeof(htsblk));
- back[i].r.is_write=0; // mémoire
+ back[i].r.is_write=0; // mémoire
back[i].r.adr=back[i].chunk_adr; // adresse
back[i].r.size=back[i].chunk_size; // taille taille chunk
back[i].r.totalsize=-1; // total inconnu
@@ -2753,9 +2753,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// modifier et restaurer
back[i].chunk_adr=back[i].r.adr; // adresse
back[i].chunk_size=back[i].r.size; // taille taille chunk
- memcpy(&(back[i].r), &r, sizeof(htsblk)); // restaurer véritable r
+ memcpy(&(back[i].r), &r, sizeof(htsblk)); // restaurer véritable r
}
- else if (back[i].is_chunk) { // attention chunk, limiter taille à lire
+ else if (back[i].is_chunk) { // attention chunk, limiter taille à lire
#if CHUNKDEBUG==1
printf("[%d] read %d bytes\n",(int)back[i].r.soc,(int)min(back[i].r.totalsize-back[i].r.size,max_read_bytes));
#endif
@@ -2764,9 +2764,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
retour_fread=(int) http_xfread1(&(back[i].r),(int) max_read_bytes);
// retour_fread=http_fread1(&(back[i].r));
} else
- retour_fread=READ_EOF; // interruption ou annulation interne (peut ne pas être une erreur)
+ retour_fread=READ_EOF; // interruption ou annulation interne (peut ne pas être une erreur)
- // Si réception chunk, tester si on est pas à la fin!
+ // Si réception chunk, tester si on est pas à la fin!
if (back[i].status==1) {
if (back[i].is_chunk) { // attendre prochain chunk
if (back[i].r.size==back[i].r.totalsize) { // fin chunk!
@@ -2789,8 +2789,8 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
}
- if (retour_fread < 0) { // fin réception
- back[i].status=STATUS_READY; // terminé
+ if (retour_fread < 0) { // fin réception
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
/*KA back[i].r.soc=INVALID_SOCKET; */
#if CHUNKDEBUG==1
@@ -2832,7 +2832,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (back[i].r.totalsize>=0) { // tester totalsize
//if ((back[i].r.totalsize>=0) && (back[i].status==STATUS_WAIT_HEADERS)) { // tester totalsize
- if (back[i].r.totalsize!=back[i].r.size) { // pas la même!
+ if (back[i].r.totalsize!=back[i].r.size) { // pas la même!
if (!opt->tolerant) {
//#if HTS_CL_IS_FATAL
deleteaddr(&back[i].r);
@@ -2850,13 +2850,13 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
#if BDEBUG==1
printf("transfer ok\n");
#endif
- } else if (retour_fread > 0) { // pas d'erreur de réception et data
+ } else if (retour_fread > 0) { // pas d'erreur de réception et data
if (back[i].timeout>0) { // refresh timeout si besoin est
back[i].timeout_refresh=time_local();
}
- // Traitement des en têtes chunks ou en têtes
- if (back[i].status==STATUS_CHUNK_WAIT || back[i].status==STATUS_CHUNK_CR) { // réception taille chunk en hexa ( après les en têtes, peut ne pas
+ // Traitement des en têtes chunks ou en têtes
+ if (back[i].status==STATUS_CHUNK_WAIT || back[i].status==STATUS_CHUNK_CR) { // réception taille chunk en hexa ( après les en têtes, peut ne pas
if (back[i].chunk_size > 0 && back[i].chunk_adr[back[i].chunk_size-1]==10) {
int chunk_size=-1;
char chunk_data[64];
@@ -2875,7 +2875,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
printf("[%d] chunk received and read: %s\n",(int)back[i].r.soc,chunk_data);
#endif
if (back[i].r.totalsize<0)
- back[i].r.totalsize=0; // initialiser à 0 (-1 == unknown)
+ back[i].r.totalsize=0; // initialiser à 0 (-1 == unknown)
if (back[i].status==STATUS_CHUNK_WAIT) { // "real" chunk
if (sscanf(chunk_data,"%x",&chunk_size) == 1) {
if (chunk_size > 0)
@@ -2975,7 +2975,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
/* Tester totalsize en fin de chunk */
if ((back[i].r.totalsize>=0)) { // tester totalsize
- if (back[i].r.totalsize!=back[i].r.size) { // pas la même!
+ if (back[i].r.totalsize!=back[i].r.size) { // pas la même!
if (!opt->tolerant) {
deleteaddr(&back[i].r);
back[i].r.statuscode=STATUSCODE_INVALID;
@@ -3008,7 +3008,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
} // taille buffer chunk > 1 && LF
//
- } else if (back[i].status==STATUS_WAIT_HEADERS) { // en têtes (avant le chunk si il est présent)
+ } else if (back[i].status==STATUS_WAIT_HEADERS) { // en têtes (avant le chunk si il est présent)
//
if (back[i].r.size>=2) {
// double LF
@@ -3030,8 +3030,8 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (back[i].status != 0 && back[i].r.adr[0] != '<') {
// ----------------------------------------
- // traiter en-tête!
- // status-line à récupérer
+ // traiter en-tête!
+ // status-line à récupérer
ptr+=binput(back[i].r.adr+ptr,rcvd,2000);
if (strnotempty(rcvd)==0) {
/* Bogus CRLF, OR recycled connection and trailing chunk CRLF */
@@ -3051,10 +3051,10 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
fprintfio(ioinfo,back[i].r.adr,">>> ");
fprintf(ioinfo,"\r\n");
fflush(ioinfo);
- } // en-tête
+ } // en-tête
}
- // header // ** !attention! HTTP/0.9 non supporté
+ // header // ** !attention! HTTP/0.9 non supporté
do {
ptr+=binput(back[i].r.adr+ptr,rcvd,2000);
#if HDEBUG
@@ -3072,7 +3072,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (strnotempty(rcvd))
treathead(opt->cookie,back[i].url_adr,back[i].url_fil,&back[i].r,rcvd); // traiter
- // parfois les serveurs buggés renvoient un content-range avec un 200
+ // parfois les serveurs buggés renvoient un content-range avec un 200
if (back[i].r.statuscode==HTTP_OK) // 'OK'
if (strfield(rcvd, "content-range:")) { // Avec un content-range: relisez les RFC..
// Fake range (the file is complete)
@@ -3180,9 +3180,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// And answer with a 200 (OK) response, and the same page
// If the size is the same, and the option has been set, we assume
// that the file is identical - and therefore let's break the connection
- if (back[i].is_update) { // mise à jour
+ if (back[i].is_update) { // mise à jour
if (back[i].r.statuscode==HTTP_OK && !back[i].testmode) { // 'OK'
- htsblk r = cache_read(opt,cache,back[i].url_adr,back[i].url_fil,NULL,NULL); // lire entrée cache
+ htsblk r = cache_read(opt,cache,back[i].url_adr,back[i].url_fil,NULL,NULL); // lire entrée cache
if (r.statuscode == HTTP_OK) { // OK pas d'erreur cache
LLint len1,len2;
len1=r.totalsize;
@@ -3210,7 +3210,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// Various hacks to limit re-transfers when updating a mirror
// Detect already downloaded file (with another browser, for example)
if (opt->sizehack) {
- if (!back[i].is_update) { // mise à jour
+ if (!back[i].is_update) { // mise à jour
if (back[i].r.statuscode==HTTP_OK && !back[i].testmode) { // 'OK'
if (!is_hypertext_mime(opt,back[i].r.contenttype, back[i].url_fil)) { // not HTML
if (strnotempty(back[i].url_sav)) { // target found
@@ -3240,8 +3240,8 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// and received a complete file notification (200), with 'Content-length: NNN'
// it might be possible that we had the complete file
// this is the case in *most* cases, so break the connection
- if (back[i].r.is_write==0) { // mode mémoire
- if (back[i].r.adr==NULL) { // rien n'a été écrit
+ if (back[i].r.is_write==0) { // mode mémoire
+ if (back[i].r.adr==NULL) { // rien n'a été écrit
if (!back[i].testmode) { // pas mode test
if (strnotempty(back[i].url_sav)) {
if (strcmp(back[i].url_fil,"/robots.txt")) {
@@ -3296,8 +3296,8 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
/* sinon, continuer */
- /* if (back[i].r.soc!=INVALID_SOCKET) { // ok récupérer body? */
- // head: terminé
+ /* if (back[i].r.soc!=INVALID_SOCKET) { // ok récupérer body? */
+ // head: terminé
if (back[i].head_request) {
hts_log_print(opt, LOG_DEBUG, "Tested file: %s%s",back[i].url_adr,back[i].url_fil);
#if HTS_DEBUG_CLOSESOCK
@@ -3307,13 +3307,13 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (!back[i].http11) { /* NO KA */
deletehttp(&back[i].r); back[i].r.soc=INVALID_SOCKET;
}
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
}
- // traiter une éventuelle erreur 304 (cache à jour utilisable)
- else if (back[i].r.statuscode==HTTP_NOT_MODIFIED) { // document à jour dans le cache
+ // traiter une éventuelle erreur 304 (cache à jour utilisable)
+ else if (back[i].r.statuscode==HTTP_NOT_MODIFIED) { // document à jour dans le cache
// lire dans le cache
- // ** NOTE: pas de vérif de la taille ici!!
+ // ** NOTE: pas de vérif de la taille ici!!
#if HTS_DEBUG_CLOSESOCK
DEBUG_W("back_wait(file is not modified): deletehttp\n");
#endif
@@ -3343,9 +3343,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
// Status is okay?
if (back[i].r.statuscode!=-1) { // pas d'erreur de lecture
- back[i].status=STATUS_READY; // OK prêt
+ back[i].status=STATUS_READY; // OK prêt
back_set_finished(sback, i);
- back[i].r.notmodified=1; // NON modifié!
+ back[i].r.notmodified=1; // NON modifié!
hts_log_print(opt, LOG_DEBUG, "File loaded after test from cache: %s%s",back[i].url_adr,back[i].url_fil);
// finalize
@@ -3355,12 +3355,12 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
#if DEBUGCA
- printf("..document à jour après requète: %s%s\n",back[i].url_adr,back[i].url_fil);
+ printf("..document à jour après requète: %s%s\n",back[i].url_adr,back[i].url_fil);
#endif
//printf(">%s status %d\n",back[p].r.contenttype,back[p].r.statuscode);
} else { // erreur
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
//printf("erreur cache\n");
@@ -3371,7 +3371,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
} else if (HTTP_IS_REDIRECT(back[i].r.statuscode)
|| (back[i].r.statuscode==412)
|| (back[i].r.statuscode==416)
- ) { // Ne pas prendre le html, erreurs connues et gérées
+ ) { // Ne pas prendre le html, erreurs connues et gérées
#if HTS_DEBUG_CLOSESOCK
DEBUG_W("back_wait(301,302,303,307,412,416..): deletehttp\n");
#endif
@@ -3379,7 +3379,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
/*KA deletehttp(&back[i].r); back[i].r.soc=INVALID_SOCKET;*/
back_maydeletehttp(opt, cache, sback, i);
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
// finalize
if (back[i].r.statuscode>0) {
@@ -3389,7 +3389,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
/********** **************************** ********** */
} else { // il faut aller le chercher
- // effacer buffer (requète)
+ // effacer buffer (requète)
if (!noFreebuff) {
deleteaddr(&back[i].r);
back[i].r.size=0;
@@ -3404,17 +3404,17 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
#endif
if (sz>=0) {
if (!is_hypertext_mime(opt,back[i].r.contenttype, back[i].url_sav)) { // pas HTML
- if (opt->getmode&2) { // on peut ecrire des non html **sinon ben euhh sera intercepté plus loin, donc rap sur ce qui va sortir**
+ if (opt->getmode&2) { // on peut ecrire des non html **sinon ben euhh sera intercepté plus loin, donc rap sur ce qui va sortir**
filenote(&opt->state.strc,back[i].url_sav,NULL); // noter fichier comme connu
file_notify(opt,back[i].url_adr, back[i].url_fil, back[i].url_sav, 0, 1, back[i].r.notmodified);
back[i].r.out=FOPEN(fconv(catbuff,back[i].url_sav),"ab"); // append
if (back[i].r.out) {
- back[i].r.is_write=1; // écrire
- back[i].r.size=sz; // déja écrit
+ back[i].r.is_write=1; // écrire
+ back[i].r.size=sz; // déja écrit
back[i].r.statuscode=HTTP_OK; // Forcer 'OK'
if (back[i].r.totalsize>=0)
back[i].r.totalsize+=sz; // plus en fait
- fseek(back[i].r.out,0,SEEK_END); // à la fin
+ fseek(back[i].r.out,0,SEEK_END); // à la fin
/* create a temporary reference file in case of broken mirror */
if (back_serialize_ref(opt, &back[i]) != 0) {
hts_log_print(opt, LOG_WARNING, "Could not create temporary reference file for %s%s",back[i].url_adr,back[i].url_fil);
@@ -3423,12 +3423,12 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
printf("continue interrupted file\n");
#endif
} else { // On est dans la m**
- back[i].status=STATUS_READY; // terminé (voir plus loin)
+ back[i].status=STATUS_READY; // terminé (voir plus loin)
back_set_finished(sback, i);
strcpybuff(back[i].r.msg,"Can not open partial file");
}
}
- } else { // mémoire
+ } else { // mémoire
FILE* fp=FOPEN(fconv(catbuff,back[i].url_sav),"rb");
if (fp) {
LLint alloc_mem=sz + 1;
@@ -3439,7 +3439,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
if (back[i].r.totalsize>=0)
back[i].r.totalsize+=sz; // plus en fait
if (( fread(back[i].r.adr,1,sz,fp)) != sz) {
- back[i].status=STATUS_READY; // terminé (voir plus loin)
+ back[i].status=STATUS_READY; // terminé (voir plus loin)
back_set_finished(sback, i);
strcpybuff(back[i].r.msg,"Can not read partial file");
} else {
@@ -3449,19 +3449,19 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
#endif
}
} else {
- back[i].status=STATUS_READY; // terminé (voir plus loin)
+ back[i].status=STATUS_READY; // terminé (voir plus loin)
back_set_finished(sback, i);
strcpybuff(back[i].r.msg,"No memory for partial file");
}
fclose(fp);
} else { // Argh..
- back[i].status=STATUS_READY; // terminé (voir plus loin)
+ back[i].status=STATUS_READY; // terminé (voir plus loin)
back_set_finished(sback, i);
strcpybuff(back[i].r.msg,"Can not open partial file");
}
}
- } else { // Non trouvé??
- back[i].status=STATUS_READY; // terminé (voir plus loin)
+ } else { // Non trouvé??
+ back[i].status=STATUS_READY; // terminé (voir plus loin)
back_set_finished(sback, i);
strcpybuff(back[i].r.msg,"Can not find partial file");
}
@@ -3481,14 +3481,14 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
}
}
- if (back[i].status!=0) { // non terminé (erreur)
+ if (back[i].status!=0) { // non terminé (erreur)
if (!back[i].testmode) { // fichier normal
if (back[i].r.empty /* ?? && back[i].r.statuscode==HTTP_OK */) { // empty response
// Couper connexion
back_maydeletehttp(opt, cache, sback, i);
/* KA deletehttp(&back[i].r); back[i].r.soc=INVALID_SOCKET; */
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
if ( deleteaddr(&back[i].r) && (back[i].r.adr=(char*) malloct( 2)) ) {
back[i].r.adr[0] = 0;
@@ -3525,9 +3525,9 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
deletehttp(&back[i].r); back[i].r.soc=INVALID_SOCKET;
if (back[i].r.statuscode==HTTP_OK) {
strcpybuff(back[i].r.msg,"Test: OK");
- back[i].r.statuscode=STATUSCODE_TEST_OK; // test réussi
+ back[i].r.statuscode=STATUSCODE_TEST_OK; // test réussi
}
- else { // test a échoué, on ne change rien sauf que l'erreur est à titre indicatif
+ else { // test a échoué, on ne change rien sauf que l'erreur est à titre indicatif
char tempo[1000];
strcpybuff(tempo,back[i].r.msg);
strcpybuff(back[i].r.msg,"Test: ");
@@ -3549,13 +3549,13 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
#if BDEBUG==1
printf("bytes overall: %d\n",back[i].r.size);
#endif
- } // données dispo
+ } // données dispo
- // en cas d'erreur cl, supprimer éventuel fichier sur disque
+ // en cas d'erreur cl, supprimer éventuel fichier sur disque
#if HTS_REMOVE_BAD_FILES
if (back[i].status<0) {
if (!back[i].testmode) { // pas en test
- UNLINK(back[i].url_sav); // éliminer fichier (endommagé)
+ UNLINK(back[i].url_sav); // éliminer fichier (endommagé)
//printf("&& %s\n",back[i].url_sav);
}
}
@@ -3579,14 +3579,14 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
} // status>0
} // for
- // vérifier timeouts
+ // vérifier timeouts
if (gestion_timeout) {
TStamp act;
act=time_local(); // temps en secondes
for(i_mod = 0 ; i_mod < (unsigned int) back_max ; i_mod++) {
// for(i=0;i<back_max;i++) {
unsigned int i = ( i_mod + mod_random ) % ( back_max );
- if (back[i].status>0) { // réception/connexion/..
+ if (back[i].status>0) { // réception/connexion/..
if (back[i].timeout>0) {
//printf("time check %d\n",((int) (act-back[i].timeout_refresh))-back[i].timeout);
if (((int) (act-back[i].timeout_refresh))>=back[i].timeout) {
@@ -3604,12 +3604,12 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
strcpybuff(back[i].r.msg,"DNS Time Out");
else
strcpybuff(back[i].r.msg,"Receive Time Out");
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
} else if ((back[i].rateout>0) && (back[i].status<99)) {
if (((int) (act-back[i].rateout_time))>=HTS_WATCHRATE) { // checker au bout de 15s
if ( (int) ((back[i].r.size)/(act-back[i].rateout_time)) < back[i].rateout ) { // trop lent
- back[i].status=STATUS_READY; // terminé
+ back[i].status=STATUS_READY; // terminé
back_set_finished(sback, i);
if (back[i].r.soc!=INVALID_SOCKET) {
#if HTS_DEBUG_CLOSESOCK
@@ -3632,7 +3632,7 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
} while((busy_state) && (busy_recv) && (max_loop>0));
if ((!busy_recv) && (!busy_state)) {
if (max_loop_chk>=1) {
- Sleep(10); // un tite pause pour éviter les lag..
+ Sleep(10); // un tite pause pour éviter les lag..
}
}
}
@@ -3650,7 +3650,7 @@ int back_checksize(httrackp* opt,lien_back* eback,int check_only_totalsize) {
return 0; /* interdit */
}
- /* vérifier taille classique (heml et non html) */
+ /* vérifier taille classique (heml et non html) */
if ((istoobig(opt,size_to_test,eback->maxfile_html,eback->maxfile_nonhtml,eback->r.contenttype))) {
return 0; /* interdit */
}
@@ -3682,7 +3682,7 @@ int back_checkmirror(httrackp* opt) {
}
-// octets transférés + add
+// octets transférés + add
LLint back_transfered(LLint nb,struct_back* sback) {
lien_back* const back = sback->lnk;
const int back_max = sback->count;
diff --git a/src/htsbase.h b/src/htsbase.h
index ef01eba..d850bd9 100644
--- a/src/htsbase.h
+++ b/src/htsbase.h
@@ -91,11 +91,11 @@ extern "C" {
#define Sleep(a) { if (((a)*1000)%1000000) usleep(((a)*1000)%1000000); if (((a)*1000)/1000000) sleep(((a)*1000)/1000000); }
#endif
-// teste égalité de 2 chars, case insensitive
+// teste égalité de 2 chars, case insensitive
#define hichar(a) ((((a)>='a') && ((a)<='z')) ? ((a)-('a'-'A')) : (a))
#define streql(a,b) (hichar(a)==hichar(b))
-// caractère maj
+// caractère maj
#define isUpperLetter(a) ( ((a) >= 'A') && ((a) <= 'Z') )
diff --git a/src/htsbauth.c b/src/htsbauth.c
index 87ddc2b..3f04c9b 100644
--- a/src/htsbauth.c
+++ b/src/htsbauth.c
@@ -53,7 +53,7 @@ int cookie_add(t_cookie* cookie,char* cook_name,char* cook_value,char* domain,ch
char* a=cookie->data;
char* insert;
char cook[16384];
- // effacer éventuel cookie en double
+ // effacer éventuel cookie en double
cookie_del(cookie,cook_name,domain,path);
if ((int)strlen(cook_value)>1024) return -1; // trop long
if ((int)strlen(cook_name)>256) return -1; // trop long
@@ -68,7 +68,7 @@ int cookie_add(t_cookie* cookie,char* cook_name,char* cook_value,char* domain,ch
+256
) > cookie->max_len) return -1; // impossible d'ajouter
- insert=a; // insérer ici
+ insert=a; // insérer ici
while (*a) {
if ( strlen(cookie_get(buffer, a,2)) < strlen(path) ) // long. path (le + long est prioritaire)
a=cookie->data+strlen(cookie->data); // fin
@@ -79,7 +79,7 @@ int cookie_add(t_cookie* cookie,char* cook_name,char* cook_value,char* domain,ch
else
a++;
while(*a=='\n') a++;
- insert=a; // insérer ici
+ insert=a; // insérer ici
}
}
// construction du cookie
@@ -120,9 +120,9 @@ int cookie_del(t_cookie* cookie,char* cook_name,char* domain,char* path) {
return 0;
}
-// rechercher cookie à partir de la position s (par exemple s=cookie.data)
+// rechercher cookie à partir de la position s (par exemple s=cookie.data)
// renvoie pointeur sur ligne, ou NULL si introuvable
-// path est aligné à droite et cook_name peut être vide (chercher alors tout cookie)
+// path est aligné à droite et cook_name peut être vide (chercher alors tout cookie)
// .doubleclick.net TRUE / FALSE 1999999999 id A
char* cookie_find(char* s,char* cook_name,char* domain,char* path) {
char buffer[8192];
@@ -130,18 +130,18 @@ char* cookie_find(char* s,char* cook_name,char* domain,char* path) {
while (*a) {
int t;
if (strnotempty(cook_name)==0)
- t=1; // accepter par défaut
+ t=1; // accepter par défaut
else
- t=( strcmp(cookie_get(buffer, a,5),cook_name)==0 ); // tester si même nom
- if (t) { // même nom ou nom qualconque
+ t=( strcmp(cookie_get(buffer, a,5),cook_name)==0 ); // tester si même nom
+ if (t) { // même nom ou nom qualconque
//
- char* chk_dom=cookie_get(buffer,a,0); // domaine concerné par le cookie
+ char* chk_dom=cookie_get(buffer,a,0); // domaine concerné par le cookie
if ((int) strlen(chk_dom) <= (int) strlen(domain)) {
- if ( strcmp(chk_dom,domain+strlen(domain)-strlen(chk_dom))==0 ) { // même domaine
+ if ( strcmp(chk_dom,domain+strlen(domain)-strlen(chk_dom))==0 ) { // même domaine
//
- char* chk_path=cookie_get(buffer,a,2); // chemin concerné par le cookie
+ char* chk_path=cookie_get(buffer,a,2); // chemin concerné par le cookie
if ((int) strlen(chk_path) <= (int) strlen(path)) {
- if (strncmp(path,chk_path,strlen(chk_path))==0 ) { // même chemin
+ if (strncmp(path,chk_path,strlen(chk_path))==0 ) { // même chemin
return a;
}
}
@@ -166,14 +166,14 @@ char* cookie_nextfield(char* a) {
}
// lire cookies.txt
-// lire également (Windows seulement) les *@*.txt (cookies IE copiés)
+// lire également (Windows seulement) les *@*.txt (cookies IE copiés)
// !=0 : erreur
int cookie_load(t_cookie* cookie, const char* fpath, const char* name) {
char catbuff[CATBUFF_SIZE];
char buffer[8192];
// cookie->data[0]='\0';
- // Fusionner d'abord les éventuels cookies IE
+ // Fusionner d'abord les éventuels cookies IE
#ifdef _WIN32
{
WIN32_FIND_DATAA find;
@@ -266,7 +266,7 @@ int cookie_load(t_cookie* cookie, const char* fpath, const char* name) {
return -1;
}
-// écrire cookies.txt
+// écrire cookies.txt
// !=0 : erreur
int cookie_save(t_cookie* cookie,char* name) {
char catbuff[CATBUFF_SIZE];
@@ -291,13 +291,13 @@ int cookie_save(t_cookie* cookie,char* name) {
// insertion chaine ins avant s
void cookie_insert(char* s,char* ins) {
char* buff;
- if (strnotempty(s)==0) { // rien à faire, juste concat
+ if (strnotempty(s)==0) { // rien à faire, juste concat
strcatbuff(s,ins);
} else {
buff=(char*) malloct(strlen(s)+2);
if (buff) {
strcpybuff(buff,s); // copie temporaire
- strcpybuff(s,ins); // insérer
+ strcpybuff(s,ins); // insérer
strcatbuff(s,buff); // copier
freet(buff);
}
@@ -306,7 +306,7 @@ void cookie_insert(char* s,char* ins) {
// destruction chaine dans s position pos
void cookie_delete(char* s,int pos) {
char* buff;
- if (strnotempty(s+pos)==0) { // rien à faire, effacer
+ if (strnotempty(s+pos)==0) { // rien à faire, effacer
s[0]='\0';
} else {
buff=(char*) malloct(strlen(s+pos)+2);
@@ -356,11 +356,11 @@ char* cookie_get(char *buffer,char* cookie_base,int param) {
// -- basic auth --
-/* déclarer un répertoire comme possédant une authentification propre */
+/* déclarer un répertoire comme possédant une authentification propre */
int bauth_add(t_cookie* cookie,char* adr,char* fil,char* auth) {
char buffer[HTS_URLMAXSIZE*2];
if (cookie) {
- if (!bauth_check(cookie,adr,fil)) { // n'existe pas déja
+ if (!bauth_check(cookie,adr,fil)) { // n'existe pas déja
bauth_chain* chain=&cookie->auth;
char* prefix=bauth_prefix(buffer,adr,fil);
/* fin de la chaine */
@@ -379,7 +379,7 @@ int bauth_add(t_cookie* cookie,char* adr,char* fil,char* auth) {
return 0;
}
-/* tester adr et fil, et retourner authentification si nécessaire */
+/* tester adr et fil, et retourner authentification si nécessaire */
/* sinon, retourne NULL */
char* bauth_check(t_cookie* cookie,char* adr,char* fil) {
char buffer[HTS_URLMAXSIZE*2];
diff --git a/src/htscache.c b/src/htscache.c
index 07e2cf7..22f57e6 100644
--- a/src/htscache.c
+++ b/src/htscache.c
@@ -120,13 +120,13 @@ void cache_mayadd(httrackp* opt,cache_back* cache,htsblk* r,const char* url_adr,
}
// c'est le seul endroit ou l'on ajoute des elements dans le cache (fichier entier ou header)
- // on stocke tout fichier "ok", mais également les réponses 404,301,302...
+ // on stocke tout fichier "ok", mais également les réponses 404,301,302...
if (
#if 1
r->statuscode > 0
#else
/* We don't store 5XX errors, because it might be a server problem */
- (r->statuscode==HTTP_OK) /* stocker réponse standard, plus */
+ (r->statuscode==HTTP_OK) /* stocker réponse standard, plus */
|| (r->statuscode==204) /* no content */
|| HTTP_IS_REDIRECT(r->statuscode) /* redirect */
|| (r->statuscode==401) /* authorization */
@@ -135,7 +135,7 @@ void cache_mayadd(httrackp* opt,cache_back* cache,htsblk* r,const char* url_adr,
|| (r->statuscode==410) /* gone */
#endif
)
- { /* ne pas stocker si la page générée est une erreur */
+ { /* ne pas stocker si la page générée est une erreur */
if (!r->is_file) {
// stocker fichiers (et robots.txt)
if ( url_save == NULL || (strnotempty(url_save)) || (strcmp(url_fil,"/robots.txt")==0)) {
@@ -402,7 +402,7 @@ void cache_add(httrackp* opt,cache_back* cache,const htsblk *r,char* url_adr,cha
char s[256];
char BIGSTK buff[HTS_URLMAXSIZE*4];
int ok=1;
- int dataincache=0; // donnée en cache?
+ int dataincache=0; // donnée en cache?
FILE* cache_ndx = cache->ndx;
FILE* cache_dat = cache->dat;
/*char digest[32+2];*/
@@ -420,12 +420,12 @@ void cache_add(httrackp* opt,cache_back* cache,const htsblk *r,char* url_adr,cha
/*
if (r->size <= 0) // taille <= 0
- return; // refusé..
+ return; // refusé..
*/
- // Mettre les *donées* en cache ?
- if (is_hypertext_mime(opt,r->contenttype, url_fil)) // html, mise en cache des données et
- dataincache=1; // pas uniquement de l'en tête
+ // Mettre les *donées* en cache ?
+ if (is_hypertext_mime(opt,r->contenttype, url_fil)) // html, mise en cache des données et
+ dataincache=1; // pas uniquement de l'en tête
else if (all_in_cache)
dataincache=1; // forcer tout en cache
@@ -440,16 +440,16 @@ void cache_add(httrackp* opt,cache_back* cache,const htsblk *r,char* url_adr,cha
// Position
fflush(cache_dat); fflush(cache_ndx);
pos=ftell(cache_dat);
- // écrire pointeur seek, adresse, fichier
+ // écrire pointeur seek, adresse, fichier
if (dataincache) // patcher
- sprintf(s,"%d\n",pos); // ecrire tel que (eh oui évite les \0..)
+ sprintf(s,"%d\n",pos); // ecrire tel que (eh oui évite les \0..)
else
- sprintf(s,"%d\n",-pos); // ecrire tel que (eh oui évite les \0..)
+ sprintf(s,"%d\n",-pos); // ecrire tel que (eh oui évite les \0..)
// data
- // écrire données en-tête, données fichier
+ // écrire données en-tête, données fichier
/*if (!dataincache) { // patcher
- r->size=-r->size; // négatif
+ r->size=-r->size; // négatif
}*/
// Construction header
@@ -479,12 +479,12 @@ void cache_add(httrackp* opt,cache_back* cache,const htsblk *r,char* url_adr,cha
if (!r->adr) { /* taille nulle (parfois en cas de 301 */
if (cache_wLLint(cache_dat,0)==-1) /* 0 bytes */
ok=0;
- } else if (r->is_write==0) { // en mémoire, recopie directe
+ } else if (r->is_write==0) { // en mémoire, recopie directe
if (cache_wLLint(cache_dat,r->size)!=-1) {
if (r->size>0) { // taille>0
if (fwrite(r->adr,1,r->size,cache_dat)!=r->size)
ok=0;
- } else // taille=0, ne rien écrire
+ } else // taille=0, ne rien écrire
ok=0;
} else
ok=0;
@@ -517,7 +517,7 @@ void cache_add(httrackp* opt,cache_back* cache,const htsblk *r,char* url_adr,cha
ok=0;
}
} else ok=0;
- /*if (!dataincache) { // dépatcher
+ /*if (!dataincache) { // dépatcher
r->size=-r->size;
}*/
@@ -527,7 +527,7 @@ void cache_add(httrackp* opt,cache_back* cache,const htsblk *r,char* url_adr,cha
buff[0]='\0'; strcatbuff(buff,url_adr); strcatbuff(buff,"\n"); strcatbuff(buff,url_fil); strcatbuff(buff,"\n");
cache_wstr(cache_ndx,buff);
fwrite(s,1,strlen(s),cache_ndx);
- } // si ok=0 on a peut être écrit des données pour rien mais on s'en tape
+ } // si ok=0 on a peut être écrit des données pour rien mais on s'en tape
// en cas de plantage, on aura au moins le cache!
fflush(cache_dat); fflush(cache_ndx);
@@ -691,14 +691,14 @@ static htsblk cache_readex_new(httrackp* opt,cache_back* cache,const char* adr,c
/* Do not get data ? Do some final tests. */
if (target_save == NULL) {
- // si save==null, ne rien charger (juste en tête)
- if (r.statuscode==HTTP_OK && !is_hypertext_mime(opt, r.contenttype, fil)) { // pas HTML, écrire sur disk directement
+ // si save==null, ne rien charger (juste en tête)
+ if (r.statuscode==HTTP_OK && !is_hypertext_mime(opt, r.contenttype, fil)) { // pas HTML, écrire sur disk directement
r.is_write = 1; /* supposed to be on disk (informational) */
}
/* Ensure the file is present, because returning a reference to a missing file is useless! */
if (!dataincache) { /* Data are supposed to be on disk */
- if (!fexist_utf8(fconv(catbuff, previous_save))) { // un fichier existe déja
+ if (!fexist_utf8(fconv(catbuff, previous_save))) { // un fichier existe déja
if (!opt->norecatch) {
hts_log_print(opt, LOG_DEBUG, "Cache: could not find %s", previous_save);
r.statuscode=STATUSCODE_INVALID;
@@ -713,29 +713,29 @@ static htsblk cache_readex_new(httrackp* opt,cache_back* cache,const char* adr,c
#if HTS_DIRECTDISK
// Not ro, and pure data (not HTML and friends) to be saved now.
- if (!readonly && r.statuscode==HTTP_OK && !is_hypertext_mime(opt,r.contenttype, fil) && strnotempty(target_save)) { // pas HTML, écrire sur disk directement
- r.is_write=1; // écrire
+ if (!readonly && r.statuscode==HTTP_OK && !is_hypertext_mime(opt,r.contenttype, fil) && strnotempty(target_save)) { // pas HTML, écrire sur disk directement
+ r.is_write=1; // écrire
// Data is supposed to be on disk
if (!dataincache) {
r.msg[0] = '\0';
// File exists on disk with declared cache name (this is expected!)
- if (fexist_utf8(fconv(catbuff, previous_save))) { // un fichier existe déja
+ if (fexist_utf8(fconv(catbuff, previous_save))) { // un fichier existe déja
// Expected size ?
const size_t fsize = fsize_utf8(fconv(catbuff, previous_save));
if (fsize == r.size) {
// Target name is the previous name, and the file looks good: nothing to do!
if (strcmp(previous_save, target_save) == 0) {
// So far so good
- ok=1; // plus rien à faire
+ ok=1; // plus rien à faire
}
// Different filenames: rename now!
else {
char catbuff2[CATBUFF_SIZE];
if (RENAME(fconv(catbuff, previous_save), fconv(catbuff2, target_save)) == 0) {
// So far so good
- ok=1; // plus rien à faire
+ ok=1; // plus rien à faire
hts_log_print(opt, LOG_DEBUG, "File '%s' has been renamed since last mirror to '%s' ; applying changes", previous_save, target_save);
} else {
@@ -754,7 +754,7 @@ static htsblk cache_readex_new(httrackp* opt,cache_back* cache,const char* adr,c
const size_t fsize = fsize_utf8(fconv(catbuff, target_save));
if (fsize == r.size) {
// So far so good
- ok=1; // plus rien à faire
+ ok=1; // plus rien à faire
} else {
hts_log_print(opt, LOG_WARNING, "warning: renamed file size on disk ("LLintP") does not have the expected size ("LLintP"))", (LLint) fsize, (LLint) r.size);
}
@@ -824,12 +824,12 @@ static htsblk cache_readex_new(httrackp* opt,cache_back* cache,const char* adr,c
} else
#endif
- { // lire en mémoire
+ { // lire en mémoire
// We need to get bytes on memory, but the previous version is (supposed to be) on disk.
if (!dataincache) {
// Empty previous save name, or file does not exist ?
- if (!strnotempty(previous_save) || !fexist_utf8(previous_save)) { // Pas de donnée en cache, bizarre car html!!!
+ if (!strnotempty(previous_save) || !fexist_utf8(previous_save)) { // Pas de donnée en cache, bizarre car html!!!
// Hack: if error page data is missing (pre-3.45 releases), create one. We won't use it anyway.
if (!HTTP_IS_OK(r.statuscode)) {
const int size = 512;
@@ -963,7 +963,7 @@ static htsblk cache_readex_old(httrackp* opt,cache_back* cache,const char* adr,c
#endif
}
- // en cas de succès
+ // en cas de succès
#if HTS_FAST_CACHE
if (hash_pos_return != 0) {
#else
@@ -1028,15 +1028,15 @@ static htsblk cache_readex_old(httrackp* opt,cache_back* cache,const char* adr,c
}
//
cache_rstr(cache->olddat,check);
- if (strcmp(check,"HTS")==0) { /* intégrité OK */
+ if (strcmp(check,"HTS")==0) { /* intégrité OK */
ok=1;
}
- cache_rLLint(cache->olddat,&size_read); /* lire size pour être sûr de la taille déclarée (réécrire) */
+ cache_rLLint(cache->olddat,&size_read); /* lire size pour être sûr de la taille déclarée (réécrire) */
if (size_read>0) { /* si inscrite ici */
r.size=size_read;
- } else { /* pas de données directement dans le cache, fichier présent? */
+ } else { /* pas de données directement dans le cache, fichier présent? */
if (r.statuscode!=HTTP_OK)
- header_only=1; /* que l'en tête ici! */
+ header_only=1; /* que l'en tête ici! */
}
}
@@ -1046,14 +1046,14 @@ static htsblk cache_readex_old(httrackp* opt,cache_back* cache,const char* adr,c
// lecture du header (y compris le statuscode)
/*if (fread((char*) &r,1,sizeof(htsblk),cache->olddat)==sizeof(htsblk)) { // lire tout (y compris statuscode etc)*/
if (ok) {
- // sécurité
+ // sécurité
r.adr=NULL;
r.out=NULL;
- ////r.location=NULL; non, fixée lors des 301 ou 302
+ ////r.location=NULL; non, fixée lors des 301 ou 302
r.fp=NULL;
if ( (r.statuscode>=0) && (r.statuscode<=999)
- && (r.notmodified>=0) && (r.notmodified<=9) ) { // petite vérif intégrité
+ && (r.notmodified>=0) && (r.notmodified<=9) ) { // petite vérif intégrité
if ((save) && (!header_only) ) { /* ne pas lire uniquement header */
//int to_file=0;
@@ -1063,30 +1063,30 @@ static htsblk cache_readex_old(httrackp* opt,cache_back* cache,const char* adr,c
#if HTS_DIRECTDISK
// Court-circuit:
// Peut-on stocker le fichier directement sur disque?
- if (!readonly && r.statuscode==HTTP_OK && !is_hypertext_mime(opt,r.contenttype, fil) && strnotempty(save)) { // pas HTML, écrire sur disk directement
+ if (!readonly && r.statuscode==HTTP_OK && !is_hypertext_mime(opt,r.contenttype, fil) && strnotempty(save)) { // pas HTML, écrire sur disk directement
int ok=0;
- r.is_write=1; // écrire
- if (fexist_utf8(fconv(catbuff, save))) { // un fichier existe déja
- //if (fsize_utf8(fconv(save))==r.size) { // même taille -- NON tant pis (taille mal declaree)
- ok=1; // plus rien à faire
+ r.is_write=1; // écrire
+ if (fexist_utf8(fconv(catbuff, save))) { // un fichier existe déja
+ //if (fsize_utf8(fconv(save))==r.size) { // même taille -- NON tant pis (taille mal declaree)
+ ok=1; // plus rien à faire
filenote(&opt->state.strc,save,NULL); // noter comme connu
file_notify(opt,adr, fil, save, 0, 0, 0);
//}
}
- if ((pos<0) && (!ok)) { // Pas de donnée en cache et fichier introuvable : erreur!
+ if ((pos<0) && (!ok)) { // Pas de donnée en cache et fichier introuvable : erreur!
if (opt->norecatch) {
file_notify(opt,adr, fil, save, 1, 0, 0);
filecreateempty(&opt->state.strc, save);
//
r.statuscode=STATUSCODE_INVALID;
strcpybuff(r.msg,"File deleted by user not recaught");
- ok=1; // ne pas récupérer (et pas d'erreur)
+ ok=1; // ne pas récupérer (et pas d'erreur)
} else {
r.statuscode=STATUSCODE_INVALID;
strcpybuff(r.msg,"Previous cache file not found");
- ok=1; // ne pas récupérer
+ ok=1; // ne pas récupérer
}
}
@@ -1126,10 +1126,10 @@ static htsblk cache_readex_old(httrackp* opt,cache_back* cache,const char* adr,c
} else
#endif
- { // lire en mémoire
+ { // lire en mémoire
if (pos<0) {
- if (strnotempty(save)) { // Pas de donnée en cache, bizarre car html!!!
+ if (strnotempty(save)) { // Pas de donnée en cache, bizarre car html!!!
r.statuscode=STATUSCODE_INVALID;
strcpybuff(r.msg,"Previous cache file not found (2)");
} else { /* Read in memory from cache */
@@ -1171,7 +1171,7 @@ static htsblk cache_readex_old(httrackp* opt,cache_back* cache,const char* adr,c
}
}
}
- } // si save==null, ne rien charger (juste en tête)
+ } // si save==null, ne rien charger (juste en tête)
} else {
#if DEBUGCA
printf("Cache Read Error : Bad Data");
@@ -1269,7 +1269,7 @@ static int hts_rename(httrackp* opt, const char *a, const char *b) {
return rename(a, b);
}
-// renvoyer uniquement en tête, ou NULL si erreur
+// renvoyer uniquement en tête, ou NULL si erreur
// return NULL upon error, and set -1 to r.statuscode
htsblk* cache_header(httrackp* opt,cache_back* cache,const char* adr,const char* fil,htsblk* r) {
*r=cache_read(opt,cache,adr,fil,NULL,NULL); // test uniquement
@@ -1280,10 +1280,10 @@ htsblk* cache_header(httrackp* opt,cache_back* cache,const char* adr,const char*
}
-// Initialisation du cache: créer nouveau, renomer ancien, charger..
+// Initialisation du cache: créer nouveau, renomer ancien, charger..
void cache_init(cache_back* cache,httrackp* opt) {
// ---
- // utilisation du cache: renommer ancien éventuel et charger index
+ // utilisation du cache: renommer ancien éventuel et charger index
hts_log_print(opt, LOG_DEBUG, "Cache: enabled=%d, base=%s, ro=%d", (int) opt->cache, fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/"), (int) cache->ro);
if (opt->cache) {
#if DEBUGCA
@@ -1295,7 +1295,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
#else
mkdir(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache"),HTS_PROTECT_FOLDER);
#endif
- if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.zip")))) { // il existe déja un cache précédent.. renommer
+ if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.zip")))) { // il existe déja un cache précédent.. renommer
/* Previous cache from the previous cache version */
#if 0
/* No.. reuse with old httrack releases! */
@@ -1305,7 +1305,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
remove(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.ndx"));
#endif
/* Previous cache version */
- if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
+ if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
rename(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"),fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.dat"));
rename(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx"),fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.ndx"));
}
@@ -1324,7 +1324,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
hts_log_print(opt, LOG_DEBUG, "Cache: successfully renamed");
}
}
- else if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
+ else if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
#if DEBUGCA
printf("work with former cache\n");
#endif
@@ -1335,7 +1335,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
rename(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"),fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.dat"));
rename(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx"),fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.ndx"));
- } else { // un des deux (ou les deux) fichiers cache absents: effacer l'autre éventuel
+ } else { // un des deux (ou les deux) fichiers cache absents: effacer l'autre éventuel
#if DEBUGCA
printf("new cache\n");
#endif
@@ -1349,7 +1349,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
}
hts_log_print(opt, LOG_DEBUG, "Cache: size %d", (int)fsize(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.zip")));
- // charger index cache précédent
+ // charger index cache précédent
if (
(
!cache->ro &&
@@ -1490,7 +1490,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
cache->olddat=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"),"rb");
oldndx=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx"),"rb");
}
- // les deux doivent être ouvrables
+ // les deux doivent être ouvrables
if ((cache->olddat==NULL) && (oldndx!=NULL)) {
fclose(oldndx);
oldndx=NULL;
@@ -1528,7 +1528,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
freet(cache->use);
cache->use=NULL;
}
- } else { // non supporté
+ } else { // non supporté
hts_log_print(opt, LOG_ERROR, "Cache: %s not supported, ignoring current cache",firstline);
fclose(cache->olddat);
cache->olddat=NULL;
@@ -1619,7 +1619,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
} else {
cache->dat=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"),"wb");
cache->ndx=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx"),"wb");
- // les deux doivent être ouvrables
+ // les deux doivent être ouvrables
if ((cache->dat==NULL) && (cache->ndx!=NULL)) {
fclose(cache->ndx);
cache->ndx=NULL;
@@ -1639,7 +1639,7 @@ void cache_init(cache_back* cache,httrackp* opt) {
//
time_gmt_rfc822(s); // date et heure actuelle GMT pour If-Modified-Since..
cache_wstr(cache->ndx,s);
- fflush(cache->ndx); // un petit fflush au cas où
+ fflush(cache->ndx); // un petit fflush au cas où
// supprimer old.lst
if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.lst")))
@@ -1709,7 +1709,7 @@ char* readfile2(char* fil, LLint* size) {
if (size != NULL)
*size = len;
if (adr!=NULL) {
- if (len > 0 && fread(adr,1,len,fp) != len) { // fichier endommagé ?
+ if (len > 0 && fread(adr,1,len,fp) != len) { // fichier endommagé ?
freet(adr);
adr=NULL;
} else
@@ -1731,7 +1731,7 @@ char* readfile_utf8(char* fil) {
if (fp!=NULL) { // n'existe pas (!)
adr = (char*) malloct(len+1);
if (adr!=NULL) {
- if (len > 0 && fread(adr,1,len,fp) != len) { // fichier endommagé ?
+ if (len > 0 && fread(adr,1,len,fp) != len) { // fichier endommagé ?
freet(adr);
adr=NULL;
} else {
@@ -1764,7 +1764,7 @@ char* readfile_or(char* fil,char* defaultdata) {
return NULL;
}
-// écriture/lecture d'une chaîne sur un fichier
+// écriture/lecture d'une chaîne sur un fichier
// -1 : erreur, sinon 0
int cache_wstr(FILE* fp,const char* s) {
INTsys i;
diff --git a/src/htscatchurl.c b/src/htscatchurl.c
index 577ee16..0d486ac 100644
--- a/src/htscatchurl.c
+++ b/src/htscatchurl.c
@@ -53,7 +53,7 @@ Please visit our Website: http://www.httrack.com
#endif
/* END specific definitions */
-/* définitions globales */
+/* définitions globales */
#include "htsglobal.h"
/* htslib */
@@ -111,7 +111,7 @@ HTSEXT_API T_SOC catch_url_init(int* port,char* adr) {
// effacer structure
memset(&server2, 0, sizeof(server2));
if (getsockname(soc,(struct sockaddr*) &server2,&len) == 0) {
- *port=ntohs(SOCaddr_sinport(server)); // récupérer port
+ *port=ntohs(SOCaddr_sinport(server)); // récupérer port
if (listen(soc,10)>=0) { // au pif le 10
SOCaddr_inetntoa(adr, 128, server2, len);
} else {
@@ -183,7 +183,7 @@ HTSEXT_API int catch_url(T_SOC soc,char* url,char* method,char* data) {
}
/* INFOS */
- // réception
+ // réception
if (soc != INVALID_SOCKET) {
char line[1000];
char protocol[256];
@@ -194,7 +194,7 @@ HTSEXT_API int catch_url(T_SOC soc,char* url,char* method,char* data) {
if (sscanf(line,"%s %s %s",method,url,protocol) == 3) {
char BIGSTK url_adr[HTS_URLMAXSIZE*2];
char BIGSTK url_fil[HTS_URLMAXSIZE*2];
- // méthode en majuscule
+ // méthode en majuscule
int i,r=0;
url_adr[0]=url_fil[0]='\0';
//
@@ -204,13 +204,13 @@ HTSEXT_API int catch_url(T_SOC soc,char* url,char* method,char* data) {
}
// adresse du lien
if (ident_url_absolute(url,url_adr,url_fil)>=0) {
- // Traitement des en-têtes
+ // Traitement des en-têtes
char BIGSTK loc[HTS_URLMAXSIZE*2];
htsblk blkretour;
hts_init_htsblk(&blkretour);
//memset(&blkretour, 0, sizeof(htsblk)); // effacer
- blkretour.location=loc; // si non nul, contiendra l'adresse véritable en cas de moved xx
- // Lire en têtes restants
+ blkretour.location=loc; // si non nul, contiendra l'adresse véritable en cas de moved xx
+ // Lire en têtes restants
sprintf(data,"%s %s %s\r\n",method,url_fil,protocol);
while(strnotempty(line)) {
socinput(soc,line,1000);
@@ -218,12 +218,12 @@ HTSEXT_API int catch_url(T_SOC soc,char* url,char* method,char* data) {
strcatbuff(data,line);
strcatbuff(data,"\r\n");
}
- // CR/LF final de l'en tête inutile car déja placé via la ligne vide juste au dessus
+ // CR/LF final de l'en tête inutile car déja placé via la ligne vide juste au dessus
//strcatbuff(data,"\r\n");
if (blkretour.totalsize>0) {
int len=(int)min(blkretour.totalsize,32000);
int pos = (int) strlen(data);
- // Copier le reste (post éventuel)
+ // Copier le reste (post éventuel)
while((len>0) && ((r=recv(soc,(char*) data+pos,len,0))>0) ) {
pos+=r;
len-=r;
@@ -266,7 +266,7 @@ void socinput(T_SOC soc,char* s,int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 9: case 12: break; // sauter ces caractères
+ case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
} else
diff --git a/src/htsconfig.h b/src/htsconfig.h
index 94ad3f6..25f3e0e 100644
--- a/src/htsconfig.h
+++ b/src/htsconfig.h
@@ -34,31 +34,31 @@ Please visit our Website: http://www.httrack.com
/* Author: Xavier Roche */
/* ------------------------------------------------------------ */
-// Ensemble des paramètres du robot
+// Ensemble des paramètres du robot
#ifndef HTTRACK_GLOBAL_ENGINE_DEFH
#define HTTRACK_GLOBAL_ENGINE_DEFH
// ------------------------------------------------------------
-// Définitions du ROBOT
+// Définitions du ROBOT
-// accès des miroirs pour les autres utilisateurs (0/1)
+// accès des miroirs pour les autres utilisateurs (0/1)
#define HTS_ACCESS 1
// temps de poll d'une socket: 1/10s
#define HTS_SOCK_SEC 0
#define HTS_SOCK_MS 100000
-// nom par défaut
+// nom par défaut
#define DEFAULT_HTML "index.html"
-// nom par défaut pour / en ftp
+// nom par défaut pour / en ftp
#define DEFAULT_FTP "index.txt"
-// nom par défaut pour / en mms
+// nom par défaut pour / en mms
#define DEFAULT_MMS "default.avi"
-// extension par défaut pour fichiers n'en ayant pas
+// extension par défaut pour fichiers n'en ayant pas
#define DEFAULT_EXT ".html"
#define DEFAULT_EXT_SHORT ".htm"
//#define DEFAULT_BIN_EXT ".bin"
@@ -66,38 +66,38 @@ Please visit our Website: http://www.httrack.com
//#define DEFAULT_EXT ".txt"
//#define DEFAULT_EXT_SHORT ".txt"
-// éviter les /nul, /con..
+// éviter les /nul, /con..
#define HTS_OVERRIDE_DOS_FOLDERS 1
// indexing (keyword)
#define HTS_MAKE_KEYWORD_INDEX 1
-// poll stdin autorisé? (0/1)
+// poll stdin autorisé? (0/1)
#define HTS_POLL 1
-// vérifier les liens sans extension (0/1) [à éviter, très lent]
+// vérifier les liens sans extension (0/1) [à éviter, très lent]
#define HTS_CHECK_STRANGEDIR 0
-// le slash est un html par défaut (exemple/ est toujours un html)
+// le slash est un html par défaut (exemple/ est toujours un html)
#define HTS_SLASH_ISHTML 1
-// supprimer index si un répertoire identique existe
+// supprimer index si un répertoire identique existe
#define HTS_REMOVE_ANNOYING_INDEX 1
-// écriture directe dur disque possible (0/1)
+// écriture directe dur disque possible (0/1)
#define HTS_DIRECTDISK 1
// always direct-to-disk (0/1)
#define HTS_DIRECTDISK_ALWAYS 1
-// gérer une table de hachage?
+// gérer une table de hachage?
// REMOVED
// #define HTS_HASH 1
// fast cache (build hash table)
#define HTS_FAST_CACHE 1
-// le > peut être considéré comme un tag de fermeture de commentaire (<!-- > est valide)
+// le > peut être considéré comme un tag de fermeture de commentaire (<!-- > est valide)
#define GT_ENDS_COMMENT 1
// always adds a '/' at the end if a '~' is encountered (/~smith -> /~smith/)
@@ -107,21 +107,21 @@ Please visit our Website: http://www.httrack.com
#define HTS_STRIP_DOUBLE_SLASH 0
// case-sensitive pour les dossiers et fichiers (0/1)
-// [normalement 1, mais pose des problèmes (url malformée par exemple) et n'est pas très utile..
-// ..et pas bcp respecté]
+// [normalement 1, mais pose des problèmes (url malformée par exemple) et n'est pas très utile..
+// ..et pas bcp respecté]
// REMOVED
// #define HTS_CASSE 0
-// Un fichier ayant une taille différente du content-length doit il être annulé?
+// Un fichier ayant une taille différente du content-length doit il être annulé?
// SEE opt.tolerant and opt.http10
// #define HTS_CL_IS_FATAL 0
// une erreur supprime le fichier sur disque
-// (non fixé pour cause de retry)
+// (non fixé pour cause de retry)
#define HTS_REMOVE_BAD_FILES 0
// en cas de Range: xx- donnant un Content-length: xx
-// alors skipper le fichier, considéré comme transmis
+// alors skipper le fichier, considéré comme transmis
// #define HTS_SKIP_FULL_RANGE 1
// nombre max de filtres que l'utilisateur peut fixer
@@ -134,7 +134,7 @@ Please visit our Website: http://www.httrack.com
// gethostbyname non bloquant? (gestion multithread)
#define HTS_XGETHOST 1
-// à partir de combien de secondes doit-on étudier le taux de transfert?
+// à partir de combien de secondes doit-on étudier le taux de transfert?
#define HTS_WATCHRATE 15
// ------------------------------------------------------------
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
diff --git a/src/htscore.h b/src/htscore.h
index 8f07cf2..4d707e9 100644
--- a/src/htscore.h
+++ b/src/htscore.h
@@ -42,7 +42,7 @@ Please visit our Website: http://www.httrack.com
/* specific definitions */
#include "htsbase.h"
-// Includes & définitions
+// Includes & définitions
#include <sys/types.h>
#include <sys/stat.h>
#ifdef _WIN32
@@ -105,7 +105,7 @@ typedef struct filecreate_params filecreate_params;
// aide pour la version en ligne de commande
#include "htshelp.h"
-// génération du nom de fichier à sauver
+// génération du nom de fichier à sauver
#include "htsname.h"
// gestion ftp
@@ -144,25 +144,25 @@ typedef struct lien_url lien_url;
#endif
struct lien_url {
char firstblock; // flag 1=premier malloc
- char link_import; // lien importé à la suite d'un moved - ne pas appliquer les règles classiques up/down
- int depth; // profondeur autorisée lien ; >0 forte 0=faible
- int pass2; // traiter après les autres, seconde passe. si == -1, lien traité en background
- int premier; // pointeur sur le premier lien qui a donné lieu aux autres liens du domaine
- int precedent; // pointeur sur le lien qui a donné lieu à ce lien précis
+ char link_import; // lien importé à la suite d'un moved - ne pas appliquer les règles classiques up/down
+ int depth; // profondeur autorisée lien ; >0 forte 0=faible
+ int pass2; // traiter après les autres, seconde passe. si == -1, lien traité en background
+ int premier; // pointeur sur le premier lien qui a donné lieu aux autres liens du domaine
+ int precedent; // pointeur sur le lien qui a donné lieu à ce lien précis
//int moved; // pointeur sur moved
int retry; // nombre de retry restants
int testmode; // mode test uniquement, envoyer juste un head!
char* adr; // adresse
char* fil; // nom du fichier distant
- char* sav; // nom à sauver sur disque (avec chemin éventuel)
- char* cod; // chemin codebase éventuel si classe java
- char* former_adr; // adresse initiale (avant éventuel moved), peut être nulle
- char* former_fil; // nom du fichier distant initial (avant éventuel moved), peut être nul
+ char* sav; // nom à sauver sur disque (avec chemin éventuel)
+ char* cod; // chemin codebase éventuel si classe java
+ char* former_adr; // adresse initiale (avant éventuel moved), peut être nulle
+ char* former_fil; // nom du fichier distant initial (avant éventuel moved), peut être nul
// pour optimisation:
- int hash_next[3]; // prochain lien avec même valeur hash
+ int hash_next[3]; // prochain lien avec même valeur hash
};
-// chargement de fichiers en 'arrière plan'
+// chargement de fichiers en 'arrière plan'
#ifndef HTS_DEF_FWSTRUCT_lien_back
#define HTS_DEF_FWSTRUCT_lien_back
typedef struct lien_back lien_back;
@@ -173,38 +173,38 @@ struct lien_back {
#endif
char url_adr[HTS_URLMAXSIZE*2]; // adresse
char url_fil[HTS_URLMAXSIZE*2]; // nom du fichier distant
- char url_sav[HTS_URLMAXSIZE*2]; // nom à sauver sur disque (avec chemin éventuel)
+ char url_sav[HTS_URLMAXSIZE*2]; // nom à sauver sur disque (avec chemin éventuel)
char referer_adr[HTS_URLMAXSIZE*2]; // adresse host page referer
char referer_fil[HTS_URLMAXSIZE*2]; // fichier page referer
char location_buffer[HTS_URLMAXSIZE*2]; // "location" en cas de "moved" (302,..)
- char* tmpfile; // nom à sauver temporairement (compressé)
- char tmpfile_buffer[HTS_URLMAXSIZE*2]; // buffer pour le nom à sauver temporairement
- char send_too[1024]; // données à envoyer en même temps que le header
- int status; // status (-1=non utilisé, 0: prêt, >0: opération en cours)
+ char* tmpfile; // nom à sauver temporairement (compressé)
+ char tmpfile_buffer[HTS_URLMAXSIZE*2]; // buffer pour le nom à sauver temporairement
+ char send_too[1024]; // données à envoyer en même temps que le header
+ int status; // status (-1=non utilisé, 0: prêt, >0: opération en cours)
int locked; // locked (to be used soon)
int testmode; // mode de test
- int timeout; // gérer des timeouts? (!=0 : nombre de secondes)
+ int timeout; // gérer des timeouts? (!=0 : nombre de secondes)
TStamp timeout_refresh; // si oui, time refresh
- int rateout; // timeout refresh? (!=0 : taux minimum toléré en octets/s)
- TStamp rateout_time; // si oui, date de départ
+ int rateout; // timeout refresh? (!=0 : taux minimum toléré en octets/s)
+ TStamp rateout_time; // si oui, date de départ
LLint maxfile_nonhtml; // taille max d'un fichier non html
LLint maxfile_html; // idem pour un ficheir html
htsblk r; // structure htsblk de chaque objet en background
int is_update; // mode update
- int head_request; // requète HEAD?
- LLint range_req_size; // range utilisé
+ int head_request; // requète HEAD?
+ LLint range_req_size; // range utilisé
TStamp ka_time_start; // refresh time for KA
//
- int http11; // L'en tête doit être signé HTTP/1.1 et non HTTP/1.0
+ int http11; // L'en tête doit être signé HTTP/1.1 et non HTTP/1.0
int is_chunk; // chunk?
char* chunk_adr; // adresse chunk en cours de chargement
LLint chunk_size; // taille chunk en cours de chargement
LLint chunk_blocksize; // taille data declaree par le chunk
- LLint compressed_size; // taille compressés (stats uniquement)
+ LLint compressed_size; // taille compressés (stats uniquement)
//
//int links_index; // to access liens[links_index]
//
- char info[256]; // éventuel status pour le ftp
+ char info[256]; // éventuel status pour le ftp
int stop_ftp; // flag stop pour ftp
int finalized; // finalized (optim memory)
int early_add; // was added before link heap saw it
@@ -265,7 +265,7 @@ typedef struct hash_struct hash_struct;
#endif
struct hash_struct {
lien_url** liens; // pointeur sur liens
- int max_lien; // indice le plus grand rencontré
+ int max_lien; // indice le plus grand rencontré
int hash[3][HTS_HASH_SIZE]; // tables pour sav/adr-fil/former_adr-former_fil
};
diff --git a/src/htscoremain.c b/src/htscoremain.c
index 3059ea3..4775432 100644
--- a/src/htscoremain.c
+++ b/src/htscoremain.c
@@ -116,17 +116,17 @@ HTSEXT_API int hts_main(int argc, char **argv)
return ret;
}
-// Main, récupère les paramètres et appelle le robot
+// Main, récupère les paramètres et appelle le robot
HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
- char** x_argv=NULL; // Patch pour argv et argc: en cas de récupération de ligne de commande
+ char** x_argv=NULL; // Patch pour argv et argc: en cas de récupération de ligne de commande
char* x_argvblk=NULL; // (reprise ou update)
int x_ptr=0; // offset
//
int argv_url=-1; // ==0 : utiliser cache et doit.log
- char* argv_firsturl=NULL; // utilisé pour nommage par défaut
- char* url = NULL; // URLS séparées par un espace
+ char* argv_firsturl=NULL; // utilisé pour nommage par défaut
+ char* url = NULL; // URLS séparées par un espace
int url_sz = 65535;
- //char url[65536]; // URLS séparées par un espace
+ //char url[65536]; // URLS séparées par un espace
// the parametres
int httrack_logmode=3; // ONE log file
#ifndef _WIN32
@@ -139,7 +139,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
ensureUrlCapacity(url, url_sz, 65536);
// Create options
- _DEBUG_HEAD=0; // pas de debuggage en têtes
+ _DEBUG_HEAD=0; // pas de debuggage en têtes
/* command max-size check (3.43 ; 3.42-4) */
{
@@ -236,15 +236,15 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
argv_url=0; /* pour comptage */
//
cmdl_add(argv[0],x_argc,x_argv,x_argvblk,x_ptr);
- na=1; /* commencer après nom_prg */
+ na=1; /* commencer après nom_prg */
while(na<argc) {
int result=1;
tmp_argv[0][0]=tmp_argv[1][0]='\0';
- /* Vérifier argv[] non vide */
+ /* Vérifier argv[] non vide */
if (strnotempty(argv[na])) {
- /* Vérifier Commande (alias) */
+ /* Vérifier Commande (alias) */
result=optalias_check(argc,(const char * const *)argv,na,
&tmp_argc,(char**)tmp_argv,tmp_error);
if (!result) {
@@ -259,7 +259,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
cmdl_add(tmp_argv[1],x_argc,x_argv,x_argvblk,x_ptr);
}
- /* Compter URLs et détecter -i,-q.. */
+ /* Compter URLs et détecter -i,-q.. */
if (tmp_argc == 1) { /* pas -P & co */
if (!cmdl_opt(tmp_argv[0])) { /* pas -c0 & co */
if (argv_url<0) argv_url=0; // -1==force -> 1=one url already detected, wipe all previous options
@@ -442,7 +442,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
if ( fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/doit.log")) && (argv_url<=0) ) {
FILE* fp=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/doit.log"),"rb");
if (fp) {
- int insert_after=1; /* insérer après nom au début */
+ int insert_after=1; /* insérer après nom au début */
//
char BIGSTK buff[8192];
char *p,*lastp;
@@ -511,7 +511,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
// remplacer "macros" comme --spider
- // permet de lancer httrack sans a avoir à se rappeler de syntaxes comme p0C0I0Qc32 ..
+ // permet de lancer httrack sans a avoir à se rappeler de syntaxes comme p0C0I0Qc32 ..
#if DEBUG_STEPS
printf("Checking last macros\n");
#endif
@@ -630,12 +630,12 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
*/
- // Ici on ajoute les arguments qui ont été appelés avant au cas où on récupère une session
- // Exemple: httrack www.truc.fr -L0 puis ^C puis httrack sans URL : ajouter URL précédente
+ // Ici on ajoute les arguments qui ont été appelés avant au cas où on récupère une session
+ // Exemple: httrack www.truc.fr -L0 puis ^C puis httrack sans URL : ajouter URL précédente
/*
if (argv_url==0) {
- //if ((fexist(fconcat(StringBuff(opt->path_log),"hts-cache/new.dat"))) && (fexist(fconcat(StringBuff(opt->path_log),"hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
- if (fexist(fconcat(StringBuff(opt->path_log),"hts-cache/doit.log"))) { // un cache est présent
+ //if ((fexist(fconcat(StringBuff(opt->path_log),"hts-cache/new.dat"))) && (fexist(fconcat(StringBuff(opt->path_log),"hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
+ if (fexist(fconcat(StringBuff(opt->path_log),"hts-cache/doit.log"))) { // un cache est présent
x_argvblk=(char*) calloct(32768,1);
@@ -686,7 +686,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
*/
- // Vérifier quiet
+ // Vérifier quiet
/*
{
int na;
@@ -707,16 +707,16 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
printf("Checking URLs\n");
#endif
if (argv_url==0) {
- // Présence d'un cache, que faire?..
+ // Présence d'un cache, que faire?..
if (
( fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.zip")) )
||
( fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat")) && fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx")) )
- ) { // il existe déja un cache précédent.. renommer
- if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/doit.log"))) { // un cache est présent
+ ) { // il existe déja un cache précédent.. renommer
+ if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/doit.log"))) { // un cache est présent
if (x_argvblk!=NULL) {
int m;
- // établir mode - mode cache: 1 (cache valide) 2 (cache à vérifier)
+ // établir mode - mode cache: 1 (cache valide) 2 (cache à vérifier)
if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-in_progress.lock"))) { // cache prioritaire
m=1;
} else {
@@ -756,7 +756,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
return -1;
}
- } else { // aucune URL définie et pas de cache
+ } else { // aucune URL définie et pas de cache
if (opt->quiet) {
help(argv[0],!opt->quiet);
htsmain_free();
@@ -769,7 +769,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
htsmain_free();
return 0;
}
- } else { // plus de 2 paramètres
+ } else { // plus de 2 paramètres
// un fichier log existe?
if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-in_progress.lock"))) { // fichier lock?
//char s[32];
@@ -796,7 +796,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
} else if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html),"index.html"))) {
//char s[32];
- opt->cache=2; // cache vient après test de validité
+ opt->cache=2; // cache vient après test de validité
if (opt->quiet==0) {
if (
( fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.zip")) )
@@ -833,7 +833,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
// Treat parameters
- // Traiter les paramètres
+ // Traiter les paramètres
#if DEBUG_STEPS
printf("Analyze parameters\n");
#endif
@@ -867,15 +867,15 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
case 'h':
help(argv[0],0);
htsmain_free();
- return 0; // déja fait normalement
+ return 0; // déja fait normalement
//
- case 'g': // récupérer un (ou plusieurs) fichiers isolés
+ case 'g': // récupérer un (ou plusieurs) fichiers isolés
opt->wizard=2; // le wizard on peut plus s'en passer..
//opt->wizard=0; // pas de wizard
opt->cache=0; // ni de cache
opt->makeindex=0; // ni d'index
- httrack_logmode=1; // erreurs à l'écran
- opt->savename_type=1003; // mettre dans le répertoire courant
+ httrack_logmode=1; // erreurs à l'écran
+ opt->savename_type=1003; // mettre dans le répertoire courant
opt->depth=0; // ne pas explorer la page
opt->accept_cookie=0; // pas de cookies
opt->robots=0; // pas de robots
@@ -903,7 +903,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
break;
*/
//
- // note: les tests opt->depth sont pour éviter de faire
+ // note: les tests opt->depth sont pour éviter de faire
// un miroir du web (:-O) accidentelement ;-)
case 'a': /*if (opt->depth==9999) opt->depth=3;*/
opt->travel=0+(opt->travel&256); break;
@@ -1004,7 +1004,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
if (StringLength(opt->savename_userdef) > 0)
opt->savename_type = -1; // userdef!
else
- opt->savename_type = 0; // -N "" : par défaut
+ opt->savename_type = 0; // -N "" : par défaut
}
} else {
sscanf(com+1,"%d",&opt->savename_type); while(isdigit((unsigned char)*(com+1))) com++;
@@ -1050,7 +1050,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
case 'z': opt->debug=1; break; // petit debug
case 'Z': opt->debug=2; break; // GROS debug
//
- case '&': case '%': { // deuxième jeu d'options
+ case '&': case '%': { // deuxième jeu d'options
com++;
switch(*com) {
case 'M': opt->mimehtml = 1; if (*(com+1)=='0') { opt->mimehtml=0; com++; } break;
@@ -1066,7 +1066,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
case 'z': opt->nocompression=1; if (*(com+1)=='0') { opt->nocompression=0; com++; } break; // pas de compression
case 'f': opt->ftp_proxy=1; if (*(com+1)=='0') { opt->ftp_proxy=0; com++; } break; // proxy http pour ftp
case 'P': opt->parseall=1; if (*(com+1)=='0') { opt->parseall=0; com++; } break; // tout parser
- case 'n': opt->norecatch=1; if (*(com+1)=='0') { opt->norecatch=0; com++; } break; // ne pas reprendre fichiers effacés localement
+ case 'n': opt->norecatch=1; if (*(com+1)=='0') { opt->norecatch=0; com++; } break; // ne pas reprendre fichiers effacés localement
case 's': opt->sizehack=1; if (*(com+1)=='0') { opt->sizehack=0; com++; } break; // hack sur content-length
case 'u': opt->urlhack=1; if (*(com+1)=='0') { opt->urlhack=0; com++; } break; // url hack
case 'v': opt->verbosedisplay=2; if (isdigit((unsigned char)*(com+1))) { sscanf(com+1,"%d",&opt->verbosedisplay); while(isdigit((unsigned char)*(com+1))) com++; } break;
@@ -1369,7 +1369,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
break;
//
- case '@': { // troisième jeu d'options
+ case '@': { // troisième jeu d'options
com++;
switch(*com) {
case 'i':
@@ -1418,7 +1418,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
break;
//
- case '#': { // non documenté
+ case '#': { // non documenté
com++;
switch(*com) {
case 'C': // list cache files : httrack -#C '*spid*.gif' will attempt to find the matching file
@@ -1482,7 +1482,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
||
(strjoker(url, filter, NULL, NULL) != NULL)
) {
- r = cache_read_ro(opt, &cache, adr, fil, "", NULL); // lire entrée cache + data
+ r = cache_read_ro(opt, &cache, adr, fil, "", NULL); // lire entrée cache + data
if (r.statuscode != -1) { // No errors
found++;
if (!hasFilter) {
@@ -1634,7 +1634,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
break;
case 'p': /* opt->aff_progress=1; deprecated */ break;
case 'S': opt->shell=1; break; // stdin sur un shell
- case 'K': opt->keyboard=1; break; // vérifier stdin
+ case 'K': opt->keyboard=1; break; // vérifier stdin
//
case 'L': sscanf(com+1,"%d",&opt->maxlink); while(isdigit((unsigned char)*(com+1))) com++; break;
case 'F': sscanf(com+1,"%d",&opt->maxfilter); while(isdigit((unsigned char)*(com+1))) com++; break;
@@ -1711,7 +1711,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
return 0;
}
break;
- case '3': // charset tests: httrack #3 "iso-8859-1" "café"
+ case '3': // charset tests: httrack #3 "iso-8859-1" "café"
if (argc == 3) {
char *s = hts_convertStringToUTF8(argv[2], strlen(argv[2]), argv[1]);
if (s != NULL) {
@@ -1757,7 +1757,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
while(isdigit(com[1])) {
com++;
}
- na++; // sauter, déja traité
+ na++; // sauter, déja traité
break;
case 'P': // proxy
if ((na+1>=argc) || (argv[na+1][0]=='-')) {
@@ -1769,11 +1769,11 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
char* a;
na++;
opt->proxy.active=1;
- // Rechercher MAIS en partant de la fin à cause de user:pass@proxy:port
+ // Rechercher MAIS en partant de la fin à cause de user:pass@proxy:port
a = argv[na] + strlen(argv[na]) -1;
// a=strstr(argv[na],":"); // port
while( (a > argv[na]) && (*a != ':') && (*a != '@') ) a--;
- if (*a == ':') { // un port est présent, <proxy>:port
+ if (*a == ':') { // un port est présent, <proxy>:port
sscanf(a+1,"%d",&opt->proxy.port);
StringCopyN(opt->proxy.name,argv[na],(int) (a - argv[na]));
} else { // <proxy>
@@ -1799,7 +1799,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
if (StringNotEmpty(opt->user_agent))
opt->user_agent_send=1;
else
- opt->user_agent_send=0; // -F "" désactive l'option
+ opt->user_agent_send=0; // -F "" désactive l'option
}
break;
//
@@ -1820,7 +1820,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
if (StringNotEmpty(opt->sys_com))
opt->sys_com_exec=1;
else
- opt->sys_com_exec=0; // -V "" désactive l'option
+ opt->sys_com_exec=0; // -V "" désactive l'option
}
break;
//
@@ -1844,7 +1844,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
assertf(urlSize < HTS_URLMAXSIZE);
if (urlSize < HTS_URLMAXSIZE) {
ensureUrlCapacity(url, url_sz, capa);
- if (strnotempty(url)) strcatbuff(url," "); // espace de séparation
+ if (strnotempty(url)) strcatbuff(url," "); // espace de séparation
strcpybuff(tempo,unescape_http_unharm(catbuff,argv[na],1));
escape_spc_url(tempo);
strcatbuff(url,tempo);
@@ -1942,7 +1942,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
#endif
// on utilise le cache..
- // en cas de présence des deux versions, garder la version la plus avancée,
+ // en cas de présence des deux versions, garder la version la plus avancée,
// cad la version contenant le plus de fichiers
if (opt->cache) {
if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-in_progress.lock"))) { // problemes..
@@ -1961,7 +1961,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
else if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat")) && fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.ndx"))) {
if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.dat")) && fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.ndx"))) {
// switcher si new<32Ko et old>65Ko (tailles arbitraires) ?
- // ce cas est peut être une erreur ou un crash d'un miroir ancien, prendre
+ // ce cas est peut être une erreur ou un crash d'un miroir ancien, prendre
// alors l'ancien cache
if (fsize(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/new.dat"))<32768) {
if (fsize(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-cache/old.dat"))>65536) {
@@ -1981,7 +1981,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
}
- // Débuggage des en têtes
+ // Débuggage des en têtes
if (_DEBUG_HEAD) {
ioinfo=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-ioinfo.txt"),"wb");
}
@@ -2028,7 +2028,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
opt->errlog=NULL;
}
- // un petit lock-file pour indiquer un miroir en cours, ainsi qu'un éventuel fichier log
+ // un petit lock-file pour indiquer un miroir en cours, ainsi qu'un éventuel fichier log
{
FILE* fp=NULL;
//int n=0;
@@ -2067,7 +2067,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
}
}*/
- // vérifier existence de la structure
+ // vérifier existence de la structure
structcheck(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html), "/"));
structcheck(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "/"));
@@ -2156,7 +2156,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
#endif
if (strchr(arg, ' ') == NULL || strchr(arg, '\"') != NULL)
fprintf(opt->log,"%s ", arg);
- else // entre "" (si espace(s) et pas déja de ")
+ else // entre "" (si espace(s) et pas déja de ")
fprintf(opt->log,"\"%s\" ", arg);
#ifdef _WIN32
if (carg != NULL)
@@ -2206,7 +2206,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
/* Init external */
RUN_CALLBACK_NOARG(opt, init);
- // détourner SIGHUP etc.
+ // détourner SIGHUP etc.
#if DEBUG_STEPS
printf("Launching the mirror\n");
#endif
@@ -2285,7 +2285,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
if (opt->errlog) { fclose(opt->errlog); opt->errlog=NULL; }
}
- // Débuggage des en têtes
+ // Débuggage des en têtes
if (_DEBUG_HEAD) {
if (ioinfo) {
fclose(ioinfo);
@@ -2316,7 +2316,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt) {
// main() subroutines
-// vérifier chemin path
+// vérifier chemin path
int check_path(String* s, char* defaultname) {
int i;
int return_value=0;
@@ -2348,15 +2348,15 @@ int check_path(String* s, char* defaultname) {
}
// ending /
- if (StringNotEmpty(*s) && StringRight(*s, 1) != '/') // ajouter slash à la fin
+ if (StringNotEmpty(*s) && StringRight(*s, 1) != '/') // ajouter slash à la fin
StringCat(*s, "/");
return return_value;
}
-// détermine si l'argument est une option
+// détermine si l'argument est une option
int cmdl_opt(char* s) {
- if (s[0]=='-') { // c'est peut être une option
+ if (s[0]=='-') { // c'est peut être une option
if (strchr(s,'.')!=NULL && strchr(s,'%')==NULL)
return 0; // sans doute un -www.truc.fr (note: -www n'est pas compris)
else if (strchr(s,'/')!=NULL)
diff --git a/src/htscoremain.h b/src/htscoremain.h
index 9c19613..1de4c36 100644
--- a/src/htscoremain.h
+++ b/src/htscoremain.h
@@ -49,7 +49,7 @@ Please visit our Website: http://www.httrack.com
/* Library internal definictions */
#ifdef HTS_INTERNAL_BYTECODE
-// Main, récupère les paramètres et appelle le robot
+// Main, récupère les paramètres et appelle le robot
#ifndef HTTRACK_DEFLIB
HTSEXT_API int hts_main(int argc, char **argv);
HTSEXT_API int hts_main2(int argc, char **argv, httrackp *opt);
diff --git a/src/htsfilters.c b/src/htsfilters.c
index 68d66f5..4cc740b 100644
--- a/src/htsfilters.c
+++ b/src/htsfilters.c
@@ -55,9 +55,9 @@ Please visit our Website: http://www.httrack.com
#include <ctype.h>
/* END specific definitions */
-// à partir d'un tableau de {"+*.toto","-*.zip","+*.tata"} définit si nom est autorisé
-// optionnel: taille à contrôller (ou numéro, etc) en pointeur
-// (en de détection de *size, la taille limite est écrite par dessus *size)
+// à partir d'un tableau de {"+*.toto","-*.zip","+*.tata"} définit si nom est autorisé
+// optionnel: taille à contrôller (ou numéro, etc) en pointeur
+// (en de détection de *size, la taille limite est écrite par dessus *size)
// exemple: +-*.gif*[<5] == supprimer GIF si <5KB
int fa_strjoker(int type,char** filters,int nfil,char* nom,LLint* size,int* size_flag,int* depth) {
int verdict = 0; // on sait pas
@@ -83,7 +83,7 @@ int fa_strjoker(int type,char** filters,int nfil,char* nom,LLint* size,int* size
if (sz != *size)
sizelimit=sz;
if (filters[i][0]=='+')
- verdict = 1; // autorisé
+ verdict = 1; // autorisé
else
verdict = -1; // interdit
if (depth)
@@ -98,12 +98,12 @@ int fa_strjoker(int type,char** filters,int nfil,char* nom,LLint* size,int* size
// supercomparateur joker (tm)
// compare a et b (b=avec joker dedans), case insensitive [voir CI]
-// renvoi l'adresse de la première lettre de la chaine
-// (càd *[..]toto.. renvoi adresse de toto dans la chaine)
-// accepte les délires du genre www.*.*/ * / * truc*.*
-// cet algo est 'un peu' récursif mais ne consomme pas trop de tm
+// renvoi l'adresse de la première lettre de la chaine
+// (càd *[..]toto.. renvoi adresse de toto dans la chaine)
+// accepte les délires du genre www.*.*/ * / * truc*.*
+// cet algo est 'un peu' récursif mais ne consomme pas trop de tm
// * = toute lettre
-// --?-- : spécifique à HTTrack et aux ?
+// --?-- : spécifique à HTTrack et aux ?
HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
//int err=0;
if (strnotempty(joker)==0) { // fin de chaine joker
@@ -112,20 +112,20 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
else if (chaine[0]=='?')
return chaine; // --?-- pour les index.html?Choix=2
else
- return NULL; // non trouvé
+ return NULL; // non trouvé
}
// on va progresser en suivant les 'mots' contenus dans le joker
- // un mot peut être un * ou bien toute autre séquence de lettres
+ // un mot peut être un * ou bien toute autre séquence de lettres
- if (strcmp(joker,"*")==0) { // ok, rien après
+ if (strcmp(joker,"*")==0) { // ok, rien après
return chaine;
}
// 1er cas: jokers * ou jokers multiples *[..]
if (joker[0]=='*') { // comparer joker+reste (*toto/..)
- int jmp; // nombre de caractères pour le prochain mot dans joker
- int cut = 0; // interdire tout caractère superflu
+ int jmp; // nombre de caractères pour le prochain mot dans joker
+ int cut = 0; // interdire tout caractère superflu
char pass[256];
char LEFT='[',RIGHT=']';
int unique=0;
@@ -147,7 +147,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
int i;
for(i=0;i<256;i++) pass[i]=0;
- // noms réservés
+ // noms réservés
if ((strfield(joker+2,"file")) || (strfield(joker+2,"name"))) {
for(i=0;i<256;i++) pass[i]=1;
pass[(int) '?'] = 0;
@@ -166,7 +166,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
while ((joker[i]!=RIGHT) && (joker[i]) && (i<len)) i++;
}
} else if (strfield(joker+2,"param")) {
- if (chaine[0]=='?') { // il y a un paramètre juste là
+ if (chaine[0]=='?') { // il y a un paramètre juste là
for(i=0;i<256;i++) pass[i]=1;
} // sinon synonyme de 'rien'
i=2;
@@ -174,10 +174,10 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
while ((joker[i]!=RIGHT) && (joker[i]) && (i<len)) i++;
}
} else {
- // décode les directives comme *[A-Z,âêîôû,0-9]
+ // décode les directives comme *[A-Z,âêîôû,0-9]
i=2;
- if (joker[i] == RIGHT) { // *[] signifie "plus rien après"
- cut = 1; // caractère supplémentaire interdit
+ if (joker[i] == RIGHT) { // *[] signifie "plus rien après"
+ cut = 1; // caractère supplémentaire interdit
} else {
int len=(int) strlen(joker);
while ((joker[i]!=RIGHT) && (joker[i]) && (i<len)) {
@@ -189,7 +189,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
if (size) {
if (*size>=0) {
if (size_flag)
- *size_flag=1; /* a joué */
+ *size_flag=1; /* a joué */
if (joker[i-1]=='<')
lverdict=(*size<lsize);
else
@@ -228,7 +228,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
}
}
}
- // à sauter dans joker
+ // à sauter dans joker
jmp=i;
if (joker[i]) jmp++;
@@ -254,7 +254,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
}
// comparaison en boucle, c'est ca qui consomme huhu..
- // le tableau pass[256] indique les caractères ASCII autorisés
+ // le tableau pass[256] indique les caractères ASCII autorisés
// tester sans le joker (pas ()+ mais ()*)
if (!unique) {
@@ -270,7 +270,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
else /* *(a) only match a (not aaaaa) */
max=1;
while(i<(int) max) {
- if (pass[(int) (unsigned char) chaine[i]]) { // caractère autorisé
+ if (pass[(int) (unsigned char) chaine[i]]) { // caractère autorisé
if ( (adr=strjoker(chaine+i+1,joker+jmp,size,size_flag)) ) {
return adr;
}
@@ -278,7 +278,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
} else i=max+2; // sortir
}
- // tester chaîne vide
+ // tester chaîne vide
if (i!=max+2) // avant c'est ok
if ( (adr=strjoker(chaine+max,joker+jmp,size,size_flag)) )
return adr;
@@ -290,7 +290,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
if (strnotempty(chaine)) {
int jmp=0,ok=1;
- // comparer début de joker et début de chaine
+ // comparer début de joker et début de chaine
while((joker[jmp]!='*') && (joker[jmp]) && (ok)) {
// CI : remplacer streql par une comparaison !=
if (!streql(chaine[jmp],joker[jmp])) {
@@ -314,13 +314,13 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) {
}
// recherche multiple
-// exemple: find dans un texte de strcpybuff(*[A-Z,a-z],"*[0-9]"); va rechercher la première occurence
+// exemple: find dans un texte de strcpybuff(*[A-Z,a-z],"*[0-9]"); va rechercher la première occurence
// d'un strcpy sur une variable ayant un nom en lettres et copiant une chaine de chiffres
-// ATTENTION!! Eviter les jokers en début, où gare au temps machine!
+// ATTENTION!! Eviter les jokers en début, où gare au temps machine!
char* strjokerfind(char* chaine,char* joker) {
char* adr;
while(*chaine) {
- if ( (adr=strjoker(chaine,joker,NULL,NULL)) ) { // ok trouvé
+ if ( (adr=strjoker(chaine,joker,NULL,NULL)) ) { // ok trouvé
return adr;
}
chaine++;
diff --git a/src/htsftp.c b/src/htsftp.c
index 6e1d1f0..d8ed03d 100644
--- a/src/htsftp.c
+++ b/src/htsftp.c
@@ -92,7 +92,7 @@ void back_launch_ftp( void* pP ) {
printf("[Launching main ftp routine]\n");
#endif
run_launch_ftp(pStruct);
- // prêt
+ // prêt
pStruct->pBack->status=STATUS_FTP_READY;
/* Delete structure */
@@ -115,7 +115,7 @@ void launch_ftp(FTPDownloadStruct* params) {
#error No more supported
#endif
-// pour l'arrêt du ftp
+// pour l'arrêt du ftp
#ifdef _WIN32
#define _T_SOC_close(soc) closesocket(soc); soc=INVALID_SOCKET;
#else
@@ -132,7 +132,7 @@ void launch_ftp(FTPDownloadStruct* params) {
return 0; \
}
-// la véritable fonction une fois lancées les routines thread/fork
+// la véritable fonction une fois lancées les routines thread/fork
int run_launch_ftp(FTPDownloadStruct *pStruct) {
lien_back* back = pStruct->pBack;
httrackp *opt = pStruct->pOpt;
@@ -147,7 +147,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
char *adr,*real_adr;
char* ftp_filename="";
int timeout = 300; // timeout
- int timeout_onfly=8; // attente réponse supplémentaire
+ int timeout_onfly=8; // attente réponse supplémentaire
int transfer_list=0; // directory
int rest_understood=0; // rest command understood
t_fullhostent fullhostent_buffer; // buffer pour resolver
@@ -168,7 +168,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
back->r.statuscode=0;
back->r.size=0;
- // récupérer user et pass si présents, et sauter user:id@ dans adr
+ // récupérer user et pass si présents, et sauter user:id@ dans adr
real_adr = strchr(back->url_adr,':');
if (real_adr) real_adr++;
else real_adr=back->url_adr;
@@ -262,7 +262,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
} else
strcpybuff(_adr,adr);
- // récupérer adresse résolue
+ // récupérer adresse résolue
strcpybuff(back->info,"host name");
hp = hts_gethostbyname(opt,_adr, &fullhostent_buffer);
if (hp == NULL) {
@@ -280,7 +280,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
SOCaddr_copyaddr(server_data, server_data_size, hp->h_addr_list[0], hp->h_length);
// memcpy(&server.sin_addr, hp->h_addr, hp->h_length);
- // créer ("attachement") une socket (point d'accès) internet,en flot
+ // créer ("attachement") une socket (point d'accès) internet,en flot
soc_ctl = (T_SOC) socket(SOCaddr_sinfamily(server), SOCK_STREAM, 0);
if (soc_ctl==INVALID_SOCKET) {
strcpybuff(back->r.msg,"Unable to create a socket");
@@ -318,10 +318,10 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
// envoi du login
// --USER--
- get_ftp_line(soc_ctl,line,timeout); // en tête
+ get_ftp_line(soc_ctl,line,timeout); // en tête
_CHECK_HALT_FTP;
- if (line[0]=='2') { // ok, connecté
+ if (line[0]=='2') { // ok, connecté
strcpybuff(back->info,"login: user");
sprintf(line,"USER %s",user);
send_line(soc_ctl,line);
@@ -352,7 +352,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
char* a;
a=back->url_fil + strlen(back->url_fil)-1;
while( (a > back->url_fil) && (*a!='/')) a--;
- if (*a == '/') { // ok repéré
+ if (*a == '/') { // ok repéré
char BIGSTK target[1024];
target[0]='\0';
strncatbuff(target,back->url_fil,(int) (a - back->url_fil));
@@ -378,7 +378,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
sprintf(back->r.msg,"CWD error: %s",linejmp(line));
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
} else {
strcpybuff(back->r.msg,"Unexpected ftp error");
// back->status=STATUS_FTP_READY; // fini
@@ -402,12 +402,12 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
back->r.statuscode=STATUSCODE_INVALID;
}
- // ok, si on est prêts on écoute sur un port et on demande la sauce
+ // ok, si on est prêts on écoute sur un port et on demande la sauce
if (back->r.statuscode != -1) {
//
- // Pré-REST
+ // Pré-REST
//
#if FTP_PASV
if (SOCaddr_getproto(server, server_size) == '1') {
@@ -436,7 +436,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
strcpybuff(adr_ip,a); // copier adresse ip
//
if (b) {
- a=b+1; // début du port
+ a=b+1; // début du port
b=strchr(a,'.');
if (b) {
int n1,n2;
@@ -451,7 +451,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
}
} else {
deletesoc(soc_dat); soc_dat=INVALID_SOCKET;
- } // sinon on est prêts
+ } // sinon on est prêts
}
}
// -- fin analyse de l'adresse IP et du port --
@@ -459,7 +459,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
sprintf(back->r.msg,"PASV incorrect: %s",linejmp(line));
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
} else {
/*
* try epsv (ipv6) *
@@ -496,10 +496,10 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
sprintf(back->r.msg,"PASV/EPSV error: %s",linejmp(line));
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
}
#else
- // rien à faire avant
+ // rien à faire avant
#endif
#if FTP_PASV
@@ -570,7 +570,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
// infos
strcpybuff(back->info,"resolv");
- // résoudre
+ // résoudre
if (adr_ip[0]) {
hp = hts_gethostbyname(opt,adr_ip, &fullhostent_buffer);
if (hp) {
@@ -613,7 +613,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
sprintf(back->r.msg,"RETR command errror: %s",linejmp(line));
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
} else {
#if FTP_DEBUG
printf("Data: unable to connect\n");
@@ -623,22 +623,22 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
strcpybuff(back->r.msg,"Unable to connect");
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
} else {
strcpybuff(back->r.msg,"Unable to create a socket");
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
} else {
sprintf(back->r.msg,"Unable to resolve IP %s",adr_ip);
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
} else {
sprintf(back->r.msg,"PASV incorrect: %s",linejmp(line));
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
- } // sinon on est prêts
+ } // sinon on est prêts
#else
//T_SOC soc_servdat;
strcpybuff(back->info,"listening");
@@ -683,10 +683,10 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
#endif
//
- // Ok, connexion initiée
+ // Ok, connexion initiée
//
if (soc_dat != INVALID_SOCKET) {
- if (rest_understood) { // REST envoyée et comprise
+ if (rest_understood) { // REST envoyée et comprise
file_notify(opt, back->url_adr, back->url_fil, back->url_sav, 0, 1, 0);
back->r.fp = fileappend(&opt->state.strc, back->url_sav);
} else {
@@ -698,10 +698,10 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
char BIGSTK buff[1024];
int len=1;
int read_len=1024;
- //HTS_TOTAL_RECV_CHECK(read_len); // Diminuer au besoin si trop de données reçues
+ //HTS_TOTAL_RECV_CHECK(read_len); // Diminuer au besoin si trop de données reçues
while( (len>0) && (!stop_ftp(back)) ) {
- // attendre les données
+ // attendre les données
len=1; // pas d'erreur pour le moment
switch(wait_socket_receive(soc_dat,timeout)) {
case -1:
@@ -718,7 +718,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
break;
}
- // réception
+ // réception
if (len) {
len=recv(soc_dat,buff,read_len,0);
if (len>0) {
@@ -742,7 +742,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=STATUSCODE_INVALID;
}
- } else { // Erreur ou terminé
+ } else { // Erreur ou terminé
// back->status=STATUS_FTP_READY; // fini
back->r.statuscode=0;
if (back->r.totalsize > 0 && back->r.size != back->r.totalsize) {
@@ -751,7 +751,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
}
}
read_len=1024;
- //HTS_TOTAL_RECV_CHECK(read_len); // Diminuer au besoin si trop de données reçues
+ //HTS_TOTAL_RECV_CHECK(read_len); // Diminuer au besoin si trop de données reçues
}
}
if (back->r.fp) {
@@ -772,7 +772,7 @@ int run_launch_ftp(FTPDownloadStruct *pStruct) {
// 226 Transfer complete?
if (back->r.statuscode != -1) {
if (wait_socket_receive(soc_ctl,timeout_onfly)>0) {
- // récupérer 226 transfer complete
+ // récupérer 226 transfer complete
get_ftp_line(soc_ctl,line,timeout);
if (line[0]=='2') { // OK
strcpybuff(back->r.msg,"OK");
@@ -849,7 +849,7 @@ T_SOC get_datasocket(char* to_send) {
// effacer structure
memset(&server2, 0, sizeof(server2));
if (getsockname(soc,(struct sockaddr*) &server2, &len) == 0) {
- // *port=ntohs(server.sin_port); // récupérer port
+ // *port=ntohs(server.sin_port); // récupérer port
if (listen(soc,10)>=0) { // au pif le 10
#if HTS_INET6==0
unsigned short int a,n1,n2;
@@ -921,7 +921,7 @@ T_SOC get_datasocket(char* to_send) {
FILE* dd=NULL;
#endif
-// routines de réception/émission
+// routines de réception/émission
// 0 = ERROR
int send_line(T_SOC soc,char* data) {
char BIGSTK line[1024];
@@ -941,7 +941,7 @@ int send_line(T_SOC soc,char* data) {
#if FTP_DEBUG
printf("!SOC WRITE ERROR\n");
#endif
- return 0; // erreur, plus connecté!
+ return 0; // erreur, plus connecté!
}
#if FTP_DEBUG
{
@@ -966,7 +966,7 @@ int get_ftp_line(T_SOC soc,char* line,int timeout) {
do {
char b;
- // vérifier données
+ // vérifier données
switch(wait_socket_receive(soc,timeout)) {
case -1: // erreur de lecture
if (line) strcpybuff(line,"500 *read error");
@@ -978,7 +978,7 @@ int get_ftp_line(T_SOC soc,char* line,int timeout) {
break;
}
- //HTS_TOTAL_RECV_CHECK(dummy); // Diminuer au besoin si trop de données reçues
+ //HTS_TOTAL_RECV_CHECK(dummy); // Diminuer au besoin si trop de données reçues
switch(recv(soc,&b,1,0)) {
//case 0: break; // pas encore --> erreur (on attend)!
case 1:
@@ -1075,9 +1075,9 @@ int check_socket_connect(T_SOC soc) {
}
return 0;
}
-// attendre des données
+// attendre des données
int wait_socket_receive(T_SOC soc,int timeout) {
- // attendre les données
+ // attendre les données
TStamp ltime=time_local();
int r;
#if FTP_DEBUG
@@ -1096,7 +1096,7 @@ int wait_socket_receive(T_SOC soc,int timeout) {
}
-// cancel reçu?
+// cancel reçu?
int stop_ftp(lien_back* back) {
if (back->stop_ftp) {
strcpybuff(back->r.msg, "Cancelled by User");
diff --git a/src/htsglobal.h b/src/htsglobal.h
index 6512f42..8d13c43 100644
--- a/src/htsglobal.h
+++ b/src/htsglobal.h
@@ -34,7 +34,7 @@ Please visit our Website: http://www.httrack.com
/* Author: Xavier Roche */
/* ------------------------------------------------------------ */
-// Fichier réunissant l'ensemble des defines
+// Fichier réunissant l'ensemble des defines
#ifndef HTTRACK_GLOBAL_DEFH
#define HTTRACK_GLOBAL_DEFH
@@ -60,7 +60,7 @@ Please visit our Website: http://www.httrack.com
#endif
#endif
-// Définition plate-forme
+// Définition plate-forme
#include "htsconfig.h"
// WIN32 types
@@ -179,7 +179,7 @@ Please visit our Website: http://www.httrack.com
#define BIGSTK
#endif
-// compatibilité DOS
+// compatibilité DOS
#ifdef _WIN32
#define HTS_DOSNAME 1
#else
@@ -279,7 +279,7 @@ Please visit our Website: http://www.httrack.com
#define LF "\x0a"
#endif
-/* équivaut à "paramètre vide", par exemple -F (none) */
+/* équivaut à "paramètre vide", par exemple -F (none) */
#define HTS_NOPARAM "(none)"
#define HTS_NOPARAM2 "\"(none)\""
@@ -381,7 +381,7 @@ typedef int T_SOC;
#define __cdecl
#endif
-/* mode pour mkdir ET chmod (accès aux fichiers) */
+/* mode pour mkdir ET chmod (accès aux fichiers) */
#define HTS_PROTECT_FOLDER (S_IRUSR|S_IWUSR|S_IXUSR)
#if HTS_ACCESS
#define HTS_ACCESS_FILE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
@@ -391,7 +391,7 @@ typedef int T_SOC;
#define HTS_ACCESS_FOLDER (S_IRUSR|S_IWUSR|S_IXUSR)
#endif
-/* vérifier la déclaration des variables préprocesseur */
+/* vérifier la déclaration des variables préprocesseur */
#ifndef HTS_DOSNAME
#error | HTS_DOSNAME Has not been defined.
#error | Set it to 1 if you are under DOS, 0 under Unix.
@@ -401,7 +401,7 @@ typedef int T_SOC;
#error
#endif
#ifndef HTS_ACCESS
-/* Par défaut, accès à tous les utilisateurs */
+/* Par défaut, accès à tous les utilisateurs */
#define HTS_ACCESS 1
#endif
@@ -412,7 +412,7 @@ typedef int T_SOC;
/* HTSLib */
-// Cache DNS, accélère les résolution d'adresses
+// Cache DNS, accélère les résolution d'adresses
#define HTS_DNSCACHE 1
// ID d'une pseudo-socket locale pour les file://
@@ -459,7 +459,7 @@ static const t_htsboundary htsboundary = 0xDEADBEEF;
/* Debugging */
/* ------------------------------------------------------------ */
-// débuggage types
+// débuggage types
#define DEBUG_SHOWTYPES 0
// backing debug
#define BDEBUG 0
@@ -477,29 +477,29 @@ static const t_htsboundary htsboundary = 0xDEADBEEF;
#define DEBUG_ROBOTS 0
// debug hash
#define DEBUG_HASH 0
-// Vérification d'intégrité
+// Vérification d'intégrité
#define DEBUG_CHECKINT 0
// nbr sockets debug
#define NSDEBUG 0
-// débuggage HTSLib
+// débuggage HTSLib
#define HDEBUG 0
// surveillance de la connexion
#define CNXDEBUG 0
// debuggage cookies
#define DEBUG_COOK 0
-// débuggage hard..
+// débuggage hard..
#define HTS_WIDE_DEBUG 0
// debuggage deletehttp et cie
#define HTS_DEBUG_CLOSESOCK 0
-// debug tracage mémoire
+// debug tracage mémoire
#define MEMDEBUG 0
// htsmain
#define DEBUG_STEPS 0
-// Débuggage de contrôle
+// Débuggage de contrôle
#if HTS_DEBUG_CLOSESOCK
#define _HTS_WIDE 1
#endif
diff --git a/src/htshash.c b/src/htshash.c
index f4c6ffd..034ee81 100644
--- a/src/htshash.c
+++ b/src/htshash.c
@@ -57,12 +57,12 @@ Please visit our Website: http://www.httrack.com
#endif
// GESTION DES TABLES DE HACHAGE
-// Méthode à 2 clés (adr+fil), 2e cle facultative
-// hash[no_enregistrement][pos]->hash est un index dans le tableau général liens
+// Méthode à 2 clés (adr+fil), 2e cle facultative
+// hash[no_enregistrement][pos]->hash est un index dans le tableau général liens
// #define HTS_HASH_SIZE 8191 (premier si possible!)
// type: numero enregistrement - 0 est case insensitive (sav) 1 (adr+fil) 2 (former_adr+former_fil)
// recherche dans la table selon nom1,nom2 et le no d'enregistrement
-// retour: position ou -1 si non trouvé
+// retour: position ou -1 si non trouvé
int hash_read(const hash_struct* hash,const char* nom1,const char* nom2,int type,int normalized) {
char BIGSTK normfil_[HTS_URLMAXSIZE*2];
char catbuff[CATBUFF_SIZE];
@@ -70,17 +70,17 @@ int hash_read(const hash_struct* hash,const char* nom1,const char* nom2,int type
const char* normadr;
unsigned int cle;
int pos;
- // calculer la clé de recherche, non modulée
+ // calculer la clé de recherche, non modulée
if (type)
cle = hash_cle(nom1,nom2);
else
cle = hash_cle(convtolower(catbuff,nom1),nom2); // case insensitive
// la position se calcule en modulant
pos = (int) (cle%HTS_HASH_SIZE);
- // entrée trouvée?
- if (hash->hash[type][pos] >= 0) { // un ou plusieurs enregistrement(s) avec une telle clé existe..
+ // entrée trouvée?
+ if (hash->hash[type][pos] >= 0) { // un ou plusieurs enregistrement(s) avec une telle clé existe..
// tester table de raccourcis (hash)
- // pos est maintenant la position recherchée dans liens
+ // pos est maintenant la position recherchée dans liens
pos = hash->hash[type][pos];
while (pos>=0) { // parcourir la chaine
switch (type) {
@@ -142,13 +142,13 @@ int hash_read(const hash_struct* hash,const char* nom1,const char* nom2,int type
}
// Ok va falloir chercher alors..
- /*pos=hash->max_lien; // commencer à max_lien
+ /*pos=hash->max_lien; // commencer à max_lien
switch (type) {
case 0: // sav
while(pos>=0) {
if (hash->liens[pos]->hash_sav == cle ) {
if (strcmp(nom1,hash->liens[pos]->sav)==0) {
- hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
+ hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
#if DEBUG_HASH==2
printf("hash: found long search at %d\n",pos);
#endif
@@ -162,7 +162,7 @@ int hash_read(const hash_struct* hash,const char* nom1,const char* nom2,int type
while(pos>=0) {
if (hash->liens[pos]->hash_adrfil == cle ) {
if ((strcmp(nom1,hash->liens[pos]->adr)==0) && (strcmp(nom2,hash->liens[pos]->fil)==0)) {
- hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
+ hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
#if DEBUG_HASH==2
printf("hash: found long search at %d\n",pos);
#endif
@@ -177,7 +177,7 @@ int hash_read(const hash_struct* hash,const char* nom1,const char* nom2,int type
if (hash->liens[pos]->hash_fadrfil == cle ) {
if (hash->liens[pos]->former_adr)
if ((strcmp(nom1,hash->liens[pos]->former_adr)==0) && (strcmp(nom2,hash->liens[pos]->former_fil)==0)) {
- hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
+ hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
#if DEBUG_HASH==2
printf("hash: found long search at %d\n",pos);
#endif
@@ -190,12 +190,12 @@ int hash_read(const hash_struct* hash,const char* nom1,const char* nom2,int type
#if DEBUG_HASH==1
printf("hash: not found after test %s%s\n",nom1,nom2);
#endif
- return -1; // non trouvé
+ return -1; // non trouvé
} else {
#if DEBUG_HASH==2
printf("hash: not found %s%s\n",nom1,nom2);
#endif
- return -1; // non trouvé : clé non entrée (même une fois)
+ return -1; // non trouvé : clé non entrée (même une fois)
}
}
@@ -213,13 +213,13 @@ void hash_write(hash_struct* hash,int lpos,int normalized) {
#if DEBUG_HASH
hashnumber=hash->max_lien;
#endif
- // élément actuel sur -1 (fin de chaine)
+ // élément actuel sur -1 (fin de chaine)
hash->liens[lpos]->hash_next[0]=hash->liens[lpos]->hash_next[1]=hash->liens[lpos]->hash_next[2]=-1;
//
cle = hash_cle(convtolower(catbuff,hash->liens[lpos]->sav),""); // CASE INSENSITIVE
pos = (int) (cle%HTS_HASH_SIZE);
ptr = hash_calc_chaine(hash,0,pos); // calculer adresse chaine
- *ptr = lpos; // noter dernier enregistré
+ *ptr = lpos; // noter dernier enregistré
#if DEBUG_HASH==3
printf("[%d",pos);
#endif
@@ -234,7 +234,7 @@ void hash_write(hash_struct* hash,int lpos,int normalized) {
cle = hash_cle(jump_normalized(hash->liens[lpos]->adr),normfil);
pos = (int) (cle%HTS_HASH_SIZE);
ptr = hash_calc_chaine(hash,1,pos); // calculer adresse chaine
- *ptr = lpos; // noter dernier enregistré
+ *ptr = lpos; // noter dernier enregistré
#if DEBUG_HASH==3
printf(",%d",pos);
#endif
@@ -250,7 +250,7 @@ void hash_write(hash_struct* hash,int lpos,int normalized) {
cle = hash_cle(jump_normalized(hash->liens[lpos]->former_adr),normfil);
pos = (int) (cle%HTS_HASH_SIZE);
ptr = hash_calc_chaine(hash,2,pos); // calculer adresse chaine
- *ptr = lpos; // noter dernier enregistré
+ *ptr = lpos; // noter dernier enregistré
#if DEBUG_HASH==3
printf(",%d",pos);
#endif
@@ -269,7 +269,7 @@ void hash_write(hash_struct* hash,int lpos,int normalized) {
//
}
-// calcul clé
+// calcul clé
// il n'y a pas de formule de hashage universelle, celle-ci semble acceptable..
unsigned long int hash_cle(const char* nom1, const char* nom2) {
/*
@@ -294,13 +294,13 @@ unsigned long int hash_cle(const char* nom1, const char* nom2) {
+md5sum32(nom2);
}
-// calcul de la position finale dans la chaine des elements ayant la même clé
+// calcul de la position finale dans la chaine des elements ayant la même clé
int* hash_calc_chaine(hash_struct* hash,int type,int pos) {
#if DEBUG_HASH
int count=0;
#endif
if (hash->hash[type][pos] == -1)
- return &(hash->hash[type][pos]); // premier élément dans la chaine
+ return &(hash->hash[type][pos]); // premier élément dans la chaine
pos=hash->hash[type][pos];
while(hash->liens[pos]->hash_next[type] != -1) {
pos = hash->liens[pos]->hash_next[type];
diff --git a/src/htshelp.c b/src/htshelp.c
index 6ba34c6..37aee84 100644
--- a/src/htshelp.c
+++ b/src/htshelp.c
@@ -184,7 +184,7 @@ void help_wizard(httrackp* opt) {
if ((str[strlen(str)-1]!='/') && (str[strlen(str)-1]!='\\'))
strcatbuff(str,"/");
strcatbuff(stropt2,"-O \""); strcatbuff(stropt2,str); strcatbuff(stropt2,projname); strcatbuff(stropt2,"\" ");
- // Créer si ce n'est fait un index.html 1er niveau
+ // Créer si ce n'est fait un index.html 1er niveau
make_empty_index(str);
//
printf("\n");
@@ -376,7 +376,7 @@ void help_catchurl(const char* dest_path) {
printf("Unable to create a temporary proxy (no remaining port)\n");
}
-// Créer un index.html vide
+// Créer un index.html vide
void make_empty_index(char* str) {
#if 0
if (!fexist(fconcat(str,"index.html"))) {
diff --git a/src/htsindex.c b/src/htsindex.c
index eea1c47..48d50e2 100644
--- a/src/htsindex.c
+++ b/src/htsindex.c
@@ -61,17 +61,17 @@ Please visit our Website: http://www.httrack.com
// MUST HAVE SAME SIZES!!
#define KEYW_TRANSCODE_FROM (\
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
- "àâä" \
- "ÀÂÄ" \
- "éèêë" \
- "ÈÈÊË" \
- "ìîï" \
- "ÌÎÏ" \
- "òôö" \
- "ÒÔÖ" \
- "ùûü" \
- "ÙÛÜ" \
- "ÿ" \
+ "àâä" \
+ "ÀÂÄ" \
+ "éèêë" \
+ "ÈÈÊË" \
+ "ìîï" \
+ "ÌÎÃ" \
+ "òôö" \
+ "ÒÔÖ" \
+ "ùûü" \
+ "ÙÛÜ" \
+ "ÿ" \
)
#define KEYW_TRANSCODE_TO ( \
"abcdefghijklmnopqrstuvwxyz" \
diff --git a/src/htsjava.c b/src/htsjava.c
index 89bc74f..2a3d648 100644
--- a/src/htsjava.c
+++ b/src/htsjava.c
@@ -191,7 +191,7 @@ static int hts_parse_java(t_hts_callbackarg *carg, httrackp *opt,
#if JAVADEBUG
printf("header\n");
#endif
- // tester en tête
+ // tester en tête
if (reverse_endian()) {
header.magic = hts_swap32(header.magic);
header.count = hts_swap16(header.count);
@@ -415,7 +415,7 @@ static RESP_STRUCT readtable(htsmoduleStruct* str,
break;
default:
// printf("Type inconnue\n");
- // on arrête tout
+ // on arrête tout
sprintf(str->err_msg,"Internal structure unknown (type %d)",trans.type);
*error = 1;
return(trans);
diff --git a/src/htslib.c b/src/htslib.c
index 8b20879..11d40da 100644
--- a/src/htslib.c
+++ b/src/htslib.c
@@ -120,7 +120,7 @@ FILE* ioinfo;
#endif
int IPV6_resolver = 0;
-/* détection complémentaire */
+/* détection complémentaire */
const char* hts_detect[] = {
"archive",
"background",
@@ -138,13 +138,13 @@ const char* hts_detect[] = {
""
};
-/* détecter début */
+/* détecter début */
const char* hts_detectbeg[] = {
"hotspot", /* hotspot1=..,hotspot2=.. */
""
};
-/* ne pas détcter de liens dedans */
+/* ne pas détcter de liens dedans */
const char* hts_nodetect[] = {
"accept-charset",
"accesskey",
@@ -185,7 +185,7 @@ const char* hts_nodetect[] = {
};
-/* détection de mini-code javascript */
+/* détection de mini-code javascript */
/* ALSO USED: detection based on the name: onXXX="<tag>" where XXX starts with upper case letter */
const char* hts_detect_js[] = {
"onAbort",
@@ -226,19 +226,19 @@ const char* hts_main_mime[] = {
""
};
-/* détection "...URL=<url>" */
+/* détection "...URL=<url>" */
const char* hts_detectURL[] = {
"content",
""
};
-/* tags où l'URL doit être réécrite mais non capturée */
+/* tags où l'URL doit être réécrite mais non capturée */
const char* hts_detectandleave[] = {
"action",
""
};
-/* ne pas renommer les types renvoyés (souvent types inconnus) */
+/* ne pas renommer les types renvoyés (souvent types inconnus) */
const char* hts_mime_keep[] = {
"application/octet-stream",
"text/plain",
@@ -603,7 +603,7 @@ const char* hts_mime[][2] = {
-// conversion éventuelle / vers antislash
+// conversion éventuelle / vers antislash
#ifdef _WIN32
char* antislash(char *catbuff, const char* s) {
char* a;
@@ -626,24 +626,24 @@ void hts_init_htsblk(htsblk* r) {
r->totalsize=-1;
}
-// Récupération d'un fichier http sur le net.
-// Renvoie une adresse sur le bloc de mémoire, ou bien
+// Récupération d'un fichier http sur le net.
+// Renvoie une adresse sur le bloc de mémoire, ou bien
// NULL si un retour.msgeur (buffer retour.msg) est survenue.
//
-// Une adresse de structure htsmsg peut être transmise pour
-// suivre l'évolution du chargement si le process a été lancé
+// Une adresse de structure htsmsg peut être transmise pour
+// suivre l'évolution du chargement si le process a été lancé
// en background
htsblk httpget(httrackp *opt,char* url) {
char BIGSTK adr[HTS_URLMAXSIZE*2]; // adresse
char BIGSTK fil[HTS_URLMAXSIZE*2]; // chemin
- // séparer URL en adresse+chemin
+ // séparer URL en adresse+chemin
if (ident_url_absolute(url,adr,fil)==-1) {
htsblk retour;
hts_init_htsblk(&retour);
//memset(&retour, 0, sizeof(htsblk)); // effacer
- // retour prédéfini: erreur
+ // retour prédéfini: erreur
retour.adr=NULL;
retour.size=0;
retour.msg[0]='\0';
@@ -655,14 +655,14 @@ htsblk httpget(httrackp *opt,char* url) {
return xhttpget(opt,adr,fil);
}
-// ouvre une liaison http, envoie une requète GET et réceptionne le header
+// ouvre une liaison http, envoie une requète GET et réceptionne le header
// retour: socket
T_SOC http_fopen(httrackp *opt,char* adr,char* fil,htsblk* retour) {
- // / GET, traiter en-tête
+ // / GET, traiter en-tête
return http_xfopen(opt,0,1,1,NULL,adr,fil,retour);
}
-// ouverture d'une liaison http, envoi d'une requète
+// ouverture d'une liaison http, envoi d'une requète
// mode: 0 GET 1 HEAD [2 POST]
// treat: traiter header?
// waitconnect: attendre le connect()
@@ -673,7 +673,7 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
T_SOC soc=INVALID_SOCKET;
//char *p,*q;
- // retour prédéfini: erreur
+ // retour prédéfini: erreur
if (retour) {
retour->adr=NULL;
retour->size=0;
@@ -687,7 +687,7 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
// ouvrir liaison
#if HDEBUG
- printf("Création d'une socket sur %s\n",adr);
+ printf("Création d'une socket sur %s\n",adr);
#endif
#if CNXDEBUG
@@ -706,7 +706,7 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
) { /* pas de proxy, ou non utilisable ici */
soc=newhttp(opt,adr,retour,-1,waitconnect);
} else {
- soc=newhttp(opt, retour->req.proxy.name, retour,retour->req.proxy.port, waitconnect); // ouvrir sur le proxy à la place
+ soc=newhttp(opt, retour->req.proxy.name, retour,retour->req.proxy.port, waitconnect); // ouvrir sur le proxy à la place
}
} else {
soc=newhttp(opt,adr,NULL,-1,waitconnect);
@@ -785,10 +785,10 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
char rcvd[1100];
rcvd[0]='\0';
#if HDEBUG
- printf("Ok, connexion réussie, id=%d\n",soc);
+ printf("Ok, connexion réussie, id=%d\n",soc);
#endif
- // connecté?
+ // connecté?
if (waitconnect) {
http_sendhead(opt,NULL,mode,xsend,adr,fil,NULL,NULL,retour);
}
@@ -796,20 +796,20 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
if (soc!=INVALID_SOCKET) {
#if HDEBUG
- printf("Attente de la réponse:\n");
+ printf("Attente de la réponse:\n");
#endif
- // si GET (réception d'un fichier), réceptionner en-tête d'abord,
+ // si GET (réception d'un fichier), réceptionner en-tête d'abord,
// et ensuite le corps
- // si POST on ne réceptionne rien du tout, c'est après que l'on fera
- // une réception standard pour récupérer l'en tête
- if ((treat) && (waitconnect)) { // traiter (attendre!) en-tête
- // Réception de la status line et de l'en-tête (norme RFC1945)
+ // si POST on ne réceptionne rien du tout, c'est après que l'on fera
+ // une réception standard pour récupérer l'en tête
+ if ((treat) && (waitconnect)) { // traiter (attendre!) en-tête
+ // Réception de la status line et de l'en-tête (norme RFC1945)
- // status-line à récupérer
+ // status-line à récupérer
finput(soc,rcvd,1024);
if (strnotempty(rcvd)==0)
- finput(soc,rcvd,1024); // "certains serveurs buggés envoient un \n au début" (RFC)
+ finput(soc,rcvd,1024); // "certains serveurs buggés envoient un \n au début" (RFC)
// traiter status-line
treatfirstline(retour,rcvd);
@@ -818,9 +818,9 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
printf("Status-Code=%d\n",retour->statuscode);
#endif
- // en-tête
+ // en-tête
- // header // ** !attention! HTTP/0.9 non supporté
+ // header // ** !attention! HTTP/0.9 non supporté
do {
finput(soc,rcvd,1024);
#if HDEBUG
@@ -836,8 +836,8 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
//if (retour)
// retour->totalsize=rcvsize;
- } else { // si GET, on recevra l'en tête APRES
- //rcvsize=-1; // on ne connait pas la taille de l'en-tête
+ } else { // si GET, on recevra l'en tête APRES
+ //rcvsize=-1; // on ne connait pas la taille de l'en-tête
if (retour)
retour->totalsize=-1;
}
@@ -850,10 +850,10 @@ T_SOC http_xfopen(httrackp *opt,int mode,int treat,int waitconnect,char* xsend,c
}
-// envoi d'une requète
+// envoi d'une requète
int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,char* fil,char* referer_adr,char* referer_fil,htsblk* retour) {
char BIGSTK buff[8192];
- //int use_11=0; // HTTP 1.1 utilisé
+ //int use_11=0; // HTTP 1.1 utilisé
int direct_url=0; // ne pas analyser l'url (exemple: ftp://)
char* search_tag=NULL;
buff[0]='\0';
@@ -864,10 +864,10 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
//sendc("\n");
//strcatbuff(buff,buff);
- // possibilité non documentée: >post: et >postfile:
- // si présence d'un tag >post: alors executer un POST
+ // possibilité non documentée: >post: et >postfile:
+ // si présence d'un tag >post: alors executer un POST
// exemple: http://www.someweb.com/test.cgi?foo>post:posteddata=10&foo=5
- // si présence d'un tag >postfile: alors envoyer en tête brut contenu dans le fichier en question
+ // si présence d'un tag >postfile: alors envoyer en tête brut contenu dans le fichier en question
// exemple: http://www.someweb.com/test.cgi?foo>postfile:post0.txt
search_tag=strstr(fil,POSTTOK":");
if (!search_tag) {
@@ -898,7 +898,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
// Fin postfile
if (strnotempty(buff)==0) { // PAS POSTFILE
- // Type de requète?
+ // Type de requète?
if ((search_tag) && (mode==0)) {
strcatbuff(buff,"POST ");
} else if (mode==0) { // GET
@@ -910,7 +910,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
strcatbuff(buff,"HEAD ");
}
- // si on gère un proxy, il faut une Absolute URI: on ajoute avant http://www.adr.dom
+ // si on gère un proxy, il faut une Absolute URI: on ajoute avant http://www.adr.dom
if ( retour->req.proxy.active && (strncmp(adr,"https://", 8) != 0) ) {
if (!link_has_authority(adr)) { // default http
#if HDEBUG
@@ -928,7 +928,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
}
// NOM DU FICHIER
- // on slash doit être présent en début, sinon attention aux bad request! (400)
+ // on slash doit être présent en début, sinon attention aux bad request! (400)
if (*fil!='/') strcatbuff(buff,"/");
{
char BIGSTK tempo[HTS_URLMAXSIZE*2];
@@ -938,20 +938,20 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
else
strcpybuff(tempo,fil);
escape_check_url(tempo);
- strcatbuff(buff,tempo); // avec échappement
+ strcatbuff(buff,tempo); // avec échappement
}
// protocole
if (!retour->req.http11) { // forcer HTTP/1.0
//use_11=0;
strcatbuff(buff," HTTP/1.0\x0d\x0a");
- } else { // Requète 1.1
+ } else { // Requète 1.1
//use_11=1;
strcatbuff(buff," HTTP/1.1\x0d\x0a");
}
/* supplemental data */
- if (xsend) strcatbuff(buff,xsend); // éventuelles autres lignes
+ if (xsend) strcatbuff(buff,xsend); // éventuelles autres lignes
// tester proxy authentication
if (retour->req.proxy.active) {
@@ -1036,7 +1036,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
b=cookie_nextfield(b);
}
} while( (b) && (max_cookies>0) && ((int)strlen(buff)<max_size));
- if (cook) { // on a envoyé un (ou plusieurs) cookie?
+ if (cook) { // on a envoyé un (ou plusieurs) cookie?
strcatbuff(buff,H_CRLF);
#if DEBUG_COOK
printf("Header:\n%s\n",buff);
@@ -1044,7 +1044,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
}
}
- // gérer le keep-alive (garder socket)
+ // gérer le keep-alive (garder socket)
if (retour->req.http11 && !retour->req.nokeepalive) {
strcatbuff(buff,"Connection: Keep-Alive"H_CRLF);
} else {
@@ -1068,7 +1068,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
strcatbuff(buff, H_CRLF);
}
- // Présence d'un user-agent?
+ // Présence d'un user-agent?
if (retour->req.user_agent_send) { // ohh un user-agent
char s[256];
// HyperTextSeeker/"HTSVERSION
@@ -1136,10 +1136,10 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
//strcatbuff(buff,"Accept-Language: en\n");
//strcatbuff(buff,"Accept-Charset: iso-8859-1,*,utf-8\n");
- // CRLF de fin d'en tête
+ // CRLF de fin d'en tête
strcatbuff(buff,H_CRLF);
- // données complémentaires?
+ // données complémentaires?
if (search_tag)
if (mode==0) // GET!
strcatbuff(buff,unescape_http(OPT_GET_BUFF(opt),search_tag+strlen(POSTTOK)+1));
@@ -1171,7 +1171,7 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
HTS_STAT.last_request = mtime_local();
if (sendc(retour, buff)<0) { // ERREUR, socket rompue?...
//if (sendc(retour->soc,buff) != strlen(buff)) { // ERREUR, socket rompue?...
- deletesoc_r(retour); // fermer tout de même
+ deletesoc_r(retour); // fermer tout de même
// et tenter de reconnecter
strcpybuff(retour->msg, "Write error");
@@ -1185,29 +1185,29 @@ int http_sendhead(httrackp *opt,t_cookie* cookie,int mode,char* xsend,char* adr,
-// traiter 1ere ligne d'en tête
+// traiter 1ere ligne d'en tête
void treatfirstline(htsblk* retour,char* rcvd) {
char* a=rcvd;
// exemple:
// HTTP/1.0 200 OK
if (*a) {
- // note: certains serveurs buggés renvoient HTTP/1.0\n200 OK ou " HTTP/1.0 200 OK"
- while ((*a==' ') || (*a==10) || (*a==13) || (*a==9)) a++; // épurer espaces au début
+ // note: certains serveurs buggés renvoient HTTP/1.0\n200 OK ou " HTTP/1.0 200 OK"
+ while ((*a==' ') || (*a==10) || (*a==13) || (*a==9)) a++; // épurer espaces au début
if (strfield(a, "HTTP/")) {
// sauter HTTP/1.x
while ((*a!=' ') && (*a!='\0') && (*a!=10) && (*a!=13) && (*a!=9)) a++;
if (*a != '\0') {
- while ((*a==' ') || (*a==10) || (*a==13) || (*a==9)) a++; // épurer espaces
+ while ((*a==' ') || (*a==10) || (*a==13) || (*a==9)) a++; // épurer espaces
if ((*a>='0') && (*a<='9')) {
sscanf(a,"%d",&(retour->statuscode));
// sauter 200
while ((*a!=' ') && (*a!='\0') && (*a!=10) && (*a!=13) && (*a!=9)) a++;
- while ((*a==' ') || (*a==10) || (*a==13) || (*a==9)) a++; // épurer espaces
+ while ((*a==' ') || (*a==10) || (*a==13) || (*a==9)) a++; // épurer espaces
if ((strlen(a) > 1) && (strlen(a) < 64) ) // message retour
strcpybuff(retour->msg,a);
else
infostatuscode(retour->msg,retour->statuscode);
- // type MIME par défaut2
+ // type MIME par défaut2
strcpybuff(retour->contenttype,HTS_HYPERTEXT_DEFAULT_MIME);
} else { // pas de code!
retour->statuscode=STATUSCODE_INVALID;
@@ -1247,13 +1247,13 @@ void treatfirstline(htsblk* retour,char* rcvd) {
}
}
-// traiter ligne par ligne l'en tête
+// traiter ligne par ligne l'en tête
// gestion des cookies
void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
int p;
if ((p=strfield(rcvd,"Content-length:"))!=0) {
#if HDEBUG
- printf("ok, Content-length: détecté\n");
+ printf("ok, Content-length: détecté\n");
#endif
if (sscanf(rcvd+p,LLintP,&(retour->totalsize)) == 1) {
if (retour->totalsize == 0) {
@@ -1323,14 +1323,14 @@ void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
retour->is_chunk=1; // chunked
//retour->http11=2; // chunked
#if HDEBUG
- printf("ok, Transfer-Encoding: détecté\n");
+ printf("ok, Transfer-Encoding: détecté\n");
#endif
}
}
else if ((p=strfield(rcvd,"Content-type:"))!=0) {
if (retour) {
char tempo[1100];
- // éviter les text/html; charset=foo
+ // éviter les text/html; charset=foo
{
char* a=strchr(rcvd+p,';');
if (a) { // extended information
@@ -1506,8 +1506,8 @@ void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
do {
char* start_loop=a;
while(is_space(*a)) a++; // sauter espaces
- token_st=a; // départ token
- while((!is_space(*a)) && (*a) && (*a!=';') && (*a!='=')) a++; // arrêter si espace, point virgule
+ token_st=a; // départ token
+ while((!is_space(*a)) && (*a) && (*a!=';') && (*a!='=')) a++; // arrêter si espace, point virgule
token_end=a;
while(is_space(*a)) a++; // sauter espaces
if (*a=='=') { // name=value
@@ -1518,7 +1518,7 @@ void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
//while( ((*a!='"') || (*(a-1)=='\\')) && (*a)) a++; // prochain " (et pas \")
value_end=a;
//if (*a==';') { // finit par un ;
- // vérifier débordements
+ // vérifier débordements
if ( (((int) (token_end - token_st))<200) && (((int) (value_end - value_st))<8000)
&& (((int) (token_end - token_st))>0) && (((int) (value_end - value_st))>0) )
{
@@ -1548,19 +1548,19 @@ void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
}
}
else if (strfield2(name,"max-age")) {
- // ignoré..
+ // ignoré..
}
else if (strfield2(name,"expires")) {
- // ignoré..
+ // ignoré..
}
else if (strfield2(name,"version")) {
- // ignoré..
+ // ignoré..
}
else if (strfield2(name,"comment")) {
- // ignoré
+ // ignoré
}
else if (strfield2(name,"secure")) { // ne devrait pas arriver ici
- // ignoré
+ // ignoré
}
else {
if (value_len < sizeof(cook_value) - 1 && name_len < sizeof(cook_name) - 1) {
@@ -1568,7 +1568,7 @@ void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
strcpybuff(cook_name,name);
strcpybuff(cook_value,value);
} else { // prochain cookie
- a=start_loop; // on devra recommencer à cette position
+ a=start_loop; // on devra recommencer à cette position
next=1; // enregistrer
}
} else {
@@ -1594,7 +1594,7 @@ void treathead(t_cookie* cookie,char* adr,char* fil,htsblk* retour,char* rcvd) {
}
-// transforme le message statuscode en chaîne
+// transforme le message statuscode en chaîne
HTSEXT_API void infostatuscode(char* msg,int statuscode) {
switch( statuscode) {
// Erreurs HTTP, selon RFC
@@ -1645,7 +1645,7 @@ HTSEXT_API void infostatuscode(char* msg,int statuscode) {
}
-// identique au précédent, sauf que l'on donne adr+fil et non url complète
+// identique au précédent, sauf que l'on donne adr+fil et non url complète
htsblk xhttpget(httrackp *opt,char* adr,char* fil) {
T_SOC soc;
htsblk retour;
@@ -1665,19 +1665,19 @@ htsblk xhttpget(httrackp *opt,char* adr,char* fil) {
return retour;
}
-// variation sur un thème...
-// réceptionne uniquement un en-tête (HEAD)
-// retourne dans xx.adr l'adresse pointant sur le bloc de mémoire de l'en tête
+// variation sur un thème...
+// réceptionne uniquement un en-tête (HEAD)
+// retourne dans xx.adr l'adresse pointant sur le bloc de mémoire de l'en tête
htsblk http_gethead(httrackp *opt,char* adr,char* fil) {
T_SOC soc;
htsblk retour;
hts_init_htsblk(&retour);
//memset(&retour, 0, sizeof(htsblk));
- soc=http_xfopen(opt,1,0,1,NULL,adr,fil,&retour); // HEAD, pas de traitement en-tête
+ soc=http_xfopen(opt,1,0,1,NULL,adr,fil,&retour); // HEAD, pas de traitement en-tête
if (soc!=INVALID_SOCKET) {
- http_fread(soc,&retour); // réception en-tête
+ http_fread(soc,&retour); // réception en-tête
#if HTS_DEBUG_CLOSESOCK
DEBUG_W("http_gethead: deletehttp\n");
#endif
@@ -1686,11 +1686,11 @@ htsblk http_gethead(httrackp *opt,char* adr,char* fil) {
}
return retour;
}
-// oui ca ressemble vachement à xhttpget - en étant sobre on peut voir LA différence..
+// oui ca ressemble vachement à xhttpget - en étant sobre on peut voir LA différence..
-// lecture sur une socket ouverte, le header a déja été envoyé dans le cas de GET
-// il ne reste plus qu'à lire les données
+// lecture sur une socket ouverte, le header a déja été envoyé dans le cas de GET
+// il ne reste plus qu'à lire les données
// (pour HEAD le header est lu ici!)
void http_fread(T_SOC soc,htsblk* retour) {
//int bufl=TAILLE_BUFFER; // 8Ko de buffer
@@ -1707,7 +1707,7 @@ void http_fread(T_SOC soc,htsblk* retour) {
}
#if HDEBUG
- printf("Ok, données reçues\n");
+ printf("Ok, données reçues\n");
#endif
return ;
@@ -1766,12 +1766,12 @@ HTS_INLINE LLint http_fread1(htsblk* r) {
return http_xfread1(r,TAILLE_BUFFER);
}
-// idem, sauf qu'ici on peut choisir la taille max de données à recevoir
-// SI bufl==0 alors le buffer est censé être de 8kos, et on recoit par bloc de lignes
-// en éliminant les cr (ex: header), arrêt si double-lf
-// SI bufl==-1 alors le buffer est censé être de 8kos, et on recoit ligne par ligne
-// en éliminant les cr (ex: header), arrêt si double-lf
-// Note: les +1 dans les malloc sont dûs à l'octet nul rajouté en fin de fichier
+// idem, sauf qu'ici on peut choisir la taille max de données à recevoir
+// SI bufl==0 alors le buffer est censé être de 8kos, et on recoit par bloc de lignes
+// en éliminant les cr (ex: header), arrêt si double-lf
+// SI bufl==-1 alors le buffer est censé être de 8kos, et on recoit ligne par ligne
+// en éliminant les cr (ex: header), arrêt si double-lf
+// Note: les +1 dans les malloc sont dûs à l'octet nul rajouté en fin de fichier
LLint http_xfread1(htsblk* r,int bufl) {
int nl=-1;
@@ -1781,8 +1781,8 @@ LLint http_xfread1(htsblk* r,int bufl) {
}
if (bufl>0) {
- if (!r->is_write) { // stocker en mémoire
- if (r->totalsize>=0) { // totalsize déterminé ET ALLOUE
+ if (!r->is_write) { // stocker en mémoire
+ if (r->totalsize>=0) { // totalsize déterminé ET ALLOUE
if (r->adr==NULL) {
r->adr = (char*) malloct((size_t) r->totalsize + 1);
r->size = 0;
@@ -1799,11 +1799,11 @@ LLint http_xfread1(htsblk* r,int bufl) {
nl = -1; // break
*/
- r->adr[r->size]='\0'; // caractère NULL en fin au cas où l'on traite des HTML
+ r->adr[r->size]='\0'; // caractère NULL en fin au cas où l'on traite des HTML
}
} else { // inconnu..
- // réserver de la mémoire?
+ // réserver de la mémoire?
if (r->adr==NULL) {
#if HDEBUG
printf("..alloc xfread\n");
@@ -1862,7 +1862,7 @@ LLint http_xfread1(htsblk* r,int bufl) {
//if ((nl < 0) || ((r->totalsize>0) && (r->size >= r->totalsize)))
// nl=-1; // break
- // libérer bloc tempo
+ // libérer bloc tempo
freet(buff);
} else
nl=READ_ERROR;
@@ -1872,7 +1872,7 @@ LLint http_xfread1(htsblk* r,int bufl) {
}
- } // stockage disque ou mémoire
+ } // stockage disque ou mémoire
} else if (bufl == -2) { // force reserve
if (r->adr==NULL) {
@@ -1881,7 +1881,7 @@ LLint http_xfread1(htsblk* r,int bufl) {
return 0;
}
return -1;
- } else { // réception d'un en-tête octet par octet
+ } else { // réception d'un en-tête octet par octet
int count=256;
int tot_nl=0;
int lf_detected=0;
@@ -1907,7 +1907,7 @@ LLint http_xfread1(htsblk* r,int bufl) {
count=-1;
lf_detected=1;
}
- if (*(r->adr+r->size) != 13) { // sauter caractères 13
+ if (*(r->adr+r->size) != 13) { // sauter caractères 13
if (
(*(r->adr+r->size) != 10)
&&
@@ -1942,9 +1942,9 @@ LLint http_xfread1(htsblk* r,int bufl) {
}
-// teste une adresse, et suit l'éventuel chemin "moved"
+// teste une adresse, et suit l'éventuel chemin "moved"
// retourne 200 ou le code d'erreur (404=NOT FOUND, etc)
-// copie dans loc la véritable adresse si celle-ci est différente
+// copie dans loc la véritable adresse si celle-ci est différente
htsblk http_location(httrackp *opt,char* adr,char* fil,char* loc) {
htsblk retour;
int retry=0;
@@ -1972,10 +1972,10 @@ htsblk http_location(httrackp *opt,char* adr,char* fil,char* loc) {
}
-// teste si une URL (validité, header, taille)
+// teste si une URL (validité, header, taille)
// retourne 200 ou le code d'erreur (404=NOT FOUND, etc)
// en cas de moved xx, dans location
-// abandonne désormais au bout de 30 secondes (aurevoir les sites
+// abandonne désormais au bout de 30 secondes (aurevoir les sites
// qui nous font poireauter 5 heures..) -> -2=timeout
htsblk http_test(httrackp *opt,char* adr,char* fil,char* loc) {
T_SOC soc;
@@ -1992,16 +1992,16 @@ htsblk http_test(httrackp *opt,char* adr,char* fil,char* loc) {
loc[0]='\0';
hts_init_htsblk(&retour);
//memset(&retour, 0, sizeof(htsblk)); // effacer
- retour.location=loc; // si non nul, contiendra l'adresse véritable en cas de moved xx
+ retour.location=loc; // si non nul, contiendra l'adresse véritable en cas de moved xx
//soc=http_fopen(adr,fil,&retour,NULL); // ouvrir, + header
- // on ouvre en head, et on traite l'en tête
+ // on ouvre en head, et on traite l'en tête
soc=http_xfopen(opt,1,0,1,NULL,adr,fil,&retour); // ouvrir HEAD, + envoi header
if (soc!=INVALID_SOCKET) {
int e=0;
- // tant qu'on a des données, et qu'on ne recoit pas deux LF, et que le timeout n'arrie pas
+ // tant qu'on a des données, et qu'on ne recoit pas deux LF, et que le timeout n'arrie pas
do {
if (http_xfread1(&retour,0) < 0)
e=1;
@@ -2030,11 +2030,11 @@ htsblk http_test(httrackp *opt,char* adr,char* fil,char* loc) {
// ----------------------------------------
- // traiter en-tête!
- // status-line à récupérer
+ // traiter en-tête!
+ // status-line à récupérer
ptr+=binput(retour.adr+ptr,rcvd,1024);
if (strnotempty(rcvd)==0)
- ptr+=binput(retour.adr+ptr,rcvd,1024); // "certains serveurs buggés envoient un \n au début" (RFC)
+ ptr+=binput(retour.adr+ptr,rcvd,1024); // "certains serveurs buggés envoient un \n au début" (RFC)
// traiter status-line
treatfirstline(&retour,rcvd);
@@ -2043,9 +2043,9 @@ htsblk http_test(httrackp *opt,char* adr,char* fil,char* loc) {
printf("(Buffer) Status-Code=%d\n",retour.statuscode);
#endif
- // en-tête
+ // en-tête
- // header // ** !attention! HTTP/0.9 non supporté
+ // header // ** !attention! HTTP/0.9 non supporté
do {
ptr+=binput(retour.adr+ptr,rcvd,1024);
#if HDEBUG
@@ -2057,7 +2057,7 @@ htsblk http_test(httrackp *opt,char* adr,char* fil,char* loc) {
} while(strnotempty(rcvd));
// ----------------------------------------
- // libérer mémoire
+ // libérer mémoire
if (retour.adr!=NULL) { freet(retour.adr); retour.adr=NULL; }
}
} else {
@@ -2075,7 +2075,7 @@ htsblk http_test(httrackp *opt,char* adr,char* fil,char* loc) {
return retour;
}
-// Crée un lien (http) vers une adresse internet iadr
+// Crée un lien (http) vers une adresse internet iadr
// retour: structure (adresse, taille, message si erreur (si !adr))
// peut ouvrir avec des connect() non bloquants: waitconnect=0/1
T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitconnect) {
@@ -2095,23 +2095,23 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
// effacer structure
memset(&server, 0, sizeof(server));
- // tester un éventuel id:pass et virer id:pass@ si détecté
+ // tester un éventuel id:pass et virer id:pass@ si détecté
iadr = jump_identification(_iadr);
#if HDEBUG
printf("gethostbyname\n");
#endif
- // tester un éventuel port
+ // tester un éventuel port
if (port==-1) {
char *a=jump_toport(iadr);
#if HTS_USEOPENSSL
if (retour->ssl)
port=443;
else
- port=80; // port par défaut
+ port=80; // port par défaut
#else
- port=80; // port par défaut
+ port=80; // port par défaut
#endif
if (a) {
char BIGSTK iadr2[HTS_URLMAXSIZE*2];
@@ -2122,7 +2122,7 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
port=(unsigned short int) i;
}
- // adresse véritable (sans :xx)
+ // adresse véritable (sans :xx)
strncatbuff(iadr2,iadr,(int) (a - iadr));
// adresse sans le :xx
@@ -2130,17 +2130,17 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
} else {
- // adresse normale (port par défaut par la suite)
+ // adresse normale (port par défaut par la suite)
hp = hts_gethostbyname(opt,iadr, &fullhostent_buffer);
}
- } else // port défini
+ } else // port défini
hp = hts_gethostbyname(opt,iadr, &fullhostent_buffer);
// Conversion iadr -> adresse
- // structure recevant le nom de l'hôte, etc
+ // structure recevant le nom de l'hôte, etc
//struct hostent *hp;
if (hp == NULL) {
#if DEBUG
@@ -2164,7 +2164,7 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
SOCaddr_copyaddr(retour->address, retour->address_size, hp->h_addr_list[0], hp->h_length);
// memcpy(&SOCaddr_sinaddr(server), hp->h_addr_list[0], hp->h_length);
- // créer ("attachement") une socket (point d'accès) internet,en flot
+ // créer ("attachement") une socket (point d'accès) internet,en flot
#if HDEBUG
printf("socket\n");
#endif
@@ -2188,7 +2188,7 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
sprintf(retour->msg,"Unable to create a socket: %s", strerror(last_errno));
#endif
}
- return INVALID_SOCKET; // erreur création socket impossible
+ return INVALID_SOCKET; // erreur création socket impossible
}
// bind this address
@@ -2227,7 +2227,7 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
#endif
}
- // Connexion au serveur lui même
+ // Connexion au serveur lui même
#if HDEBUG
printf("connect\n");
#endif
@@ -2266,18 +2266,18 @@ T_SOC newhttp(httrackp *opt,const char* _iadr,htsblk* retour,int port,int waitco
#endif
#if HDEBUG
- printf("connexion établie\n");
+ printf("connexion établie\n");
#endif
- // A partir de maintenant, on peut envoyer et recevoir des données
- // via le flot identifié par soc (socket): write(soc,adr,taille) et
+ // A partir de maintenant, on peut envoyer et recevoir des données
+ // via le flot identifié par soc (socket): write(soc,adr,taille) et
// read(soc,adr,taille)
} else { // on doit ouvrir un fichier local!
- // il sera géré de la même manière qu'une socket (c'est idem!)
+ // il sera géré de la même manière qu'une socket (c'est idem!)
soc=LOCAL_SOCKET_ID; // pseudo-socket locale..
- // soc sera remplacé lors d'un http_fopen() par un handle véritable!
+ // soc sera remplacé lors d'un http_fopen() par un handle véritable!
} // teste fichier local ou http
@@ -2342,7 +2342,7 @@ int ident_url_absolute(const char* url,char* adr,char* fil) {
const char *p,*q;
p=url+pos;
- // p pointe sur le début de l'adresse, ex: www.truc.fr/sommaire/index.html
+ // p pointe sur le début de l'adresse, ex: www.truc.fr/sommaire/index.html
q=strchr(jump_identification(p),'/');
if (q==0) q=strchr(jump_identification(p),'?'); // http://www.foo.com?bar=1
if (q==0) q=p+strlen(p); // pointe sur \0
@@ -2356,9 +2356,9 @@ int ident_url_absolute(const char* url,char* adr,char* fil) {
// recopier adresse www..
strncatbuff(adr,p, ((int) (q - p)) );
- // *( adr+( ((int) q) - ((int) p) ) )=0; // faut arrêter la fumette!
+ // *( adr+( ((int) q) - ((int) p) ) )=0; // faut arrêter la fumette!
// recopier chemin /pub/..
- if (q[0] != '/') // page par défaut (/)
+ if (q[0] != '/') // page par défaut (/)
strcatbuff(fil,"/");
strcatbuff(fil,q);
// SECURITE:
@@ -2383,7 +2383,7 @@ int ident_url_absolute(const char* url,char* adr,char* fil) {
a=strchr(fil,'?');
if (a)
- *a='\0'; /* couper query (inutile pour file:// lors de la requête) */
+ *a='\0'; /* couper query (inutile pour file:// lors de la requête) */
// filtrer les \\ -> / pour les fichiers DOS
for(i=0;i<(int) strlen(fil);i++)
if (fil[i]=='\\')
@@ -2394,7 +2394,7 @@ int ident_url_absolute(const char* url,char* adr,char* fil) {
if (!strnotempty(adr))
return -1; // erreur non reconnu
- // nommer au besoin.. (non utilisé normalement)
+ // nommer au besoin.. (non utilisé normalement)
if (!strnotempty(fil))
strcpybuff(fil,"default-index.html");
@@ -2646,7 +2646,7 @@ struct tm* convert_time_rfc822(struct tm *result, const char* s) {
return NULL;
strcpybuff(str,s);
hts_lowcase(str);
- /* éliminer :,- */
+ /* éliminer :,- */
while( (a=strchr(str,'-')) ) *a=' ';
while( (a=strchr(str,':')) ) *a=' ';
while( (a=strchr(str,',')) ) *a=' ';
@@ -2655,7 +2655,7 @@ struct tm* convert_time_rfc822(struct tm *result, const char* s) {
while(*a) {
char *first,*last;
char tok[256];
- /* découper mot */
+ /* découper mot */
while(*a==' ') a++; /* sauter espaces */
first=a;
while((*a) && (*a!=' ')) a++;
@@ -2804,7 +2804,7 @@ HTSEXT_API char* int2char(strc_int2bytes2* strc, int n) {
return strc->buff2;
}
-// conversion en b,Kb,Mb, nombre et type séparés
+// conversion en b,Kb,Mb, nombre et type séparés
// limite: 2.10^9.10^6B
/* See http://physics.nist.gov/cuu/Units/binary.html */
@@ -2860,7 +2860,7 @@ int sig_ignore_flag( int setflag ) { // flag ignore
}
#endif
-// envoi de texte (en têtes généralement) sur la socket soc
+// envoi de texte (en têtes généralement) sur la socket soc
HTS_INLINE int sendc(htsblk* r, const char* s) {
int n, ssz = (int)strlen(s);
@@ -2900,7 +2900,7 @@ int finput(int fd,char* s,int max) {
if (c!=0) {
switch(c) {
case 10: c=0; break;
- case 13: break; // sauter ces caractères
+ case 13: break; // sauter ces caractères
default: s[j++]=c; break;
}
}
@@ -2927,7 +2927,7 @@ int binput(char* buff, char* s, int max) {
return count + 1;
}
-// Lecture d'une ligne (peut être unicode à priori)
+// Lecture d'une ligne (peut être unicode à priori)
int linput(FILE* fp,char* s,int max) {
int c;
int j=0;
@@ -2937,7 +2937,7 @@ int linput(FILE* fp,char* s,int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 9: case 12: break; // sauter ces caractères
+ case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -2959,7 +2959,7 @@ int linputsoc(T_SOC soc, char* s, int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 9: case 12: break; // sauter ces caractères
+ case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -2985,7 +2985,7 @@ int linput_trim(FILE* fp,char* s,int max) {
// sauter espaces et tabs en fin
while( (rlen>0) && ((ls[max(rlen-1,0)]==' ') || (ls[max(rlen-1,0)]=='\t')) )
ls[--rlen]='\0';
- // sauter espaces en début
+ // sauter espaces en début
a=ls;
while((rlen>0) && ((*a==' ') || (*a=='\t'))) {
a++;
@@ -3017,7 +3017,7 @@ int linput_cpp(FILE* fp,char* s,int max) {
return rlen;
}
-// idem avec les car spéciaux
+// idem avec les car spéciaux
void rawlinput(FILE* fp,char* s,int max) {
int c;
int j=0;
@@ -3184,7 +3184,7 @@ int ishtml(httrackp *opt,const char* fil) {
}
}
return ret;
- } else return -2; // indéterminé, par exemple /truc
+ } else return -2; // indéterminé, par exemple /truc
}
// idem, mais pour uniquement l'extension
@@ -3200,7 +3200,7 @@ int ishtml_ext(const char* a) {
else if (strfield2(a,"phtm")) html = 1;
else if (strfield2(a,"htmx")) html = 1;
//
- // insuccès..
+ // insuccès..
else {
#if 1
html = -1; // inconnu..
@@ -3239,7 +3239,7 @@ HTSEXT_API char* jump_identification(const char* source) {
if (strcmp(source, "file://") == 0)
return (char*) source;
// rechercher dernier @ (car parfois email transmise dans adresse!)
- // mais sauter ftp:// éventuel
+ // mais sauter ftp:// éventuel
a = jump_protocol(source);
trytofind = strrchr_limit(a, '@', strchr(a,'/'));
return (char*) ( (trytofind != NULL) ? trytofind : a );
@@ -3726,7 +3726,7 @@ HTSEXT_API char* unescape_http(char *catbuff, const char* s) {
if (s[i]=='%') {
i++;
catbuff[j++]=(char) ehex(s+i);
- i++; // sauter 2 caractères finalement
+ i++; // sauter 2 caractères finalement
}
/*
NON a cause de trucs comme /home/0,1837,1|7|1173|Content,00.html
@@ -3856,12 +3856,12 @@ HTSEXT_API void x_escape_http(char* s,int mode) {
}
else if (mode==2)
test=(*s == ' '); // n'escaper que espace
- else if (mode==3) { // échapper que ce qui est nécessaire
+ else if (mode==3) { // échapper que ce qui est nécessaire
test = (
CHAR_SPECIAL(*s)
|| CHAR_XXAVOID(*s) );
}
- else if (mode==30) { // échapper que ce qui est nécessaire
+ else if (mode==30) { // échapper que ce qui est nécessaire
test =
( *s != '/' && CHAR_RESERVED(*s) )
|| CHAR_DELIM(*s)
@@ -3910,8 +3910,8 @@ HTSEXT_API void escape_for_html_print_full(char* s, char* d) {
*d = '\0';
}
-// concat, concatène deux chaines et renvoi le résultat
-// permet d'alléger grandement le code
+// concat, concatène deux chaines et renvoi le résultat
+// permet d'alléger grandement le code
// il faut savoir qu'on ne peut mettre plus de 16 concat() dans une expression
HTSEXT_API char* concat(char *catbuff,const char* a,const char* b) {
if (a != NULL && a[0] != '\0') {
@@ -3969,7 +3969,7 @@ void hts_lowcase(char* s) {
s[i]+=('a'-'A');
}
-// remplacer un caractère d'une chaîne dans une autre
+// remplacer un caractère d'une chaîne dans une autre
HTS_INLINE void hts_replace(char *s,char from,char to) {
char* a;
while ((a=strchr(s,from))!=NULL) {
@@ -3978,7 +3978,7 @@ HTS_INLINE void hts_replace(char *s,char from,char to) {
}
-// caractère espace, guillemets, CR, LF etc..
+// caractère espace, guillemets, CR, LF etc..
/* SECTION OPTIMISEE:
#define is_space(c) (strchr(" \"\x0d\x0a\x09'",c)!=NULL)
#define is_realspace(c) (strchr(" \x0d\x0a\x09\x0c",c)!=NULL)
@@ -3996,7 +3996,7 @@ HTS_INLINE int is_space(char c) {
}
*/
-// caractère espace, CR, LF, TAB
+// caractère espace, CR, LF, TAB
/*
HTS_INLINE int is_realspace(char c) {
if (c==' ') return 1; // spc
@@ -4268,16 +4268,16 @@ HTSEXT_API int is_dyntype(const char *fil) {
return 0;
}
-// types critiques qui ne doivent pas être changés car renvoyés par des serveurs qui ne
+// types critiques qui ne doivent pas être changés car renvoyés par des serveurs qui ne
// connaissent pas le type
int may_unknown(httrackp *opt,const char* st) {
int j=0;
- // types média
+ // types média
if (may_be_hypertext_mime(opt,st, "")) {
return 1;
}
while(strnotempty(hts_mime_keep[j])) {
- if (strfield2(hts_mime_keep[j],st)) { // trouvé
+ if (strfield2(hts_mime_keep[j],st)) { // trouvé
return 1;
}
j++;
@@ -4543,7 +4543,7 @@ int hts_read(htsblk* r,char* buff,int size) {
if (r->soc==INVALID_SOCKET)
printf("!!WIDE_DEBUG ERROR, soc==INVALID hts_read\n");
#endif
- //HTS_TOTAL_RECV_CHECK(size); // Diminuer au besoin si trop de données reçues
+ //HTS_TOTAL_RECV_CHECK(size); // Diminuer au besoin si trop de données reçues
#if HTS_USEOPENSSL
if (SSL_is_available && r->ssl) {
retour = SSL_read(r->ssl_con, buff, size);
@@ -4611,38 +4611,38 @@ void hts_cache_free(t_dnscache* cache) {
}
}
-// lock le cache dns pour tout opération d'ajout
-// plus prudent quand plusieurs threads peuvent écrire dedans..
-// -1: status? 0: libérer 1:locker
+// lock le cache dns pour tout opération d'ajout
+// plus prudent quand plusieurs threads peuvent écrire dedans..
+// -1: status? 0: libérer 1:locker
/*
Simple lock for cache
*/
htsmutex dns_lock = HTSMUTEX_INIT;
-// routine pour le cache - retour optionnel à donner à chaque fois
-// NULL: nom non encore testé dans le cache
+// routine pour le cache - retour optionnel à donner à chaque fois
+// NULL: nom non encore testé dans le cache
// si h_length==0 alors le nom n'existe pas dans le dns
t_hostent* _hts_ghbn(t_dnscache* cache,const char* iadr,t_hostent* retour) {
t_hostent* ret = NULL;
hts_mutexlock(&dns_lock);
for(;;) {
- if (strcmp(cache->iadr,iadr) == 0) { // ok trouvé
- if (cache->host_length > 0) { // entrée valide
+ if (strcmp(cache->iadr,iadr) == 0) { // ok trouvé
+ if (cache->host_length > 0) { // entrée valide
if (retour->h_addr_list[0])
memcpy(retour->h_addr_list[0], cache->host_addr, cache->host_length);
retour->h_length=cache->host_length;
} else if (cache->host_length == 0) { // en cours
ret = NULL;
break;
- } else { // erreur dans le dns, déja vérifié
+ } else { // erreur dans le dns, déja vérifié
if (retour->h_addr_list[0])
retour->h_addr_list[0][0]='\0';
retour->h_length=0; // erreur, n'existe pas
}
ret = retour;
break;
- } else { // on a pas encore trouvé
+ } else { // on a pas encore trouvé
if (cache->n!=NULL) { // chercher encore
cache = cache->n; // suivant!
} else {
@@ -4655,18 +4655,18 @@ t_hostent* _hts_ghbn(t_dnscache* cache,const char* iadr,t_hostent* retour) {
return ret;
}
-// tester si iadr a déja été testé (ou en cours de test)
+// tester si iadr a déja été testé (ou en cours de test)
// 0 non encore
// 1 ok
-// 2 non présent
+// 2 non présent
int hts_dnstest(httrackp *opt, const char* _iadr) {
int ret = 0;
t_dnscache* cache=_hts_cache(opt); // adresse du cache
char iadr[HTS_URLMAXSIZE*2];
- // sauter user:pass@ éventuel
+ // sauter user:pass@ éventuel
strcpybuff(iadr, jump_identification(_iadr));
- // couper éventuel :
+ // couper éventuel :
{
char *a;
if ( (a = jump_toport(iadr)) )
@@ -4674,22 +4674,22 @@ int hts_dnstest(httrackp *opt, const char* _iadr) {
}
#ifdef _WIN32
- if (inet_addr(iadr)!=INADDR_NONE) // numérique
+ if (inet_addr(iadr)!=INADDR_NONE) // numérique
#else
- if (inet_addr(iadr)!=(in_addr_t) -1 ) // numérique
+ if (inet_addr(iadr)!=(in_addr_t) -1 ) // numérique
#endif
return 1;
hts_mutexlock(&dns_lock);
for(;;) {
- if (strcmp(cache->iadr, iadr)==0) { // ok trouvé
+ if (strcmp(cache->iadr, iadr)==0) { // ok trouvé
ret = 1;
break;
- } else { // on a pas encore trouvé
+ } else { // on a pas encore trouvé
if (cache->n!=NULL) { // chercher encore
cache=cache->n; // suivant!
} else {
- ret = 2; // non présent
+ ret = 2; // non présent
break ;
}
}
@@ -4772,7 +4772,7 @@ HTSEXT_API t_hostent* vxgethostbyname(char* hostname, void* v_buffer) {
return NULL;
}
-// cache dns interne à HTS // ** FREE A FAIRE sur la chaine
+// cache dns interne à HTS // ** FREE A FAIRE sur la chaine
t_hostent* hts_gethostbyname(httrackp *opt,const char* _iadr, void* v_buffer) {
char BIGSTK iadr[HTS_URLMAXSIZE*2];
t_fullhostent* buffer = (t_fullhostent*) v_buffer;
@@ -4783,14 +4783,14 @@ t_hostent* hts_gethostbyname(httrackp *opt,const char* _iadr, void* v_buffer) {
fullhostent_init(buffer);
strcpybuff(iadr,jump_identification(_iadr));
- // couper éventuel :
+ // couper éventuel :
{
char *a;
if ( (a=jump_toport(iadr)) )
*a='\0';
}
- // effacer structure de retour, créer nouvelle
+ // effacer structure de retour, créer nouvelle
/*
memset(&host, 0, sizeof(t_hostent));
host.h_addr_list=he;
@@ -4807,8 +4807,8 @@ t_hostent* hts_gethostbyname(httrackp *opt,const char* _iadr, void* v_buffer) {
if (hp->h_length>0)
return hp;
else
- return NULL; // entrée erronée (erreur DNS) dans le DNS
- } else { // non présent dans le cache dns, tester
+ return NULL; // entrée erronée (erreur DNS) dans le DNS
+ } else { // non présent dans le cache dns, tester
t_dnscache* c=cache;
while(c->n) c=c->n; // calculer queue
@@ -4829,7 +4829,7 @@ t_hostent* hts_gethostbyname(httrackp *opt,const char* _iadr, void* v_buffer) {
printf("resolving (not cached) %s\n",iadr);
#endif
hp=vxgethostbyname(iadr, buffer); // calculer IP host
- } else { // numérique, convertir sans passer par le dns
+ } else { // numérique, convertir sans passer par le dns
buffer->hp.h_addr_list[0]=(char*) &inetaddr;
buffer->hp.h_length=4;
hp=&buffer->hp;
@@ -4850,7 +4850,7 @@ t_hostent* hts_gethostbyname(httrackp *opt,const char* _iadr, void* v_buffer) {
}
cache->n->n=NULL;
return hp;
- } else { // on peut pas noter, mais on peut renvoyer le résultat
+ } else { // on peut pas noter, mais on peut renvoyer le résultat
return hp;
}
} // retour hp du cache
@@ -5360,12 +5360,12 @@ HTSEXT_API httrackp *hts_create_opt(void) {
opt->wizard=2; // wizard automatique
opt->quiet=0; // questions
//
- opt->travel=0; // même adresse
- opt->depth=9999; // mirror total par défaut
- opt->extdepth=0; // mais pas à l'extérieur
+ opt->travel=0; // même adresse
+ opt->depth=9999; // mirror total par défaut
+ opt->extdepth=0; // mais pas à l'extérieur
opt->seeker=1; // down
- opt->urlmode=2; // relatif par défaut
- opt->debug=0; // pas de débug en plus
+ opt->urlmode=2; // relatif par défaut
+ opt->debug=0; // pas de débug en plus
opt->getmode=3; // linear scan
opt->maxsite=-1; // taille max site (aucune)
opt->maxfile_nonhtml=-1; // taille max fichier non html
@@ -5379,7 +5379,7 @@ HTSEXT_API httrackp *hts_create_opt(void) {
opt->background_on_suspend=1; // Background the process if Control Z calls signal suspend.
opt->makestat=0; // pas de fichier de stats
opt->maketrack=0; // ni de tracking
- opt->timeout=120; // timeout par défaut (2 minutes)
+ opt->timeout=120; // timeout par défaut (2 minutes)
opt->cache=1; // cache prioritaire
opt->shell=0; // pas de shell par defaut
opt->proxy.active=0; // pas de proxy
@@ -5387,31 +5387,31 @@ HTSEXT_API httrackp *hts_create_opt(void) {
StringCopy(opt->user_agent, "Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)");
StringCopy(opt->referer, "");
StringCopy(opt->from, "");
- opt->savename_83=0; // noms longs par défaut
+ opt->savename_83=0; // noms longs par défaut
opt->savename_type=0; // avec structure originale
opt->savename_delayed=2;// hard delayed type (default)
opt->delayed_cached=1; // cached delayed type (default)
opt->mimehtml=0; // pas MIME-html
opt->parsejava=HTSPARSE_DEFAULT; // parser classes
opt->hostcontrol=0; // PAS de control host pour timeout et traffic jammer
- opt->retry=2; // 2 retry par défaut
- opt->errpage=1; // copier ou générer une page d'erreur en cas d'erreur (404 etc.)
- opt->check_type=1; // vérifier type si inconnu (cgi,asp..) SAUF / considéré comme html
+ opt->retry=2; // 2 retry par défaut
+ opt->errpage=1; // copier ou générer une page d'erreur en cas d'erreur (404 etc.)
+ opt->check_type=1; // vérifier type si inconnu (cgi,asp..) SAUF / considéré comme html
opt->all_in_cache=0; // ne pas tout stocker en cache
opt->robots=2; // traiter les robots.txt
opt->external=0; // liens externes normaux
opt->passprivacy=0; // mots de passe dans les fichiers
- opt->includequery=1; // include query-string par défaut
+ opt->includequery=1; // include query-string par défaut
opt->mirror_first_page=0; // pas mode mirror links
- opt->accept_cookie=1; // gérer les cookies
+ opt->accept_cookie=1; // gérer les cookies
opt->cookie=NULL;
opt->http10=0; // laisser http/1.1
opt->nokeepalive = 0; // pas keep-alive
opt->nocompression=0; // pas de compression
opt->tolerant=0; // ne pas accepter content-length incorrect
opt->parseall=1; // tout parser (tags inconnus, par exemple)
- opt->parsedebug=0; // pas de mode débuggage
- opt->norecatch=0; // ne pas reprendre les fichiers effacés par l'utilisateur
+ opt->parsedebug=0; // pas de mode débuggage
+ opt->norecatch=0; // ne pas reprendre les fichiers effacés par l'utilisateur
opt->verbosedisplay=0; // pas d'animation texte
opt->sizehack=0; // size hack
opt->urlhack=1; // url hack (normalizer)
@@ -5435,14 +5435,14 @@ HTSEXT_API httrackp *hts_create_opt(void) {
StringCopy(opt->path_bin,"");
//
#if HTS_SPARE_MEMORY==0
- opt->maxlink=100000; // 100,000 liens max par défaut (400Kb)
- opt->maxfilter=200; // 200 filtres max par défaut
+ opt->maxlink=100000; // 100,000 liens max par défaut (400Kb)
+ opt->maxfilter=200; // 200 filtres max par défaut
#else
- opt->maxlink=10000; // 10,000 liens max par défaut (40Kb)
- opt->maxfilter=50; // 50 filtres max par défaut
+ opt->maxlink=10000; // 10,000 liens max par défaut (40Kb)
+ opt->maxfilter=50; // 50 filtres max par défaut
#endif
- opt->maxcache=1048576*32; // a peu près 32Mo en cache max -- OPTION NON PARAMETRABLE POUR L'INSTANT --
- //opt->maxcache_anticipate=256; // maximum de liens à anticiper
+ opt->maxcache=1048576*32; // a peu près 32Mo en cache max -- OPTION NON PARAMETRABLE POUR L'INSTANT --
+ //opt->maxcache_anticipate=256; // maximum de liens à anticiper
opt->maxtime=-1; // temps max en secondes
#if HTS_USEMMS
opt->mms_maxtime = 60*3600; // max time for mms streams (one hour)
@@ -5579,7 +5579,7 @@ static int __cdecl htsdefault_postprocesshtml(t_hts_callbackarg *carg, httrackp
static int __cdecl htsdefault_checkhtml(t_hts_callbackarg *carg, httrackp *opt, char* html,int len,const char* url_adresse,const char* url_fichier) {
return 1;
}
-static int __cdecl htsdefault_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back,int back_max,int back_index,int lien_n,int lien_tot,int stat_time,hts_stat_struct* stats) { // appelé à chaque boucle de HTTrack
+static int __cdecl htsdefault_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back,int back_max,int back_index,int lien_n,int lien_tot,int stat_time,hts_stat_struct* stats) { // appelé à chaque boucle de HTTrack
return 1;
}
static const char* __cdecl htsdefault_query(t_hts_callbackarg *carg, httrackp *opt, const char* question) {
diff --git a/src/htslib.h b/src/htslib.h
index cb93367..8cfece7 100644
--- a/src/htslib.h
+++ b/src/htslib.h
@@ -53,7 +53,7 @@ typedef struct htsblk htsblk;
typedef struct t_dnscache t_dnscache;
#endif
-/* définitions globales */
+/* définitions globales */
#include "htsglobal.h"
/* basic net definitions */
@@ -71,8 +71,8 @@ typedef struct t_dnscache t_dnscache;
/* cookies et auth */
#include "htsbauth.h"
-// Attention, définition existante également dans le shell
-// (à modifier avec celle-ci)
+// Attention, définition existante également dans le shell
+// (à modifier avec celle-ci)
#define POSTTOK "?>post"
#include "htsopt.h"
@@ -97,7 +97,7 @@ MSVC2003INLINEBUG HTS_STATIC char* getHtsOptBuff_(httrackp *opt) {
#undef MSVC2003INLINEBUG
#define OPT_GET_BUFF(OPT) ( getHtsOptBuff_(OPT) )
-// structure pour paramètres supplémentaires lors de la requête
+// structure pour paramètres supplémentaires lors de la requête
#ifndef HTS_DEF_FWSTRUCT_htsrequest_proxy
#define HTS_DEF_FWSTRUCT_htsrequest_proxy
typedef struct htsrequest_proxy htsrequest_proxy;
@@ -114,9 +114,9 @@ typedef struct htsrequest htsrequest;
#endif
struct htsrequest {
short int user_agent_send; // user agent (ex: httrack/1.0 [sun])
- short int http11; // l'en tête peut (doit) être signé HTTP/1.1 et non HTTP/1.0
+ short int http11; // l'en tête peut (doit) être signé HTTP/1.1 et non HTTP/1.0
short int nokeepalive; // pas de keep-alive
- short int range_used; // Range utilisé
+ short int range_used; // Range utilisé
short int nocompression; // Pas de compression
short int flush_garbage; // recycled
char user_agent[128];
@@ -127,32 +127,32 @@ struct htsrequest {
};
-// structure pour retour d'une connexion/prise d'en tête
+// structure pour retour d'une connexion/prise d'en tête
#ifndef HTS_DEF_FWSTRUCT_htsblk
#define HTS_DEF_FWSTRUCT_htsblk
typedef struct htsblk htsblk;
#endif
struct htsblk {
int statuscode; // status-code, -1=erreur, 200=OK,201=..etc (cf RFC1945)
- short int notmodified; // page ou fichier NON modifié (transféré)
- short int is_write; // sortie sur disque (out) ou en mémoire (adr)
+ short int notmodified; // page ou fichier NON modifié (transféré)
+ short int is_write; // sortie sur disque (out) ou en mémoire (adr)
short int is_chunk; // mode chunk
- short int compressed; // compressé?
+ short int compressed; // compressé?
short int empty; // vide?
short int keep_alive; // Keep-Alive?
short int keep_alive_trailers; // ..with trailers extension
int keep_alive_t; // KA timeout
int keep_alive_max; // KA number of requests
- char* adr; // adresse du bloc de mémoire, NULL=vide
- char* headers; // adresse des en têtes si présents
- FILE* out; // écriture directe sur disque (si is_write=1)
+ char* adr; // adresse du bloc de mémoire, NULL=vide
+ char* headers; // adresse des en têtes si présents
+ FILE* out; // écriture directe sur disque (si is_write=1)
LLint size; // taille fichier
- char msg[80]; // message éventuel si échec ("\0"=non précisé)
+ char msg[80]; // message éventuel si échec ("\0"=non précisé)
char contenttype[64]; // content-type ("text/html" par exemple)
char charset[64]; // charset ("iso-8859-1" par exemple)
char contentencoding[64]; // content-encoding ("gzip" par exemple)
- char* location; // on copie dedans éventuellement la véritable 'location'
- LLint totalsize; // taille totale à télécharger (-1=inconnue)
+ char* location; // on copie dedans éventuellement la véritable 'location'
+ LLint totalsize; // taille totale à télécharger (-1=inconnue)
short int is_file; // ce n'est pas une socket mais un descripteur de fichier si 1
T_SOC soc; // ID socket
SOCaddr address; // IP address
@@ -165,14 +165,14 @@ struct htsblk {
#endif
char lastmodified[64]; // Last-Modified
char etag[64]; // Etag
- char cdispo[256]; // Content-Disposition coupé
+ char cdispo[256]; // Content-Disposition coupé
LLint crange; // Content-Range
LLint crange_start; // Content-Range
LLint crange_end; // Content-Range
int debugid; // debug connection
/* */
- htsrequest req; // paramètres pour la requête
- /*char digest[32+2]; // digest md5 généré par le moteur ("" si non généré)*/
+ htsrequest req; // paramètres pour la requête
+ /*char digest[32+2]; // digest md5 généré par le moteur ("" si non généré)*/
};
@@ -192,26 +192,26 @@ typedef struct OLD_htsblk OLD_htsblk;
#endif
struct OLD_htsblk {
int statuscode; // ANCIENNE STURCTURE - status-code, -1=erreur, 200=OK,201=..etc (cf RFC1945)
- int notmodified; // ANCIENNE STURCTURE - page ou fichier NON modifié (transféré)
- int is_write; // ANCIENNE STURCTURE - sortie sur disque (out) ou en mémoire (adr)
- char* adr; // ANCIENNE STURCTURE - adresse du bloc de mémoire, NULL=vide
- FILE* out; // ANCIENNE STURCTURE - écriture directe sur disque (si is_write=1)
+ int notmodified; // ANCIENNE STURCTURE - page ou fichier NON modifié (transféré)
+ int is_write; // ANCIENNE STURCTURE - sortie sur disque (out) ou en mémoire (adr)
+ char* adr; // ANCIENNE STURCTURE - adresse du bloc de mémoire, NULL=vide
+ FILE* out; // ANCIENNE STURCTURE - écriture directe sur disque (si is_write=1)
int size; // ANCIENNE STURCTURE - taille fichier
- char msg[80]; // ANCIENNE STURCTURE - message éventuel si échec ("\0"=non précisé)
+ char msg[80]; // ANCIENNE STURCTURE - message éventuel si échec ("\0"=non précisé)
char contenttype[64]; // ANCIENNE STURCTURE - content-type ("text/html" par exemple)
- char* location; // ANCIENNE STURCTURE - on copie dedans éventuellement la véritable 'location'
- int totalsize; // ANCIENNE STURCTURE - taille totale à télécharger (-1=inconnue)
+ char* location; // ANCIENNE STURCTURE - on copie dedans éventuellement la véritable 'location'
+ int totalsize; // ANCIENNE STURCTURE - taille totale à télécharger (-1=inconnue)
int is_file; // ANCIENNE STURCTURE - ce n'est pas une socket mais un descripteur de fichier si 1
T_SOC soc; // ANCIENNE STURCTURE - ID socket
FILE* fp; // ANCIENNE STURCTURE - fichier pour file://
OLD_t_proxy proxy; // ANCIENNE STURCTURE - proxy
int user_agent_send; // ANCIENNE STURCTURE - user agent (ex: httrack/1.0 [sun])
char user_agent[64];
- int http11; // ANCIENNE STURCTURE - l'en tête doit être signé HTTP/1.1 et non HTTP/1.0
+ int http11; // ANCIENNE STURCTURE - l'en tête doit être signé HTTP/1.1 et non HTTP/1.0
};
/* fin ANCIENNE STURCTURE pour cache 1.0 */
-// cache pour le dns, pour éviter de faire des gethostbyname sans arrêt
+// cache pour le dns, pour éviter de faire des gethostbyname sans arrêt
#ifndef HTS_DEF_FWSTRUCT_t_dnscache
#define HTS_DEF_FWSTRUCT_t_dnscache
typedef struct t_dnscache t_dnscache;
@@ -220,9 +220,9 @@ struct t_dnscache {
char iadr[1024];
struct t_dnscache* n;
char host_addr[HTS_MAXADDRLEN]; // 4 octets (v4), ou 16 octets (v6)
- int host_length; // 4 normalement - ==0 alors en cours de résolution
+ int host_length; // 4 normalement - ==0 alors en cours de résolution
// ou >16 si sockaddr
- // ==-1 alors erreur (host n'éxiste pas)
+ // ==-1 alors erreur (host n'éxiste pas)
};
@@ -557,7 +557,7 @@ typedef struct utimbuf STRUCT_UTIMBUF;
#define HTTP_IS_OK(code) ( ( (code) / 100 ) == 2 )
#define HTTP_IS_ERROR(code) ( !HTTP_IS_OK(code) && !HTTP_IS_REDIRECT(code) && !HTTP_IS_NOTMODIFIED(code) )
-// compare le début de f avec s et retourne la position de la fin
+// compare le début de f avec s et retourne la position de la fin
// 'A=a' (case insensitive)
HTS_STATIC int strfield(const char* f,const char* s) {
int r=0;
diff --git a/src/htsname.c b/src/htsname.c
index f586277..18a3dc3 100644
--- a/src/htsname.c
+++ b/src/htsname.c
@@ -130,8 +130,8 @@ int url_savename(char* adr_complete, char* fil_complete, char* save,
liens, lien_tot, sback, cache, hash, ptr, numero_passe, headers, /* unknown */ NULL);
}
-// forme le nom du fichier à sauver (save) à partir de fil et adr
-// système intelligent, qui renomme en cas de besoin (exemple: deux INDEX.HTML et index.html)
+// forme le nom du fichier à sauver (save) à partir de fil et adr
+// système intelligent, qui renomme en cas de besoin (exemple: deux INDEX.HTML et index.html)
int url_savename2(char* adr_complete, char* fil_complete, char* save,
char* former_adr, char* former_fil,
char* referer_adr, char* referer_fil,
@@ -184,9 +184,9 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
// copy of fil, used for lookups (see urlhack)
normfil = fil;
// et adr (sauter user/pass)
- // on prend le parti de mettre les fichiers avec login/pass au même endroit que si ils
- // étaient capturés sans ces paramètres
- // c'est pour cette raison qu'on ignore totalement adr_complete (même pour la recherche en table de hachage)
+ // on prend le parti de mettre les fichiers avec login/pass au même endroit que si ils
+ // étaient capturés sans ces paramètres
+ // c'est pour cette raison qu'on ignore totalement adr_complete (même pour la recherche en table de hachage)
adr = jump_identification(adr_complete);
// copy of adr, used for lookups (see urlhack)
normadr = adr;
@@ -212,7 +212,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
}
- // à afficher sans ftp://
+ // à afficher sans ftp://
print_adr=jump_protocol(adr);
if (strfield(adr_complete, "https:")) {
protocol = PROTOCOL_HTTPS;
@@ -235,24 +235,24 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
- // vérifier que le nom n'a pas déja été calculé (si oui le renvoyer tel que)
- // vérifier que le nom n'est pas déja pris...
- // NOTE: si on cherche /toto/ et que /toto est trouvé on le prend (et réciproquqment) ** // **
+ // vérifier que le nom n'a pas déja été calculé (si oui le renvoyer tel que)
+ // vérifier que le nom n'est pas déja pris...
+ // NOTE: si on cherche /toto/ et que /toto est trouvé on le prend (et réciproquqment) ** // **
if (liens!=NULL) {
int i;
i=hash_read(hash,normadr,normfil,1,opt->urlhack); // recherche table 1 (adr+fil)
- if (i>=0) { // ok, trouvé
+ if (i>=0) { // ok, trouvé
strcpybuff(save,liens[i]->sav);
return 0;
}
i=hash_read(hash,normadr,normfil,2,opt->urlhack); // recherche table 2 (former_adr+former_fil)
- if (i>=0) { // ok, trouvé
+ if (i>=0) { // ok, trouvé
// copier location moved!
strcpybuff(adr_complete,liens[i]->adr);
strcpybuff(fil_complete,liens[i]->fil);
// et save
- strcpybuff(save,liens[i]->sav); // copier (formé à partir du nouveau lien!)
+ strcpybuff(save,liens[i]->sav); // copier (formé à partir du nouveau lien!)
return 0;
}
@@ -267,19 +267,19 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
strcatbuff(fil_complete_patche,"/");
i=hash_read(hash,normadr,fil_complete_patche,2,opt->urlhack); // recherche table 2 (former_adr+former_fil)
if (i>=0) {
- // écraser fil et adr (pas former_fil?????)
+ // écraser fil et adr (pas former_fil?????)
strcpybuff(adr_complete,liens[i]->adr);
strcpybuff(fil_complete,liens[i]->fil);
- // écrire save
+ // écrire save
strcpybuff(save,liens[i]->sav);
return 0;
}
}
}
- // vérifier la non présence de paramètres dans le nom de fichier
+ // vérifier la non présence de paramètres dans le nom de fichier
// si il y en a, les supprimer (ex: truc.cgi?subj=aspirateur)
- // néanmoins, gardé pour vérifier la non duplication (voir après)
+ // néanmoins, gardé pour vérifier la non duplication (voir après)
{
char* a;
a=strchr(fil,'?');
@@ -365,7 +365,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
break;
}
- // si option check_type activée
+ // si option check_type activée
if (is_html < 0 && opt->check_type && !ext_chg) {
int ishtest=0;
if ( (!strfield(adr_complete,"file://"))
@@ -374,8 +374,8 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
&& (!strfield(adr_complete,"mms://"))
#endif
) {
- // tester type avec requète HEAD si on ne connait pas le type du fichier
- if (!( (opt->check_type==1) && (fil[strlen(fil)-1]=='/') )) // slash doit être html?
+ // tester type avec requète HEAD si on ne connait pas le type du fichier
+ if (!( (opt->check_type==1) && (fil[strlen(fil)-1]=='/') )) // slash doit être html?
if ( opt->savename_delayed == 2 || (ishtest=ishtml(opt,fil)) < 0) { // on ne sait pas si c'est un html ou un fichier..
// lire dans le cache
htsblk r = cache_read_including_broken(opt,cache,adr,fil); // test uniquement
@@ -386,7 +386,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
ext_chg=2; /* change filename */
strcpybuff(ext,r.cdispo);
}
- else if (!may_unknown2(opt,r.contenttype,fil)) { // on peut patcher à priori?
+ else if (!may_unknown2(opt,r.contenttype,fil)) { // on peut patcher à priori?
give_mimext(s,r.contenttype); // obtenir extension
if (strnotempty(s)>0) { // on a reconnu l'extension
ext_chg=1;
@@ -401,7 +401,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
#endif
//
- } else if ( opt->savename_delayed != 2 && is_userknowntype(opt,fil)) { /* PATCH BY BRIAN SCHRÖDER.
+ } else if ( opt->savename_delayed != 2 && is_userknowntype(opt,fil)) { /* PATCH BY BRIAN SCHRÖDER.
Lookup mimetype not only by extension,
but also by filename */
/* Note: "foo.cgi => text/html" means that foo.cgi shall have the text/html MIME file type,
@@ -451,7 +451,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
ext_chg_delayed = 1; /* due to naming system */
}
}
- // test imposible dans le cache, faire une requête
+ // test imposible dans le cache, faire une requête
else {
//
int hihp = opt->state._hts_in_html_parsing;
@@ -478,9 +478,9 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
if (b>=0) {
int stop_looping=0;
int petits_tours=0;
- int get_test_request=0; // en cas de bouclage sur soi même avec HEAD, tester avec GET.. parfois c'est la cause des problèmes
+ int get_test_request=0; // en cas de bouclage sur soi même avec HEAD, tester avec GET.. parfois c'est la cause des problèmes
do {
- // temps à attendre, et remplir autant que l'on peut le cache (backing)
+ // temps à attendre, et remplir autant que l'on peut le cache (backing)
if (back[b].status>0) {
back_wait(sback,opt,cache,0);
}
@@ -488,7 +488,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
back_fillmax(sback,opt,cache,liens,ptr,numero_passe,lien_tot);
}
- // on est obligé d'appeler le shell pour le refresh..
+ // on est obligé d'appeler le shell pour le refresh..
// Transfer rate
engine_stats();
@@ -517,15 +517,15 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
//
strcpybuff(mov_url,back[b].r.location); // copier URL
if (ident_url_relatif(mov_url,curr_adr,curr_fil,mov_adr,mov_fil)>=0) {
- // si non bouclage sur soi même, ou si test avec GET non testé
+ // si non bouclage sur soi même, ou si test avec GET non testé
if ((strcmp(mov_adr,curr_adr)) || (strcmp(mov_fil,curr_fil)) || (get_test_request==0)) {
// bouclage?
if ((!strcmp(mov_adr,curr_adr)) && (!strcmp(mov_fil,curr_fil)))
- get_test_request=1; // faire requète avec GET
+ get_test_request=1; // faire requète avec GET
// recopier former_adr/fil?
if ((former_adr) && (former_fil)) {
- if (strnotempty(former_adr)==0) { // Pas déja noté
+ if (strnotempty(former_adr)==0) { // Pas déja noté
strcpybuff(former_adr,curr_adr);
strcpybuff(former_fil,curr_fil);
}
@@ -555,7 +555,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
|| strfield(mov_url,"mms://")
#endif
)
- { // ftp, ok on arrête
+ { // ftp, ok on arrête
has_been_moved = 1;
back_maydelete(opt,cache,sback,b); // ok
strcpybuff(curr_adr,mov_adr);
@@ -574,13 +574,13 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
if (back_add(sback,opt,cache,mov_adr,mov_fil,methode,referer_adr,referer_fil,1)!=-1) { // OK
hts_log_print(opt, LOG_DEBUG, "(during prefetch) %s (%d) to link %s at %s%s",back[b].r.msg,back[b].r.statuscode,back[b].r.location,curr_adr,curr_fil);
- // libérer emplacement backing actuel et attendre le prochain
+ // libérer emplacement backing actuel et attendre le prochain
back_maydelete(opt,cache,sback,b);
strcpybuff(curr_adr,mov_adr);
strcpybuff(curr_fil,mov_fil);
b=back_index(opt,sback,curr_adr,curr_fil,methode);
if (!get_test_request)
- has_been_moved = 1; // sinon ne pas forcer has_been_moved car non déplacé
+ has_been_moved = 1; // sinon ne pas forcer has_been_moved car non déplacé
petits_tours++;
//
} else {// sinon on fait rien et on s'en va.. (ftp etc)
@@ -593,20 +593,20 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
}
- } else{ // arrêter les frais
+ } else{ // arrêter les frais
hts_log_print(opt, LOG_WARNING, "Unable to test %s%s (loop)",adr_complete,fil_complete);
}
} // ok, leaving
}
} while(!stop_looping && back[b].status > 0 && back[b].status < 1000);
- // Si non déplacé, forcer type?
+ // Si non déplacé, forcer type?
if (!has_been_moved) {
if (back[b].r.statuscode!=-10) { // erreur
if (strnotempty(back[b].r.contenttype)==0)
strcpybuff(back[b].r.contenttype,"text/html"); // message d'erreur en html
- // Finalement on, renvoie un erreur, pour ne toucher à rien dans le code
- // libérer emplacement backing
+ // Finalement on, renvoie un erreur, pour ne toucher à rien dans le code
+ // libérer emplacement backing
}
{ // pas d'erreur, changer type?
@@ -616,7 +616,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
ext_chg=2; /* change filename */
strcpybuff(ext,back[b].r.cdispo);
}
- else if (!may_unknown2(opt, back[b].r.contenttype, back[b].url_fil)) { // on peut patcher à priori? (pas interdit ou pas de type)
+ else if (!may_unknown2(opt, back[b].r.contenttype, back[b].url_fil)) { // on peut patcher à priori? (pas interdit ou pas de type)
give_mimext(s,back[b].r.contenttype); // obtenir extension
if (strnotempty(s)>0) { // on a reconnu l'extension
ext_chg=1;
@@ -632,13 +632,13 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
#endif
}
}
- // FIN Si non déplacé, forcer type?
+ // FIN Si non déplacé, forcer type?
- // libérer emplacement backing
+ // libérer emplacement backing
back_maydelete(opt,cache,sback,b);
// --- --- ---
- // oops, a été déplacé.. on recalcule en récursif (osons!)
+ // oops, a été déplacé.. on recalcule en récursif (osons!)
if (has_been_moved) {
// copier adr, fil (optionnel, mais sinon marche pas pour le rip)
strcpybuff(adr_complete,curr_adr);
@@ -661,7 +661,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
// restaurer
opt->state._hts_in_html_parsing=hihp;
- } // caché?
+ } // caché?
}
}
}
@@ -670,7 +670,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
// - - - DEBUT NOMMAGE - - -
- // Donner nom par défaut?
+ // Donner nom par défaut?
if (fil[strlen(fil)-1]=='/') {
if (!strfield(adr_complete,"ftp://")
#if HTS_USEMMS
@@ -678,20 +678,20 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
#endif
)
{
- strcatbuff(fil,DEFAULT_HTML); // nommer page par défaut!!
+ strcatbuff(fil,DEFAULT_HTML); // nommer page par défaut!!
#if HTS_USEMMS
} else if (strfield(adr_complete,"mms://")) {
strcatbuff(fil,DEFAULT_MMS);
#endif
} else {
if (!opt->proxy.active)
- strcatbuff(fil,DEFAULT_FTP); // nommer page par défaut (texte)
+ strcatbuff(fil,DEFAULT_FTP); // nommer page par défaut (texte)
else
- strcatbuff(fil,DEFAULT_HTML); // nommer page par défaut (à priori ici html depuis un proxy http)
+ strcatbuff(fil,DEFAULT_HTML); // nommer page par défaut (à priori ici html depuis un proxy http)
}
}
// Changer extension?
- // par exemple, php3 sera sauvé en html, cgi en html ou gif, xbm etc.. selon les cas
+ // par exemple, php3 sera sauvé en html, cgi en html ou gif, xbm etc.. selon les cas
if (ext_chg) { // changer ext
char* a=fil+strlen(fil)-1;
if ( (opt->debug>1) && (opt->log!=NULL) ) {
@@ -729,10 +729,10 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
- // un nom de fichier est généré
- // s'il existe déja, alors on le mofifie légèrement
+ // un nom de fichier est généré
+ // s'il existe déja, alors on le mofifie légèrement
- // ajouter nom du site éventuellement en premier
+ // ajouter nom du site éventuellement en premier
if (opt->savename_type == -1) { // utiliser savename_userdef! (%h%p/%n%q.%t)
const char* a = StringBuff(opt->savename_userdef);
char* b = save;
@@ -843,7 +843,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
else
strncatbuff(b,nom_pos,8);
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
break;
case 'N': // nom avec ext
// RECOPIE NOM + EXT
@@ -859,7 +859,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
else
strncatbuff(b,nom_pos,8);
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
// RECOPIE NOM + EXT
*b='\0';
if (dot_pos) {
@@ -873,7 +873,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
else
strcpybuff(b,DEFAULT_EXT_SHORT + 1); // pas de..
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
//
break;
case 't': // ext
@@ -889,7 +889,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
else
strcpybuff(b,DEFAULT_EXT_SHORT + 1); // pas de..
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
break;
case 'p': // path sans dernier /
*b='\0';
@@ -905,7 +905,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
strcpybuff(b,n83);
}
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
break;
case 'h': // host
*b='\0';
@@ -920,7 +920,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
else
strncatbuff(b,print_adr,8);
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
break;
case 'M': /* host/address?query MD5 (128-bits) */
*b='\0';
@@ -933,7 +933,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
domd5mem(buff,strlen(buff),digest,1);
strcpybuff(b,digest);
}
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
break;
case 'Q': case 'q': /* query MD5 (128-bits/16-bits)
GENERATED ONLY IF query string exists! */
@@ -941,13 +941,13 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
char md5[32 + 2];
*b='\0';
strncatbuff(b,url_md5(md5, fil_complete),(tok == 'Q')?32:4);
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
}
break;
case 'r': case 'R': // protocol
*b='\0';
strcatbuff(b, protocol_str[protocol]);
- b+=strlen(b); // pointer à la fin
+ b+=strlen(b); // pointer à la fin
break;
/* Patch by Juan Fco Rodriguez to get the full query string */
@@ -968,7 +968,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
*b++='\0';
//
- // Types prédéfinis
+ // Types prédéfinis
//
}
@@ -1004,13 +1004,13 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
hts_lowcase(save);
/*
- // ne sert à rien car a déja été filtré normalement
+ // ne sert à rien car a déja été filtré normalement
if ((*fil=='.') && (*(fil+1)=='/')) // ./index.html ** //
url_savename_addstr(save,fil+2);
else // index.html ou /index.html
url_savename_addstr(save,fil);
if (save[strlen(save)-1]=='/')
- strcatbuff(save,DEFAULT_HTML); // nommer page par défaut!!
+ strcatbuff(save,DEFAULT_HTML); // nommer page par défaut!!
*/
/* add name */
@@ -1047,11 +1047,11 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
}
} else {
- strcatbuff(save,"web/"); // répertoire général
+ strcatbuff(save,"web/"); // répertoire général
}
}
- // si un html à coup sûr
+ // si un html à coup sûr
if ( (ext_chg!=0) ? (ishtml_ext(ext) == 1) : (ishtml(opt,fil)==1) ) {
if (opt->savename_type%100==2) { // html/
strcatbuff(save, "html/");
@@ -1063,7 +1063,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
switch (opt->savename_type%100) {
- case 4: case 5: { // séparer par types
+ case 4: case 5: { // séparer par types
char* a=fil+strlen(fil)-1;
// passer structures
while(( a > fil) && (*a != '/') && (*a != '\\')) a--;
@@ -1087,13 +1087,13 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
ADD_STANDARD_NAME(0);
}
break;
- case 99: { // 'codé' .. c'est un gadget
+ case 99: { // 'codé' .. c'est un gadget
int i;
int j;
char* a;
char C[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-";
int L;
- // pseudo-CRC sur fil et adr pour initialiser générateur aléatoire..
+ // pseudo-CRC sur fil et adr pour initialiser générateur aléatoire..
unsigned int s=0;
L = (int) strlen(C);
for(i=0;i<(int) strlen(fil_complete);i++) {
@@ -1118,7 +1118,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
}
break;
- default: { // noms sans les noms des répertoires
+ default: { // noms sans les noms des répertoires
// ne garder que le nom, pas la structure
/*
char* a=fil+strlen(fil)-1;
@@ -1136,12 +1136,12 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
hts_lowcase(save);
if (save[strlen(save)-1]=='/')
- strcatbuff(save,DEFAULT_HTML); // nommer page par défaut!!
+ strcatbuff(save,DEFAULT_HTML); // nommer page par défaut!!
}
- // vérifier qu'on ne doit pas forcer l'extension
- // par exemple, asp sera sauvé en html, cgi en html ou gif, xbm etc.. selon les cas
+ // vérifier qu'on ne doit pas forcer l'extension
+ // par exemple, asp sera sauvé en html, cgi en html ou gif, xbm etc.. selon les cas
/*if (ext_chg) {
char* a=save+strlen(save)-1;
while(((int) a>(int) save) && (*a!='.') && (*a!='/')) a--;
@@ -1152,20 +1152,20 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}*/
// Not used anymore unless non-delayed types.
- // de même en cas de manque d'extension on en place une de manière forcée..
- // cela évite les /chez/toto et les /chez/toto/index.html incompatibles
+ // de même en cas de manque d'extension on en place une de manière forcée..
+ // cela évite les /chez/toto et les /chez/toto/index.html incompatibles
if (opt->savename_type != -1 && opt->savename_delayed != 2) {
char* a=save+strlen(save)-1;
while(( a > save) && (*a!='.') && (*a!='/')) a--;
if (*a!='.') { // agh pas de point
- //strcatbuff(save,".none"); // a éviter
- strcatbuff(save,".html"); // préférable!
+ //strcatbuff(save,".none"); // a éviter
+ strcatbuff(save,".html"); // préférable!
hts_log_print(opt, LOG_DEBUG, "Default HTML type set for %s%s => %s",adr_complete,fil_complete,save);
}
}
// effacer pass au besoin pour les autentifications
- // (plus la peine : masqué au début)
+ // (plus la peine : masqué au début)
/*
{
char* a=jump_identification(save);
@@ -1185,7 +1185,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
*/
- // éviter les / au début (cause: N100)
+ // éviter les / au début (cause: N100)
if (save[0]=='/') {
char BIGSTK tempo[HTS_URLMAXSIZE*2];
strcpybuff(tempo,save+1);
@@ -1212,11 +1212,11 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
hts_replace(save,'+','_');
}
//
- { // éliminer les // (comme ftp://)
+ { // éliminer les // (comme ftp://)
char* a;
//while( (a=strstr(save,"//")) ) *a='_';
cleanDoubleSlash(save);
- // Eliminer chars spéciaux
+ // Eliminer chars spéciaux
a=save -1 ;
while(*(++a))
if ( ((unsigned char)(*a) <= 31)
@@ -1268,7 +1268,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
}
#endif
- // conversion 8-3 .. y compris pour les répertoires
+ // conversion 8-3 .. y compris pour les répertoires
if (opt->savename_83) {
char BIGSTK n83[HTS_URLMAXSIZE*2];
long_to_83(opt->savename_83,n83,save);
@@ -1383,7 +1383,7 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
#undef MIN_LAST_SEG_RESERVE
#undef HTS_MAX_PATH_LEN
- // chemin primaire éventuel A METTRE AVANT
+ // chemin primaire éventuel A METTRE AVANT
if (strnotempty(StringBuff(opt->path_html_utf8))) {
char BIGSTK tempo[HTS_URLMAXSIZE*2];
strcpybuff(tempo,StringBuff(opt->path_html_utf8));
@@ -1391,13 +1391,13 @@ int url_savename2(char* adr_complete, char* fil_complete, char* save,
strcpybuff(save,tempo);
}
- // vérifier que le nom n'est pas déja pris...
+ // vérifier que le nom n'est pas déja pris...
if (liens!=NULL) {
int nom_ok;
do {
int i;
//
- nom_ok=1; // à priori bon
+ nom_ok=1; // à priori bon
// on part de la fin pour optimiser, plus les opti de taille pour aller encore plus vite..
#if DEBUG_SAVENAME
printf("\nStart search\n");
@@ -1414,7 +1414,7 @@ printf("\nStart search\n");
//else
sameFil = ( strcmp(liens[i]->fil, normfil) == 0);
if (sameAdr && sameFil)
- { // ok c'est le même lien, adresse déja définie
+ { // ok c'est le même lien, adresse déja définie
/* Take the existing name not to screw up with cAsE sEnSiTiViTy of Linux/Unix */
if (strcmp(liens[i]->sav, save) != 0) {
strcpybuff(save, liens[i]->sav);
@@ -1423,7 +1423,7 @@ printf("\nStart search\n");
#if DEBUG_SAVENAME
printf("\nOK ALREADY DEFINED\n",13,i);
#endif
- } else { // utilisé par un AUTRE, changer de nom
+ } else { // utilisé par un AUTRE, changer de nom
char BIGSTK tempo[HTS_URLMAXSIZE*2];
char* a=save+strlen(save)-1;
char* b;
@@ -1443,7 +1443,7 @@ printf("\nWRONG CASE UNMATCH : \n%s\n%s, REDEFINE\n",liens[i]->fil,fil_complete)
else
strcatbuff(tempo,save);
- // tester la présence d'un -xx (ex: index-2.html -> index-3.html)
+ // tester la présence d'un -xx (ex: index-2.html -> index-3.html)
b=tempo+strlen(tempo)-1;
while (isdigit((unsigned char)*b)) b--;
if (*b == collisionSeparator) {
@@ -1452,7 +1452,7 @@ printf("\nWRONG CASE UNMATCH : \n%s\n%s, REDEFINE\n",liens[i]->fil,fil_complete)
n++; // plus un
}
- // en plus il faut gérer le 8-3 .. pas facile le client
+ // en plus il faut gérer le 8-3 .. pas facile le client
if (opt->savename_83) {
int max;
char* a=tempo+strlen(tempo)-1;
@@ -1488,7 +1488,7 @@ printf("\nEnd search, %s\n",fil_complete);
return 0;
}
-/* nom avec md5 urilisé partout */
+/* nom avec md5 urilisé partout */
void standard_name(char* b,char* dot_pos,char* nom_pos,char* fil_complete,int short_ver) {
char md5[32 + 2];
@@ -1544,7 +1544,7 @@ char* url_md5(char* digest, char* fil_complete) {
return digest;
}
-// interne à url_savename: ajoute une chaîne à une autre avec \ -> /
+// interne à url_savename: ajoute une chaîne à une autre avec \ -> /
void url_savename_addstr(char* d,char* s) {
int i = (int) strlen(d);
while(*s) {
diff --git a/src/htsopt.h b/src/htsopt.h
index dfefed7..eb6e84d 100644
--- a/src/htsopt.h
+++ b/src/htsopt.h
@@ -94,7 +94,7 @@ struct t_proxy {
String bindhost; // bind this host
};
-/* Structure utile pour copier en bloc les paramètres */
+/* Structure utile pour copier en bloc les paramètres */
#ifndef HTS_DEF_FWSTRUCT_htsfilters
#define HTS_DEF_FWSTRUCT_htsfilters
typedef struct htsfilters htsfilters;
@@ -180,7 +180,7 @@ typedef enum hts_log_type {
} hts_log_type;
#endif
-/* Structure état du miroir */
+/* Structure état du miroir */
#ifndef HTS_DEF_FWSTRUCT_htsoptstatecancel
#define HTS_DEF_FWSTRUCT_htsoptstatecancel
typedef struct htsoptstatecancel htsoptstatecancel;
@@ -202,7 +202,7 @@ typedef struct htsmutex_s htsmutex_s, *htsmutex;
typedef struct struct_inthash struct_inthash, *inthash;
#endif
-/* Structure état du miroir */
+/* Structure état du miroir */
#ifndef HTS_DEF_FWSTRUCT_htsoptstate
#define HTS_DEF_FWSTRUCT_htsoptstate
typedef struct htsoptstate htsoptstate;
@@ -271,7 +271,7 @@ typedef enum htsparsejava_flags {
HTSPARSE_NO_AGGRESSIVE = 8 // don't aggressively parse .js or .java
} htsparsejava_flags;
-// paramètres httrack (options)
+// paramètres httrack (options)
#ifndef HTS_DEF_FWSTRUCT_httrackp
#define HTS_DEF_FWSTRUCT_httrackp
typedef struct httrackp httrackp;
@@ -281,12 +281,12 @@ struct httrackp {
/* */
int wizard; // wizard aucun/grand/petit
int flush; // fflush sur les fichiers log
- int travel; // type de déplacements (same domain etc)
+ int travel; // type de déplacements (same domain etc)
int seeker; // up & down
- int depth; // nombre de niveaux de récursion
- int extdepth; // nombre de niveaux de récursion à l'éxtérieur
+ int depth; // nombre de niveaux de récursion
+ int extdepth; // nombre de niveaux de récursion à l'éxtérieur
int urlmode; // liens relatifs etc
- int debug; // mode débug log
+ int debug; // mode débug log
int getmode; // sauver html, images..
FILE* log; // fichier log
FILE* errlog; // et erreur
@@ -295,7 +295,7 @@ struct httrackp {
LLint maxfile_html; // taille max html
int maxsoc; // nbre sockets
LLint fragment; // fragmentation d'un site
- int nearlink; // prendre les images/data proche d'une page mais à l'extérieur
+ int nearlink; // prendre les images/data proche d'une page mais à l'extérieur
int makeindex; // faire un index
int kindex; // et un index 'keyword'
int delete_old; // effacer anciens fichiers
@@ -305,8 +305,8 @@ struct httrackp {
int maxrate; // taux de transfert max
int mms_maxtime; // max duration of a mms file
float maxconn; // nombre max de connexions/s
- int waittime; // démarrage programmé
- int cache; // génération d'un cache
+ int waittime; // démarrage programmé
+ int cache; // génération d'un cache
//int aff_progress; // barre de progression
int shell; // gestion d'un shell par pipe stdin/stdout
t_proxy proxy; // configuration du proxy
@@ -324,39 +324,39 @@ struct httrackp {
String path_html; // chemin pour miroir
String path_html_utf8; // chemin pour miroir, UTF-8
String path_bin; // chemin pour templates
- int retry; // nombre d'essais supplémentaires en cas d'échec
- int makestat; // mettre à jour un fichier log de statistiques de transfert
- int maketrack; // mettre à jour un fichier log de statistiques d'opérations
- int parsejava; // parsing des classes java pour récupérer les class, gif & cie ; see htsparsejava_flags
+ int retry; // nombre d'essais supplémentaires en cas d'échec
+ int makestat; // mettre à jour un fichier log de statistiques de transfert
+ int maketrack; // mettre à jour un fichier log de statistiques d'opérations
+ int parsejava; // parsing des classes java pour récupérer les class, gif & cie ; see htsparsejava_flags
int hostcontrol; // abandon d'un host trop lent etc.
- int errpage; // générer une page d'erreur en cas de 404 etc.
- int check_type; // si type inconnu (cgi,asp,/) alors tester lien (et gérer moved éventuellement)
+ int errpage; // générer une page d'erreur en cas de 404 etc.
+ int check_type; // si type inconnu (cgi,asp,/) alors tester lien (et gérer moved éventuellement)
int all_in_cache; // tout mettre en cache!
int robots; // traitement des robots
int external; // pages externes->pages d'erreur
int passprivacy; // pas de mot de pass dans les liens externes?
int includequery; // include la query-string
int mirror_first_page; // miroir des liens
- String sys_com; // commande système
+ String sys_com; // commande système
int sys_com_exec; // executer commande
int accept_cookie; // gestion des cookies
t_cookie* cookie;
int http10; // forcer http 1.0
int nokeepalive; // pas de keep-alive
int nocompression; // pas de compression
- int sizehack; // forcer réponse "mis à jour" si taille identique
+ int sizehack; // forcer réponse "mis à jour" si taille identique
int urlhack; // force "url normalization" to avoid loops
int tolerant; // accepter content-length incorrect
int parseall; // essayer de tout parser (tags inconnus contenant des liens, par exemple)
- int parsedebug; // débugger parser (debug!)
- int norecatch; // ne pas reprendre les fichiers effacés localement par l'utilisateur
+ int parsedebug; // débugger parser (debug!)
+ int norecatch; // ne pas reprendre les fichiers effacés localement par l'utilisateur
int verbosedisplay; // animation textuelle
String footer; // ligne d'infos
- int maxcache; // maximum en mémoire au niveau du cache (backing)
- //int maxcache_anticipate; // maximum de liens à anticiper (majorant)
+ int maxcache; // maximum en mémoire au niveau du cache (backing)
+ //int maxcache_anticipate; // maximum de liens à anticiper (majorant)
int ftp_proxy; // proxy http pour ftp
- String filelist; // fichier liste URL à inclure
- String urllist; // fichier liste de filtres à inclure
+ String filelist; // fichier liste URL à inclure
+ String urllist; // fichier liste de filtres à inclure
htsfilters filters; // contient les pointeurs pour les filtres
hash_struct* hash; // hash structure
robots_wizard* robotsptr; // robots ptr
@@ -368,10 +368,10 @@ struct httrackp {
int maxlink; // nombre max de liens
int maxfilter; // nombre max de filtres
//
- char* exec; // adresse du nom de l'éxecutable
+ char* exec; // adresse du nom de l'éxecutable
//
int quiet; // poser des questions autres que wizard?
- int keyboard; // vérifier stdin
+ int keyboard; // vérifier stdin
int bypass_limits; // bypass built-in limits
int background_on_suspend; // background process on suspend signal
//
@@ -392,33 +392,33 @@ struct httrackp {
typedef struct hts_stat_struct hts_stat_struct;
#endif
struct hts_stat_struct {
- LLint HTS_TOTAL_RECV; // flux entrant reçu
- LLint stat_bytes; // octets écrits sur disque
+ LLint HTS_TOTAL_RECV; // flux entrant reçu
+ LLint stat_bytes; // octets écrits sur disque
// int HTS_TOTAL_RECV_STATE; // status: 0 tout va bien 1: ralentir un peu 2: ralentir 3: beaucoup
- TStamp stat_timestart; // départ
+ TStamp stat_timestart; // départ
//
- LLint total_packed; // flux entrant compressé reçu
- LLint total_unpacked; // flux entrant compressé reçu
- int total_packedfiles; // fichiers compressés
+ LLint total_packed; // flux entrant compressé reçu
+ LLint total_unpacked; // flux entrant compressé reçu
+ int total_packedfiles; // fichiers compressés
//
- TStamp istat_timestart[2]; // départ pour calcul instantanné
- LLint istat_bytes[2]; // calcul pour instantanné
- TStamp istat_reference01; // top départ donné par #0 à #1
- int istat_idlasttimer; // id du timer qui a récemment donné une stat
+ TStamp istat_timestart[2]; // départ pour calcul instantanné
+ LLint istat_bytes[2]; // calcul pour instantanné
+ TStamp istat_reference01; // top départ donné par #0 à #1
+ int istat_idlasttimer; // id du timer qui a récemment donné une stat
//
- int stat_files; // nombre de fichiers écrits
- int stat_updated_files; // nombre de fichiers mis à jour
- int stat_background; // nombre de fichiers écrits en arrière plan
+ int stat_files; // nombre de fichiers écrits
+ int stat_updated_files; // nombre de fichiers mis à jour
+ int stat_background; // nombre de fichiers écrits en arrière plan
//
- int stat_nrequests; // nombre de requêtes sur socket
- int stat_sockid; // nombre de sockets allouées au total
+ int stat_nrequests; // nombre de requêtes sur socket
+ int stat_sockid; // nombre de sockets allouées au total
int stat_nsocket; // nombre de sockets
int stat_errors; // nombre d'erreurs
int stat_errors_front; // idem, mais au tout premier niveau
int stat_warnings; // '' warnings
int stat_infos; // '' infos
- int nbk; // fichiers anticipés en arrière plan et terminés
- LLint nb; // données transférées actuellement (estimation)
+ int nbk; // fichiers anticipés en arrière plan et terminés
+ LLint nb; // données transférées actuellement (estimation)
//
LLint rate;
//
diff --git a/src/htsparse.c b/src/htsparse.c
index 5a25d88..128074b 100644
--- a/src/htsparse.c
+++ b/src/htsparse.c
@@ -80,7 +80,7 @@ Please visit our Website: http://www.httrack.com
// does nothing
#define XH_uninit do {} while(0)
-// version optimisée, qui permet de ne pas toucher aux html non modifiés (update)
+// version optimisée, qui permet de ne pas toucher aux html non modifiés (update)
#define REALLOC_SIZE 8192
#define HT_ADD_CHK(A) if (((int) (A)+ht_len+1) >= ht_size) { \
ht_size=(A)+ht_len+REALLOC_SIZE; \
@@ -226,7 +226,7 @@ Please visit our Website: http://www.httrack.com
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"),"primary","primary"); \
} \
@@ -235,9 +235,9 @@ Please visit our Website: http://www.httrack.com
} 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)
@@ -405,9 +405,9 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
if (RUN_CALLBACK4(opt, check_html, r->adr,(int)r->size,urladr,urlfil)) {
- FILE* fp=NULL; // fichier écrit localement
+ FILE* fp=NULL; // fichier écrit localement
char* adr=r->adr; // pointeur (on parcourt)
- char* lastsaved; // adresse du dernier octet sauvé + 1
+ char* lastsaved; // adresse du dernier octet sauvé + 1
hts_log_print(opt, LOG_DEBUG, "scanning file %s%s (%s)..", urladr, urlfil, savename);
// Indexing!
@@ -422,14 +422,14 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
#endif
// Now, parsing
- if ((opt->getmode & 1) && (ptr>0)) { // récupérer les html sur disque
- // créer le fichier html local
- HT_ADD_FOP; // écrire peu à peu le fichier
+ if ((opt->getmode & 1) && (ptr>0)) { // récupérer les html sur disque
+ // créer le fichier html local
+ HT_ADD_FOP; // écrire peu à peu le fichier
}
if (!error) {
time_t user_interact_timestamp = 0;
- int detect_title=0; // détection du title
+ int detect_title=0; // détection du title
int back_add_stats = opt->state.back_add_stats;
//
char* in_media=NULL; // in other media type (real media and so..)
@@ -453,16 +453,16 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
} INSCRIPT;
INSCRIPT inscript_state_pos=INSCRIPT_START;
char* inscript_name=NULL; // script tag name
- int inscript_tag=0; // on est dans un <body onLoad="... terminé par >
+ int inscript_tag=0; // on est dans un <body onLoad="... terminé par >
char inscript_tag_lastc='\0';
// terminaison (" ou ') du "<body onLoad=.."
- int inscriptgen=0; // on est dans un code générant, ex après obj.write("..
+ int inscriptgen=0; // on est dans un code générant, ex après obj.write("..
//int inscript_check_comments=0, inscript_in_comments=0; // javascript comments
- char scriptgen_q='\0'; // caractère faisant office de guillemet (' ou ")
+ char scriptgen_q='\0'; // caractère faisant office de guillemet (' ou ")
//int no_esc_utf=0; // ne pas echapper chars > 127
int nofollow=0; // ne pas scanner
//
- int parseall_lastc='\0'; // dernier caractère parsé pour parseall
+ int parseall_lastc='\0'; // dernier caractère parsé pour parseall
//int parseall_incomment=0; // dans un /* */ (exemple: a = /* URL */ "img.gif";)
//
char* intag_start = adr;
@@ -474,7 +474,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
int emited_footer = 0; // emitted footer comment tag(s) count
//
int parent_relative=0; // the parent is the base path (.js, .css..)
- HT_ADD_START; // débuter
+ HT_ADD_START; // débuter
lastsaved=adr;
/* Initialize script automate for comments, quotes.. */
@@ -519,7 +519,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
inscript_locked=1; /* Don't exit js space upon </script> */
if (opt->parsedebug) { HT_ADD("<@@ inscript @@>"); }
inscript_name="script";
- intag=1; // because après <script> on y est .. - pas utile
+ intag=1; // because après <script> on y est .. - pas utile
intag_start_valid=0; // OUI car nous sommes dans du code, plus dans du "vrai" tag
hts_log_print(opt, LOG_DEBUG, "note: this file is a javascript file");
// for javascript only
@@ -579,10 +579,10 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
* ( r->adr + r->size ) = '\0';
// ------------------------------------------------------------
- // analyser ce qu'il y a en mémoire (fichier html)
+ // analyser ce qu'il y a en mémoire (fichier html)
// on scanne les balises
// ------------------------------------------------------------
- opt->state._hts_in_html_done=0; // 0% scannés
+ opt->state._hts_in_html_done=0; // 0% scannés
opt->state._hts_in_html_parsing=1; // flag pour indiquer un parsing
base[0]='\0'; // effacer base-href
@@ -614,12 +614,12 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// Construction index.html (sommaire)
// Avant de tester les a href,
// Ici on teste si l'on doit construire l'index vers le(s) site(s) miroir(s)
- if (!makeindex_done) { // autoriation d'écrire un index
+ if (!makeindex_done) { // autoriation d'écrire un index
if (!detect_title) {
if (opt->depth == liens[ptr]->depth) { // on note toujours les premiers liens
if (!in_media) {
if (opt->makeindex && (ptr>0)) {
- if (opt->getmode & 1) { // autorisation d'écrire
+ if (opt->getmode & 1) { // autorisation d'écrire
p=strfield(adr,"title");
if (p) {
if (*(adr-1)=='/') p=0; // /title
@@ -639,7 +639,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
if (p) { // ok center
if (makeindex_fp==NULL) {
file_notify(opt,"", "", fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html_utf8),"index.html"), 1, 1, 0);
- verif_backblue(opt,StringBuff(opt->path_html_utf8)); // générer gif
+ verif_backblue(opt,StringBuff(opt->path_html_utf8)); // générer gif
makeindex_fp=filecreate(&opt->state.strc, fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html_utf8),"index.html"));
if (makeindex_fp!=NULL) {
@@ -666,7 +666,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
if (lienrelatif(tempo,liens[ptr]->sav,concat(OPT_GET_BUFF(opt),StringBuff(opt->path_html_utf8),"index.html"))==0) {
- detect_title=1; // ok détecté pour cette page!
+ detect_title=1; // ok détecté pour cette page!
makeindex_links++; // un de plus
strcpybuff(makeindex_firstlink,tempo);
//
@@ -697,7 +697,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- } else if (liens[ptr]->depth<opt->depth) { // on a sauté level1+1 et level1
+ } else if (liens[ptr]->depth<opt->depth) { // on a sauté level1+1 et level1
HT_INDEX_END;
}
} // if (opt->makeindex)
@@ -723,7 +723,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
intag_start = adr;
for(intag_name = adr + 1 ; is_realspace(*intag_name) ; intag_name++ );
intag_start_valid = 1;
- codebase[0]='\0'; // effacer éventuel codebase
+ codebase[0]='\0'; // effacer éventuel codebase
/* Meta ? */
if (check_tag(intag_start, "meta")) {
@@ -803,7 +803,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // éliminer les <!-- (commentaires) : intag dévalidé
+ // éliminer les <!-- (commentaires) : intag dévalidé
if (*(adr+1)=='!')
if (*(adr+2)=='-')
if (*(adr+3)=='-') {
@@ -827,7 +827,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
} else if (!incomment) {
intag=0; //inquote=0;
- // entrée dans du javascript?
+ // entrée dans du javascript?
// on parse ICI car il se peut qu'on ait eu a parser les src=.. dedans
//if (!inscript) { // sinon on est dans un obj.write("..
if ((intag_start_valid) &&
@@ -839,20 +839,20 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
) {
char* a=intag_start; // <
// ** while(is_realspace(*(--a)));
- if (*a=='<') { // sûr que c'est un tag?
+ if (*a=='<') { // sûr que c'est un tag?
if (check_tag(intag_start,"script"))
inscript_name="script";
else
inscript_name="style";
inscript=1;
inscript_state_pos=INSCRIPT_START;
- intag=1; // because après <script> on y est .. - pas utile
+ intag=1; // because après <script> on y est .. - pas utile
intag_start_valid=0; // OUI car nous sommes dans du code, plus dans du "vrai" tag
if (opt->parsedebug) { HT_ADD("<@@ inscript @@>"); }
}
}
} else { /* end of comment? */
- // vérifier fermeture correcte
+ // vérifier fermeture correcte
if ( (*(adr-1)=='-') && (*(adr-2)=='-') ) {
intag=0;
incomment=0;
@@ -890,12 +890,12 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// ------------------------------------------------------------
- // parsing évolé
+ // parsing évolé
// ------------------------------------------------------------
if (((isalpha((unsigned char)*adr)) || (*adr=='/') || (inscript) || (in_media) || (inscriptgen))) { // sinon pas la peine de tester..
- /* caractère de terminaison pour "miniparsing" javascript=.. ?
+ /* caractère de terminaison pour "miniparsing" javascript=.. ?
(ex: <a href="javascript:()" action="foo"> ) */
if (inscript_tag) {
if (inscript_tag_lastc) {
@@ -914,11 +914,11 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// Note:
// Certaines pages ne respectent pas le html
- // notamment les guillements ne sont pas fixés
+ // notamment les guillements ne sont pas fixés
// Nous sommes dans un tag, donc on peut faire un test plus
- // large pour pouvoi prendre en compte ces particularités
+ // large pour pouvoi prendre en compte ces particularités
- // à vérifier: ACTION, CODEBASE, VRML
+ // à vérifier: ACTION, CODEBASE, VRML
if (in_media) {
if (strcmp(in_media,"LNK")==0) { // real media
@@ -952,56 +952,56 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
}
- } else if (ptr>0) { /* pas première page 0 (primary) */
+ } else if (ptr>0) { /* pas première page 0 (primary) */
p=0; // saut pour le nom de fichier: adresse nom fichier=adr+p
// ------------------------------
- // détection d'écriture JavaScript.
+ // détection d'écriture JavaScript.
// osons les obj.write et les obj.href=.. ! osons!
- // note: inscript==1 donc on sautera après les \"
+ // note: inscript==1 donc on sautera après les \"
if (inscript) {
- if (inscriptgen) { // on est déja dans un objet générant..
+ if (inscriptgen) { // on est déja dans un objet générant..
if (*adr==scriptgen_q) { // fermeture des " ou '
if (*(adr-1)!='\\') { // non
- inscriptgen=0; // ok parsing terminé
+ inscriptgen=0; // ok parsing terminé
}
}
} else {
char* a=NULL;
char check_this_fking_line=0; // parsing code javascript..
- char must_be_terminated=0; // caractère obligatoire de terminaison!
+ char must_be_terminated=0; // caractère obligatoire de terminaison!
int token_size;
- if (!(token_size=strfield(adr,".writeln"))) // détection ...objet.write[ln]("code html")...
+ if (!(token_size=strfield(adr,".writeln"))) // détection ...objet.write[ln]("code html")...
token_size=strfield(adr,".write");
if (token_size) {
a=adr+token_size;
while(is_realspace(*a)) a++; // sauter espaces
- if (*a=='(') { // début parenthèse
- check_this_fking_line=2; // à parser!
+ if (*a=='(') { // début parenthèse
+ check_this_fking_line=2; // à parser!
must_be_terminated=')';
a++; // sauter (
}
}
// euhh ??? ???
- /* else if (strfield(adr,".href")) { // détection ...objet.href="...
+ /* else if (strfield(adr,".href")) { // détection ...objet.href="...
a=adr+5;
while(is_realspace(*a)) a++; // sauter espaces
- if (*a=='=') { // ohh un égal
- check_this_fking_line=1; // à noter!
- must_be_terminated=';'; // et si t'as oublié le ; tu sais pas coder
+ if (*a=='=') { // ohh un égal
+ check_this_fking_line=1; // à noter!
+ must_be_terminated=';'; // et si t'as oublié le ; tu sais pas coder
a++; // sauter =
}
}*/
- // on a un truc du genre instruction"code généré" dont on parse le code
+ // on a un truc du genre instruction"code généré" dont on parse le code
if (check_this_fking_line) {
while(is_realspace(*a)) a++;
- if ((*a=='\'') || (*a=='"')) { // départ de '' ou ""
+ if ((*a=='\'') || (*a=='"')) { // départ de '' ou ""
char *b;
scriptgen_q=*a; // quote
- b=a+1; // départ de la chaîne
- // vérifier forme ("code") et pas ("code"+var), ingérable
+ b=a+1; // départ de la chaîne
+ // vérifier forme ("code") et pas ("code"+var), ingérable
do {
if (*a==scriptgen_q && *(a-1)!='\\') // quote non slash
break; // sortie
@@ -1009,22 +1009,22 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
&& ( *(a-1) != '\r' || *(a-2) != '\\' ) ) /* and not CRLF and no .. */
break;
else
- a++; // caractère suivant
+ a++; // caractère suivant
} while((a-b) < HTS_URLMAXSIZE / 2);
if (*a==scriptgen_q) { // fin du quote
a++;
while(is_realspace(*a)) a++;
- if (*a==must_be_terminated) { // parenthèse fermante: ("..")
+ if (*a==must_be_terminated) { // parenthèse fermante: ("..")
// bon, on doit parser une ligne javascript
// 1) si check.. ==1 alors c'est un nom de fichier direct, donc
- // on fixe p sur le saut nécessaire pour atteindre le nom du fichier
- // et le moteur se débrouillera ensuite tout seul comme un grand
- // 2) si check==2 c'est un peu plus tordu car là on génére du
+ // on fixe p sur le saut nécessaire pour atteindre le nom du fichier
+ // et le moteur se débrouillera ensuite tout seul comme un grand
+ // 2) si check==2 c'est un peu plus tordu car là on génére du
// code html au sein de code javascript au sein de code html
- // dans ce cas on doit fixer un flag à un puis ensuite dans la boucle
+ // dans ce cas on doit fixer un flag à un puis ensuite dans la boucle
// on devra parser les instructions standard comme <a href etc
- // NOTE: le code javascript autogénéré n'est pas pris en compte!!
+ // NOTE: le code javascript autogénéré n'est pas pris en compte!!
// (et ne marche pas dans 50% des cas de toute facon!)
if (check_this_fking_line==1) {
p=(int) (b - adr); // calculer saut!
@@ -1049,7 +1049,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
}
- // fin detection code générant javascript vers html
+ // fin detection code générant javascript vers html
// ------------------------------
@@ -1062,12 +1062,12 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
p=rech_tageq(adr,"href");
if (p) { // href.. tester si c'est une bas href!
if ((intag_start_valid) && check_tag(intag_start, "base")) { // oui!
- // ** note: base href et codebase ne font pas bon ménage..
+ // ** note: base href et codebase ne font pas bon ménage..
p_type=2; // c'est un chemin
}
}
- /* Tags supplémentaires à vérifier (<img src=..> etc) */
+ /* Tags supplémentaires à vérifier (<img src=..> etc) */
if (p==0) {
int i=0;
while( (p==0) && (strnotempty(hts_detect[i])) ) {
@@ -1082,7 +1082,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- /* Tags supplémentaires en début à vérifier (<object .. hotspot1=..> etc) */
+ /* Tags supplémentaires en début à vérifier (<object .. hotspot1=..> etc) */
if (p==0) {
int i=0;
while( (p==0) && (strnotempty(hts_detectbeg[i])) ) {
@@ -1091,7 +1091,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- /* Tags supplémentaires à vérifier : URL=.. */
+ /* Tags supplémentaires à vérifier : URL=.. */
if (p==0) {
int i=0;
while( (p==0) && (strnotempty(hts_detectURL[i])) ) {
@@ -1132,7 +1132,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
- /* Tags supplémentaires à vérifier, mais à ne pas capturer */
+ /* Tags supplémentaires à vérifier, mais à ne pas capturer */
if (p==0) {
int i=0;
while( (p==0) && (strnotempty(hts_detectandleave[i])) ) {
@@ -1143,17 +1143,17 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
p_nocatch=1; /* ne pas rechercher */
}
- /* Evénements */
+ /* Evénements */
if (p==0 &&
! inscript /* we don't want events inside document.write */
) {
int i=0;
- /* détection onLoad etc */
+ /* détection onLoad etc */
while( (p==0) && (strnotempty(hts_detect_js[i])) ) {
p=rech_tageq(adr,hts_detect_js[i]);
i++;
}
- /* non détecté - détecter également les onXxxxx= */
+ /* non détecté - détecter également les onXxxxx= */
if (p==0) {
if ( (*adr=='o') && (*(adr+1)=='n') && isUpperLetter(*(adr+2)) ) {
p=0;
@@ -1166,32 +1166,32 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
} else p=0;
}
}
- /* OK, événement repéré */
+ /* OK, événement repéré */
if (p) {
- inscript_tag_lastc=*(adr+p); /* à attendre à la fin */
+ inscript_tag_lastc=*(adr+p); /* à attendre à la fin */
adr+=p+1; /* saut */
/*
- On est désormais dans du code javascript
+ On est désormais dans du code javascript
*/
inscript_name="";
inscript=inscript_tag=1;
inscript_state_pos=INSCRIPT_START;
if (opt->parsedebug) { HT_ADD("<@@ inscript @@>"); }
}
- p=0; /* quoi qu'il arrive, ne rien démarrer ici */
+ p=0; /* quoi qu'il arrive, ne rien démarrer ici */
}
- // <APPLET CODE=.. pour les applet java.. [CODEBASE (chemin..) à faire]
+ // <APPLET CODE=.. pour les applet java.. [CODEBASE (chemin..) à faire]
if (p==0) {
p=rech_tageq(adr,"code");
if (p) {
if ((intag_start_valid) && check_tag(intag_start,"applet")) { // dans un <applet !
- p_type=-1; // juste le nom de fichier+dossier, écire avant codebase
+ p_type=-1; // juste le nom de fichier+dossier, écire avant codebase
add_class=1; // ajouter .class au besoin
- // vérifier qu'il n'y a pas de codebase APRES
+ // vérifier qu'il n'y a pas de codebase APRES
// sinon on swappe les deux.
- // pas très propre mais c'est ce qu'il y a de plus simple à faire!!
+ // pas très propre mais c'est ce qu'il y a de plus simple à faire!!
{
char *a;
@@ -1207,12 +1207,12 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
strncatbuff(tempo,a,(int) (b - a) );
strcatbuff( tempo," ");
strncatbuff(tempo,adr,(int) (a - adr - 1));
- // éventuellement remplire par des espaces pour avoir juste la taille
+ // éventuellement remplire par des espaces pour avoir juste la taille
while((int) strlen(tempo)<((int) (b - adr)))
strcatbuff(tempo," ");
// pas d'erreur?
if ((int) strlen(tempo) == ((int) (b - adr) )) {
- strncpy(adr,tempo,strlen(tempo)); // PAS d'octet nul à la fin!
+ strncpy(adr,tempo,strlen(tempo)); // PAS d'octet nul à la fin!
p=0; // DEVALIDER!!
p_type=0;
add_class=0;
@@ -1226,8 +1226,8 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // liens à patcher mais pas à charger (ex: codebase)
- if (p==0) { // note: si non chargé (ex: ignorer .class) patché tout de même
+ // liens à patcher mais pas à charger (ex: codebase)
+ if (p==0) { // note: si non chargé (ex: ignorer .class) patché tout de même
p=rech_tageq(adr,"codebase");
if (p) {
if ((intag_start_valid) && check_tag(intag_start,"applet")) { // dans un <applet !
@@ -1270,7 +1270,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // entrée dans une applet javascript
+ // entrée dans une applet javascript
/*if (!inscript) { // sinon on est dans un obj.write("..
if (p==0)
if (rech_sampletag(adr,"script"))
@@ -1279,10 +1279,10 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}*/
- // Ici on procède à une analyse du code javascript pour tenter de récupérer
- // certains fichiers évidents.
- // C'est devenu obligatoire vu le nombre de pages qui intègrent
- // des images réactives par exemple
+ // Ici on procède à une analyse du code javascript pour tenter de récupérer
+ // certains fichiers évidents.
+ // C'est devenu obligatoire vu le nombre de pages qui intègrent
+ // des images réactives par exemple
}
} else if (inscript) {
@@ -1317,7 +1317,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
//while(is_realspace(*(--a)));
while( is_realspace(*a) ) a--;
a--;
- if (*a=='<') { // sûr que c'est un tag?
+ if (*a=='<') { // sûr que c'est un tag?
inscript=0;
if (opt->parsedebug) { HT_ADD("<@@ /inscript @@>"); }
}
@@ -1328,7 +1328,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
foo("url") or foo(url)
foo "url"
*/
- char expected = '='; // caractère attendu après
+ char expected = '='; // caractère attendu après
char* expected_end = ";";
int can_avoid_quotes=0;
char quotes_replacement='\0';
@@ -1350,21 +1350,21 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
if (!nc) nc = strfield(adr,".href"); // document.location="doc"
if (!nc) if ( (nc = strfield(adr,".open")) ) { // window.open("doc",..
- expected='('; // parenthèse
- expected_end="),"; // fin: virgule ou parenthèse
+ expected='('; // parenthèse
+ expected_end="),"; // fin: virgule ou parenthèse
ensure_not_mime=1; //* ensure the url is not a mime type */
}
if (!nc) if ( (nc = strfield(adr,".replace")) ) { // window.replace("url")
- expected='('; // parenthèse
- expected_end=")"; // fin: parenthèse
+ expected='('; // parenthèse
+ expected_end=")"; // fin: parenthèse
}
if (!nc) if ( (nc = strfield(adr,".link")) ) { // window.link("url")
- expected='('; // parenthèse
- expected_end=")"; // fin: parenthèse
+ expected='('; // parenthèse
+ expected_end=")"; // fin: parenthèse
}
if (!nc && (nc = strfield(adr,"url")) && (!isalnum(*(adr - 1))) && *(adr - 1) != '_') { // url(url)
- expected='('; // parenthèse
- expected_end=")"; // fin: parenthèse
+ expected='('; // parenthèse
+ expected_end=")"; // fin: parenthèse
can_avoid_quotes=1;
quotes_replacement=')';
} else {
@@ -1478,8 +1478,8 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// ------------------------------------------------------------
- // dernier recours - parsing "sale" : détection systématique des .gif, etc.
- // risque: générer de faux fichiers parazites
+ // dernier recours - parsing "sale" : détection systématique des .gif, etc.
+ // risque: générer de faux fichiers parazites
// fix: ne parse plus dans les commentaires
// ------------------------------------------------------------
if ( opt->parseall && (opt->parsejava & HTSPARSE_NO_AGGRESSIVE) == 0
@@ -1494,7 +1494,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
if (parseall_incomment) {
if ((*adr=='/') && (*(adr-1)=='*'))
parseall_incomment=0;
- incomment_justquit=1; // ne pas noter dernier caractère
+ incomment_justquit=1; // ne pas noter dernier caractère
} else {
if ((*adr=='/') && (*(adr+1)=='*'))
parseall_incomment=1;
@@ -1509,15 +1509,15 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
noparse=1;
}
- /* vérifier que l'on est pas dans un <!-- --> pur */
+ /* vérifier que l'on est pas dans un <!-- --> pur */
if ( (!intag) && (incomment) && (!inscript))
noparse=1; /* commentaire */
// recherche d'URLs
if (!noparse) {
//if ((!parseall_incomment) && (!noparse)) {
- if (!p) { // non déja trouvé
- if (adr != r->adr) { // >1 caractère
+ if (!p) { // non déja trouvé
+ if (adr != r->adr) { // >1 caractère
// scanner les chaines
if ((*adr == '\"') || (*adr=='\'')) { // "xx.gif" 'xx.gif'
if (strchr("=(,",parseall_lastc)) { // exemple: a="img.gif.. (handles comments)
@@ -1525,17 +1525,17 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
char stop=*adr; // " ou '
int count=0;
- // sauter caractères
+ // sauter caractères
a++;
// copier
while((*a) && (*a!='\'') && (*a!='\"') && (count<HTS_URLMAXSIZE)) { count++; a++; }
- // ok chaine terminée par " ou '
+ // ok chaine terminée par " ou '
if ((*a == stop) && (count<HTS_URLMAXSIZE) && (count>0)) {
char c;
//char* aend;
//
- //aend=a; // sauver début
+ //aend=a; // sauver début
a++;
while(is_taborspace(*a)) a++;
c=*a;
@@ -1548,13 +1548,13 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
//
strncatbuff(tempo,adr+1,count);
//
- if ((!strchr(tempo,' ')) || inscript) { // espace dedans: méfiance! (sauf dans code javascript)
+ if ((!strchr(tempo,' ')) || inscript) { // espace dedans: méfiance! (sauf dans code javascript)
int invalid_url=0;
// escape
unescape_amp(tempo);
- // Couper au # ou ? éventuel
+ // Couper au # ou ? éventuel
{
char* a=strchr(tempo,'#');
if (a)
@@ -1564,7 +1564,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
*a='\0';
}
- // vérifier qu'il n'y a pas de caractères spéciaux
+ // vérifier qu'il n'y a pas de caractères spéciaux
if (!strnotempty(tempo))
invalid_url=1;
else if (strchr(tempo,'*')
@@ -1580,8 +1580,8 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
/* non invalide? */
if (!invalid_url) {
- // Un plus à la fin? Alors ne pas prendre sauf si extension ("/toto.html#"+tag)
- if (c!='+') { // PAS de plus à la fin
+ // Un plus à la fin? Alors ne pas prendre sauf si extension ("/toto.html#"+tag)
+ if (c!='+') { // PAS de plus à la fin
#if 0
char* a;
#endif
@@ -1598,15 +1598,15 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
#if HTS_USEMMS
|| strfield(tempo,"mms:")
#endif
- ) // ok pas de problème
+ ) // ok pas de problème
url_ok=1;
else if (tempo[strlen(tempo)-1]=='/') { // un slash: ok..
- if (inscript) // sinon si pas javascript, méfiance (répertoire style base?)
+ if (inscript) // sinon si pas javascript, méfiance (répertoire style base?)
url_ok=1;
}
#if 0
else if ((a=strchr(tempo,'/'))) { // un slash: ok..
- if (inscript) { // sinon si pas javascript, méfiance (style "text/css")
+ if (inscript) { // sinon si pas javascript, méfiance (style "text/css")
if (strchr(a+1,'/')) // un seul / : abandon (STYLE type='text/css')
if (!strchr(tempo,' ')) // avoid spaces (too dangerous for comments)
url_ok=1;
@@ -1626,7 +1626,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
url_ok=0;
}
//
- // Ok, cela pourrait être une URL
+ // Ok, cela pourrait être une URL
if (url_ok) {
// Check if not fodbidden tag (id,name..)
@@ -1671,7 +1671,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// plus dans un commentaire
if ( inscript_state_pos == INSCRIPT_START
&& inscript_state_pos_prev == INSCRIPT_START) {
- parseall_lastc=*adr; // caractère avant le prochain
+ parseall_lastc=*adr; // caractère avant le prochain
}
@@ -1680,10 +1680,10 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// ------------------------------------------------------------
- // p!=0 : on a repéré un éventuel lien
+ // p!=0 : on a repéré un éventuel lien
// ------------------------------------------------------------
//
- if ((p>0) || (valid_p)) { // on a repéré un lien
+ if ((p>0) || (valid_p)) { // on a repéré un lien
//int lien_valide=0;
char* eadr=NULL; /* fin de l'URL */
//char* quote_adr=NULL; /* adresse du ? dans l'adresse */
@@ -1693,18 +1693,18 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
int noquote=0;
char *tag_attr_start = adr;
- // si nofollow ou un stop a été déclenché, réécrire tous les liens en externe
+ // si nofollow ou un stop a été déclenché, réécrire tous les liens en externe
if ((nofollow)
|| (opt->state.stop && /* force follow not to lose previous cache data */ !opt->is_update)
)
p_nocatch=1;
- // écrire codebase avant, flusher avant code
+ // écrire codebase avant, flusher avant code
if ((p_type==-1) || (p_type==-2)) {
if ((opt->getmode & 1) && (ptr>0)) {
HT_ADD_ADR; // refresh
}
- lastsaved=adr; // dernier écrit+1
+ lastsaved=adr; // dernier écrit+1
}
// sauter espaces
@@ -1720,7 +1720,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
) {
if (!quote)
if ((*adr=='\"') || (*adr=='\'')) {
- quote=*adr; // on doit attendre cela à la fin
+ quote=*adr; // on doit attendre cela à la fin
if (inscriptgen && *(adr - 1) == '\\') {
quoteinscript=1; /* will wait for \" */
}
@@ -1733,11 +1733,11 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
/* Stop at \n (LF) if primary links or link lists */
if (ptr == 0 || (in_media && strcmp(in_media,"LNK")==0))
quote='\n';
- /* s'arrêter que ce soit un ' ou un " : pour document.write('<img src="foo'+a); par exemple! */
+ /* s'arrêter que ce soit un ' ou un " : pour document.write('<img src="foo'+a); par exemple! */
else if (inscript && ! unquoted_script)
noquote=1;
- // sauter éventuel \" ou \' javascript
+ // sauter éventuel \" ou \' javascript
if (inscript) { // on est dans un obj.write("..
if (*adr=='\\') {
if ((*(adr+1)=='\'') || (*(adr+1)=='"')) { // \" ou \'
@@ -1760,19 +1760,19 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
adr+=(l+4);
}
- /* éviter les javascript:document.location=.. : les parser, plutôt */
+ /* éviter les javascript:document.location=.. : les parser, plutôt */
if (ok!=-1) {
if (strfield(adr,"javascript:")
&& ! inscript /* we don't want to parse 'javascript:' inside document.write inside scripts */
) {
ok=-1;
/*
- On est désormais dans du code javascript
+ On est désormais dans du code javascript
*/
inscript_name="";
inscript_tag=inscript=1;
inscript_state_pos=INSCRIPT_START;
- inscript_tag_lastc=quote; /* à attendre à la fin */
+ inscript_tag_lastc=quote; /* à attendre à la fin */
if (opt->parsedebug) { HT_ADD("<@@ inscript @@>"); }
}
}
@@ -1784,24 +1784,24 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
eadr=adr;
- // ne pas flusher après code si on doit écrire le codebase avant!
+ // ne pas flusher après code si on doit écrire le codebase avant!
if ((p_type!=-1) && (p_type!=2) && (p_type!=-2)) {
if ((opt->getmode & 1) && (ptr>0)) {
HT_ADD_ADR; // refresh
}
- lastsaved=adr; // dernier écrit+1
- // après on écrira soit les données initiales,
- // soir une URL/lien modifié!
- } else if (p_type==-1) p_flush=adr; // flusher jusqu'à adr ensuite
+ lastsaved=adr; // dernier écrit+1
+ // après on écrira soit les données initiales,
+ // soir une URL/lien modifié!
+ } else if (p_type==-1) p_flush=adr; // flusher jusqu'à adr ensuite
if (ok!=-1) { // continuer
- // découper le lien
+ // découper le lien
do {
- if ((* (unsigned char*) eadr)<32) { // caractère de contrôle (ou \0)
+ if ((* (unsigned char*) eadr)<32) { // caractère de contrôle (ou \0)
if (!is_space(*eadr))
ok=0;
}
- if ( ( ((int) (eadr - adr)) ) > HTS_URLMAXSIZE) // ** trop long, >HTS_URLMAXSIZE caractères (on prévoit HTS_URLMAXSIZE autres pour path)
+ if ( ( ((int) (eadr - adr)) ) > HTS_URLMAXSIZE) // ** trop long, >HTS_URLMAXSIZE caractères (on prévoit HTS_URLMAXSIZE autres pour path)
ok=-1; // ne pas traiter ce lien
if (ok > 0) {
@@ -1811,7 +1811,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
( *eadr == quote && ( !quoteinscript || *(eadr -1) == '\\') ) // end quote
|| ( noquote && (*eadr == '\"' || *eadr == '\'') ) // end at any quote
|| (!noquote && quote == '\0' && is_realspace(*eadr) ) // unquoted href
- ) // si pas d'attente de quote spéciale ou si quote atteinte
+ ) // si pas d'attente de quote spéciale ou si quote atteinte
ok=0;
} else if (ending_p && (*eadr==ending_p))
ok=0;
@@ -1833,7 +1833,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
ok=0;
break;
// case '?': non!
- case '\\': if (inscript) ok=0; break; // \" ou \' point d'arrêt
+ case '\\': if (inscript) ok=0; break; // \" ou \' point d'arrêt
case '?': /*quote_adr=adr;*/ break; // noter position query
}
}
@@ -1865,11 +1865,11 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
if (ok==0) { // tester un lien
char BIGSTK lien[HTS_URLMAXSIZE*2];
- int meme_adresse=0; // 0 par défaut pour primary
+ int meme_adresse=0; // 0 par défaut pour primary
//char *copie_de_adr=adr;
//char* p;
- // construire lien (découpage)
+ // construire lien (découpage)
if ( (((int) (eadr - adr))-1) < HTS_URLMAXSIZE ) { // pas trop long?
strncpy(lien,adr,((int) (eadr - adr))-1);
*(lien+ (((int) (eadr - adr)))-1 )='\0';
@@ -1883,18 +1883,18 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// ------------------------------------------------------
- // Lien repéré et extrait
+ // Lien repéré et extrait
if (strnotempty(lien)>0) { // construction du lien
char BIGSTK adr[HTS_URLMAXSIZE*2],fil[HTS_URLMAXSIZE*2]; // ATTENTION adr cache le "vrai" adr
- int forbidden_url=-1; // lien non interdit (mais non autorisé..)
+ int forbidden_url=-1; // lien non interdit (mais non autorisé..)
int just_test_it=0; // mode de test des liens
- int set_prio_to=0; // pour capture de page isolée
- int import_done=0; // lien importé (ne pas scanner ensuite *à priori*)
+ int set_prio_to=0; // pour capture de page isolée
+ int import_done=0; // lien importé (ne pas scanner ensuite *à priori*)
//
adr[0]='\0'; fil[0]='\0';
//
- // 0: autorisé
- // 1: interdit (patcher tout de même adresse)
+ // 0: autorisé
+ // 1: interdit (patcher tout de même adresse)
hts_log_print(opt, LOG_DEBUG, "link detected in html (tag): %s",lien);
@@ -1912,16 +1912,16 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
a=strchr(lien,':'); // http://
if (a) {
a++;
- while(*a=='/') a++; // position après http://
+ while(*a=='/') a++; // position après http://
} else {
- a=lien; // début
- while(*a=='/') a++; // position après http://
+ a=lien; // début
+ while(*a=='/') a++; // position après http://
}
- q=strchr(a,'?'); // ne pas traiter après '?'
+ q=strchr(a,'?'); // ne pas traiter après '?'
if (!q)
q=a+strlen(a)-1;
while(( p=strstr(a,"//")) && (!done) ) { // remplacer // par /
- if ((int) p>(int) q) { // après le ? (toto.cgi?param=1//2.3)
+ if ((int) p>(int) q) { // après le ? (toto.cgi?param=1//2.3)
done=1; // stopper
} else {
char BIGSTK tempo[HTS_URLMAXSIZE*2];
@@ -1934,7 +1934,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
#endif
- // purger espaces de début et fin, CR,LF résiduels
+ // purger espaces de début et fin, CR,LF résiduels
// (IMG SRC="foo.<\n><\t>gif<\t>")
{
char* a = lien;
@@ -1975,10 +1975,10 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
*a='\0';
} else
query[0]='\0';
- // conversion &amp; -> & et autres joyeusetés
+ // conversion &amp; -> & et autres joyeusetés
unescape_amp(lien);
unescape_amp(query);
- // décoder l'inutile (%2E par exemple) et coder espaces
+ // décoder l'inutile (%2E par exemple) et coder espaces
// Bad: strcpybuff(lien,unescape_http(lien));
// Bad: strcpybuff(lien,unescape_http_unharm(lien, (no_esc_utf)?0:1));
/* Never unescape high-chars (we don't know the encoding!!) */
@@ -1988,7 +1988,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
strcatbuff(lien,query); /* restore */
}
- // convertir les éventuels \ en des / pour éviter des problèmes de reconnaissance!
+ // convertir les éventuels \ en des / pour éviter des problèmes de reconnaissance!
{
char* a;
for(a = jump_identification(lien) ; *a != '\0' && *a != '?' ; a++) {
@@ -2007,13 +2007,13 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
if (strnotempty(lien)==0) // sauf si plus de nom de fichier
strcpybuff(lien,"./");
- // vérifie les /~machin -> /~machin/
+ // vérifie les /~machin -> /~machin/
// supposition dangereuse?
// OUI!!
#if HTS_TILDE_SLASH
if (lien[strlen(lien)-1]!='/') {
char *a=lien+strlen(lien)-1;
- // éviter aussi index~1.html
+ // éviter aussi index~1.html
while (((int) a>(int) lien) && (*a!='~') && (*a!='/') && (*a!='.')) a--;
if (*a=='~') {
strcatbuff(lien,"/"); // ajouter slash
@@ -2040,7 +2040,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // éliminer les éventuels :80 (port par défaut!)
+ // éliminer les éventuels :80 (port par défaut!)
if (link_has_authority(lien)) {
char * a;
a=strstr(lien,"//"); // "//" authority
@@ -2060,7 +2060,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
//}
#endif
while(isdigit((unsigned char)*b)) { port*=10; port+=(int) (*b-'0'); b++; }
- if (port==defport) { // port 80, default - c'est débile
+ if (port==defport) { // port 80, default - c'est débile
char BIGSTK tempo[HTS_URLMAXSIZE*2];
tempo[0]='\0';
strncatbuff(tempo,lien,(int) (a - lien));
@@ -2079,7 +2079,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
*/
- // vérifier que l'on ne doit pas ajouter de .class
+ // vérifier que l'on ne doit pas ajouter de .class
if (!error) {
if (add_class) {
char *a = lien+strlen(lien)-1;
@@ -2091,15 +2091,15 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // si c'est un chemin, alors vérifier (toto/toto.html -> http://www/toto/)
+ // si c'est un chemin, alors vérifier (toto/toto.html -> http://www/toto/)
if (!error) {
hts_log_print(opt, LOG_DEBUG, "position link check %s",lien);
if ((p_type==2) || (p_type==-2)) { // code ou codebase
- // Vérifier les codebase=applet (au lieu de applet/)
+ // Vérifier les codebase=applet (au lieu de applet/)
if (p_type==-2) { // codebase
if (strnotempty(lien)) {
- if (fil[strlen(lien)-1]!='/') { // pas répertoire
+ if (fil[strlen(lien)-1]!='/') { // pas répertoire
strcatbuff(lien,"/");
}
}
@@ -2158,12 +2158,12 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
if (start_of_filename == NULL)
strcatbuff(lien, "/");
while( (a > lien) && (*a) && (*a!='/')) a--;
- if (*a=='/') { // ok on a repéré le dernier /
+ if (*a=='/') { // ok on a repéré le dernier /
if (start_of_filename != NULL && a + 1 >= start_of_filename) {
*(a+1)='\0'; // couper
}
} else {
- *lien='\0'; // éliminer
+ *lien='\0'; // éliminer
error=1; // erreur, ne pas poursuivre
}
}
@@ -2195,7 +2195,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// ajouter chemin de base href..
- if (strnotempty(_base)) { // considérer base
+ if (strnotempty(_base)) { // considérer base
if (!link_has_authority(lien)) { // non absolue
if (*lien!='/') { // non absolu sur le site (/)
if ( ((int) strlen(_base)+(int) strlen(lien))<HTS_URLMAXSIZE) {
@@ -2205,8 +2205,8 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// base est absolue
strcpybuff(tempo,_base);
strcatbuff(tempo,lien + ((*lien=='/')?1:0) );
- strcpybuff(lien,tempo); // patcher en considérant base
- // ** vérifier que ../ fonctionne (ne doit pas arriver mais bon..)
+ strcpybuff(lien,tempo); // patcher en considérant base
+ // ** vérifier que ../ fonctionne (ne doit pas arriver mais bon..)
hts_log_print(opt, LOG_DEBUG, "link modified with code/codebase %s",lien);
}
@@ -2226,7 +2226,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
strcatbuff(tempo,badr);
strcatbuff(tempo,lien);
- strcpybuff(lien,tempo); // patcher en considérant base
+ strcpybuff(lien,tempo); // patcher en considérant base
hts_log_print(opt, LOG_DEBUG, "link modified with code/codebase %s",lien);
} else {
@@ -2264,23 +2264,23 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
#if HTS_CHECK_STRANGEDIR
// !ATTENTION!
- // Ici on teste les exotiques du genre www.truc.fr/machin (sans slash à la fin)
- // je n'ai pas encore trouvé le moyen de faire la différence entre un répertoire
+ // Ici on teste les exotiques du genre www.truc.fr/machin (sans slash à la fin)
+ // je n'ai pas encore trouvé le moyen de faire la différence entre un répertoire
// et un fichier en http A PRIORI : je fais donc un test
// En cas de moved xxx, on recalcule adr et fil, tout simplement
- // DEFAUT: test effectué plusieurs fois! à revoir!!!
+ // DEFAUT: test effectué plusieurs fois! à revoir!!!
if ((adr[0]!='\0') && (strcmp(adr,"file://") && (p_type!=2) && (p_type!=-2)) {
//## if ((adr[0]!='\0') && (adr[0]!=lOCAL_CHAR) && (p_type!=2) && (p_type!=-2)) {
- if (fil[strlen(fil)-1]!='/') { // pas répertoire
+ if (fil[strlen(fil)-1]!='/') { // pas répertoire
if (ishtml(opt,fil)==-2) { // pas d'extension
- char BIGSTK loc[HTS_URLMAXSIZE*2]; // éventuelle nouvelle position
+ char BIGSTK loc[HTS_URLMAXSIZE*2]; // éventuelle nouvelle position
loc[0]='\0';
hts_log_print(opt, LOG_DEBUG, "link-check-directory: %s%s",adr,fil);
- // tester éventuelle nouvelle position
+ // tester éventuelle nouvelle position
switch (http_location(adr,fil,loc).statuscode) {
case 200: // ok au final
- if (strnotempty(loc)) { // a changé d'adresse
+ if (strnotempty(loc)) { // a changé d'adresse
hts_log_print(opt, LOG_WARNING, "Link %s%s has moved to %s for %s%s",adr,fil,loc,urladr,urlfil);
// recalculer adr et fil!
@@ -2302,16 +2302,16 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
#endif
- // Le lien doit juste être réécrit, mais ne doit pas générer un lien
+ // Le lien doit juste être réécrit, mais ne doit pas générer un lien
// exemple: <FORM ACTION="url_cgi">
if (p_nocatch) {
- forbidden_url=1; // interdire récupération du lien
+ forbidden_url=1; // interdire récupération du lien
hts_log_print(opt, LOG_DEBUG, "link forced external at %s%s",adr,fil);
}
- // Tester si un lien doit être accepté ou refusé (wizard)
- // forbidden_url=1 : lien refusé
- // forbidden_url=0 : lien accepté
+ // Tester si un lien doit être accepté ou refusé (wizard)
+ // forbidden_url=1 : lien refusé
+ // forbidden_url=0 : lien accepté
//if ((ptr>0) && (p_type!=2) && (p_type!=-2)) { // tester autorisations?
if ((p_type!=2) && (p_type!=-2)) { // tester autorisations?
if (!p_nocatch) {
@@ -2330,26 +2330,26 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// calculer meme_adresse
meme_adresse=strfield2(jump_identification(adr),jump_identification(urladr));
- // Début partie sauvegarde
+ // Début partie sauvegarde
- // ici on forme le nom du fichier à sauver, et on patche l'URL
+ // ici on forme le nom du fichier à sauver, et on patche l'URL
if (adr[0]!='\0') {
- // savename: simplifier les ../ et autres joyeusetés
+ // savename: simplifier les ../ et autres joyeusetés
char BIGSTK save[HTS_URLMAXSIZE*2];
int r_sv=0;
- // En cas de moved, adresse première
+ // En cas de moved, adresse première
char BIGSTK former_adr[HTS_URLMAXSIZE*2];
char BIGSTK former_fil[HTS_URLMAXSIZE*2];
//
save[0]='\0'; former_adr[0]='\0'; former_fil[0]='\0';
//
- // nom du chemin à sauver si on doit le calculer
- // note: url_savename peut décider de tester le lien si il le trouve
+ // nom du chemin à sauver si on doit le calculer
+ // note: url_savename peut décider de tester le lien si il le trouve
// suspect, et modifier alors adr et fil
- // dans ce cas on aura une référence directe au lieu des traditionnels
- // moved en cascade (impossible à reproduire à priori en local, lorsque des fichiers
- // gif sont impliqués par exemple)
+ // dans ce cas on aura une référence directe au lieu des traditionnels
+ // moved en cascade (impossible à reproduire à priori en local, lorsque des fichiers
+ // gif sont impliqués par exemple)
if ((p_type!=2) && (p_type!=-2)) { // pas base href ou codebase
if (forbidden_url!=1) {
char BIGSTK last_adr[HTS_URLMAXSIZE*2];
@@ -2360,13 +2360,13 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
strcpybuff(last_adr,adr); // ancienne adresse
//strcpybuff(last_fil,fil); // ancien chemin
r_sv=url_savename2(adr,fil,save,former_adr,former_fil,liens[ptr]->adr,liens[ptr]->fil,opt,liens,lien_tot,sback,cache,hash,ptr,numero_passe,NULL,str->page_charset_);
- if (strcmp(jump_identification(last_adr),jump_identification(adr)) != 0) { // a changé
+ if (strcmp(jump_identification(last_adr),jump_identification(adr)) != 0) { // a changé
// 2e test si moved
- // Tester si un lien doit être accepté ou refusé (wizard)
- // forbidden_url=1 : lien refusé
- // forbidden_url=0 : lien accepté
+ // Tester si un lien doit être accepté ou refusé (wizard)
+ // forbidden_url=1 : lien refusé
+ // forbidden_url=0 : lien accepté
if ((ptr>0) && (p_type!=2) && (p_type!=-2)) { // tester autorisations?
if (!p_nocatch) {
if (adr[0]!='\0') {
@@ -2382,7 +2382,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
//import_done=1; // c'est un import!
- meme_adresse=0; // on a changé
+ meme_adresse=0; // on a changé
}
} else {
strcpybuff(save,""); // dummy
@@ -2417,7 +2417,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
if (r_sv!=-1) { // pas d'erreur, on continue
/* log */
if ((opt->debug>1) && (opt->log!=NULL)) {
- if (forbidden_url!=1) { // le lien va être chargé
+ if (forbidden_url!=1) { // le lien va être chargé
if ((p_type==2) || (p_type==-2)) { // base href ou codebase, pas un lien
hts_log_print(opt, LOG_DEBUG, "Code/Codebase: %s%s",adr,fil);
} else if ((opt->getmode & 4)==0) {
@@ -2433,7 +2433,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
/* FIN log */
- // écrire lien
+ // écrire lien
if ((p_type==2) || (p_type==-2)) { // base href ou codebase, sauter
lastsaved=eadr-1+1; // sauter "
}
@@ -2462,13 +2462,13 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
HT_ADD("/");
HT_ADD_HTMLESCAPED(fil);
}
- lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
+ lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
/* */
} else if (opt->urlmode == 4) { // ne rien faire!
/* */
/* leave the link 'as is' */
- /* Sinon, dépend de interne/externe */
- } else if (forbidden_url==1) { // le lien ne sera pas chargé, référence externe!
+ /* Sinon, dépend de interne/externe */
+ } else if (forbidden_url==1) { // le lien ne sera pas chargé, référence externe!
if ((opt->getmode & 1) && (ptr>0)) {
if (p_type!=-1) { // pas que le nom de fichier (pas classe java)
if (!opt->external) {
@@ -2501,7 +2501,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
//
- } else { // fichier/page externe, mais on veut générer une erreur
+ } else { // fichier/page externe, mais on veut générer une erreur
//
int patch_it=0;
int add_url=0;
@@ -2512,7 +2512,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// ajouter lien external
switch ( (link_has_authority(adr)) ? 1 : ( (fil[strlen(fil)-1]=='/')?1:(ishtml(opt,fil)) ) ) {
- case 1: case -2: // html ou répertoire
+ case 1: case -2: // html ou répertoire
if (opt->getmode & 1) { // sauver html
patch_it=1; // redirect
add_url=1; // avec link?
@@ -2594,7 +2594,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // écrire fichier?
+ // écrire fichier?
if (verif_external(opt,cat_nb,1)) {
FILE* fp = filecreate(&opt->state.strc, fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html_utf8),cat_name));
if (fp) {
@@ -2608,7 +2608,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
usercommand(opt,0,NULL,fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_html_utf8),cat_name),"","");
}
}
- } else { // écrire normalement le nom de fichier
+ } else { // écrire normalement le nom de fichier
HT_ADD("http://");
if (!opt->passprivacy) {
HT_ADD_HTMLESCAPED(adr); // Password
@@ -2623,12 +2623,12 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
} else { // que le nom de fichier (classe java)
// en gros recopie de plus bas: copier codebase et base
if (p_flush) {
- char BIGSTK tempo[HTS_URLMAXSIZE*2]; // <-- ajouté
+ char BIGSTK tempo[HTS_URLMAXSIZE*2]; // <-- ajouté
char BIGSTK tempo_pat[HTS_URLMAXSIZE*2];
// Calculer chemin
tempo_pat[0]='\0';
- strcpybuff(tempo,fil); // <-- ajouté
+ strcpybuff(tempo,fil); // <-- ajouté
{
char* a=strrchr(tempo,'/');
@@ -2655,7 +2655,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // érire codebase="chemin"
+ // érire codebase="chemin"
if ((opt->getmode & 1) && (ptr>0)) {
char BIGSTK tempo4[HTS_URLMAXSIZE*2];
tempo4[0]='\0';
@@ -2685,14 +2685,14 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
else if (opt->urlmode==1) { // ABSOLU, c'est le cas le moins courant
// NE FONCTIONNE PAS!! (et est inutile)
if ((opt->getmode & 1) && (ptr>0)) { // ecrire les html
- // écrire le lien modifié, absolu
+ // écrire le lien modifié, absolu
HT_ADD("file:");
if (*save=='/')
HT_ADD(save+1)
else
HT_ADD(save)
}
- lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
+ lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
}
*/
else if (opt->mimehtml) {
@@ -2703,13 +2703,13 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
escape_in_url(buff);
{ char* a = buff; while((a = strchr(a, '%'))) { *a = 'X'; a++; } }
HT_ADD_HTMLESCAPED(buff);
- lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
+ lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
}
else if (opt->urlmode==3) { // URI absolue /
if ((opt->getmode & 1) && (ptr>0)) { // ecrire les html
HT_ADD_HTMLESCAPED(fil);
}
- lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
+ lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
}
else if (opt->urlmode==5) { // transparent proxy URL
char BIGSTK tempo[HTS_URLMAXSIZE*2];
@@ -2768,7 +2768,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// write it
HT_ADD_HTMLESCAPED(tempo);
}
- lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
+ lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
}
else if (opt->urlmode==2) { // RELATIF
char BIGSTK tempo[HTS_URLMAXSIZE*2];
@@ -2823,7 +2823,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // érire codebase="chemin"
+ // érire codebase="chemin"
if ((opt->getmode & 1) && (ptr>0)) {
char BIGSTK tempo4[HTS_URLMAXSIZE*2];
tempo4[0]='\0';
@@ -2838,7 +2838,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
HT_ADD(tempo4); // refresh code="
}
}
- //lastsaved=adr; // dernier écrit+1
+ //lastsaved=adr; // dernier écrit+1
}
if ((opt->getmode & 1) && (ptr>0)) {
@@ -2855,7 +2855,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// }
//}
- // écrire le lien modifié, relatif
+ // écrire le lien modifié, relatif
// Note: escape all chars, even >127 (no UTF)
HT_ADD_HTMLESCAPED_FULL(tempo);
@@ -2868,11 +2868,11 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
}
- lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
+ lastsaved=eadr-1; // dernier écrit+1 (enfin euh apres on fait un ++ alors hein)
} else {
hts_log_print(opt, LOG_WARNING, "Error building relative link %s and %s",save,relativesavename);
}
- } // sinon le lien sera écrit normalement
+ } // sinon le lien sera écrit normalement
#if 0
@@ -2889,27 +2889,27 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
hts_log_print(opt, LOG_WARNING, "Link is too long: %s",save);
}
- if ((adr[0]!='\0') && (p_type!=2) && (p_type!=-2) && (forbidden_url!=1) ) { // si le fichier n'existe pas, ajouter à la liste
+ if ((adr[0]!='\0') && (p_type!=2) && (p_type!=-2) && (forbidden_url!=1) ) { // si le fichier n'existe pas, ajouter à la liste
// n'y a-t-il pas trop de liens?
if (lien_tot+1 >= lien_max-4) { // trop de liens!
printf("PANIC! : Too many URLs : >%d [%d]\n",lien_tot,__LINE__);
hts_log_print(opt, LOG_PANIC, "Too many URLs, giving up..(>%d)",lien_max);
hts_log_print(opt, LOG_INFO, "To avoid that: use #L option for more links (example: -#L1000000)");
if ((opt->getmode & 1) && (ptr>0)) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return -1;
- } else { // noter le lien sur la listes des liens à charger
+ } else { // noter le lien sur la listes des liens à charger
int pass_fix,dejafait=0;
- // Calculer la priorité de ce lien
- if ((opt->getmode & 4)==0) { // traiter html après
+ // Calculer la priorité de ce lien
+ if ((opt->getmode & 4)==0) { // traiter html après
pass_fix=0;
- } else { // vérifier que ce n'est pas un !html
+ } else { // vérifier que ce n'est pas un !html
if (!ishtml(opt,fil))
- pass_fix=1; // priorité inférieure (traiter après)
+ pass_fix=1; // priorité inférieure (traiter après)
else
- pass_fix=max(0,numero_passe); // priorité normale
+ pass_fix=max(0,numero_passe); // priorité normale
}
/* If the file seems to be an html file, get depth-1 */
@@ -2923,11 +2923,11 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
*/
- // 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(hash,save,"",0,opt->urlhack); // lecture type 0 (sav)
if (i>=0) {
@@ -2944,15 +2944,15 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
}
- // le lien n'a jamais été créé.
- // cette fois ci, on le crée!
+ // le lien n'a jamais été créé.
+ // cette fois ci, on le crée!
if (!dejafait) {
//
// >>>> CREER LE LIEN <<<<
//
- // enregistrer lien à charger
+ // enregistrer lien à charger
//liens[lien_tot]->adr[0]=liens[lien_tot]->fil[0]=liens[lien_tot]->sav[0]='\0';
- // même adresse: l'objet père est l'objet père de l'actuel
+ // même adresse: l'objet père est l'objet père de l'actuel
// DEBUT ROBOTS.TXT AJOUT
if (!just_test_it) {
@@ -2963,18 +2963,18 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
#endif
)
{ // non file
- if (opt->robots) { // récupérer robots
- if (ishtml(opt,fil)!=0) { // pas la peine pour des fichiers isolés
+ if (opt->robots) { // récupérer robots
+ if (ishtml(opt,fil)!=0) { // pas la peine pour des fichiers isolés
if (checkrobots(_ROBOTS,adr,"") != -1) { // robots.txt ?
- checkrobots_set(_ROBOTS ,adr,""); // ajouter entrée vide
+ checkrobots_set(_ROBOTS ,adr,""); // ajouter entrée vide
if (checkrobots(_ROBOTS,adr,"") == -1) { // robots.txt ?
// enregistrer robots.txt (MACRO)
liens_record(adr,"/robots.txt","","","");
- 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)));
if ((opt->getmode & 1) && (ptr>0)) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return -1;
}
liens[lien_tot]->testmode=0; // pas mode test
@@ -3001,11 +3001,11 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
// enregistrer (MACRO)
liens_record(adr,fil,save,former_adr,former_fil);
- 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)));
if ((opt->getmode & 1) && (ptr>0)) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return -1;
}
@@ -3018,15 +3018,15 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
liens[lien_tot]->link_import=0; // pas mode import
else
liens[lien_tot]->link_import=1; // mode import
- // écrire autres paramètres de la structure-lien
+ // écrire autres paramètres de la structure-lien
if ((meme_adresse) && (!import_done) && (liens[ptr]->premier != 0))
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=lien_tot;
// liens[lien_tot]->premier=ptr;
liens[lien_tot]->precedent=ptr;
- // noter la priorité
+ // noter la priorité
if (!set_prio_to)
liens[lien_tot]->depth=liens[ptr]->depth - 1;
else
@@ -3120,9 +3120,9 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
}
// ----------
- // écrire peu à peu
+ // écrire peu à peu
if ((opt->getmode & 1) && (ptr>0)) HT_ADD_ADR;
- lastsaved=adr; // dernier écrit+1
+ lastsaved=adr; // dernier écrit+1
// ----------
// Checks
@@ -3140,7 +3140,7 @@ int htsparse(htsmoduleStruct* str, htsmoduleStructExtended* stre) {
opt->state._hts_in_html_done=(100 * ((int) (adr - r->adr)) ) / (int)(r->size);
if (opt->state._hts_in_html_poll) {
opt->state._hts_in_html_poll=0;
- // temps à attendre, et remplir autant que l'on peut le cache (backing)
+ // temps à attendre, et remplir autant que l'on peut le cache (backing)
back_wait(sback,opt,cache,HTS_STAT.stat_timestart);
back_fillmax(sback,opt,cache,liens,ptr,numero_passe,lien_tot);
@@ -3226,7 +3226,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
// ------------------------------------------------------------
if (!error) {
////////{
- // on a chargé un fichier en plus
+ // on a chargé un fichier en plus
// if (!error) stat_loaded+=r.size;
// ------------------------------------------------------------
@@ -3242,7 +3242,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
{
char BIGSTK mov_url[HTS_URLMAXSIZE*2],mov_adr[HTS_URLMAXSIZE*2],mov_fil[HTS_URLMAXSIZE*2];
- int get_it=0; // ne pas prendre le fichier à la même adresse par défaut
+ int get_it=0; // ne pas prendre le fichier à la même adresse par défaut
int reponse=0;
mov_url[0]='\0'; mov_adr[0]='\0'; mov_fil[0]='\0';
//
@@ -3251,7 +3251,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
// url qque -> adresse+fichier
if ((reponse=ident_url_relatif(mov_url,urladr,urlfil,mov_adr,mov_fil))>=0) {
- int set_prio_to=0; // pas de priotité fixéd par wizard
+ int set_prio_to=0; // pas de priotité fixéd par wizard
// check whether URLHack is harmless or not
if (opt->urlhack) {
@@ -3268,51 +3268,51 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
}
//if (ident_url_absolute(mov_url,mov_adr,mov_fil)!=-1) { // ok URL reconnue
- // c'est (en gros) la même URL..
- // si c'est un problème de casse dans le host c'est que le serveur est buggé
+ // c'est (en gros) la même URL..
+ // si c'est un problème de casse dans le host c'est que le serveur est buggé
// ("RFC says.." : host name IS case insensitive)
- if ((strfield2(mov_adr,urladr)!=0) && (strfield2(mov_fil,urlfil)!=0)) { // identique à casse près
+ if ((strfield2(mov_adr,urladr)!=0) && (strfield2(mov_fil,urlfil)!=0)) { // identique à casse près
// on tourne en rond
if (strcmp(mov_fil,urlfil)==0) {
error=1;
get_it=-1; // ne rien faire
hts_log_print(opt, LOG_WARNING, "Can not bear crazy server (%s) for %s%s",r->msg,urladr,urlfil);
- } else { // mauvaise casse, effacer entrée dans la pile et rejouer une fois
+ } else { // mauvaise casse, effacer entrée dans la pile et rejouer une fois
get_it=1;
}
- } else { // adresse différente
- if (ishtml(opt,mov_url)==0) { // pas même adresse MAIS c'est un fichier non html (pas de page moved possible)
- // -> on prend à cette adresse, le lien sera enregistré avec lien_record() (hash)
+ } else { // adresse différente
+ if (ishtml(opt,mov_url)==0) { // pas même adresse MAIS c'est un fichier non html (pas de page moved possible)
+ // -> on prend à cette adresse, le lien sera enregistré avec lien_record() (hash)
hts_log_print(opt, LOG_DEBUG, "wizard link test for moved file at %s%s..",mov_adr,mov_fil);
- // accepté?
+ // accepté?
if (hts_acceptlink(opt,ptr,lien_tot,liens,
mov_adr,mov_fil,
NULL, NULL,
&set_prio_to,
- NULL) != 1) { /* nouvelle adresse non refusée ? */
+ NULL) != 1) { /* nouvelle adresse non refusée ? */
get_it=1;
hts_log_print(opt, LOG_DEBUG, "moved link accepted: %s%s",mov_adr,mov_fil);
}
- } /* sinon traité normalement */
+ } /* sinon traité normalement */
}
- //if ((strfield2(mov_adr,urladr)!=0) && (strfield2(mov_fil,urlfil)!=0)) { // identique à casse près
+ //if ((strfield2(mov_adr,urladr)!=0) && (strfield2(mov_fil,urlfil)!=0)) { // identique à casse près
if (get_it==1) {
// court-circuiter le reste du traitement
// et reculer pour mieux sauter
hts_log_print(opt, LOG_WARNING, "Warning moved treated for %s%s (real one is %s%s)",urladr,urlfil,mov_adr,mov_fil);
// canceller lien actuel
error=1;
- strcpybuff(liens[ptr]->adr,"!"); // caractère bidon (invalide hash)
+ strcpybuff(liens[ptr]->adr,"!"); // caractère bidon (invalide hash)
// noter NOUVEAU lien
//xxc xxc
// set_prio_to=0+1; // protection if the moved URL is an html page!!
//xxc xxc
{
char BIGSTK mov_sav[HTS_URLMAXSIZE*2];
- // calculer lien et éventuellement modifier addresse/fichier
+ // calculer lien et éventuellement modifier addresse/fichier
if (url_savename2(mov_adr,mov_fil,mov_sav,NULL,NULL,liens[liens[ptr]->precedent]->adr,liens[liens[ptr]->precedent]->fil,opt,liens,lien_tot,sback,cache,hash,ptr,numero_passe,NULL,str->page_charset_)!=-1) {
- if (hash_read(hash,mov_sav,"",0,0)<0) { // n'existe pas déja
+ if (hash_read(hash,mov_sav,"",0,0)<0) { // n'existe pas déja
// enregistrer lien (MACRO) avec SAV IDENTIQUE
liens_record(mov_adr,mov_fil,liens[ptr]->sav,"","");
//liens_record(mov_adr,mov_fil,mov_sav,"","");
@@ -3329,11 +3329,11 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
liens[lien_tot]->premier=liens[ptr]->premier;
liens[lien_tot]->precedent=liens[ptr]->precedent;
lien_tot++;
- } else { // oups erreur, plus de mémoire!!
+ } else { // oups erreur, plus de mémoire!!
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)));
//if (opt->getmode & 1) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return 0;
}
} else {
@@ -3345,13 +3345,13 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
//printf("-> %s %s %s\n",liens[lien_tot-1]->adr,liens[lien_tot-1]->fil,liens[lien_tot-1]->sav);
- // note métaphysique: il se peut qu'il y ait un index.html et un INDEX.HTML
- // sous DOS ca marche pas très bien... mais comme je suis génial url_savename()
- // est à même de régler ce problème
+ // note métaphysique: il se peut qu'il y ait un index.html et un INDEX.HTML
+ // sous DOS ca marche pas très bien... mais comme je suis génial url_savename()
+ // est à même de régler ce problème
}
} // ident_url_xx
- if (get_it==0) { // adresse vraiment différente et potentiellement en html (pas de possibilité de bouger la page tel quel à cause des <img src..> et cie)
+ if (get_it==0) { // adresse vraiment différente et potentiellement en html (pas de possibilité de bouger la page tel quel à cause des <img src..> et cie)
rn=(char*) calloct(8192,1);
if (rn!=NULL) {
hts_log_print(opt, LOG_WARNING, "File has moved from %s%s to %s",urladr,urlfil,mov_url);
@@ -3366,7 +3366,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
strcpybuff(mov_url, "cid:");
strcatbuff(mov_url, buff);
}
- // On prépare une page qui sautera immédiatement sur la bonne URL
+ // On prépare une page qui sautera immédiatement sur la bonne URL
// Le scanner re-changera, ensuite, cette URL, pour la mirrorer!
strcpybuff(rn,"<HTML>"CRLF);
strcatbuff(rn,"<!-- Created by HTTrack Website Copier/"HTTRACK_VERSION" "HTTRACK_AFF_AUTHORS" -->"CRLF);
@@ -3398,10 +3398,10 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
} else if (
(r->statuscode==HTTP_PRECONDITION_FAILED)
|| (r->statuscode==HTTP_REQUESTED_RANGE_NOT_SATISFIABLE)
- ) { // Precondition Failed, c'est à dire pour nous redemander TOUT le fichier
+ ) { // Precondition Failed, c'est à dire pour nous redemander TOUT le fichier
if (fexist_utf8(liens[ptr]->sav)) {
remove(liens[ptr]->sav); // Eliminer
- if (!fexist_utf8(liens[ptr]->sav)) { // Bien éliminé? (sinon on boucle..)
+ if (!fexist_utf8(liens[ptr]->sav)) { // Bien éliminé? (sinon on boucle..)
#if HDEBUG
printf("Partial content NOT up-to-date, reget all file for %s\n",liens[ptr]->sav);
#endif
@@ -3420,13 +3420,13 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
//
// canceller lien actuel
error=1;
- strcpybuff(liens[ptr]->adr,"!"); // caractère bidon (invalide hash)
+ strcpybuff(liens[ptr]->adr,"!"); // caractère bidon (invalide hash)
//
- } else { // oups erreur, plus de mémoire!!
+ } else { // oups erreur, plus de mémoire!!
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)));
//if (opt->getmode & 1) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return 0;
}
} else {
@@ -3441,7 +3441,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
// Error ?
if (error) {
if (!opt->errpage) {
- if (r->adr) { // désalloc
+ if (r->adr) { // désalloc
freet(r->adr);
r->adr=NULL;
}
@@ -3450,11 +3450,11 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
} else if (r->statuscode!=HTTP_OK) {
int can_retry=0;
- // cas où l'on peut reessayer
+ // cas où l'on peut reessayer
switch(r->statuscode) {
//case -1: can_retry=1; break;
case STATUSCODE_TIMEOUT:
- if (opt->hostcontrol) { // timeout et retry épuisés
+ if (opt->hostcontrol) { // timeout et retry épuisés
if ((opt->hostcontrol & 1) && (liens[ptr]->retry<=0)) {
hts_log_print(opt, LOG_DEBUG, "Link banned: %s%s",urladr,urlfil);
host_ban(opt,liens,ptr,lien_tot,sback,jump_identification(urladr));
@@ -3486,14 +3486,14 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
}
if ( strcmp(liens[ptr]->fil,"/primary") != 0 ) { // no primary (internal page 0)
- if ((liens[ptr]->retry<=0) || (!can_retry) ) { // retry épuisés (ou retry impossible)
+ if ((liens[ptr]->retry<=0) || (!can_retry) ) { // retry épuisés (ou retry impossible)
if ((opt->retry>0) && (can_retry)){
hts_log_print(opt, LOG_ERROR, "\"%s\" (%d) after %d retries at link %s%s (from %s%s)",r->msg,r->statuscode,opt->retry,urladr,urlfil,liens[liens[ptr]->precedent]->adr,liens[liens[ptr]->precedent]->fil);
} else {
if (r->statuscode==STATUSCODE_TEST_OK) { // test OK
hts_log_print(opt, LOG_INFO, "Test OK at link %s%s (from %s%s)",urladr,urlfil,liens[liens[ptr]->precedent]->adr,liens[liens[ptr]->precedent]->fil);
} else {
- if (strcmp(urlfil,"/robots.txt")) { // ne pas afficher d'infos sur robots.txt par défaut
+ if (strcmp(urlfil,"/robots.txt")) { // ne pas afficher d'infos sur robots.txt par défaut
hts_log_print(opt, LOG_ERROR, "\"%s\" (%d) at link %s%s (from %s%s)",r->msg,r->statuscode,urladr,urlfil,liens[liens[ptr]->precedent]->adr,liens[liens[ptr]->precedent]->fil);
} else {
hts_log_print(opt, LOG_DEBUG, "No robots.txt rules at %s",urladr);
@@ -3506,7 +3506,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
// This prevent the engine from wiping all data if the website has been deleted (or moved)
// since last time (which is quite annoying)
if (liens[ptr]->precedent != 0) {
- // ici on teste si on doit enregistrer la page tout de même
+ // ici on teste si on doit enregistrer la page tout de même
if (opt->errpage) {
store_errpage=1;
}
@@ -3538,11 +3538,11 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
liens[lien_tot]->premier=liens[ptr]->premier;
liens[lien_tot]->precedent=liens[ptr]->precedent;
lien_tot++;
- } else { // oups erreur, plus de mémoire!!
+ } else { // oups erreur, plus de mémoire!!
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)));
//if (opt->getmode & 1) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return 0;
}
}
@@ -3550,7 +3550,7 @@ int hts_mirror_check_moved(htsmoduleStruct* str, htsmoduleStructExtended* stre)
hts_log_print(opt, LOG_DEBUG, "Info: no robots.txt at %s%s",urladr,urlfil);
}
if (!store_errpage) {
- if (r->adr) { // désalloc
+ if (r->adr) { // désalloc
freet(r->adr);
r->adr=NULL;
}
@@ -3634,8 +3634,8 @@ void hts_mirror_process_user_interaction(htsmoduleStruct* str, htsmoduleStructEx
}
}
}
- // On désalloue le buffer d'enregistrement des chemins créée, au cas où pendant la pause
- // l'utilisateur ferait un rm -r après avoir effectué un tar
+ // On désalloue le buffer d'enregistrement des chemins créée, au cas où pendant la pause
+ // l'utilisateur ferait un rm -r après avoir effectué un tar
// structcheck_init(1);
{
FILE* fp = fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-paused.lock"),"wb");
@@ -3654,7 +3654,7 @@ void hts_mirror_process_user_interaction(htsmoduleStruct* str, htsmoduleStructEx
}
// end of pause/lock files
- // changement dans les préférences
+ // changement dans les préférences
if (opt->state._hts_addurl) {
char BIGSTK add_adr[HTS_URLMAXSIZE*2];
char BIGSTK add_fil[HTS_URLMAXSIZE*2];
@@ -3668,9 +3668,9 @@ void hts_mirror_process_user_interaction(htsmoduleStruct* str, htsmoduleStructEx
// ----Ajout----
// noter NOUVEAU lien
char BIGSTK add_sav[HTS_URLMAXSIZE*2];
- // calculer lien et éventuellement modifier addresse/fichier
+ // calculer lien et éventuellement modifier addresse/fichier
if (url_savename2(add_adr,add_fil,add_sav,NULL,NULL,NULL,NULL,opt,liens,lien_tot,sback,cache,hash,ptr,numero_passe,NULL,str->page_charset_)!=-1) {
- if (hash_read(hash,add_sav,"",0,0)<0) { // n'existe pas déja
+ if (hash_read(hash,add_sav,"",0,0)<0) { // n'existe pas déja
// enregistrer lien (MACRO)
liens_record(add_adr,add_fil,add_sav,"","");
if (liens[lien_tot]!=NULL) { // OK, pas d'erreur
@@ -3685,11 +3685,11 @@ void hts_mirror_process_user_interaction(htsmoduleStruct* str, htsmoduleStructEx
//
hts_log_print(opt, LOG_INFO, "Link added by user: %s%s",add_adr,add_fil);
//
- } else { // oups erreur, plus de mémoire!!
+ } else { // oups erreur, plus de mémoire!!
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)));
//if (opt->getmode & 1) { if (fp) { fclose(fp); fp=NULL; } }
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return ;
}
} else {
@@ -3703,9 +3703,9 @@ void hts_mirror_process_user_interaction(htsmoduleStruct* str, htsmoduleStructEx
// ----Fin Ajout----
opt->state._hts_addurl++; // suivante
}
- opt->state._hts_addurl=NULL; // libérer _hts_addurl
+ opt->state._hts_addurl=NULL; // libérer _hts_addurl
}
- // si une pause a été demandée
+ // si une pause a été demandée
if (opt->state._hts_setpause || back_pluggable_sockets_strict(sback, opt) <= 0) {
// index du lien actuel
int b=back_index(opt,sback,urladr,urlfil,savename);
@@ -3802,7 +3802,7 @@ int hts_mirror_wait_for_next_file(htsmoduleStruct* str, htsmoduleStructExtended*
// index du lien actuel
{
// ------------------------------------------------------------
- // attendre que le fichier actuel soit prêt - BOUCLE D'ATTENTE
+ // attendre que le fichier actuel soit prêt - BOUCLE D'ATTENTE
do {
/* User interaction */
ENGINE_SAVE_CONTEXT();
@@ -3876,10 +3876,10 @@ int hts_mirror_wait_for_next_file(htsmoduleStruct* str, htsmoduleStructExtended*
int i;
char* s;
while(( s = hts_cancel_file_pop(opt) ) != NULL) {
- if (strnotempty(s)) { // fichier à canceller
+ if (strnotempty(s)) { // fichier à canceller
for(i = 0 ; i < back_max ; i++) {
if ((back[i].status > 0)) {
- if (strcmp(back[i].url_sav,s) == 0) { // ok trouvé
+ if (strcmp(back[i].url_sav,s) == 0) { // ok trouvé
if (back[i].status != 1000) {
#if HTS_DEBUG_CLOSESOCK
DEBUG_W("user cancel: deletehttp\n");
@@ -3889,9 +3889,9 @@ int hts_mirror_wait_for_next_file(htsmoduleStruct* str, htsmoduleStructExtended*
back[i].r.soc=INVALID_SOCKET;
back[i].r.statuscode=STATUSCODE_INVALID;
strcpybuff(back[i].r.msg,"Cancelled by User");
- back[i].status=0; // terminé
+ back[i].status=0; // terminé
back_set_finished(sback, i);
- } else // cancel ftp.. flag à 1
+ } else // cancel ftp.. flag à 1
back[i].stop_ftp = 1;
}
}
@@ -3943,15 +3943,15 @@ int hts_mirror_wait_for_next_file(htsmoduleStruct* str, htsmoduleStructExtended*
tl=time_local();
- // générer un message d'infos sur l'état actuel
+ // générer un message d'infos sur l'état actuel
if (opt->shell) { // si shell
if ((tl-*stre->last_info_shell_)>0) { // toute les 1 sec
FILE* fp=stdout;
int a=0;
*stre->last_info_shell_=tl;
- if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-autopsy"))) { // débuggage: teste si le robot est vivant
+ if (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-autopsy"))) { // débuggage: teste si le robot est vivant
// (oui je sais un robot vivant.. mais bon.. il a le droit de vivre lui aussi)
- // (libérons les robots esclaves de l'internet!)
+ // (libérons les robots esclaves de l'internet!)
remove(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-autopsy"));
fp=fopen(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),"hts-isalive"),"wb");
a=1;
@@ -4040,20 +4040,20 @@ int hts_mirror_wait_for_next_file(htsmoduleStruct* str, htsmoduleStructExtended*
//}
// ------------------------------------------------------------
- // Vérificateur d'intégrité
+ // Vérificateur d'intégrité
#if DEBUG_CHECKINT
- _CHECKINT(&back[b],"Retour de back_wait, après le while")
+ _CHECKINT(&back[b],"Retour de back_wait, après le while")
{
int i;
for(i=0;i<back_max;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)
}
}
#endif
- // copier structure réponse htsblk
+ // copier structure réponse htsblk
if (b >= 0) {
memcpy(r, &(back[b].r), sizeof(htsblk));
r->location=stre->loc_; // ne PAS copier location!! adresse, pas de buffer
@@ -4061,11 +4061,11 @@ int hts_mirror_wait_for_next_file(htsmoduleStruct* str, htsmoduleStructExtended*
strcpybuff(r->location,back[b].r.location);
back[b].r.adr=NULL; // ne pas faire de desalloc ensuite
- // libérer emplacement backing
+ // libérer emplacement backing
back_maydelete(opt,cache,sback,b);
}
- // débug graphique
+ // débug graphique
#if BDEBUG==2
{
char s[12];
@@ -4176,7 +4176,7 @@ int hts_wait_delayed(htsmoduleStruct* str,
b=back_index(opt,sback,adr,fil,save);
if (b<0) {
printf("PANIC! : Crash adding error, unexpected error found.. [%d]\n",__LINE__);
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return -1;
}
@@ -4220,7 +4220,7 @@ int hts_wait_delayed(htsmoduleStruct* str,
}
if (b<0) {
printf("PANIC! : Crash adding error, unexpected error found.. [%d]\n",__LINE__);
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return -1;
}
@@ -4238,7 +4238,7 @@ int hts_wait_delayed(htsmoduleStruct* str,
if (b < 0)
break;
- // temps à attendre, et remplir autant que l'on peut le cache (backing)
+ // temps à attendre, et remplir autant que l'on peut le cache (backing)
if (back[b].status>0) {
back_wait(sback,opt,cache,0);
}
@@ -4246,7 +4246,7 @@ int hts_wait_delayed(htsmoduleStruct* str,
back_fillmax(sback,opt,cache,liens,ptr,numero_passe,lien_tot);
}
- // on est obligé d'appeler le shell pour le refresh..
+ // on est obligé d'appeler le shell pour le refresh..
{
// Transfer rate
@@ -4325,12 +4325,12 @@ int hts_wait_delayed(htsmoduleStruct* str,
//
if (ident_url_relatif(mov_url,adr,fil,mov_adr,mov_fil)>=0) {
hts_log_print(opt, LOG_DEBUG, "Redirect while resolving type: %s%s -> %s%s", adr, fil, mov_adr, mov_fil);
- // si non bouclage sur soi même, ou si test avec GET non testé
+ // si non bouclage sur soi même, ou si test avec GET non testé
if (strcmp(mov_adr,adr) != 0 || strcmp(mov_fil,fil) != 0) {
// recopier former_adr/fil?
if ((former_adr) && (former_fil)) {
- if (strnotempty(former_adr)==0) { // Pas déja noté
+ if (strnotempty(former_adr)==0) { // Pas déja noté
strcpybuff(former_adr,adr);
strcpybuff(former_fil,fil);
}
@@ -4417,7 +4417,7 @@ int hts_wait_delayed(htsmoduleStruct* str,
} // b >= 0
} else {
printf("PANIC! : Crash adding error, unexpected error found.. [%d]\n",__LINE__);
- XH_uninit; // désallocation mémoire & buffers
+ XH_uninit; // désallocation mémoire & buffers
return -1;
}
diff --git a/src/htsrobots.c b/src/htsrobots.c
index d1ca45c..589f70c 100644
--- a/src/htsrobots.c
+++ b/src/htsrobots.c
@@ -48,7 +48,7 @@ Please visit our Website: http://www.httrack.com
// -- robots --
-// fil="" : vérifier si règle déja enregistrée
+// fil="" : vérifier si règle déja enregistrée
int checkrobots(robots_wizard* robots,char* adr,char* fil) {
while(robots) {
if (strfield2(robots->adr,adr)) {
@@ -81,7 +81,7 @@ int checkrobots_set(robots_wizard* robots,char* adr,char* data) {
if (((int) strlen(adr)) >= sizeof(robots->adr) - 2) return 0;
if (((int) strlen(data)) >= sizeof(robots->token) - 2) return 0;
while(robots) {
- if (strfield2(robots->adr,adr)) { // entrée existe
+ if (strfield2(robots->adr,adr)) { // entrée existe
strcpybuff(robots->token,data);
#if DEBUG_ROBOTS
printf("robots.txt: set %s to %s\n",adr,data);
diff --git a/src/htsserver.c b/src/htsserver.c
index 1698955..39522dd 100644
--- a/src/htsserver.c
+++ b/src/htsserver.c
@@ -59,7 +59,7 @@ Please visit our Website: http://www.httrack.com
#endif
/* END specific definitions */
-/* définitions globales */
+/* définitions globales */
#include "htsglobal.h"
/* htslib */
@@ -195,7 +195,7 @@ T_SOC smallserver_init(int* port,char* adr) {
// effacer structure
/*memset(&server2, 0, sizeof(server2));
if (getsockname(soc,(struct sockaddr*) &server2,&len) == 0) {
- *port=ntohs(SOCaddr_sinport(server)); // récupérer port*/
+ *port=ntohs(SOCaddr_sinport(server)); // récupérer port*/
if (listen(soc,10)>=0) { // au pif le 10
// SOCaddr_inetntoa(adr, 128, server2, len);
strcpy(adr, h_loc);
@@ -1354,7 +1354,7 @@ static int htslang_load(char* limit_to, char* path) {
} while (strnotempty(test));
}
- if (!strnotempty(test)) { // éviter doublons
+ if (!strnotempty(test)) { // éviter doublons
// conv_printf(key,key);
int len;
char* buff;
@@ -1523,7 +1523,7 @@ static void LANG_DELETE(void) {
inthash_delete(&NewLangStrKeys);
}
-// sélection de la langue
+// sélection de la langue
static void LANG_INIT(char* path) {
//CWinApp* pApp = AfxGetApp();
//if (pApp) {
diff --git a/src/htsserver.h b/src/htsserver.h
index dfb978e..da176f5 100644
--- a/src/htsserver.h
+++ b/src/htsserver.h
@@ -132,7 +132,7 @@ static int linputsoc(T_SOC soc, char* s, int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 9: case 12: break; // sauter ces caractères
+ case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -207,7 +207,7 @@ static int linput(FILE* fp,char* s,int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 0: case 9: case 12: break; // sauter ces caractères
+ case 0: case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -227,7 +227,7 @@ static int linput_trim(FILE* fp,char* s,int max) {
// sauter espaces et tabs en fin
while( (rlen>0) && is_realspace(ls[max(rlen-1,0)]) )
ls[--rlen]='\0';
- // sauter espaces en début
+ // sauter espaces en début
a=ls;
while((rlen>0) && ((*a==' ') || (*a=='\t'))) {
a++;
@@ -266,7 +266,7 @@ static void unescapehttp(char* s, String* tempo) {
i++;
hc = (char) ehex(s+i);
StringAddchar(*tempo, (char) hc);
- i++; // sauter 2 caractères finalement
+ i++; // sauter 2 caractères finalement
}
else if (s[i]=='+') {
StringAddchar(*tempo, ' ');
@@ -290,7 +290,7 @@ static void unescapeini(char* s, String* tempo) {
if (!is_retorsep(hc) || !is_retorsep(lastc)) {
StringAddchar(*tempo, lastc = (char) hc);
}
- i++; // sauter 2 caractères finalement
+ i++; // sauter 2 caractères finalement
}
else
StringAddchar(*tempo, lastc = s[i]);
diff --git a/src/htstools.c b/src/htstools.c
index 65e5f1f..f6da19e 100644
--- a/src/htstools.c
+++ b/src/htstools.c
@@ -107,7 +107,7 @@ static void unescapehttp(char* s, String* tempo) {
i++;
hc = (char) ehex(s+i);
StringAddchar(*tempo, (char) hc);
- i++; // sauter 2 caractères finalement
+ i++; // sauter 2 caractères finalement
}
else if (s[i]=='+') {
StringAddchar(*tempo, ' ');
@@ -117,11 +117,11 @@ static void unescapehttp(char* s, String* tempo) {
}
}
-// forme à partir d'un lien et du contexte (origin_fil et origin_adr d'où il est tiré) adr et fil
+// forme à partir d'un lien et du contexte (origin_fil et origin_adr d'où il est tiré) adr et fil
// [adr et fil sont des buffers de 1ko]
// 0 : ok
// -1 : erreur
-// -2 : protocole non supporté (ftp)
+// -2 : protocole non supporté (ftp)
int ident_url_relatif(const char *lien,const char* origin_adr,const char* origin_fil,char* adr,char* fil) {
int ok=0;
int scheme=0;
@@ -153,12 +153,12 @@ int ident_url_relatif(const char *lien,const char* origin_adr,const char* origin
}
else if (strfield(lien,"ftp://")) {
// Note: ftp:foobar.gif is not valid
- if (ftp_available()) { // ftp supporté
+ if (ftp_available()) { // ftp supporté
if (ident_url_absolute(lien,adr,fil)==-1) {
ok=-1; // erreur URL
}
} else {
- ok=-2; // non supporté
+ ok=-2; // non supporté
}
#if HTS_USEMMS
} else if (strfield(lien,"mms://")) {
@@ -187,7 +187,7 @@ int ident_url_relatif(const char *lien,const char* origin_adr,const char* origin
)) {
ok=-1; // unknown scheme
} else { // c'est un lien relatif
- // On forme l'URL complète à partie de l'url actuelle
+ // On forme l'URL complète à partie de l'url actuelle
// et du chemin actuel si besoin est.
// copier adresse
@@ -196,23 +196,23 @@ int ident_url_relatif(const char *lien,const char* origin_adr,const char* origin
/* patch scheme if necessary */
if (strfield(lien,"http:")) {
lien+=5;
- strcpybuff(adr, jump_protocol(origin_adr)); // même adresse ; protocole vide (http)
+ strcpybuff(adr, jump_protocol(origin_adr)); // même adresse ; protocole vide (http)
} else if (strfield(lien,"https:")) {
lien+=6;
- strcpybuff(adr, "https://"); // même adresse forcée en https
+ strcpybuff(adr, "https://"); // même adresse forcée en https
strcatbuff(adr, jump_protocol(origin_adr));
} else if (strfield(lien,"ftp:")) {
lien+=4;
- strcpybuff(adr, "ftp://"); // même adresse forcée en ftp
+ strcpybuff(adr, "ftp://"); // même adresse forcée en ftp
strcatbuff(adr, jump_protocol(origin_adr));
#if HTS_USEMMS
} else if (strfield(lien,"mms:")) {
lien+=4;
- strcpybuff(adr, "mms://"); // même adresse forcée en ftp
+ strcpybuff(adr, "mms://"); // même adresse forcée en ftp
strcatbuff(adr, jump_protocol(origin_adr));
#endif
} else {
- strcpybuff(adr,origin_adr); // même adresse ; et même éventuel protocole
+ strcpybuff(adr,origin_adr); // même adresse ; et même éventuel protocole
}
if (*lien!='/') { // sinon c'est un lien absolu
@@ -275,8 +275,8 @@ int ident_url_relatif(const char *lien,const char* origin_adr,const char* origin
-// créer dans s, à partir du chemin courant curr_fil, le lien vers link (absolu)
-// un ident_url_relatif a déja été fait avant, pour que link ne soit pas un chemin relatif
+// créer dans s, à partir du chemin courant curr_fil, le lien vers link (absolu)
+// un ident_url_relatif a déja été fait avant, pour que link ne soit pas un chemin relatif
int lienrelatif(char* s,const char* link,const char* curr_fil) {
char BIGSTK _curr[HTS_URLMAXSIZE*2];
char BIGSTK newcurr_fil[HTS_URLMAXSIZE*2],newlink[HTS_URLMAXSIZE*2];
@@ -288,7 +288,7 @@ int lienrelatif(char* s,const char* link,const char* curr_fil) {
newcurr_fil[0]='\0'; newlink[0]='\0';
//
- // patch: éliminer les ? (paramètres) sinon bug
+ // patch: éliminer les ? (paramètres) sinon bug
{
const char* a;
if ( (a=strchr(curr_fil,'?')) ) {
@@ -305,7 +305,7 @@ int lienrelatif(char* s,const char* link,const char* curr_fil) {
curr=_curr;
strcpybuff(curr,curr_fil);
if ((a=strchr(curr,'?'))==NULL) // couper au ? (params)
- a=curr+strlen(curr)-1; // pas de params: aller à la fin
+ a=curr+strlen(curr)-1; // pas de params: aller à la fin
while((*a!='/') && ( a> curr)) a--; // chercher dernier / du chemin courant
if (*a=='/') *(a+1)='\0'; // couper dernier /
@@ -321,14 +321,14 @@ int lienrelatif(char* s,const char* link,const char* curr_fil) {
//c=curr;
// couper ce qui est commun
while ((streql(*link,*curr)) && (*link!=0)) {link++; curr++; }
- // mais on veut un répertoirer entier!
+ // mais on veut un répertoirer entier!
// si on a /toto/.. et /toto2/.. on ne veut pas sauter /toto !
while(((*link!='/') || (*curr!='/')) && ( link > l)) { link--; curr--; }
//if (*link=='/') link++;
//if (*curr=='/') curr++;
}
- // calculer la profondeur du répertoire courant et remonter
+ // calculer la profondeur du répertoire courant et remonter
// LES ../ ONT ETE SIMPLIFIES
a=curr;
if (*a=='/') a++;
@@ -337,7 +337,7 @@ int lienrelatif(char* s,const char* link,const char* curr_fil) {
if (slash) strcatbuff(s,"/"); // garder absolu!!
- // on est dans le répertoire de départ, copier
+ // on est dans le répertoire de départ, copier
strcatbuff(s,link + ((*link=='/')?1:0) );
/* Security check */
@@ -400,7 +400,7 @@ void long_to_83(int mode,char* n83,char* save) {
}
-// conversion nom de fichier/dossier isolé vers 8-3 ou ISO9660
+// conversion nom de fichier/dossier isolé vers 8-3 ou ISO9660
void longfile_to_83(int mode,char* n83,char* save) {
int j=0,max=0;
int i = 0;
@@ -480,7 +480,7 @@ void longfile_to_83(int mode,char* n83,char* save) {
}
}
-// écrire backblue.gif
+// écrire backblue.gif
/* Note: utf-8 */
int verif_backblue(httrackp* opt, const char* base) {
int* done = &opt->state.verif_backblue_done;
@@ -527,8 +527,8 @@ int verif_external(httrackp* opt,int nb,int test) {
}
-// recherche chaîne de type truc<espaces>=
-// renvoi décalage à effectuer ou 0 si non trouvé
+// recherche chaîne de type truc<espaces>=
+// renvoi décalage à effectuer ou 0 si non trouvé
/* SECTION OPTIMISEE:
#define rech_tageq(adr,s) ( \
( (*(adr-1)=='<') || (is_space(*(adr-1))) ) ? \
@@ -549,7 +549,7 @@ HTS_INLINE int rech_tageq(const char* adr,const char* s) {
return 0;
}
*/
-// Deuxième partie
+// Deuxième partie
HTS_INLINE int __rech_tageq(const char* adr,const char* s) {
int p;
p=strfield(adr,s);
@@ -638,7 +638,7 @@ HTS_INLINE int rech_sampletag(const char* adr,const char* s) {
return 0;
}
-// teste si le tag contenu dans from est égal à "tag"
+// teste si le tag contenu dans from est égal à "tag"
HTS_INLINE int check_tag(char* from,const char* tag) {
char* a=from+1;
int i=0;
@@ -649,7 +649,7 @@ HTS_INLINE int check_tag(char* from,const char* tag) {
return (strfield2(s,tag)); // comparer
}
-// teste si un fichier dépasse le quota
+// teste si un fichier dépasse le quota
int istoobig(httrackp *opt,LLint size,LLint maxhtml,LLint maxnhtml,char* type) {
int ok=1;
if (size>0) {
@@ -709,7 +709,7 @@ HTSEXT_API int hts_buildtopindex(httrackp* opt,const char* path,const char* binp
fpo=fopen(fconcat(catbuff, rpath,"/index.html"),"wb");
if (fpo) {
find_handle h;
- verif_backblue(opt,concat(catbuff, rpath,"/")); // générer gif
+ verif_backblue(opt,concat(catbuff, rpath,"/")); // générer gif
// Header
fprintf(fpo,toptemplate_header,
"<!-- Mirror and index made by HTTrack Website Copier/"HTTRACK_VERSION" "HTTRACK_AFF_AUTHORS" -->"
diff --git a/src/htsweb.c b/src/htsweb.c
index 5c0a5d8..577e77d 100644
--- a/src/htsweb.c
+++ b/src/htsweb.c
@@ -403,7 +403,7 @@ int __cdecl htsshow_postprocesshtml(t_hts_callbackarg *carg, httrackp *opt, char
int __cdecl htsshow_checkhtml(t_hts_callbackarg *carg, httrackp *opt, char* html,int len,const char* url_address,const char* url_file) {
return 1;
}
-int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back,int back_max,int back_index,int lien_n,int lien_tot,int stat_time, hts_stat_struct* stats) { // appelé à chaque boucle de HTTrack
+int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back,int back_max,int back_index,int lien_n,int lien_tot,int stat_time, hts_stat_struct* stats) { // appelé à chaque boucle de HTTrack
static TStamp prev_mytime=0; /* ok */
static t_InpInfo SInfo; /* ok */
//
@@ -493,7 +493,7 @@ int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back
// parcourir registre des liens
- if (back_index>=0 && back_max > 0) { // seulement si index passé
+ if (back_index>=0 && back_max > 0) { // seulement si index passé
int j,k;
int index=0;
int ok=0; // idem
@@ -514,7 +514,7 @@ int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back
}
}
for(k=0;k<2;k++) { // 0: lien en cours 1: autres liens
- for(j=0;(j<3) && (index<NStatsBuffer);j++) { // passe de priorité
+ for(j=0;(j<3) && (index<NStatsBuffer);j++) { // passe de priorité
int _i;
for(_i=0+k;(_i< max(back_max*k,1) ) && (index<NStatsBuffer);_i++) { // no lien
int i=(back_index+_i)%back_max; // commencer par le "premier" (l'actuel)
@@ -552,7 +552,7 @@ int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back
}
break;
default:
- if (back[i].status==STATUS_READY) { // prêt
+ if (back[i].status==STATUS_READY) { // prêt
if ((back[i].r.statuscode==HTTP_OK)) {
strcpybuff(StatsBuffer[index].state,"ready"); ok=1;
}
@@ -602,11 +602,11 @@ int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back
strcatbuff(StatsBuffer[index].name,s+l-MAX_LEN_INPROGRESS/2+2);
}
- if (back[i].r.totalsize>0) { // taille prédéfinie
+ if (back[i].r.totalsize>0) { // taille prédéfinie
StatsBuffer[index].sizetot=back[i].r.totalsize;
StatsBuffer[index].size=back[i].r.size;
- } else { // pas de taille prédéfinie
- if (back[i].status==STATUS_READY) { // prêt
+ } else { // pas de taille prédéfinie
+ if (back[i].status==STATUS_READY) { // prêt
StatsBuffer[index].sizetot=back[i].r.size;
StatsBuffer[index].size=back[i].r.size;
} else {
diff --git a/src/htswizard.c b/src/htswizard.c
index ca97bb4..3bc8691 100644
--- a/src/htswizard.c
+++ b/src/htswizard.c
@@ -46,11 +46,11 @@ Please visit our Website: http://www.httrack.com
#include <ctype.h>
/* END specific definitions */
-// 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)
-// libérer filters[0] pour insérer un élément dans filters[0]
+// libérer filters[0] pour insérer un élément dans filters[0]
#define HT_INSERT_FILTERS0 do {\
int i;\
if (*opt->filters.filptr > 0) {\
@@ -95,7 +95,7 @@ httrackp opt bloc d'options
int ptr,int lien_tot,lien_url** liens
relatif aux liens
char* adr,char* fil
- adresse/fichier à tester
+ adresse/fichier à tester
char** filters,int filptr,int filter_max
relatif aux filtres
robots_wizard* robots
@@ -103,10 +103,10 @@ robots_wizard* robots
int* set_prio_to
callback obligatoire "capturer ce lien avec prio=N-1"
int* just_test_it
- callback optionnel "ne faire que tester ce lien éventuellement"
+ callback optionnel "ne faire que tester ce lien éventuellement"
retour:
-0 accepté
-1 refusé
+0 accepté
+1 refusé
-1 pas d'avis
*/
@@ -192,7 +192,7 @@ static int hts_acceptlink_(httrackp* opt,
if ((opt->getmode & 2)==0) { // non on ne doit pas
if (!ishtml(opt,fil)) { // non il ne faut pas
//adr[0]='\0'; // ne pas traiter ce lien, pas traiter
- forbidden_url=1; // interdire récupération du lien
+ forbidden_url=1; // interdire récupération du lien
hts_log_print(opt, LOG_DEBUG, "non-html file ignored at %s : %s",adr,fil);
}
@@ -201,12 +201,12 @@ static int hts_acceptlink_(httrackp* opt,
/* Niveau 1: ne pas parser suivant! */
if (ptr>0) {
if ( ( liens[ptr]->depth <= 0 ) || ( liens[ptr]->depth <= 1 && !embedded_triggered ) ) {
- forbidden_url=1; // interdire récupération du lien
+ forbidden_url=1; // interdire récupération du lien
hts_log_print(opt, LOG_DEBUG, "file from too far level ignored at %s : %s",adr,fil);
}
}
- /* en cas d'échec en phase 1, retour immédiat! */
+ /* en cas d'échec en phase 1, retour immédiat! */
if (forbidden_url == 1) {
return forbidden_url;
}
@@ -214,50 +214,50 @@ static int hts_acceptlink_(httrackp* opt,
// -------------------- PHASE 2 --------------------
// ------------------------------------------------------
- // doit-on traiter ce lien?.. vérifier droits de déplacement
+ // doit-on traiter ce lien?.. vérifier droits de déplacement
meme_adresse=strfield2(adr,urladr);
if (meme_adresse)
hts_log_print(opt, LOG_DEBUG, "Compare addresses: %s=%s",adr,urladr);
else
hts_log_print(opt, LOG_DEBUG, "Compare addresses: %s!=%s",adr,urladr);
- if (meme_adresse) { // même adresse
+ if (meme_adresse) { // même adresse
{ // tester interdiction de descendre
- // MODIFIE : en cas de remontée puis de redescente, il se pouvait qu'on ne puisse pas atteindre certains fichiers
- // problème: si un fichier est virtuellement accessible via une page mais dont le lien est sur une autre *uniquement*..
+ // MODIFIE : en cas de remontée puis de redescente, il se pouvait qu'on ne puisse pas atteindre certains fichiers
+ // problème: si un fichier est virtuellement accessible via une page mais dont le lien est sur une autre *uniquement*..
char BIGSTK tempo[HTS_URLMAXSIZE*2];
char BIGSTK tempo2[HTS_URLMAXSIZE*2];
tempo[0] = tempo2[0] = '\0';
- // note (up/down): on calcule à partir du lien primaire, ET du lien précédent.
+ // note (up/down): on calcule à partir du lien primaire, ET du lien précédent.
// ex: si on descend 2 fois on peut remonter 1 fois
if (lienrelatif(tempo,fil,liens[liens[ptr]->premier]->fil)==0) {
if (lienrelatif(tempo2,fil,liens[ptr]->fil)==0) {
hts_log_print(opt, LOG_DEBUG, "build relative links to test: %s %s (with %s and %s)",tempo,tempo2,liens[liens[ptr]->premier]->fil,liens[ptr]->fil);
- // si vient de primary, ne pas tester lienrelatif avec (car host "différent")
+ // si vient de primary, ne pas tester lienrelatif avec (car host "différent")
/*if (liens[liens[ptr]->premier] == 0) { // vient de primary
}
*/
- // NEW: finalement OK, sauf pour les moved repérés par link_import
- // PROBLEME : annulé a cause d'un lien éventuel isolé accepté..qui entrainerait un miroir
+ // NEW: finalement OK, sauf pour les moved repérés par link_import
+ // PROBLEME : annulé a cause d'un lien éventuel isolé accepté..qui entrainerait un miroir
- // (test même niveau (NOUVEAU à cause de certains problèmes de filtres non intégrés))
+ // (test même niveau (NOUVEAU à cause de certains problèmes de filtres non intégrés))
// NEW
if (
(tempo[0] != '\0' && tempo[1] != '\0' && strchr(tempo+1,'/') == 0)
||
(tempo2[0] != '\0' && tempo2[1] != '\0' && strchr(tempo2+1,'/') == 0)
) {
- if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
+ if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
forbidden_url=0;
hts_log_print(opt, LOG_DEBUG, "same level link authorized: %s%s",adr,fil);
}
}
// down
- if ( (strncmp(tempo,"../",3)) || (strncmp(tempo2,"../",3))) { // pas montée sinon ne nbous concerne pas
+ if ( (strncmp(tempo,"../",3)) || (strncmp(tempo2,"../",3))) { // pas montée sinon ne nbous concerne pas
int test1,test2;
if (!strncmp(tempo,"../",3))
test1=0;
@@ -271,15 +271,15 @@ static int hts_acceptlink_(httrackp* opt,
if ((opt->seeker & 1)==0) { // interdiction de descendre
forbidden_url=1;
hts_log_print(opt, LOG_DEBUG, "lower link canceled: %s%s",adr,fil);
- } else { // autorisé à priori - NEW
- if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
+ } else { // autorisé à priori - NEW
+ if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
forbidden_url=0;
hts_log_print(opt, LOG_DEBUG, "lower link authorized: %s%s",adr,fil);
}
}
- } else if ( (test1) || (test2) ) { // on peut descendre pour accéder au lien
+ } else if ( (test1) || (test2) ) { // on peut descendre pour accéder au lien
if ((opt->seeker & 1)!=0) { // on peut descendre - NEW
- if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
+ if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
forbidden_url=0;
hts_log_print(opt, LOG_DEBUG, "lower link authorized: %s%s",adr,fil);
}
@@ -293,19 +293,19 @@ static int hts_acceptlink_(httrackp* opt,
if ((opt->seeker & 2)==0) { // interdiction de monter
forbidden_url=1;
hts_log_print(opt, LOG_DEBUG, "upper link canceled: %s%s",adr,fil);
- } else { // autorisé à monter - NEW
- if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
+ } else { // autorisé à monter - NEW
+ if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
forbidden_url=0;
hts_log_print(opt, LOG_DEBUG, "upper link authorized: %s%s",adr,fil);
}
}
} else if ( (!strncmp(tempo,"../",3)) || (!strncmp(tempo2,"../",3)) ) { // Possible en montant
- if ((opt->seeker & 2)!=0) { // autorisé à monter - NEW
- if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
+ if ((opt->seeker & 2)!=0) { // autorisé à monter - NEW
+ if (!liens[ptr]->link_import) { // ne résulte pas d'un 'moved'
forbidden_url=0;
hts_log_print(opt, LOG_DEBUG, "upper link authorized: %s%s",adr,fil);
}
- } // sinon autorisé en descente
+ } // sinon autorisé en descente
}
@@ -332,16 +332,16 @@ static int hts_acceptlink_(httrackp* opt,
}
} // fin tester interdiction de monter
- } else { // adresse différente, sortir?
+ } else { // adresse différente, sortir?
//if (!opt->wizard) { // mode non wizard
- // doit-on traiter ce lien?.. vérifier droits de sortie
+ // doit-on traiter ce lien?.. vérifier droits de sortie
switch((opt->travel & 255)) {
case 0:
if (!opt->wizard) // mode non wizard
forbidden_url=1;
break; // interdicton de sortir au dela de l'adresse
- case 1: { // sortie sur le même dom.xxx
+ case 1: { // sortie sur le même dom.xxx
size_t i = strlen(adr)-1;
size_t j = strlen(urladr)-1;
if ((i>0) && (j>0)) {
@@ -357,13 +357,13 @@ static int hts_acceptlink_(httrackp* opt,
if (!strfield2(adr+i,urladr+j)) { // !=
if (!opt->wizard) { // mode non wizard
//printf("refused: %s\n",adr);
- forbidden_url=1; // pas même domaine
+ forbidden_url=1; // pas même domaine
hts_log_print(opt, LOG_DEBUG, "foreign domain link canceled: %s%s",adr,fil);
}
} else {
if (opt->wizard) { // mode wizard
- forbidden_url=0; // même domaine
+ forbidden_url=0; // même domaine
hts_log_print(opt, LOG_DEBUG, "same domain link authorized: %s%s",adr,fil);
}
}
@@ -372,7 +372,7 @@ static int hts_acceptlink_(httrackp* opt,
forbidden_url=1;
}
break;
- case 2: { // sortie sur le même .xxx
+ case 2: { // sortie sur le même .xxx
size_t i = strlen(adr)-1;
size_t j = strlen(urladr)-1;
while( (i>0) && (adr[i]!='.')) i--;
@@ -381,12 +381,12 @@ static int hts_acceptlink_(httrackp* opt,
if (!strfield2(adr+i,urladr+j)) { // !-
if (!opt->wizard) { // mode non wizard
//printf("refused: %s\n",adr);
- forbidden_url=1; // pas même .xx
+ forbidden_url=1; // pas même .xx
hts_log_print(opt, LOG_DEBUG, "foreign location link canceled: %s%s",adr,fil);
}
} else {
if (opt->wizard) { // mode wizard
- forbidden_url=0; // même domaine
+ forbidden_url=0; // même domaine
hts_log_print(opt, LOG_DEBUG, "same location link authorized: %s%s",adr,fil);
}
}
@@ -400,13 +400,13 @@ static int hts_acceptlink_(httrackp* opt,
}
} // switch
- // ANCIENNE POS -- récupérer les liens à côtés d'un lien (nearlink)
+ // ANCIENNE POS -- récupérer les liens à côtés d'un lien (nearlink)
- } // fin test adresse identique/différente
+ } // fin test adresse identique/différente
// -------------------- PHASE 3 --------------------
- // récupérer les liens à côtés d'un lien (nearlink) (nvelle pos)
+ // récupérer les liens à côtés d'un lien (nearlink) (nvelle pos)
if (forbidden_url != 0 && opt->nearlink) {
if (!ishtml(opt,fil)) { // non html
//printf("ok %s%s\n",ad,fil);
@@ -430,19 +430,19 @@ static int hts_acceptlink_(httrackp* opt,
// ------------------------------------------------------
// Si wizard, il se peut qu'on autorise ou qu'on interdise
- // un lien spécial avant même de tester sa position, sa hiérarchie etc.
- // peut court-circuiter le forbidden_url précédent
+ // un lien spécial avant même de tester sa position, sa hiérarchie etc.
+ // peut court-circuiter le forbidden_url précédent
if (opt->wizard) { // le wizard entre en action..
//
int question=1; // poser une question
int force_mirror=0; // pour mirror links
- int filters_answer=0; // décision prise par les filtres
+ int filters_answer=0; // décision prise par les filtres
char BIGSTK l[HTS_URLMAXSIZE*2];
char BIGSTK lfull[HTS_URLMAXSIZE*2];
- if (forbidden_url!=-1) question=0; // pas de question, résolu
+ if (forbidden_url!=-1) question=0; // pas de question, résolu
- // former URL complète du lien actuel
+ // former URL complète du lien actuel
strcpybuff(l,jump_identification(adr));
if (*fil!='/') strcatbuff(l,"/");
strcatbuff(l,fil);
@@ -455,16 +455,16 @@ static int hts_acceptlink_(httrackp* opt,
if (*fil!='/') strcatbuff(lfull,"/");
strcatbuff(lfull,fil);
- // tester filters (URLs autorisées ou interdites explicitement)
+ // tester filters (URLs autorisées ou interdites explicitement)
- // si lien primaire on saute le joker, on est pas lémur
+ // si lien primaire on saute le joker, on est pas lémur
if (ptr==0) { // lien primaire, autoriser
- question=1; // la question sera résolue automatiquement
+ question=1; // la question sera résolue automatiquement
forbidden_url=0;
may_set_prio_to=0; // clear may-set flag
} else {
// eternal depth first
- // vérifier récursivité extérieure
+ // vérifier récursivité extérieure
if (opt->extdepth>0) {
if ( /*question && */ (ptr>0) && (!force_mirror)) {
// well, this is kinda a hak
@@ -476,8 +476,8 @@ static int hts_acceptlink_(httrackp* opt,
// *set_prio_to = opt->extdepth + 1;
*set_prio_to = 1 + (opt->extdepth);
may_set_prio_to=0; // clear may-set flag
- forbidden_url=0; // autorisé
- question=0; // résolution auto
+ forbidden_url=0; // autorisé
+ question=0; // résolution auto
if (question) {
hts_log_print(opt, LOG_DEBUG, "(wizard) ambiguous link accepted (external depth): link %s at %s%s",l,urladr,urlfil);
} else {
@@ -513,28 +513,28 @@ static int hts_acceptlink_(httrackp* opt,
}
}
- if (jok == 1) { // autorisé
- filters_answer=1; // décision prise par les filtres
- question=0; // ne pas poser de question, autorisé
- forbidden_url=0; // URL autorisée
+ if (jok == 1) { // autorisé
+ filters_answer=1; // décision prise par les filtres
+ question=0; // ne pas poser de question, autorisé
+ forbidden_url=0; // URL autorisée
may_set_prio_to=0; // clear may-set flag
hts_log_print(opt, LOG_DEBUG, "(wizard) explicit authorized (%s) link: link %s at %s%s",mdepth,l,urladr,urlfil);
} else if (jok == -1) { // forbidden
- filters_answer=1; // décision prise par les filtres
+ filters_answer=1; // décision prise par les filtres
question=0; // ne pas poser de question:
forbidden_url=1; // URL interdite
hts_log_print(opt, LOG_DEBUG, "(wizard) explicit forbidden (%s) link: link %s at %s%s",mdepth,l,urladr,urlfil);
- } // sinon on touche à rien
+ } // sinon on touche à rien
}
}
- // vérifier mode mirror links
+ // vérifier mode mirror links
if (question) {
if (opt->mirror_first_page) { // mode mirror links
if (liens[ptr]->precedent==0) { // parent=primary!
- forbidden_url=0; // autorisé
+ forbidden_url=0; // autorisé
may_set_prio_to=0; // clear may-set flag
- question=1; // résolution auto
+ question=1; // résolution auto
force_mirror=5; // mirror (5)
hts_log_print(opt, LOG_DEBUG, "(wizard) explicit mirror link: link %s at %s%s",l,urladr,urlfil);
}
@@ -542,23 +542,23 @@ static int hts_acceptlink_(httrackp* opt,
}
// on doit poser la question.. peut on la poser?
- // (oui je sais quel preuve de délicatesse, merci merci)
+ // (oui je sais quel preuve de délicatesse, merci merci)
if ((question) && (ptr>0) && (!force_mirror)) {
- if (opt->wizard==2) { // éliminer tous les liens non répertoriés comme autorisés (ou inconnus)
+ if (opt->wizard==2) { // éliminer tous les liens non répertoriés comme autorisés (ou inconnus)
question=0;
forbidden_url=1;
hts_log_print(opt, LOG_DEBUG, "(wizard) ambiguous forbidden link: link %s at %s%s",l,urladr,urlfil);
}
}
- // vérifier robots.txt
+ // vérifier robots.txt
if (opt->robots) {
int r = checkrobots(_ROBOTS,adr,fil);
if (r == -1) { // interdiction
#if DEBUG_ROBOTS
printf("robots.txt forbidden: %s%s\n",adr,fil);
#endif
- // question résolue, par les filtres, et mode robot non strict
+ // question résolue, par les filtres, et mode robot non strict
if ((!question) && (filters_answer) && (opt->robots == 1) && (forbidden_url!=1)) {
r=0; // annuler interdiction des robots
if (!forbidden_url) {
@@ -598,7 +598,7 @@ static int hts_acceptlink_(httrackp* opt,
strcatbuff(tempo,adr);
strcatbuff(tempo,fil);
s = RUN_CALLBACK1(opt, query3, tempo);
- if (strnotempty(s)==0) // entrée
+ if (strnotempty(s)==0) // entrée
n=0;
else if (isdigit((unsigned char)*s))
sscanf(s,"%d",&n);
@@ -623,12 +623,12 @@ static int hts_acceptlink_(httrackp* opt,
}
}
io_flush;
- } else { // lien primaire: autoriser répertoire entier
+ } else { // lien primaire: autoriser répertoire entier
if (!force_mirror) {
if ((opt->seeker & 1)==0) { // interdiction de descendre
n=7;
} else {
- n=5; // autoriser miroir répertoires descendants (lien primaire)
+ n=5; // autoriser miroir répertoires descendants (lien primaire)
}
} else // forcer valeur (sub-wizard)
n=force_mirror;
@@ -652,22 +652,22 @@ static int hts_acceptlink_(httrackp* opt,
forbidden_url=1;
opt->wizard=2; // sauter tout le reste
break;
- case 0: // interdire les mêmes liens: adr/fil
+ case 0: // interdire les mêmes liens: adr/fil
forbidden_url=1;
- HT_INSERT_FILTERS0; // insérer en 0
+ HT_INSERT_FILTERS0; // insérer en 0
strcpybuff(_FILTERS[0],"-");
strcatbuff(_FILTERS[0],jump_identification(adr));
if (*fil!='/') strcatbuff(_FILTERS[0],"/");
strcatbuff(_FILTERS[0],fil);
break;
- case 1: // éliminer répertoire entier et sous rép: adr/path/ *
+ case 1: // éliminer répertoire entier et sous rép: adr/path/ *
forbidden_url=1;
{
size_t i = strlen(fil)-1;
while((fil[i]!='/') && (i>0)) i--;
if (fil[i]=='/') {
- HT_INSERT_FILTERS0; // insérer en 0
+ HT_INSERT_FILTERS0; // insérer en 0
strcpybuff(_FILTERS[0],"-");
strcatbuff(_FILTERS[0],jump_identification(adr));
if (*fil!='/') strcatbuff(_FILTERS[0],"/");
@@ -683,7 +683,7 @@ static int hts_acceptlink_(httrackp* opt,
case 2: // adresse adr*
forbidden_url=1;
- HT_INSERT_FILTERS0; // insérer en 0
+ HT_INSERT_FILTERS0; // insérer en 0
strcpybuff(_FILTERS[0],"-");
strcatbuff(_FILTERS[0],jump_identification(adr));
strcatbuff(_FILTERS[0],"*");
@@ -705,26 +705,26 @@ static int hts_acceptlink_(httrackp* opt,
//
case 4: // same link
// PAS BESOIN!!
- /*HT_INSERT_FILTERS0; // insérer en 0
+ /*HT_INSERT_FILTERS0; // insérer en 0
strcpybuff(_FILTERS[0],"+");
strcatbuff(_FILTERS[0],adr);
if (*fil!='/') strcatbuff(_FILTERS[0],"/");
strcatbuff(_FILTERS[0],fil);*/
- // étant donné le renversement wizard/primary filter (les primary autorisent up/down ET interdisent)
- // il faut éviter d'un lien isolé effectue un miroir total..
+ // étant donné le renversement wizard/primary filter (les primary autorisent up/down ET interdisent)
+ // il faut éviter d'un lien isolé effectue un miroir total..
- *set_prio_to = 0+1; // niveau de récursion=0 (pas de miroir)
+ *set_prio_to = 0+1; // niveau de récursion=0 (pas de miroir)
break;
- case 5: // autoriser répertoire entier et fils
+ case 5: // autoriser répertoire entier et fils
if ((opt->seeker & 2)==0) { // interdiction de monter
size_t i = strlen(fil)-1;
while((fil[i]!='/') && (i>0)) i--;
if (fil[i]=='/') {
- HT_INSERT_FILTERS0; // insérer en 0
+ HT_INSERT_FILTERS0; // insérer en 0
strcpybuff(_FILTERS[0],"+");
strcatbuff(_FILTERS[0],jump_identification(adr));
if (*fil!='/') strcatbuff(_FILTERS[0],"/");
@@ -732,7 +732,7 @@ static int hts_acceptlink_(httrackp* opt,
strcatbuff(_FILTERS[0],"*");
}
} else { // autoriser domaine alors!!
- HT_INSERT_FILTERS0; // insérer en 0 strcpybuff(filters[filptr],"+");
+ HT_INSERT_FILTERS0; // insérer en 0 strcpybuff(filters[filptr],"+");
strcpybuff(_FILTERS[0],"+");
strcatbuff(_FILTERS[0],jump_identification(adr));
strcatbuff(_FILTERS[0],"*");
@@ -740,18 +740,18 @@ static int hts_acceptlink_(httrackp* opt,
break;
case 6: // same domain
- HT_INSERT_FILTERS0; // insérer en 0 strcpybuff(filters[filptr],"+");
+ HT_INSERT_FILTERS0; // insérer en 0 strcpybuff(filters[filptr],"+");
strcpybuff(_FILTERS[0],"+");
strcatbuff(_FILTERS[0],jump_identification(adr));
strcatbuff(_FILTERS[0],"*");
break;
//
- case 7: // autoriser ce répertoire
+ case 7: // autoriser ce répertoire
{
size_t i = strlen(fil)-1;
while((fil[i]!='/') && (i>0)) i--;
if (fil[i]=='/') {
- HT_INSERT_FILTERS0; // insérer en 0
+ HT_INSERT_FILTERS0; // insérer en 0
strcpybuff(_FILTERS[0],"+");
strcatbuff(_FILTERS[0],jump_identification(adr));
if (*fil!='/') strcatbuff(_FILTERS[0],"/");
@@ -771,16 +771,16 @@ static int hts_acceptlink_(httrackp* opt,
// -------------------- PHASE 5 --------------------
- // lien non autorisé, peut-on juste le tester?
+ // lien non autorisé, peut-on juste le tester?
if (just_test_it) {
if (forbidden_url==1) {
- if (opt->travel&256) { // tester tout de même
+ if (opt->travel&256) { // tester tout de même
if (strfield(adr,"ftp://")==0
#if HTS_USEMMS
&& strfield(adr,"mms://")==0
#endif
) { // PAS ftp!
- forbidden_url=1; // oui oui toujours interdit (note: sert à rien car ==1 mais c pour comprendre)
+ forbidden_url=1; // oui oui toujours interdit (note: sert à rien car ==1 mais c pour comprendre)
*just_test_it=1; // mais on teste
hts_log_print(opt, LOG_DEBUG, "Testing link %s%s",adr,fil);
}
@@ -818,13 +818,13 @@ int hts_acceptmime(httrackp* opt,
jok = fa_strjoker(/*mime*/1, _FILTERS, *_FILTERS_PTR, mime, NULL, NULL, &jokDepth);
if (jok != 0) {
mdepth = _FILTERS[jokDepth];
- if (jok == 1) { // autorisé
- forbidden_url=0; // URL autorisée
+ if (jok == 1) { // autorisé
+ forbidden_url=0; // URL autorisée
hts_log_print(opt, LOG_DEBUG, "(wizard) explicit authorized (%s) link %s%s: mime '%s'",mdepth,adr,fil,mime);
} else if (jok == -1) { // forbidden
forbidden_url=1; // URL interdite
hts_log_print(opt, LOG_DEBUG, "(wizard) explicit forbidden (%s) link %s%s: mime '%s'",mdepth,adr,fil,mime);
- } // sinon on touche à rien
+ } // sinon on touche à rien
}
/* userdef test */
{
@@ -851,7 +851,7 @@ int hts_testlinksize(httrackp* opt,
LLint sz=size;
int size_flag=0;
- // former URL complète du lien actuel
+ // former URL complète du lien actuel
strcpybuff(l,jump_identification(adr));
if (*fil!='/') strcatbuff(l,"/");
strcatbuff(l,fil);
@@ -896,7 +896,7 @@ int hts_testlinksize(httrackp* opt,
if (jok==1) {
hts_log_print(opt, LOG_DEBUG, "File confirmed (size test): %s%s ("LLintP")",adr,fil,(LLint)(size));
} else if (jok==-1) {
- if (size_flag) { /* interdit à cause de la taille */
+ if (size_flag) { /* interdit à cause de la taille */
hts_log_print(opt, LOG_DEBUG, "File cancelled due to its size: %s%s ("LLintP", limit: "LLintP")",adr,fil,(LLint)(size),(LLint)(sz));
} else {
jok=1;
diff --git a/src/httrack.c b/src/httrack.c
index 61782b3..eaea638 100644
--- a/src/httrack.c
+++ b/src/httrack.c
@@ -260,7 +260,7 @@ static int __cdecl htsshow_postprocesshtml(t_hts_callbackarg *carg, httrackp *op
static int __cdecl htsshow_checkhtml(t_hts_callbackarg *carg, httrackp *opt, char* html,int len,const char* url_address,const char* url_file) {
return 1;
}
-static int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back,int back_max,int back_index,int lien_n,int lien_tot,int stat_time, hts_stat_struct* stats) { // appelé à chaque boucle de HTTrack
+static int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_back* back,int back_max,int back_index,int lien_n,int lien_tot,int stat_time, hts_stat_struct* stats) { // appelé à chaque boucle de HTTrack
static TStamp prev_mytime=0; /* ok */
static t_InpInfo SInfo; /* ok */
//
@@ -387,7 +387,7 @@ static int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_bac
// parcourir registre des liens
- if (back_index>=0) { // seulement si index passé
+ if (back_index>=0) { // seulement si index passé
int j,k;
int index=0;
int ok=0; // idem
@@ -408,7 +408,7 @@ static int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_bac
}
}
for(k=0;k<2;k++) { // 0: lien en cours 1: autres liens
- for(j=0;(j<3) && (index<NStatsBuffer);j++) { // passe de priorité
+ for(j=0;(j<3) && (index<NStatsBuffer);j++) { // passe de priorité
int _i;
for(_i=0+k;(_i< max(back_max*k,1) ) && (index<NStatsBuffer);_i++) { // no lien
int i=(back_index+_i)%back_max; // commencer par le "premier" (l'actuel)
@@ -436,7 +436,7 @@ static int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_bac
}
break;
default:
- if (back[i].status==STATUS_READY) { // prêt
+ if (back[i].status==STATUS_READY) { // prêt
if ((back[i].r.statuscode==200)) {
strcpybuff(StatsBuffer[index].state,"ready"); ok=1;
}
@@ -486,11 +486,11 @@ static int __cdecl htsshow_loop(t_hts_callbackarg *carg, httrackp *opt, lien_bac
strcatbuff(StatsBuffer[index].name,s+l-MAX_LEN_INPROGRESS/2+2);
}
- if (back[i].r.totalsize>=0) { // taille prédéfinie
+ if (back[i].r.totalsize>=0) { // taille prédéfinie
StatsBuffer[index].sizetot=back[i].r.totalsize;
StatsBuffer[index].size=back[i].r.size;
- } else { // pas de taille prédéfinie
- if (back[i].status==STATUS_READY) { // prêt
+ } else { // pas de taille prédéfinie
+ if (back[i].status==STATUS_READY) { // prêt
StatsBuffer[index].sizetot=back[i].r.size;
StatsBuffer[index].size=back[i].r.size;
} else {
@@ -660,7 +660,7 @@ static int linput(FILE* fp,char* s,int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 9: case 12: break; // sauter ces caractères
+ case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -670,7 +670,7 @@ static int linput(FILE* fp,char* s,int max) {
}
-// routines de détournement de SIGHUP & co (Unix)
+// routines de détournement de SIGHUP & co (Unix)
//
static void sig_ignore( int code ) { // ignorer signal
}
@@ -728,9 +728,9 @@ static void sig_ask( int code ) { // demander
if ( (s[0]=='y') || (s[0]=='Y') || (s[0]=='o') || (s[0]=='O') || (s[0]=='q') || (s[0]=='Q'))
exit(0); // quitter
else if ( (s[0]=='b') || (s[0]=='B') || (s[0]=='a') || (s[0]=='A') )
- sig_doback(0); // arrière plan
+ sig_doback(0); // arrière plan
else if ( (s[0]=='l') || (s[0]=='L') )
- sig_doback(1); // arrière plan
+ sig_doback(1); // arrière plan
else if ( (s[0]=='i') || (s[0]=='I') ) {
if (global_opt != NULL) {
// ask for stop
@@ -820,4 +820,4 @@ static void signal_handlers(void) {
#endif
}
-// fin routines de détournement de SIGHUP & co
+// fin routines de détournement de SIGHUP & co
diff --git a/src/proxy/proxystrings.h b/src/proxy/proxystrings.h
index 84c4693..23456a7 100755
--- a/src/proxy/proxystrings.h
+++ b/src/proxy/proxystrings.h
@@ -58,7 +58,7 @@ static void unescapehttp(const char* s, String* tempo) {
i++;
hc = (char) ehex(s+i);
StringAddchar(*tempo, (char) hc);
- i++; // sauter 2 caractères finalement
+ i++; // sauter 2 caractères finalement
}
else if (s[i]=='+') {
StringAddchar(*tempo, ' ');
diff --git a/src/proxy/proxytrack.c b/src/proxy/proxytrack.c
index 82bf7b1..02c18d0 100644
--- a/src/proxy/proxytrack.c
+++ b/src/proxy/proxytrack.c
@@ -131,7 +131,7 @@ Remark: If no cache newer than the added one is found, all entries can be added
/* Network base */
#include "htsbasenet.h"
-/* définitions globales */
+/* définitions globales */
#include "htsglobal.h"
/* htsweb */
@@ -186,7 +186,7 @@ static int linputsoc(T_SOC soc, char* s, int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 9: case 12: break; // sauter ces caractères
+ case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -521,7 +521,7 @@ static time_t get_time_rfc822(const char* s) {
str[i] = s[i];
}
str[i] = 0;
- /* éliminer :,- */
+ /* éliminer :,- */
while( (a=strchr(str,'-')) ) *a=' ';
while( (a=strchr(str,':')) ) *a=' ';
while( (a=strchr(str,',')) ) *a=' ';
@@ -530,7 +530,7 @@ static time_t get_time_rfc822(const char* s) {
while(*a) {
char *first,*last;
char tok[256];
- /* découper mot */
+ /* découper mot */
while(*a==' ') a++; /* sauter espaces */
first=a;
while((*a) && (*a!=' ')) a++;
diff --git a/src/proxy/proxytrack.h b/src/proxy/proxytrack.h
index 5254924..02521f0 100644
--- a/src/proxy/proxytrack.h
+++ b/src/proxy/proxytrack.h
@@ -142,7 +142,7 @@ static int linput(FILE* fp,char* s,int max) {
switch(c) {
case 13: break; // sauter CR
case 10: c=-1; break;
- case 0: case 9: case 12: break; // sauter ces caractères
+ case 0: case 9: case 12: break; // sauter ces caractères
default: s[j++]=(char) c; break;
}
}
@@ -229,7 +229,7 @@ static int linput_trim(FILE* fp,char* s,int max) {
// sauter espaces et tabs en fin
while( (rlen>0) && is_realspace(ls[max(rlen-1,0)]) )
ls[--rlen]='\0';
- // sauter espaces en début
+ // sauter espaces en début
a=ls;
while((rlen>0) && ((*a==' ') || (*a=='\t'))) {
a++;
@@ -284,7 +284,7 @@ static struct tm* convert_time_rfc822(struct tm *result,const char* s) {
return NULL;
strcpy(str,s);
set_lowcase(str);
- /* éliminer :,- */
+ /* éliminer :,- */
while( (a=strchr(str,'-')) ) *a=' ';
while( (a=strchr(str,':')) ) *a=' ';
while( (a=strchr(str,',')) ) *a=' ';
@@ -293,7 +293,7 @@ static struct tm* convert_time_rfc822(struct tm *result,const char* s) {
while(*a) {
char *first, *last;
char tok[256];
- /* découper mot */
+ /* découper mot */
while(*a==' ') a++; /* sauter espaces */
first=a;
while((*a) && (*a!=' ')) a++;
diff --git a/src/proxy/store.c b/src/proxy/store.c
index d63c1f2..810fb29 100644
--- a/src/proxy/store.c
+++ b/src/proxy/store.c
@@ -1079,7 +1079,7 @@ static PT_Element PT_ReadCache__New_u(PT_Index index_, const char* url, int flag
if (r->msg[0] == '\0') {
strcpy(r->msg,"Cache Read Error : Unexpected error");
}
- } else { // lire en mémoire
+ } else { // lire en mémoire
if (!dataincache) {
/* Read in memory from cache */
@@ -1128,7 +1128,7 @@ static PT_Element PT_ReadCache__New_u(PT_Index index_, const char* url, int flag
}
}
}
- } // si save==null, ne rien charger (juste en tête)
+ } // si save==null, ne rien charger (juste en tête)
} else {
r->statuscode=STATUSCODE_INVALID;
strcpy(r->msg,"Cache Read Error : Read Header Data");
@@ -1403,7 +1403,7 @@ static int PT_LoadCache__Old(PT_Index index_, const char *filename) {
free(use);
use=NULL;
}
- } else { // non supporté
+ } else { // non supporté
// fspc(opt->errlog,"error"); fprintf(opt->errlog,"Cache: %s not supported, ignoring current cache"LF,firstline);
fclose(cache->dat);
cache->dat=NULL;
@@ -1597,13 +1597,13 @@ static PT_Element PT_ReadCache__Old_u(PT_Index index_, const char* url, int flag
}
//
cache_rstr(cache->dat,check);
- if (strcmp(check,"HTS")==0) { /* intégrité OK */
+ if (strcmp(check,"HTS")==0) { /* intégrité OK */
ok=1;
}
- cache_rLLint(cache->dat, &size_read); /* lire size pour être sûr de la taille déclarée (réécrire) */
+ cache_rLLint(cache->dat, &size_read); /* lire size pour être sûr de la taille déclarée (réécrire) */
if (size_read > 0) { /* si inscrite ici */
r->size = size_read;
- } else { /* pas de données directement dans le cache, fichier présent? */
+ } else { /* pas de données directement dans le cache, fichier présent? */
r->size = 0;
}
}
@@ -1852,11 +1852,11 @@ static time_t getArcTimestamp(const char * const line) {
struct tm tm;
memset(&tm, 0, sizeof(tm));
tm.tm_year = getDigit4(pos + 0) - 1900; /* current year minus 1900 */
- tm.tm_mon = getDigit2(pos + 4) - 1; /* 0 – 11 */
- tm.tm_mday = getDigit2(pos + 6); /* 1 – 31 */
- tm.tm_hour = getDigit2(pos + 8); /* 0 – 23 */
- tm.tm_min = getDigit2(pos + 10); /* 0 – 59 */
- tm.tm_sec = getDigit2(pos + 12); /* 0 – 59 */
+ tm.tm_mon = getDigit2(pos + 4) - 1; /* 0 – 11 */
+ tm.tm_mday = getDigit2(pos + 6); /* 1 – 31 */
+ tm.tm_hour = getDigit2(pos + 8); /* 0 – 23 */
+ tm.tm_min = getDigit2(pos + 10); /* 0 – 59 */
+ tm.tm_sec = getDigit2(pos + 12); /* 0 – 59 */
tm.tm_isdst = 0;
return getGMT(&tm);
}
diff --git a/src/proxy/store.h b/src/proxy/store.h
index 64c0194..b8fd4db 100644
--- a/src/proxy/store.h
+++ b/src/proxy/store.h
@@ -53,16 +53,16 @@ typedef struct _PT_Element {
int indexId; // index identifier, if suitable (!= -1)
//
int statuscode; // status-code, -1=erreur, 200=OK,201=..etc (cf RFC1945)
- char* adr; // adresse du bloc de mémoire, NULL=vide
- char* headers; // adresse des en têtes si présents (RFC822 format)
+ char* adr; // adresse du bloc de mémoire, NULL=vide
+ char* headers; // adresse des en têtes si présents (RFC822 format)
size_t size; // taille fichier
char msg[1024]; // error message ("\0"=undefined)
char contenttype[64]; // content-type ("text/html" par exemple)
char charset[64]; // charset ("iso-8859-1" par exemple)
- char* location; // on copie dedans éventuellement la véritable 'location'
+ char* location; // on copie dedans éventuellement la véritable 'location'
char lastmodified[64]; // Last-Modified
char etag[64]; // Etag
- char cdispo[256]; // Content-Disposition coupé
+ char cdispo[256]; // Content-Disposition coupé
} _PT_Element;
typedef struct _PT_Element *PT_Element;