Most command line options are common to both client (rq2pc) and server (rq2ps). A summary is included in the manual pages supplied, but here's a reference:
Option | rq2pc ? | rq2ps ? | Description |
-log-all-packets |
Y | Y | Log all packets. |
-help | Y | Y | Show brief help. |
-no-mlock | Y | Y | Don't attempt to |
lock pages in memory. | |||
-no-rt | Y | Y | Don't attempt to use POSIX |
real time scheduling. | |||
-use-mlock | Y | Y | Attempt to lock pages in memory. |
-use-rt | Y | Y | Attempt to use POSIX RT scheduling. |
-version | Y | Y | Report version number and exit. |
-do-fork | N | Y | fork() on each client connecton. |
-from-inetd | N | Y | Run from inetd. Implies -no-fork. |
-no-fork | N | Y | Don't fork() on each client connecton. |
-test-only | N | Y | Just print out the config file and exit. |
-f filename | N | Y | Read configuration from this file. |
-p portname | N | Y | Listen on this port. |
By default, the proxy will try to lock pages in memory and set real-time scheduling on startup: this reduces proxy latency, but ties up roughly 1Mbyte/program of real memory and may interrupt other time-critical tasks, and is only available to proxies running as super-user on many operating systems (eg. Linux).
By default the server runs just once: it accepts a single client connection, and then dies. If you prefer, you can use -do-fork, which causes the server to fork off another process for each client connecting: this allows for multiple clients per server, but uses more memory and makes debugging difficult.
Alternatively, you can run the server from inetd by putting something like the following in your /etc/inetd.conf:
17003 stream tcp nowait root /usr/sbin/tcpd /homes/rrw/q2/server -f /homes/rrw/q2/example.conf --from-inetd