Recognize the eof packet also in the udp receiver.
[paraslash.git] / ggo / server.m4
1 include(header.m4)
2 define(CURRENT_PROGRAM,para_server)
3 define(DEFAULT_CONFIG_FILE,~/.paraslash/server.conf)
4
5 <qu>
6 #########################
7 section "General options"
8 #########################
9 </qu>
10
11 include(loglevel.m4)
12 include(color.m4)
13 include(daemon.m4)
14 include(user.m4)
15 include(group.m4)
16
17 <qu>
18 option "port" p
19 #~~~~~~~~~~~~~~
20 "listening port"
21 int typestr="portnumber"
22 default="2990"
23 optional
24 details="
25         para_server listens on this tcp port for incoming connections
26         from clients such as para_client. If the default port is
27         changed, the corresponding option of para_client must be used
28         to connect to para_server.
29 "
30
31 #############################
32 section "Configuration files"
33 #############################
34 </qu>
35
36 include(logfile.m4)
37 include(config_file.m4)
38
39 <qu>
40 option "user_list" -
41 #~~~~~~~~~~~~~~~~~~~
42 "(default='~/.paraslash/server.users')"
43
44 string typestr="filename"
45 optional
46
47
48 ##################################
49 section "virtual streaming system"
50 ##################################
51
52
53 option "autoplay" a
54 #~~~~~~~~~~~~~~~~~~
55 "start playing on startup"
56 flag off
57
58 option "autoplay_delay" -
59 #~~~~~~~~~~~~~~~~~~~~~~~~
60 "time to wait before streaming"
61 int typestr="ms"
62 default="0"
63 optional
64 dependon="autoplay"
65 details="
66         If para_server is started with the autoplay option, this option
67         may be used to set up a delay before para_server streams its
68         first audio file. This is useful for example if para_server
69         and para_audiod are started during system startup. The delay
70         time should be choosen large enough so that para_audiod is
71         already up when para_server starts to stream. Of course, this
72         option depends on the autoplay option.
73 "
74 option "announce_time" A
75 #~~~~~~~~~~~~~~~~~~~~~~~
76 "grace time for clients"
77
78 int typestr="ms"
79 default="300"
80 optional
81 details="
82         Clients such as para_audiod connect to para_server and execute
83         the stat command to find out whether an audio stream is
84         currently available. This sets the delay betweeen announcing
85         the stream via the output of the stat command and sending
86         the first chunk of data.
87 "
88
89 #############################
90 section "audio file selector"
91 #############################
92
93 option "afs_database_dir" D
94 #~~~~~~~~~~~~~~~~~~~~~~~~~~
95 "location of the database"
96 string typestr="path"
97 optional
98 details="
99         Where para_server should look for the osl database of the audio
100         file selector. The default is '~/.paraslash/afs_database'.
101 "
102
103 option "afs_socket" s
104 #~~~~~~~~~~~~~~~~~~~~
105 "Command socket for afs"
106 string typestr="path"
107 default="/var/paraslash/afs_command_socket"
108 optional
109 details="
110         For each server command that is handled by the audio file
111         selector, the child process of para_server connects to the
112         audio file selector via a local socket. This option specifies
113         the location of that socket in the file system.
114 "
115 option "afs_initial_mode" i
116 #~~~~~~~~~~~~~~~~~~~~~~~~~~
117
118 "Mood or playlist to load on startup."
119 string typestr="<specifier>/<name>"
120 optional
121
122 details="
123         The argument of this option must be prefixed with either 'p/'
124         or 'm/' to indicate whether a playlist or a mood should be
125         loaded. Example:
126                 --afs_initial_mode p/foo
127         loads the playlist named 'foo'.
128 "
129
130 #####################
131 section "http sender"
132 #####################
133
134
135 option "http_port" -
136 #~~~~~~~~~~~~~~~~~~~
137 "tcp port for http streaming"
138 int typestr="portnumber"
139 default="8000"
140 optional
141 details="
142         The http sender of para_server listens on this port for
143         incoming connections. Clients are expected to send the usual
144         http request message such as 'GET / HTTP/'.
145 "
146
147 option "http_default_deny" -
148 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
149 "make the http ACL a whitelist"
150 flag off
151 details="
152         The default is to use blacklists instead, i.e. connections
153         to the http sender are allowed unless the connecting host
154         matches a pattern given by a http_access option. This allows
155         to use access control the other way round: Connections are
156         denied from hosts which are not explicitly allowed by one or
157         more http_access options.
158 "
159
160 option "http_access" -
161 #~~~~~~~~~~~~~~~~~~~~~
162 "add an entry to the http ACL"
163 string typestr="a.b.c.d/n"
164 optional
165 multiple
166 details="
167         Add given host/network to access control list (whitelist if
168         http_default_deny was given, blacklist otherwise) before
169         opening the tcp port. This option can be given multiple
170         times. Example: '192.168.0.0/24' whitelists/blacklists the
171         256 hosts 192.168.0.x
172 "
173
174 option "http_no_autostart" -
175 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
176 "do not open tcp port on startup"
177 flag off
178 details="
179         If this option is given, the http sender does not listen on
180         its tcp port. It may be instructed to open this port at a
181         later time by using the sender command.
182 "
183
184 option "http_max_clients" -
185 #~~~~~~~~~~~~~~~~~~~~~~~~~~
186 "maximal number of connections"
187 int typestr="number"
188 default="-1"
189 optional
190 details="
191         The http sender will refuse connections if already that number
192         of clients are currently connected. A non-positive value
193         (the default) allows an unlimited number of simultaneous
194         connections.
195 "
196
197 #####################
198 section "dccp sender"
199 #####################
200
201
202 option "dccp_port" -
203 #~~~~~~~~~~~~~~~~~~~
204 "port for dccp streaming"
205 int typestr="portnumber"
206 default="8000"
207 optional
208 details="
209         See http_port for details.
210 "
211
212 option "dccp_default_deny" -
213 #~~~~~~~~~~~~~~~~~~~~~~~~~~~
214 "make the dccp ACL a whitelist"
215 flag off
216 details="
217         See http_default_deny for details.
218 "
219
220 option "dccp_access" -
221 #~~~~~~~~~~~~~~~~~~~~~
222 "add an entry to the dccp ACL"
223 string typestr="a.b.c.d/n"
224 optional
225 multiple
226 details="
227         See http_access for details.
228 "
229
230 option "dccp_max_clients" -
231 #~~~~~~~~~~~~~~~~~~~~~~~~~~
232 "maximal number of connections"
233 int typestr="number"
234 default="-1"
235 optional
236 details="
237         See http_max_clients for details.
238 "
239
240 ####################
241 section "udp sender"
242 ####################
243
244 option "udp_target" -
245 #~~~~~~~~~~~~~~~~~~~~
246 "add udp target with optional port"
247 string typestr="host[:port]"
248 optional
249 multiple
250 details="
251         Add given host/port to the list of targets. The 'host' argument
252         can be either an IPv4/v6 address or hostname (RFC 3986 syntax).
253         The 'port' argument is an optional port number. If the 'port'
254         part is absent, the 'udp_default_port' value is used.
255
256         The following examples are possible targets:
257         '10.10.1.2:8000' (host:port); '10.10.1.2' (with default port);
258         '224.0.1.38:1500' (IPv4 multicast); 'localhost:8001' (hostname
259         with port); '[::1]:8001' (IPv6 localhost); '[badc0de::1]' (IPv6
260         host with default port); '[FF00::beef]:1500' (IPv6 multicast).
261
262         This option can be given multiple times, for multiple targets.
263 "
264
265 option "udp_no_autostart" -
266 #~~~~~~~~~~~~~~~~~~~~~~~~~~
267 "do not start sending"
268 flag off
269 details="
270         If this option is given, udp streaming may be activated at
271         a later time by using the sender command.
272 "
273
274 option "udp_default_port" -
275 #~~~~~~~~~~~~~~~~~~~~~~~~~~
276 "udp port to send to"
277 int typestr="port"
278 default="8000"
279 optional
280
281 option "udp_mcast_iface" -
282 #~~~~~~~~~~~~~~~~~~~~~~~~~~
283 "outgoing udp multicast interface"
284 string
285 optional
286
287 option "udp_header_interval" H
288 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289 "duration for sending header"
290 int typestr="ms"
291 default="2000"
292 optional
293 details="
294         As the udp sender has no idea about connected clients it
295         sends the audio file header periodically if necessary. This
296         option is used to specify the duration of the interval between
297         sending the header. Shorter values decrease the average time
298         clients have to wait before being able to start playback,
299         but this also increases the amount network traffic. Note
300         that this affects only ogg vorbis streams as this is the only
301         audio format that needs an audio file header.
302 "
303
304 option "udp_ttl" t
305 #~~~~~~~~~~~~~~~~~
306 "set time to live value"
307 int typestr="num"
308 default="-1"
309 optional
310 details="
311         This option applies exclusively to multicast UDPv4/v6 streaming.
312
313         For the sending UDPv4 socket it sets the multicast Time-To-Live
314         value to \"num\".  Traditional TTL scope values are: 0=host,
315         1=network, 32=same site, 64=same region, 128=same continent,
316         255=unrestricted. Please note however that this scoping is not
317         a good solution: RFC 2365 e.g. presents a better alternative.
318
319         When using UDPv6 multicasting, the option sets the number of
320         multicast hops (as described in RFC 3493); a value of -1
321         allows the kernel to auto-select the hop value.
322 "
323 </qu>