Introduction
Introduction Statistics Contact Development Disclaimer Help
Update the documentation to reflect the new flag-centric usage - quark - quark …
git clone git://git.suckless.org/quark
Log
Files
Refs
LICENSE
---
commit a20136fa18dba7fd44812be235010a4517aef783
parent 444b8f5b32d0263f1a20e18eb3044bfeed334361
Author: Laslo Hunhold <[email protected]>
Date: Mon, 5 Mar 2018 09:51:29 +0100
Update the documentation to reflect the new flag-centric usage
Diffstat:
M http.c | 2 +-
M main.c | 8 ++++----
M quark.1 | 125 ++++++++++++++++++++++-------…
M util.h | 2 +-
4 files changed, 96 insertions(+), 41 deletions(-)
---
diff --git a/http.c b/http.c
@@ -336,7 +336,7 @@ http_send_response(int fd, struct request *r)
return http_send_status(fd, (errno == …
S_FORBIDDEN : …
}
- vhostmatch = s.vhost[i].name;
+ vhostmatch = s.vhost[i].chost;
break;
}
}
diff --git a/main.c b/main.c
@@ -94,10 +94,10 @@ static void
usage(void)
{
const char *opts = "[-u user] [-g group] [-n num] [-d dir] [-l] "
- "[-i index] [-v vhost] ... [-m map] ...";
+ "[-i file] [-v vhost] ... [-m map] ...";
- die("usage: %s -h host -p port %s\n"
- " %s -U socket [-p port] %s", argv0,
+ die("usage: %s -h host -p port %s\n"
+ " %s -U file [-p port] %s", argv0,
opts, argv0, opts);
}
@@ -170,7 +170,7 @@ main(int argc, char *argv[])
sizeof(struct vhost)))) {
die("reallocarray:");
}
- if (!(s.vhost[s.vhost_len - 1].name = strtok(tok, " ")) ||
+ if (!(s.vhost[s.vhost_len - 1].chost = strtok(tok, " ")) ||
!(s.vhost[s.vhost_len - 1].regex = strtok(NULL, " ")) ||
!(s.vhost[s.vhost_len - 1].dir = strtok(NULL, " ")) ||
!(s.vhost[s.vhost_len - 1].prefix = strtok(NULL, " ")) ||
diff --git a/quark.1 b/quark.1
@@ -1,65 +1,120 @@
-.Dd 2018-02-05
+.Dd 2018-03-05
.Dt QUARK 1
+.Os suckless.org
.Sh NAME
.Nm quark
-.Nd simple web server
+.Nd simple static web server
.Sh SYNOPSIS
.Nm
-.Op Fl l | L
-.Op Fl v | V
-.Oo
-.Oo
-.Op Fl h Ar host
-.Op Fl p Ar port
-.Oc
-|
-.Op Fl U Ar sockfile
-.Oc
+.Fl h Ar host
+.Fl p Ar port
+.Op Fl u Ar user
+.Op Fl g Ar group
+.Op Fl n Ar num
.Op Fl d Ar dir
+.Op Fl l
+.Op Fl i Ar file
+.Oo Fl v Ar vhost Oc ...
+.Oo Fl m Ar map Oc ...
+.Nm
+.Fl U Ar file
+.Op Fl p Ar port
.Op Fl u Ar user
.Op Fl g Ar group
+.Op Fl n Ar num
+.Op Fl d Ar dir
+.Op Fl l
+.Op Fl i Ar file
+.Oo Fl v Ar vhost Oc ...
+.Oo Fl m Ar map Oc ...
.Sh DESCRIPTION
.Nm
-is a simple HTTP GET only web server that can be multiplexed using
-UNIX-domain sockets.
+is a simple HTTP GET/HEAD-only web server for static content.
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl d Ar dir
Serve
.Ar dir
after chrooting into it.
-.It Fl l
-Disable directory listing.
-.It Fl L
-Enable directory listing.
+The default is ".".
.It Fl g Ar group
-Set group ID to the ID of
-.Ar group
-when dropping privileges.
+Set group ID when dropping privileges, and in socket mode the group of the
+socket file, to the ID of
+.Ar group .
+The default is "nogroup".
.It Fl h Ar host
Use
.Ar host
as the server hostname.
+.It Fl i Ar file
+Set
+.Ar file
+as the directory index.
+The default is "index.html".
+.It Fl l
+Enable directory listing.
+.It Fl m Ar map
+Add the target prefix mapping rule specified by
+.Ar map ,
+which has the form
+.Qq Pa chost from to ,
+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 .
+If no virtual hosts are given,
+.Pa chost
+is ignored.
+.It Fl n Ar num
+Set the maximum number of threads to
+.Ar num .
+The default is 512.
.It Fl p Ar port
-Listen on port
+In host mode, listen on port
.Ar port
for incoming connections.
-.It Fl u Ar user
-Set user ID to the ID of
-.Ar user
-when dropping privileges.
-.It Fl U Ar sockfile
-Create the UNIX-domain socket file
-.Ar sockfile ,
+In socket mode, use
+.Ar port
+for constructing proper virtual host
+redirects on non-standard ports.
+.It Fl U Ar file
+Create the UNIX-domain socket
+.Ar file ,
listen on it for incoming connections and remove it on exit.
-Its user and group owners are equal to the user and group IDs used for dropping
-privileges to.
-.It Fl v
-Disable virtual hosts.
-.It Fl V
-Enable virtual hosts.
+.It Fl u Ar user
+Set user ID when dropping privileges,
+and in socket mode the user of the socket file,
+to the ID of
+.Ar user .
+The default is "nobody".
+.It Fl v Ar vhost
+Add the virtual host specified by
+.Ar vhost ,
+which has the form
+.Qq Pa chost regex dir prefix ,
+where each element is separated with whitespace.
+.Pp
+A request matching the virtual host regular expression
+.Pa regex
+(see
+.Xr regex 3)
+is redirected to the canonical host
+.Pa chost ,
+if they differ, using the directory
+.Pa dir
+as the root directory, optionally prefixing the target with
+.Pa prefix .
+If any virtual hosts are specified, all requests on non-matching
+hosts are discarded.
.El
.Sh CUSTOMIZATION
.Nm
can be customized by creating a custom config.h from config.def.h and
(re)compiling the source code. This keeps it fast, secure and simple.
+.Sh AUTHORS
+.An Laslo Hunhold Aq Mt [email protected]
diff --git a/util.h b/util.h
@@ -10,7 +10,7 @@
/* main server struct */
struct vhost {
- char *name;
+ char *chost;
char *regex;
char *dir;
char *prefix;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.