summaryrefslogtreecommitdiff
path: root/manpages/taler-exchange-httpd.1.rst
blob: fdbe6d0e377f0e5128da755b59f41238477099ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
taler-exchange-httpd(1)
#######################

.. only:: html

   Name
   ====

   **taler-exchange-httpd** - run Taler exchange (with RESTful API)

Synopsis
========

**taler-exchange-httpd**
[**-C** | **––connection-close**]
[**-c** *FILENAME* | **––config=**\ ‌\ *FILENAME*]
[**-f** *FILENAME* | **––file-input=**\ ‌\ *FILENAME*]
[**-h** | **––help**]
[**-L** *LOGLEVEL* | **––loglevel=**\ ‌\ *LOGLEVEL*]
[**-t** *SECONDS* | **––timeout=**\ ‌\ *SECONDS*]
[**-v** | **––version**]

Description
===========

**taler-exchange-httpd** is a command line tool to run the Taler
exchange (HTTP server). The required configuration, keys and database
must exist before running this command.

Its options are as follows:

**-a** \| **––allow-timetravel**
   Allow clients to request /keys for arbitrary timestamps.
   This should only be enabled for testing and development,
   as clients could abuse this in denial of service attacks,
   as it makes the /keys response generation much more expensive.

**-C** \| **––connection-close**
   Force each HTTP connection to be closed after each request (useful in
   combination with **-f** to avoid having to wait for nc to time out).

**-c** *FILENAME* \| **––config=**\ ‌\ *FILENAME*
   Use the configuration and other resources for the merchant to operate
   from FILENAME.

**-h** \| **––help**
   Print short help on options.

**-v** \| **––version**
   Print version information.

**-f** *FILENAME* \| **––file-input=**\ ‌\ *FILENAME*
   This option is only available if the exchange was compiled with the
   configure option ––enable-developer-mode. It is used for generating
   test cases against the exchange using AFL. When this option is
   present, the HTTP server will

   1. terminate after the first client’s HTTP connection is completed,
      and
   2. automatically start such a client using a helper process based on
      the nc(1) or ncat(1) binary using FILENAME as the standard input
      to the helper process.

   As a result, the process will effectively run with *FILENAME* as the
   input from an HTTP client and then immediately exit. This is useful
   to test taler-exchange-httpd against many different possible inputs
   in a controlled way.

**-t** *SECONDS* \| **––timeout=**\ ‌\ *SECONDS*
   Specifies the number of SECONDS after which the HTTPD should close
   (idle) HTTP connections.

**-L** *LOGLEVEL* \| **––loglevel=**\ ‌\ *LOGLEVEL*
   Specifies the log level to use. Accepted values are: DEBUG, INFO,
   WARNING, ERROR.

SIGNALS
=======

**taler-exchange-httpd** responds to the following signals:

``SIGUSR1``
   Sending a SIGUSR1 to the process will cause it to reload denomination
   and signing keys.

``SIGTERM``
   Sending a SIGTERM to the process will cause it to shutdown cleanly.

``SIGHUP``
   Sending a SIGHUP to the process will cause it to re-execute the
   taler-exchange-httpd binary in the PATH, passing it the existing
   listen socket. Then the old server process will automatically exit
   after it is done handling existing client connections; the new server
   process will accept and handle new client connections.

See Also
========

taler-exchange-dbinit(1), taler-exchange-keyup(1),
taler-exchange-reservemod(1), taler.conf(5).

Bugs
====

Report bugs by using https://bugs.taler.net or by sending electronic
mail to <taler@gnu.org>.