Change target prefix mapping argument order

Put the chost-specification at the end and make it optional. This makes
more sense than having to give an arbitrary useless name in case you
weren't using virtual hosts in the first place.

While at it, clear up the wording in the manpage.

Signed-off-by: Laslo Hunhold <dev@frign.de>
This commit is contained in:
Laslo Hunhold 2019-02-24 00:40:46 +01:00
parent 48ddb8fefb
commit 065394cb64
No known key found for this signature in database
GPG key ID: 69576BD24CFCB980
3 changed files with 16 additions and 13 deletions

6
http.c
View file

@ -394,8 +394,10 @@ http_send_response(int fd, struct request *r)
for (i = 0; i < s.map_len; i++) {
len = strlen(s.map[i].from);
if (!strncmp(realtarget, s.map[i].from, len)) {
/* match canonical host if vhosts are enabled */
if (s.vhost && strcmp(s.map[i].chost, vhostmatch)) {
/* match canonical host if vhosts are enabled and
* the mapping specifies a canonical host */
if (s.vhost && s.map[i].chost &&
strcmp(s.map[i].chost, vhostmatch)) {
continue;
}

10
main.c
View file

@ -155,10 +155,12 @@ main(int argc, char *argv[])
sizeof(struct map)))) {
die("reallocarray:");
}
if (!(s.map[s.map_len - 1].chost = strtok(tok, " ")) ||
!(s.map[s.map_len - 1].from = strtok(NULL, " ")) ||
!(s.map[s.map_len - 1].to = strtok(NULL, " ")) ||
strtok(NULL, "")) {
if (!(s.map[s.map_len - 1].from = strtok(tok, " ")) ||
!(s.map[s.map_len - 1].to = strtok(NULL, " "))) {
usage();
}
s.map[s.map_len - 1].chost = strtok(NULL, " ");
if (strtok(NULL, "")) {
usage();
}
break;

13
quark.1
View file

@ -1,4 +1,4 @@
.Dd 2019-02-18
.Dd 2019-02-24
.Dt QUARK 1
.Os suckless.org
.Sh NAME
@ -57,16 +57,15 @@ Enable directory listing.
Add the target prefix mapping rule specified by
.Ar map ,
which has the form
.Qq Pa chost from to ,
.Qq Pa from to [chost] ,
where each element is separated with whitespace.
.Pp
The prefix
.Pa from
of all matching targets, especially only of those requests for the canonical
virtual host
.Pa chost
when virtual hosts are specified, is then replaced with
.Pa to .
of all matching targets is replaced with
.Pa to ,
optionally limited to the canonical virtual host
.Pa chost .
If no virtual hosts are given,
.Pa chost
is ignored.