diff options
author | Xavier Roche <xroche@users.noreply.github.com> | 2013-05-14 19:20:14 +0000 |
---|---|---|
committer | Xavier Roche <xroche@users.noreply.github.com> | 2013-05-14 19:20:14 +0000 |
commit | 0573b166b2aa2ee40be1a328636cb539d96aeeac (patch) | |
tree | 60225c1335ff26c5e4f29bc7043548daa44c7d73 /src/htslib.c | |
parent | eaef7eb1f7ae092d73eeffa245ab418d70748fdf (diff) |
Merge sources from windows-1252 to utf-8
Diffstat (limited to 'src/htslib.c')
-rw-r--r-- | src/htslib.c | 402 |
1 files changed, 201 insertions, 201 deletions
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) { |