Blame


1 bc2b1cdc 2014-09-27 pjp .\" Copyright (c) 2014 Peter J. Philipp
2 bc2b1cdc 2014-09-27 pjp .\" All rights reserved.
3 bc2b1cdc 2014-09-27 pjp .\"
4 bc2b1cdc 2014-09-27 pjp .\" Redistribution and use in source and binary forms, with or without
5 bc2b1cdc 2014-09-27 pjp .\" modification, are permitted provided that the following conditions
6 bc2b1cdc 2014-09-27 pjp .\" are met:
7 bc2b1cdc 2014-09-27 pjp .\" 1. Redistributions of source code must retain the above copyright
8 bc2b1cdc 2014-09-27 pjp .\" notice, this list of conditions and the following disclaimer.
9 bc2b1cdc 2014-09-27 pjp .\" 2. Redistributions in binary form must reproduce the above copyright
10 bc2b1cdc 2014-09-27 pjp .\" notice, this list of conditions and the following disclaimer in the
11 bc2b1cdc 2014-09-27 pjp .\" documentation and/or other materials provided with the distribution.
12 bc2b1cdc 2014-09-27 pjp .\" 3. The name of the author may not be used to endorse or promote products
13 bc2b1cdc 2014-09-27 pjp .\" derived from this software without specific prior written permission
14 bc2b1cdc 2014-09-27 pjp .\"
15 bc2b1cdc 2014-09-27 pjp .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 bc2b1cdc 2014-09-27 pjp .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 bc2b1cdc 2014-09-27 pjp .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 bc2b1cdc 2014-09-27 pjp .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 bc2b1cdc 2014-09-27 pjp .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 bc2b1cdc 2014-09-27 pjp .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 bc2b1cdc 2014-09-27 pjp .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 bc2b1cdc 2014-09-27 pjp .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 bc2b1cdc 2014-09-27 pjp .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 bc2b1cdc 2014-09-27 pjp .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 bc2b1cdc 2014-09-27 pjp .\"
26 bc2b1cdc 2014-09-27 pjp .Dd September 27, 2014
27 bc2b1cdc 2014-09-27 pjp .Dt WILDCARDDNS.CONF 5
28 bc2b1cdc 2014-09-27 pjp .Os
29 bc2b1cdc 2014-09-27 pjp .Sh NAME
30 bc2b1cdc 2014-09-27 pjp .Nm wildcarddns.conf
31 bc2b1cdc 2014-09-27 pjp .Nd the Wildcard DNS daemon configuration file
32 bc2b1cdc 2014-09-27 pjp .Sh DESCRIPTION
33 bc2b1cdc 2014-09-27 pjp The
34 bc2b1cdc 2014-09-27 pjp .Xr wildcarddnsd 8
35 bc2b1cdc 2014-09-27 pjp has a default configfile it is called
36 bc2b1cdc 2014-09-27 pjp .Nm
37 bc2b1cdc 2014-09-27 pjp and it is found in /etc. You may wonder why there is a missing d, so I ask
38 bc2b1cdc 2014-09-27 pjp you to look up
39 bc2b1cdc 2014-09-27 pjp .Xr syslogd 8
40 bc2b1cdc 2014-09-27 pjp and
41 bc2b1cdc 2014-09-27 pjp .Xr syslog.conf 5
42 bc2b1cdc 2014-09-27 pjp which also drop the d in the config file. This follows that name convention.
43 bc2b1cdc 2014-09-27 pjp .Sh EXAMPLES
44 bc2b1cdc 2014-09-27 pjp Here is a sample
45 bc2b1cdc 2014-09-27 pjp .Nm
46 bc2b1cdc 2014-09-27 pjp file:
47 bc2b1cdc 2014-09-27 pjp .Bd -literal
48 bc2b1cdc 2014-09-27 pjp ; sample config file that is in production.
49 bc2b1cdc 2014-09-27 pjp ;
50 bc2b1cdc 2014-09-27 pjp version "6";
51 bc2b1cdc 2014-09-27 pjp options "cool stuff" {
52 bc2b1cdc 2014-09-27 pjp interface "lo0";
53 bc2b1cdc 2014-09-27 pjp interface "em0";
54 bc2b1cdc 2014-09-27 pjp
55 bc2b1cdc 2014-09-27 pjp ;bind 127.0.0.1;
56 bc2b1cdc 2014-09-27 pjp ;bind 192.168.34.4;
57 bc2b1cdc 2014-09-27 pjp
58 bc2b1cdc 2014-09-27 pjp ratelimit-pps 6;
59 bc2b1cdc 2014-09-27 pjp
60 bc2b1cdc 2014-09-27 pjp port 53;
61 bc2b1cdc 2014-09-27 pjp
62 bc2b1cdc 2014-09-27 pjp ;fork 2;
63 bc2b1cdc 2014-09-27 pjp log;
64 bc2b1cdc 2014-09-27 pjp }
65 bc2b1cdc 2014-09-27 pjp
66 bc2b1cdc 2014-09-27 pjp axfrport "10053";
67 bc2b1cdc 2014-09-27 pjp
68 bc2b1cdc 2014-09-27 pjp axfr-for "these hosts" {
69 bc2b1cdc 2014-09-27 pjp 127.0.0.1;
70 bc2b1cdc 2014-09-27 pjp ::1;
71 bc2b1cdc 2014-09-27 pjp 192.168.0.0/16;
72 bc2b1cdc 2014-09-27 pjp }
73 bc2b1cdc 2014-09-27 pjp
74 bc2b1cdc 2014-09-27 pjp notify "these hosts" {
75 bc2b1cdc 2014-09-27 pjp 192.168.34.1;
76 bc2b1cdc 2014-09-27 pjp 192.168.35.1;
77 bc2b1cdc 2014-09-27 pjp ::1;
78 bc2b1cdc 2014-09-27 pjp }
79 bc2b1cdc 2014-09-27 pjp
80 bc2b1cdc 2014-09-27 pjp
81 bc2b1cdc 2014-09-27 pjp zone "centroid.eu" {
82 bc2b1cdc 2014-09-27 pjp centroid.eu,soa,3600,uranus.centroid.eu.,pjp.solarscale.de.,2014051701,3600,1800,7200,3600
83 bc2b1cdc 2014-09-27 pjp centroid.eu,ns,3600,proteus.solarscale.de.
84 bc2b1cdc 2014-09-27 pjp centroid.eu,ns,3600,uranus.centroid.eu.
85 bc2b1cdc 2014-09-27 pjp centroid.eu,ns,3600,dione.solarscale.de.
86 bc2b1cdc 2014-09-27 pjp ;
87 bc2b1cdc 2014-09-27 pjp centroid.eu,a,3600,200.46.208.61
88 bc2b1cdc 2014-09-27 pjp centroid.eu,a,3600,62.75.160.180
89 bc2b1cdc 2014-09-27 pjp ;
90 bc2b1cdc 2014-09-27 pjp centroid.eu,SSHFP,3600,1,1,"9b3624f96a6766e73dc88505f945a564dee82e59"
91 bc2b1cdc 2014-09-27 pjp centroid.eu,SSHFP,3600,1,2,"03310030886404f8f61d2e4dc445412788284ab04d0858bfa375eb80fc0d34f6"
92 bc2b1cdc 2014-09-27 pjp centroid.eu,SSHFP,3600,2,1,"3de1bbae4de5ebd3571a169a50d6a5a4145dd7a9"
93 bc2b1cdc 2014-09-27 pjp centroid.eu,SSHFP,3600,2,2,"bbd96ff7e7f629377d655d7fa9662502837b66cf9a2d24590df77acef66fe405"
94 bc2b1cdc 2014-09-27 pjp centroid.eu,SSHFP,3600,3,1,"0ca455de4800c0f6c681e805e7bd86e511efb1fc"
95 bc2b1cdc 2014-09-27 pjp centroid.eu,SSHFP,3600,3,2,"b330fd2288cf9e13c9ef68b1b0c0b20a10c16cc55f03cd3869cf1a49f06bed43"
96 bc2b1cdc 2014-09-27 pjp ;
97 bc2b1cdc 2014-09-27 pjp centroid.eu,mx,3600,10,proteus.solarscale.de.
98 bc2b1cdc 2014-09-27 pjp centroid.eu,aaaa,3600,2001:a60:f074::8
99 bc2b1cdc 2014-09-27 pjp ;
100 bc2b1cdc 2014-09-27 pjp centroid.eu,spf,3600,"v=spf1 ip4:200.46.208.61 ~all"
101 bc2b1cdc 2014-09-27 pjp ;
102 bc2b1cdc 2014-09-27 pjp ;
103 bc2b1cdc 2014-09-27 pjp ; NAPTR trial
104 bc2b1cdc 2014-09-27 pjp centroid.eu,naptr,3600,10,10,"u","E2U+sip","!^.*$!sip:1234@sip.example.com!",centroid.eu
105 bc2b1cdc 2014-09-27 pjp centroid.eu,naptr,3600,10,20,"u","E2U+sip","!^.*$!sip:1234@sip.example.com!",.
106 bc2b1cdc 2014-09-27 pjp
107 bc2b1cdc 2014-09-27 pjp ;
108 bc2b1cdc 2014-09-27 pjp www.centroid.eu,a,3600,62.75.160.180
109 bc2b1cdc 2014-09-27 pjp www.centroid.eu,a,3600,200.46.208.61
110 bc2b1cdc 2014-09-27 pjp ;
111 bc2b1cdc 2014-09-27 pjp www.centroid.eu,aaaa,3600,2001:a60:f074::8
112 bc2b1cdc 2014-09-27 pjp uranus.centroid.eu,a,3600,212.114.251.91
113 bc2b1cdc 2014-09-27 pjp uranus.centroid.eu,aaaa,3600,2001:a60:f000:99::2
114 bc2b1cdc 2014-09-27 pjp proteus.centroid.eu,a,3600,62.75.160.180
115 bc2b1cdc 2014-09-27 pjp dione.centroid.eu,a,3600,200.46.208.61
116 bc2b1cdc 2014-09-27 pjp rosalind.centroid.eu,aaaa,3600,2001:a60:f074::8
117 bc2b1cdc 2014-09-27 pjp irc.centroid.eu,a,3600,212.114.251.91
118 bc2b1cdc 2014-09-27 pjp irc.centroid.eu,aaaa,3600,2001:a60:f074::24
119 bc2b1cdc 2014-09-27 pjp irc2.centroid.eu,a,3600,200.46.208.61
120 bc2b1cdc 2014-09-27 pjp localhost.centroid.eu,a,3600,127.0.0.1
121 bc2b1cdc 2014-09-27 pjp localhost.centroid.eu,aaaa,3600,::1
122 bc2b1cdc 2014-09-27 pjp ; the below are new delegations (NS) records
123 bc2b1cdc 2014-09-27 pjp ;delegation.centroid.eu,delegate,3600,ns1.server.com.
124 bc2b1cdc 2014-09-27 pjp ; glue record
125 bc2b1cdc 2014-09-27 pjp ;ns1.server.com.,a,3600,10.0.0.1
126 bc2b1cdc 2014-09-27 pjp ;delegation.centroid.eu,delegate,3600,ns2.server.com.
127 bc2b1cdc 2014-09-27 pjp ; glue record
128 bc2b1cdc 2014-09-27 pjp ;ns2.server.com.,a,3600,10.0.0.2
129 bc2b1cdc 2014-09-27 pjp }
130 bc2b1cdc 2014-09-27 pjp zone "ipv6.centroid.eu" {
131 bc2b1cdc 2014-09-27 pjp ipv6.centroid.eu,soa,3600,uranus.centroid.eu.,pjp.solarscale.de.,1244725285,3600,1800,7200,3600
132 bc2b1cdc 2014-09-27 pjp ipv6.centroid.eu,aaaa,3600,2001:a60:f074::8
133 bc2b1cdc 2014-09-27 pjp www.ipv6.centroid.eu,aaaa,3600,2001:a60:f074::8
134 bc2b1cdc 2014-09-27 pjp }
135 bc2b1cdc 2014-09-27 pjp zone "ipv6.solarscale.de" {
136 bc2b1cdc 2014-09-27 pjp ipv6.solarscale.de,soa,3600,proteus.solarscale.de.,pjp.solarscale.de.,1234896563,3600,1800,7200,3600
137 bc2b1cdc 2014-09-27 pjp ipv6.solarscale.de,ns,3600,proteus.solarscale.de.
138 bc2b1cdc 2014-09-27 pjp ipv6.solarscale.de,ns,3600,uranus.centroid.eu.
139 bc2b1cdc 2014-09-27 pjp ipv6.solarscale.de,aaaa,3600,2001:a60:f074::8
140 bc2b1cdc 2014-09-27 pjp www.ipv6.solarscale.de,aaaa,3600,2001:a60:f074::8
141 bc2b1cdc 2014-09-27 pjp }
142 bc2b1cdc 2014-09-27 pjp zone "reverse dns" {
143 bc2b1cdc 2014-09-27 pjp 0.4.7.0.f.0.6.a.0.1.0.0.2.ip6.arpa.,soa,3600,proteus.solarscale.de.,pjp.solarscale.de.,1234896562,3600,1800,7200,3600
144 bc2b1cdc 2014-09-27 pjp 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.7.0.f.0.6.a.0.1.0.0.2.ip6.arpa.,ptr,3600,uranus.centroid.eu.
145 bc2b1cdc 2014-09-27 pjp 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.7.0.f.0.6.a.0.1.0.0.2.ip6.arpa.,ptr,3600,setebos.centroid.eu.
146 bc2b1cdc 2014-09-27 pjp }
147 bc2b1cdc 2014-09-27 pjp
148 bc2b1cdc 2014-09-27 pjp zone "root hints" {
149 bc2b1cdc 2014-09-27 pjp .,hint,3600000,A.ROOT-SERVERS.NET.
150 bc2b1cdc 2014-09-27 pjp A.ROOT-SERVERS.NET.,a,3600000,198.41.0.4
151 bc2b1cdc 2014-09-27 pjp A.ROOT-SERVERS.NET.,aaaa,3600000,2001:503:BA3E::2:30
152 bc2b1cdc 2014-09-27 pjp .,hint,3600000,B.ROOT-SERVERS.NET.
153 bc2b1cdc 2014-09-27 pjp B.ROOT-SERVERS.NET.,a,3600000,192.228.79.201
154 bc2b1cdc 2014-09-27 pjp .,hint,3600000,C.ROOT-SERVERS.NET.
155 bc2b1cdc 2014-09-27 pjp C.ROOT-SERVERS.NET.,a,3600000,192.33.4.12
156 bc2b1cdc 2014-09-27 pjp .,hint,3600000,D.ROOT-SERVERS.NET.
157 bc2b1cdc 2014-09-27 pjp D.ROOT-SERVERS.NET.,a,3600000,199.7.91.13
158 bc2b1cdc 2014-09-27 pjp D.ROOT-SERVERS.NET.,aaaa,3600000,2001:500:2D::D
159 bc2b1cdc 2014-09-27 pjp .,hint,3600000,E.ROOT-SERVERS.NET.
160 bc2b1cdc 2014-09-27 pjp E.ROOT-SERVERS.NET.,a,3600000,192.203.230.10
161 bc2b1cdc 2014-09-27 pjp .,hint,3600000,F.ROOT-SERVERS.NET.
162 bc2b1cdc 2014-09-27 pjp F.ROOT-SERVERS.NET.,a,3600000,192.5.5.241
163 bc2b1cdc 2014-09-27 pjp F.ROOT-SERVERS.NET.,aaaa,3600000,2001:500:2f::f
164 bc2b1cdc 2014-09-27 pjp .,hint,3600000,G.ROOT-SERVERS.NET.
165 bc2b1cdc 2014-09-27 pjp G.ROOT-SERVERS.NET.,a,3600000,192.112.36.4
166 bc2b1cdc 2014-09-27 pjp .,hint,3600000,H.ROOT-SERVERS.NET.
167 bc2b1cdc 2014-09-27 pjp H.ROOT-SERVERS.NET.,a,3600000,128.63.2.53
168 bc2b1cdc 2014-09-27 pjp H.ROOT-SERVERS.NET.,aaaa,3600000,2001:500:1::803f:235
169 bc2b1cdc 2014-09-27 pjp .,hint,3600000,I.ROOT-SERVERS.NET.
170 bc2b1cdc 2014-09-27 pjp I.ROOT-SERVERS.NET.,a,3600000,192.36.148.17
171 bc2b1cdc 2014-09-27 pjp .,hint,3600000,J.ROOT-SERVERS.NET.
172 bc2b1cdc 2014-09-27 pjp J.ROOT-SERVERS.NET.,a,3600000,192.58.128.30
173 bc2b1cdc 2014-09-27 pjp J.ROOT-SERVERS.NET.,aaaa,3600000,2001:503:C27::2:30
174 bc2b1cdc 2014-09-27 pjp .,hint,3600000,K.ROOT-SERVERS.NET.
175 bc2b1cdc 2014-09-27 pjp K.ROOT-SERVERS.NET.,a,3600000,193.0.14.129
176 bc2b1cdc 2014-09-27 pjp K.ROOT-SERVERS.NET.,aaaa,3600000,2001:7fd::1
177 bc2b1cdc 2014-09-27 pjp .,hint,3600000,L.ROOT-SERVERS.NET.
178 bc2b1cdc 2014-09-27 pjp L.ROOT-SERVERS.NET.,a,3600000,199.7.83.42
179 bc2b1cdc 2014-09-27 pjp L.ROOT-SERVERS.NET.,aaaa,3600000,2001:500:3::42
180 bc2b1cdc 2014-09-27 pjp .,hint,3600000,M.ROOT-SERVERS.NET.
181 bc2b1cdc 2014-09-27 pjp M.ROOT-SERVERS.NET.,a,3600000,202.12.27.33
182 bc2b1cdc 2014-09-27 pjp M.ROOT-SERVERS.NET.,aaaa,3600000,2001:dc3::35
183 bc2b1cdc 2014-09-27 pjp }
184 bc2b1cdc 2014-09-27 pjp
185 bc2b1cdc 2014-09-27 pjp .Ed
186 bc2b1cdc 2014-09-27 pjp .Sh GRAMMAR
187 bc2b1cdc 2014-09-27 pjp Syntax for
188 bc2b1cdc 2014-09-27 pjp .Nm
189 bc2b1cdc 2014-09-27 pjp in BNF:
190 bc2b1cdc 2014-09-27 pjp .Bd -literal
191 bc2b1cdc 2014-09-27 pjp line = ( version | axfrport | include | zone | region |
192 bc2b1cdc 2014-09-27 pjp wof | axfr | notify | whitelist | filter | recurse | logging
193 bc2b1cdc 2014-09-27 pjp | comment | options )
194 bc2b1cdc 2014-09-27 pjp
195 bc2b1cdc 2014-09-27 pjp version = "version" ("number") semicolon
196 bc2b1cdc 2014-09-27 pjp
197 bc2b1cdc 2014-09-27 pjp axfrport = "axfrport" ("port number") semicolon
198 bc2b1cdc 2014-09-27 pjp
199 bc2b1cdc 2014-09-27 pjp include = "include" ("filename") semicolon
200 bc2b1cdc 2014-09-27 pjp
201 bc2b1cdc 2014-09-27 pjp zone = "zone" ("string") [ "{" zonedata "}" ]
202 bc2b1cdc 2014-09-27 pjp zonedata = { [hostname] [ "," dnstype] [ "," ttl ] ["," variablednsdata] }
203 bc2b1cdc 2014-09-27 pjp hostname = string
204 bc2b1cdc 2014-09-27 pjp dnstype = ( "a" | "aaaa" | "ptr" | "mx" | "soa" | "ns" | "sshfp" | "spf" |
205 bc2b1cdc 2014-09-27 pjp "naptr" | "txt" | "delegate" | "hint" )
206 bc2b1cdc 2014-09-27 pjp ttl = number
207 bc2b1cdc 2014-09-27 pjp
208 bc2b1cdc 2014-09-27 pjp region = "region" ("string") [ "{" cidrlist "}"
209 bc2b1cdc 2014-09-27 pjp
210 bc2b1cdc 2014-09-27 pjp cidrlist = { [ cidr-address ] semicolon ... }
211 bc2b1cdc 2014-09-27 pjp
212 bc2b1cdc 2014-09-27 pjp wof = "wildcard-only-for" ("string") [ "{" cidrlist "}" ]
213 bc2b1cdc 2014-09-27 pjp
214 bc2b1cdc 2014-09-27 pjp axfr = "axfr-for" ("string") [ "{" cidrlist "}" ]
215 bc2b1cdc 2014-09-27 pjp
216 bc2b1cdc 2014-09-27 pjp notify = "notify" ("string") [ "{" cidrlist "}" ]
217 bc2b1cdc 2014-09-27 pjp
218 bc2b1cdc 2014-09-27 pjp whitelist = "whitelist" ("string") [ "{" cidrlist "}" ]
219 bc2b1cdc 2014-09-27 pjp
220 bc2b1cdc 2014-09-27 pjp filter = "filter" ("string") [ "{" cidrlist "}" ]
221 bc2b1cdc 2014-09-27 pjp
222 bc2b1cdc 2014-09-27 pjp recurse = "recurse-for" ("string") [ "{" cidrlist "}" ]
223 bc2b1cdc 2014-09-27 pjp
224 bc2b1cdc 2014-09-27 pjp logging = "logging" ("string") [ "{" logstatements "}" ]
225 bc2b1cdc 2014-09-27 pjp logstatements = ( "logbind" | "logpasswd" | "logport" | "loghost" )
226 bc2b1cdc 2014-09-27 pjp logbind = "logbind" ("string") semicolon
227 bc2b1cdc 2014-09-27 pjp logpasswd = "logpasswd" ("string") semicolon
228 bc2b1cdc 2014-09-27 pjp logport = "logport" number semicolon
229 bc2b1cdc 2014-09-27 pjp loghost = "loghost" cidr-address semicolon
230 bc2b1cdc 2014-09-27 pjp
231 bc2b1cdc 2014-09-27 pjp comment = ( semicolon | pound ) line
232 bc2b1cdc 2014-09-27 pjp
233 bc2b1cdc 2014-09-27 pjp options = "options" ("string") [ "{" optionlist "}" ]
234 bc2b1cdc 2014-09-27 pjp optionlist = ( optrecurse | optinterface | optfork | optport |
235 bc2b1cdc 2014-09-27 pjp optratelimit | optbind )
236 bc2b1cdc 2014-09-27 pjp optrecurse = "recurse" semicolon
237 bc2b1cdc 2014-09-27 pjp optinterface = "interface" ("string") semicolon
238 bc2b1cdc 2014-09-27 pjp optfork = "fork" number semicolon
239 bc2b1cdc 2014-09-27 pjp optratelimit = "ratelimit-pps" number semicolon
240 bc2b1cdc 2014-09-27 pjp optbind = "bind" cidr-address semicolon
241 bc2b1cdc 2014-09-27 pjp .Ed
242 bc2b1cdc 2014-09-27 pjp .Sh FILES
243 bc2b1cdc 2014-09-27 pjp .Pa /etc/wildcarddns.conf
244 bc2b1cdc 2014-09-27 pjp .Sh SEE ALSO
245 bc2b1cdc 2014-09-27 pjp .Xr wildcarddnsd 8
246 bc2b1cdc 2014-09-27 pjp .Sh AUTHORS
247 bc2b1cdc 2014-09-27 pjp This software and manual was written by
248 bc2b1cdc 2014-09-27 pjp .An Peter J. Philipp Aq pjp@centroid.eu
249 bc2b1cdc 2014-09-27 pjp