summaryrefslogtreecommitdiff
path: root/src/htswizard.c
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2012-03-19 13:04:25 +0000
committerXavier Roche <xroche@users.noreply.github.com>2012-03-19 13:04:25 +0000
commit388b7dee2a2d558c0ee576a9213b5ea422a56c77 (patch)
tree4c0f66930ae08593dd39134395b42bcec7a15d61 /src/htswizard.c
parent0183f4dd84d8cc44d617fb48436881e79e2bf0f2 (diff)
httrack 3.45.1
Diffstat (limited to 'src/htswizard.c')
-rw-r--r--src/htswizard.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/htswizard.c b/src/htswizard.c
index 403ce34..382fbb3 100644
--- a/src/htswizard.c
+++ b/src/htswizard.c
@@ -393,15 +393,20 @@ static int hts_acceptlink_(httrackp* opt,
switch((opt->travel & 255)) {
case 0:
if (!opt->wizard) // mode non wizard
- forbidden_url=1; break; // interdicton de sortir au dela de l'adresse
+ forbidden_url=1;
+ break; // interdicton de sortir au dela de l'adresse
case 1: { // sortie sur le même dom.xxx
size_t i = strlen(adr)-1;
size_t j = strlen(urladr)-1;
- while( (i>0) && (adr[i]!='.')) i--;
- while( (j>0) && (urladr[j]!='.')) j--;
- i--; j--;
- while( (i>0) && (adr[i]!='.')) i--;
- while( (j>0) && (urladr[j]!='.')) j--;
+ if ((i>0) && (j>0)) {
+ while( (i>0) && (adr[i]!='.')) i--;
+ while( (j>0) && (urladr[j]!='.')) j--;
+ if ((i>0) && (j>0)) {
+ i--; j--;
+ while( (i>0) && (adr[i]!='.')) i--;
+ while( (j>0) && (urladr[j]!='.')) j--;
+ }
+ }
if ((i>0) && (j>0)) {
if (!strfield2(adr+i,urladr+j)) { // !=
if (!opt->wizard) { // mode non wizard
@@ -425,7 +430,7 @@ static int hts_acceptlink_(httrackp* opt,
} else
forbidden_url=1;
- }
+ }
break;
case 2: { // sortie sur le même .xxx
size_t i = strlen(adr)-1;
@@ -452,7 +457,7 @@ static int hts_acceptlink_(httrackp* opt,
}
}
} else forbidden_url=1;
- }
+ }
break;
case 7: // everywhere!!
if (opt->wizard) { // mode wizard