Browse code

- docbook documentation.

Jan Janak authored on 24/07/2003 17:57:40
Showing 5 changed files
... ...
@@ -1,136 +1,265 @@
1
-#
2
-#$Id$
3
-#
4
-
5
- PDT - prefix-domain translation
6
- ===============================
7
-
8
-1.Description
9
-
10
-This module translates numerical codes into domains and update accordingly 
11
-the R-URI.
12 1
 
13
-The module looks up at the R-URI part of a message and if the user part begins 
14
-with an established prefix it will update the uri. Updating the uri consists 
15
-of: read the code after the prefix from the user part of the uri and keep the
16
-rest as the user part of the new uri. The host part will be the domain matched 
17
-for the leading code.
2
+pdt Module
18 3
 
19
-    [<prefix>]<code><userid><:password>@<mydomain.com> ...
20
-    
21
-    and the result will be:
22
-    
23
-    <userid><:password>@<domain[:port]>...
24
-    
25
-Example:
26
-    prefix=2
27
-    code=3330
28
-    domain[3330]=iptel.org
29
-    
30
-    
31
-    2333091001@mydomain.com  => 91001@iptel.org    
32
-    
33
-The code is always ended with a special digit (a parameter of the module).
34
-This digit will not be inside the code at all.
35
-
36
-2.Exported symbols
37
-Methods
38
-
39
-Name: 	prefix2domain
40
-Params:	none
41
-Desc:	build a new uri if it is necessary. Returns 1 when the translation was
42
-        made or there was nothing to translate (user part of the URI is empty
43
-		or it does not match the prefix parameter). Returns -1 in error cases.
44
-
45
-
46
-Parameters
47
-
48
-Name:		db_url
49
-Type:		string
50
-Default:	sql://root@127.0.0.1/pdt
51
-Desc:		SQL URL of database - username, password, host, port and 
52
-		database (ex: sql://username:password@hostname.com/database)
53
-
54
-
55
-Name:		db_table
56
-Type:		string
57
-Default:	domains
58
-Desc:		table name
59
-
60
-
61
-Name:		terminator
62
-Type:		int
63
-Default:	0
64
-Desc:		the digit ending a code
65
-
66
-
67
-Name:		start_range
68
-Type:		int
69
-Default:	10
70
-Desc:		default start value for allocating prefixes
71
-
72
-
73
-Name:		prefix
74
-Type:		string
75
-Default:	NULL
76
-Desc:		default prefix who denotes what uri needs to be translated
77
-            -- if it is NULL the module will not check the R-URI against it and
78
-            the code is considered starting from the first digit. Otherwise, the
79
-            module will check first if the R-URI starts with it and will skip it
80
-            to find the code
81
-
82
-Name:       	hsize_2pow
83
-Type:       	int
84
-Default:    	4
85
-Desc:       	number of the hash entries = 2^hash_size
86
-
87
-
88
-3.Module dependences
89
-- MYSQL
90
-
91
-
92
-4.Other information
93
-- see SQL script for creating databases and a sample of cfg file in './doc/'
94
-- the web interface is in doc/web/ and the SQL script for creating the database
95
-for user interface is './doc/admin.sql'.
96
-- sample shell script to use with fifo interface is './doc/fifo.sh'.
97
-
98
-Contacts
99
-- for any suggestion/bug contact:
100
-	<serhelp@iptel.org>
101
-
102
-
103
-5.Some details
104
-
105
-
106
-The module registers also a function that works with the fifo server
107
-( get_domaincode ). 
108
-That will provide support for a web user interface which will be used by admins
109
-to register new domains and by simple users to find the code for a domain.
110
-
111
-
112
-Registered domains are stored in a database and in tables in share memory. The 
113
-database is kept consistent with the tables in memory. When a new domain is 
114
-registered the information goes first in the database and only than in tables 
115
-in share memory.  
116
-        
117
-Data in share memory is kept in hashtables to have fast searches. Searches are 
118
-possible for domains, but also for codes. Searches for codes are necessary more 
119
-often, every time when a message that needs to be translated passes through SER.
120
-Searches for domains are requested by the user interface only.
4
+Elena-Ramona Modroiu
121 5
 
122
-Through the web interface a normal user can find the code for a domain and a 
123
-privileged user (i.e., admins) can register new domains too.
124
-The web interface also encounters problems of mutual exclusion. Any user of the 
125
-interface posts a request to the fifo server and waits his response in a file. 
126
-The file must be unique per user to avoid interfering responses for different 
127
-simultaneous user. That problem is solved using session per user offered by 
128
-the PHP language.
6
+   FhG FOKUS
129 7
 
8
+Edited by
9
+
10
+Elena-Ramona Modroiu
11
+
12
+   Copyright � 2003 Fill in here
13
+     _________________________________________________________
14
+
15
+   Table of Contents
16
+   1. User's Guide
17
+
18
+        1.1. Overview
19
+        1.2. Dependencies
20
+
21
+              1.2.1. SER Modules
22
+              1.2.2. External Libraries or Applications
23
+
24
+        1.3. Exported Parameters
25
+
26
+              1.3.1. db_url (string)
27
+              1.3.2. db_table (string)
28
+              1.3.3. terminator (integer)
29
+              1.3.4. start_range (integer)
30
+              1.3.5. prefix (string)
31
+              1.3.6. hsize_2pow (integer)
32
+
33
+        1.4. Exported Functions
34
+
35
+              1.4.1. prefix2domain()
36
+
37
+        1.5. Installation & Running
38
+
39
+   2. Developer's Guide
40
+   3. Frequently Asked Questions
41
+
42
+   List of Examples
43
+   1-1. 
44
+   1-2. Set db_url parameter
45
+   1-3. Set db_table parameter
46
+   1-4. Set terminator parameter
47
+   1-5. Set start_range parameter
48
+   1-6. Set prefix parameter
49
+   1-7. Set hsize_2pow parameter
50
+   1-8. prefix2domain usage
51
+     _________________________________________________________
52
+
53
+Chapter 1. User's Guide
54
+
55
+1.1. Overview
56
+
57
+   This module translates numerical codes into domains and update
58
+   accordingly the R-URI.
59
+
60
+   The module looks up at the R-URI part of a message and if the
61
+   user part begins with an established prefix it will update the
62
+   URI. Updating the uri consists of: read the code after the
63
+   prefix from the user part of the uri and keep the rest as the
64
+   user part of the new uri. The host part will be the domain
65
+   matched for the leading code.
66
+
67
+   [<prefix>]<code><userid><:password>@<mydomain.com> ...
68
+
69
+   and the result will be:
70
+
71
+   <userid><:password>@<domain[:port]>...
72
+
73
+   Example 1-1. 
74
+prefix=2
75
+code=3330
76
+domain[3330]=iptel.org
77
+
78
+2333091001@mydomain.com  => 91001@iptel.org
79
+
80
+   The code is always ended with a special digit (a parameter of
81
+   the module). This digit will not be inside the code at all.
82
+
83
+     * See SQL script for creating databases and a sample of cfg
84
+       file in './doc/'.
85
+     * The web interface is in doc/web/ and the SQL script for
86
+       creating the database for user interface is
87
+       './doc/admin.sql'.
88
+     * Sample shell script to use with fifo interface is
89
+       './doc/fifo.sh'.
90
+     _________________________________________________________
91
+
92
+1.2. Dependencies
93
+
94
+1.2.1. SER Modules
95
+
96
+   The following modules must be loaded before this module:
97
+
98
+     * A SER database module.
99
+     _________________________________________________________
100
+
101
+1.2.2. External Libraries or Applications
102
+
103
+   The following libraries or applications must be installed
104
+   before running SER with this module loaded:
105
+
106
+     * None.
107
+     _________________________________________________________
108
+
109
+1.3. Exported Parameters
110
+
111
+1.3.1. db_url (string)
112
+
113
+   SQL URL of database--username, password, host, port and
114
+   database (ex: sql://username:password@hostname.com/database)
115
+
116
+   Default value is "sql://root@127.0.0.1/pdt". 
117
+
118
+   Example 1-2. Set db_url parameter
119
+...
120
+modparam("pdt", "param_name", "param_value")
121
+...
122
+     _________________________________________________________
123
+
124
+1.3.2. db_table (string)
125
+
126
+   Table name.
127
+
128
+   Default value is "domains". 
129
+
130
+   Example 1-3. Set db_table parameter
131
+...
132
+modparam("pdt", "db_table", "domains")
133
+...
134
+     _________________________________________________________
135
+
136
+1.3.3. terminator (integer)
137
+
138
+   The digit ending a code.
139
+
140
+   Default value is 0. 
141
+
142
+   Example 1-4. Set terminator parameter
143
+...
144
+modparam("pdt", "terminator", 1)
145
+...
146
+     _________________________________________________________
147
+
148
+1.3.4. start_range (integer)
149
+
150
+   Default start value for allocating prefixes.
151
+
152
+   Default value is 10. 
153
+
154
+   Example 1-5. Set start_range parameter
155
+...
156
+modparam("pdt", "start_range", 10)
157
+...
158
+     _________________________________________________________
159
+
160
+1.3.5. prefix (string)
161
+
162
+   Default prefix who denotes what URI needs to be translated--if
163
+   it is NULL the module will not check the R-URI against it and
164
+   the code is considered starting from the first digit.
165
+   Otherwise, the module will check first if the R-URI starts
166
+   with it and will skip it to find the code.
167
+
168
+   Default value is NULL. 
169
+
170
+   Example 1-6. Set prefix parameter
171
+...
172
+modparam("pdt", "prefix", "123")
173
+...
174
+     _________________________________________________________
175
+
176
+1.3.6. hsize_2pow (integer)
177
+
178
+   Number of the hash entries = 2^hash_size.
179
+
180
+   Default value is 4. 
181
+
182
+   Example 1-7. Set hsize_2pow parameter
183
+...
184
+modparam("pdt", "hsize_2pow", 4)
185
+...
186
+     _________________________________________________________
187
+
188
+1.4. Exported Functions
189
+
190
+1.4.1. prefix2domain()
191
+
192
+   Build a new URI if it is necessary. Returns 1 when the
193
+   translation was made or there was nothing to translate (user
194
+   part of the URI is empty or it does not match the prefix
195
+   parameter). Returns -1 in error cases.
196
+
197
+   Example 1-8. prefix2domain usage
198
+...
199
+prefix2domain();
200
+...
201
+     _________________________________________________________
202
+
203
+1.5. Installation & Running
204
+
205
+   Notes about installation and running.
206
+     _________________________________________________________
207
+
208
+Chapter 2. Developer's Guide
209
+
210
+   The module registers also a function that works with the fifo
211
+   server ( get_domaincode ). That will provide support for a web
212
+   user interface which will be used by admins to register new
213
+   domains and by simple users to find the code for a domain.
214
+
215
+   Registered domains are stored in a database and in tables in
216
+   share memory. The database is kept consistent with the tables
217
+   in memory. When a new domain is registered the information
218
+   goes first in the database and only than in tables in share
219
+   memory.
220
+
221
+   Data in share memory is kept in hashtables to have fast
222
+   searches. Searches are possible for domains, but also for
223
+   codes. Searches for codes are necessary more often, every time
224
+   when a message that needs to be translated passes through SER
225
+   Searches for domains are requested by the user interface only.
226
+
227
+   Through the web interface a normal user can find the code for
228
+   a domain and a privileged user (i.e., admins) can register new
229
+   domains too. The web interface also encounters problems of
230
+   mutual exclusion. Any user of the interface posts a request to
231
+   the fifo server and waits his response in a file. The file
232
+   must be unique per user to avoid interfering responses for
233
+   different simultaneous user. That problem is solved using
234
+   session per user offered by the PHP language.
235
+     _________________________________________________________
236
+
237
+Chapter 3. Frequently Asked Questions
238
+
239
+   3.1. Where can I find more about SER?
240
+   3.2. Where can I post a question about this module?
241
+   3.3. How can I report a bug?
242
+
243
+   3.1. Where can I find more about SER?
244
+
245
+   Take a look at http://iptel.org/ser.
246
+
247
+   3.2. Where can I post a question about this module?
248
+
249
+   First at all check if your question was already answered on
250
+   one of our mailing lists:
251
+
252
+     * http://mail.iptel.org/mailman/listinfo/serusers
253
+     * http://mail.iptel.org/mailman/listinfo/serdev
254
+
255
+   E-mails regarding any stable version should be sent to
256
+   <serusers@iptel.org> and e-mail regarding development versions
257
+   or CVS snapshots should be send to <serdev@iptel.org>.
258
+
259
+   If you want to keep the mail private, send it to
260
+   <serhelp@iptel.org>.
261
+
262
+   3.3. How can I report a bug?
263
+
264
+   Please follow the guidelines provided at:
265
+   http://iptel.org/ser/bugs
130 266
new file mode 100644
... ...
@@ -0,0 +1,52 @@
1
+<!DOCTYPE Book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
2
+
3
+
4
+<!ENTITY user SYSTEM "pdt_user.sgml">
5
+<!ENTITY devel SYSTEM "pdt_devel.sgml">
6
+<!ENTITY faq SYSTEM "pdt_faq.sgml">
7
+
8
+<!-- Include general SER documentation entities -->
9
+<!ENTITY % serentities SYSTEM "../../../doc/ser_entities.sgml">
10
+%serentities;
11
+
12
+]>
13
+
14
+<book>
15
+    <bookinfo>
16
+	<title>pdt Module</title>
17
+	<productname class="trade">&sername;</productname>
18
+	<authorgroup>
19
+	    <author>
20
+		<firstname>Elena-Ramona</firstname>
21
+		<surname>Modroiu</surname>
22
+		<affiliation><orgname>&fhg;</orgname></affiliation>
23
+		<address>
24
+		    <email>modroiu@fokus.fraunhofer.de</email>
25
+		</address>
26
+	    </author>
27
+	    <editor>
28
+		<firstname>Elena-Ramona</firstname>
29
+		<surname>Modroiu</surname>
30
+		<address>
31
+		    <email>modroiu@fokus.fraunhofer.de</email>
32
+		</address>
33
+	    </editor>
34
+	</authorgroup>
35
+	<copyright>
36
+	    <year>2003</year>
37
+	    <holder>Fill in here</holder>
38
+	</copyright>
39
+	<revhistory>
40
+	    <revision>
41
+		<revnumber>$Revision$</revnumber>
42
+		<date>$Date$</date>
43
+	    </revision>
44
+	</revhistory>
45
+    </bookinfo>
46
+    <toc></toc>
47
+    
48
+    &user;
49
+    &devel;
50
+    &faq;
51
+    
52
+</book>
0 53
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+<!-- Module Developer's Guide -->
2
+
3
+<chapter>
4
+    <chapterinfo>
5
+	<revhistory>
6
+	    <revision>
7
+		<revnumber>$Revision$</revnumber>
8
+		<date>$Date$</date>
9
+	    </revision>
10
+	</revhistory>
11
+    </chapterinfo>
12
+    <title>Developer's Guide</title>
13
+    <para>
14
+	The module registers also a function that works with the fifo server ( get_domaincode ).
15
+	That will provide support for a web user interface which will be used by admins to register
16
+	new domains and by simple users to find the code for a domain.
17
+    </para>
18
+    <para>
19
+	Registered domains are stored in a database and in tables in share memory. The database is
20
+	kept consistent with the tables in memory. When a new domain is registered the information
21
+	goes first in the database and only than in tables in share memory.
22
+    </para>
23
+    <para>
24
+	Data in share memory is kept in hashtables to have fast searches. Searches are 
25
+	possible for domains, but also for codes. Searches for codes are necessary more 
26
+	often, every time when a message that needs to be translated passes through &ser;
27
+	Searches for domains are requested by the user interface only.
28
+    </para>
29
+    <para>
30
+	Through the web interface a normal user can find the code for a domain and a privileged user
31
+	(i.e., admins) can register new domains too. The web interface also encounters problems of
32
+	mutual exclusion. Any user of the interface posts a request to the fifo server and waits his
33
+	response in a file. The file must be unique per user to avoid interfering responses for
34
+	different simultaneous user. That problem is solved using session per user offered by the
35
+	<acronym>PHP</acronym> language.
36
+    </para>
37
+</chapter>
38
+
39
+<!-- Keep this element at the end of the file
40
+Local Variables:
41
+sgml-parent-document: ("pdt.sgml" "book" "chapter")
42
+End:
43
+-->
0 44
new file mode 100644
... ...
@@ -0,0 +1,67 @@
1
+<!-- Module FAQ -->
2
+
3
+<chapter>
4
+    <chapterinfo>
5
+	<revhistory>
6
+	    <revision>
7
+		<revnumber>$Revision$</revnumber>
8
+		<date>$Date$</date>
9
+	    </revision>
10
+	</revhistory>
11
+    </chapterinfo>
12
+    <title>Frequently Asked Questions</title>
13
+    <qandaset defaultlabel="number">
14
+	<qandaentry>
15
+	    <question>
16
+		<para>Where can I find more about &ser;?</para>
17
+	    </question>
18
+	    <answer>
19
+		<para>
20
+		    Take a look at &serhomelink;.
21
+		</para>
22
+	    </answer>
23
+	</qandaentry>
24
+	<qandaentry>
25
+	    <question>
26
+		<para>Where can I post a question about this module?</para>
27
+	    </question>
28
+	    <answer>
29
+		<para>
30
+		    First at all check if your question was already answered on one of
31
+		    our mailing lists: 
32
+		</para>
33
+		<itemizedlist>
34
+		    <listitem>
35
+			<para>&seruserslink;</para>
36
+		    </listitem>
37
+		    <listitem>
38
+			<para>&serdevlink;</para>
39
+		    </listitem>
40
+		</itemizedlist>
41
+		<para>
42
+		    E-mails regarding any stable version should be sent to &serusersmail; and e-mail
43
+		    regarding development versions or CVS snapshots should be send to &serdevmail;.
44
+		</para>
45
+		<para>
46
+		    If you want to keep the mail private, send it to &serhelpmail;.
47
+		</para>
48
+	    </answer>
49
+	</qandaentry>
50
+	<qandaentry>
51
+	    <question>
52
+		<para>How can I report a bug?</para>
53
+	    </question>
54
+	    <answer>
55
+		<para>
56
+		    Please follow the guidelines provided at: &serbugslink;
57
+		</para>
58
+	    </answer>
59
+	</qandaentry>
60
+    </qandaset>
61
+</chapter>
62
+
63
+<!-- Keep this element at the end of the file
64
+Local Variables:
65
+sgml-parent-document: ("pdt.sgml" "Book" "chapter")
66
+End:
67
+-->
0 68
new file mode 100644
... ...
@@ -0,0 +1,255 @@
1
+<!-- Module User's Guide -->
2
+
3
+<chapter>
4
+    <chapterinfo>
5
+	<revhistory>
6
+	    <revision>
7
+		<revnumber>$Revision$</revnumber>
8
+		<date>$Date$</date>
9
+	    </revision>
10
+	</revhistory>
11
+    </chapterinfo>
12
+    <title>User's Guide</title>
13
+    
14
+    <section>
15
+	<title>Overview</title>
16
+	<para>
17
+	    This module translates numerical codes into domains and update accordingly the R-&uri;.
18
+	</para>
19
+	<para>
20
+	    The module looks up at the R-&uri; part of a message and if the user part begins with an
21
+	    established prefix it will update the &uri;. Updating the uri consists of: read the code
22
+	    after the prefix from the user part of the uri and keep the rest as the user part of the
23
+	    new uri. The host part will be the domain matched for the leading code.
24
+	</para>
25
+	<para>
26
+	    [&lt;prefix&gt;]&lt;code&gt;&lt;userid&gt;&lt;:password&gt;@&lt;mydomain.com&gt; ...
27
+	</para>
28
+	<para>
29
+	    and the result will be:
30
+	</para>
31
+	<para>
32
+	    &lt;userid&gt;&lt;:password&gt;@&lt;domain[:port]&gt;...
33
+	</para>
34
+	<example>
35
+	    <title></title>
36
+	    <programlisting format="linespecific">
37
+prefix=2
38
+code=3330
39
+domain[3330]=iptel.org
40
+
41
+2333091001@mydomain.com  => 91001@iptel.org    
42
+</programlisting>
43
+	</example>
44
+	<para>
45
+	    The code is always ended with a special digit (a parameter of the module). This digit
46
+	    will not be inside the code at all.
47
+	</para>
48
+	<itemizedlist>
49
+	    <listitem>
50
+		<para>
51
+		    See <acronym>SQL</acronym> script for creating databases and a sample of cfg file in './doc/'.
52
+		</para>
53
+	    </listitem>
54
+	    <listitem>
55
+		<para>
56
+		    The web interface is in doc/web/ and the <acronym>SQL</acronym> script for
57
+		    creating the database for user interface is './doc/admin.sql'.
58
+		</para>
59
+	    </listitem>
60
+	    <listitem>
61
+		<para>
62
+		    Sample shell script to use with fifo interface is './doc/fifo.sh'.
63
+		</para>
64
+	    </listitem>
65
+	</itemizedlist>
66
+    </section>
67
+    <section>
68
+	<title>Dependencies</title>
69
+	<section>
70
+	    <title>&ser; Modules</title>
71
+	    <para>
72
+		The following modules must be loaded before this module:
73
+	    	<itemizedlist>
74
+		    <listitem>
75
+			<para>
76
+			    <emphasis>A &ser; database module</emphasis>.
77
+			</para>
78
+		    </listitem>
79
+	    	</itemizedlist>
80
+	    </para>
81
+	</section>
82
+	<section>
83
+	    <title>External Libraries or Applications</title>
84
+	    <para>
85
+		The following libraries or applications must be installed before running
86
+		&ser; with this module loaded:
87
+	    	<itemizedlist>
88
+		    <listitem>
89
+			<para>
90
+			    <emphasis>None</emphasis>.
91
+			</para>
92
+		    </listitem>
93
+	    	</itemizedlist>
94
+	    </para>
95
+	</section>
96
+    </section>
97
+    <section>
98
+	<title>Exported Parameters</title>
99
+	<section>
100
+	    <title><varname>db_url</varname> (string)</title>
101
+	    <para>
102
+		<acronym>SQL</acronym> &url; of database--username, password, host, port and
103
+		database (ex: sql://username:password@hostname.com/database)
104
+	    </para>
105
+	    <para>
106
+		<emphasis>
107
+		    Default value is <quote>sql://root@127.0.0.1/pdt</quote>.
108
+		</emphasis>
109
+	    </para>
110
+	    <example>
111
+		<title>Set <varname>db_url</varname> parameter</title>
112
+		<programlisting format="linespecific">
113
+...
114
+modparam("pdt", "param_name", "param_value")
115
+...
116
+</programlisting>
117
+	    </example>
118
+	</section>
119
+
120
+	<section>
121
+	    <title><varname>db_table</varname> (string)</title>
122
+	    <para>
123
+		Table name.
124
+	    </para>
125
+	    <para>
126
+		<emphasis>
127
+		    Default value is <quote>domains</quote>.
128
+		</emphasis>
129
+	    </para>
130
+	    <example>
131
+		<title>Set <varname>db_table</varname> parameter</title>
132
+		<programlisting format="linespecific">
133
+...
134
+modparam("pdt", "db_table", "domains")
135
+...
136
+</programlisting>
137
+	    </example>
138
+	</section>
139
+
140
+	<section>
141
+	    <title><varname>terminator</varname> (integer)</title>
142
+	    <para>
143
+		The digit ending a code.
144
+	    </para>
145
+	    <para>
146
+		<emphasis>
147
+		    Default value is 0.
148
+		</emphasis>
149
+	    </para>
150
+	    <example>
151
+		<title>Set <varname>terminator</varname> parameter</title>
152
+		<programlisting format="linespecific">
153
+...
154
+modparam("pdt", "terminator", 1)
155
+...
156
+</programlisting>
157
+	    </example>
158
+	</section>
159
+
160
+	<section>
161
+	    <title><varname>start_range</varname> (integer)</title>
162
+	    <para>
163
+		Default start value for allocating prefixes.
164
+	    </para>
165
+	    <para>
166
+		<emphasis>
167
+		    Default value is 10.
168
+		</emphasis>
169
+	    </para>
170
+	    <example>
171
+		<title>Set <varname>start_range</varname> parameter</title>
172
+		<programlisting format="linespecific">
173
+...
174
+modparam("pdt", "start_range", 10)
175
+...
176
+</programlisting>
177
+	    </example>
178
+	</section>
179
+
180
+	<section>
181
+	    <title><varname>prefix</varname> (string)</title>
182
+	    <para>
183
+		Default prefix who denotes what &uri; needs to be translated--if it is NULL the
184
+		module will not check the R-&uri; against it and the code is considered starting
185
+		from the first digit. Otherwise, the module will check first if the R-&uri; starts
186
+		with it and will skip it to find the code.
187
+	    </para>
188
+	    <para>
189
+		<emphasis>
190
+		    Default value is NULL.
191
+		</emphasis>
192
+	    </para>
193
+	    <example>
194
+		<title>Set <varname>prefix</varname> parameter</title>
195
+		<programlisting format="linespecific">
196
+...
197
+modparam("pdt", "prefix", "123")
198
+...
199
+</programlisting>
200
+	    </example>
201
+	</section>
202
+
203
+	<section>
204
+	    <title><varname>hsize_2pow</varname> (integer)</title>
205
+	    <para>
206
+		Number of the hash entries = 2^hash_size.
207
+	    </para>
208
+	    <para>
209
+		<emphasis>
210
+		    Default value is 4.
211
+		</emphasis>
212
+	    </para>
213
+	    <example>
214
+		<title>Set <varname>hsize_2pow</varname> parameter</title>
215
+		<programlisting format="linespecific">
216
+...
217
+modparam("pdt", "hsize_2pow", 4)
218
+...
219
+</programlisting>
220
+	    </example>
221
+	</section>
222
+
223
+    </section>
224
+    <section>
225
+	<title>Exported Functions</title>
226
+	<section>
227
+	    <title>
228
+		<function moreinfo="none">prefix2domain()</function>
229
+	    </title>
230
+	    <para>
231
+		Build a new &uri; if it is necessary. Returns 1 when the translation was made or there
232
+		was nothing to translate (user part of the &uri; is empty or it does not match the
233
+		prefix parameter). Returns -1 in error cases.
234
+	    </para>
235
+	    <example>
236
+		<title><function>prefix2domain</function> usage</title>
237
+		<programlisting format="linespecific">
238
+...
239
+prefix2domain();
240
+...
241
+</programlisting>
242
+	    </example>
243
+	</section>
244
+    </section>
245
+    <section>
246
+	<title>Installation & Running</title>
247
+	<para>Notes about installation and running.</para>
248
+    </section>
249
+</chapter>
250
+
251
+<!-- Keep this element at the end of the file
252
+Local Variables:
253
+sgml-parent-document: ("pdt.sgml" "Book" "chapter")
254
+End:
255
+-->