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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
|
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY lisa "<application>LISa</application>">
<!ENTITY package "tdenetwork">
<!ENTITY reslisa "<application>resLISa</application>">
<!ENTITY kappname "&lisa;"><!-- replace kapp here -->
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE"><!-- change language only here -->
]>
<book lang="&language;">
<bookinfo>
<title>The &lisa; Handbook</title>
<authorgroup>
<author>
<firstname>Alexander</firstname>
<surname>Neundorf</surname>
<affiliation>
<address><email>neundorf@kde.org</email></address>
</affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<copyright>
<year>2001</year>
<holder>Alexander Neundorf</holder>
</copyright>
<date>2001-07-07</date>
<releaseinfo>0.01.00</releaseinfo>
<abstract>
<para>&lisa; is intended to provide a kind of <quote>network
neighborhood</quote>, but only relying on the TCP/IP protocol stack, no
<acronym>SMB</acronym> or anything else required.</para>
<para>This is the handbook to both the <acronym>LAN</acronym>
Information Server (&lisa;) and the Restricted <acronym>LAN</acronym>
Information Server (&reslisa;)</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>tdenetwork</keyword>
<keyword>LAN</keyword>
<keyword>network</keyword>
<keyword>network neighborhood</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<para>&lisa; is intended to provide a kind of <quote>network
neighborhood</quote>, but only relying on the TCP/IP protocol stack, no
smb or whatever.</para>
<para>It is completely independent from &kde;/&Qt;.</para>
<para>The list of running hosts is provided via <acronym>TCP</acronym>
port 7741.</para>
<para>&lisa; supports two ways of finding hosts:</para>
<orderedlist>
<listitem>
<para>You give &lisa; a range of <acronym>IP</acronym> addresses, then
&lisa; will send <acronym>ICMP</acronym> echo requests to all given
<acronym>IP</acronym> addresses, and wait for the answers.</para>
</listitem>
<listitem>
<para>You can tell &lisa; to execute <command>nmblookup</command>
<option>"*</option>. The command line tool
<command>nmblookup</command> must be installed from the Samba package.
<command>nmblookup</command> <option>"*"</option> sends a broadcast to
the attached networks, and all hosts running <acronym>SMB</acronym>
services will answer this broadcast.</para>
</listitem>
</orderedlist>
</chapter>
<chapter id="how-it-works">
<title>How it works</title>
<para>In the configuration file you provide a range of IP-addresses
which &lisa; should check to see whether they are running.</para>
<para>In the most simple case this could be your network
address/subnetmask, then &lisa; would check every possible host of your
network to see if it is running.</para>
<para>The hosts are checked using <acronym>ICMP</acronym> echo
requests. To be able to send and receive <acronym>ICMP</acronym> echo
requests and replies the program has to open a so-called <quote>raw
socket</quote>. Therefore it needs <systemitem
class="username">root</systemitem> privileges. This socket is opened
right after the start of the program, after successfully opening the
socket root privileges are dropped immediately (see
<filename>main.cpp</filename> and
<filename>strictmain.cpp</filename>).</para>
<para>If you configure &lisa; so that it also uses
<command>nmblookup</command>, it will <literal>popen("nmblookup
\"*\"")</literal> and then parse the results.</para>
<para>Since the <acronym>ICMP</acronym> requests and the broadcasts can
cause some network traffic if there are more than one such server
running in one network, the servers cooperate with each other. Before
they start pinging (or <command>nmblookup</command>), they send a
broadcast on port 7741.</para>
<para>If somebody answers this broadcast, they will retrieve the
complete list of running hosts via <acronym>TCP</acronym> port 7741 from
this host and will not start to ping (or
<command>nmblookup</command>).</para>
<para>If nobody answers, the host which sent the broadcast will start
pinging the hosts (or <command>nmblookup</command>) and then open a
socket which listens for the mentioned broadcasts. If the host received
an answer to his broadcast, it won't have the socket for listening to
the broadcasts open. So usually exactly one of the servers will have
this socket open and only this one will actually ping (or
<command>nmblookup</command>) the hosts. </para>
<para>In other words, the servers are lazy, they work like <quote>I will
only do something if nobody else can do it for me</quote>.</para>
<para>There is another feature which reduces the network load.</para>
<para>Let's say you configured &lisa; to update every 10 minutes. Now
you don't access your server very often. If nobody accesses the server
for the last update period, the server will update (either itself or
from the one which actually does the work) and then double its update
period, &ie; the next update will happen after 20 minutes.</para>
<para>This will happen 4 times, so if nobody accesses the server with
update period 10 minutes for a long time, its update interval will
increase up to 160 minutes, almost three hours. If then somebody
accesses the data from the server, he will get an old list ( up to 160
minutes old). With accessing the server will reset its update interval
to its initial value, &ie; 10 minutes and immediately start updating if
the last update is more than these 10 minutes over. This means if you
get a very old list, you can try some seconds later again and you should
get a current version.</para>
<para>This will have fast effect for the servers, which don't ping (or
nmblookup) theirselves, since only one user usually accesses them, and
it will have less effect for the server which does the pinging (or
<command>nmblookup</command>), since this server is accessed from all
other servers in the network.</para>
<para>This way it is possible that many hosts in a network run this
server, but the net load will remain low. For the user it is not
necessary to know wether there is a server (&ie; a name server or
fileserver or whatever) in the network which also runs &lisa;. He can
always run &lisa; locally and &lisa; will detect if there is one,
transparently to the user.</para>
<para>The first client for &lisa; is an ioslave for &kde; 2, so the user
can enter there <userinput>lan://localhost/</userinput> or
<userinput>lan:/</userinput>, which will both contact &lisa; on the own
system.</para>
<para>If there is a machine which runs all the time and the user knows
that this machine also runs &lisa;, he can use his &lisa; client
directly with this server (would be with the mentioned ioslave
<userinput>lan://the_server_name/</userinput>).</para>
<para>If you don't want that your &lisa; takes part in the broadcasting,
but always does the pinging itself, make it use another port with the
command line option <option>--port</option> or <option>-p</option>. This
is not recommended!</para>
<para>If you send <command>SIGHUP</command> to &lisa;, it will reread
its configfile. If you send <command>SIGUSR1</command> to &lisa;, it
will print some status information to stdout.</para>
<para>The data provided over the socket has a simple format:
<computeroutput><decimal ip address in network byte order><one space
0x20><full name of the host><a terminating
'\0'><newline '\n'<</computeroutput>
and the last line
<computeroutput>0 succeeded<'\n'></computeroutput>
</para>
<para>For example,</para>
<screen><computeroutput>17302538 some_host.whatever.de
18285834 linux.whatever.de
17827082 nameserver.whatever.de
0 succeeded</computeroutput></screen>
<para>This should make it easy parseable.</para>
<para>If there are very strict security rules in your network, some
people might consider the pinging a potential attack. If you have
problems with this, try the restricted version, &reslisa;.</para>
</chapter>
<chapter id="reslisa">
<title>&reslisa;</title>
<para>If you hav very strict security rules in your network or you don't
want to have another port open or whatever, you can use
&reslisa;.</para>
<para>With &reslisa; you can't ping whole networks and address ranges,
you can give &reslisa; up to currently 64 hosts by their names in its
config file. These will be pinged. You are still able to use
<command>nmblookup</command>.</para>
<para>&reslisa; will also only provide the information over a unix
domain socket, &ie; not over the network. The name of the socket is
<filename>/tmp/resLisa-YourLoginname</filename> so &reslisa; can be
safely run by more users on one machine.</para>
<para>Since it should also not produce a security risk of any kind it is
safe to install &reslisa; setuid <systemitem
class="username">root</systemitem>. <systemitem
class="username">root</systemitem> privileges will be dropped right
after startup (see <filename>strictmain.cpp</filename>), they are only
needed to create a raw socket for sending the <acronym>ICMP</acronym>
echo requests.</para>
<para>It will also not send or receive broadcasts. The first client for
this is also an ioslave for &kde; 2 (<userinput>rlan:/</userinput> in
&konqueror; for example.)</para>
</chapter>
<chapter id="config-file-format">
<title>The Configuration File</title>
<para>Now an example config file:</para>
<screen>
PingAddresses = 192.168.100.0/255.255.255.0;192.168.100.10-192.168.199.19;192.168.200.1;192-192.168-168.100-199.0-9;
PingNames = bb_mail;
AllowedAddresses = 192.168.0.0/255.255.0.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1 #also try nmblookup
FirstWait = 30 #30 hundredth seconds
SecondWait = -1 #only one try
#SecondWait = 60 #try twice, and the second time wait 0.6 seconds
UpdatePeriod = 300 #update after 300 secs
DeliverUnnamedHosts = 0 #don't publish hosts without name
MaxPingsAtOnce = 256 #send up to 256 ICMP echo requests at once
</screen>
<sect1 id="pingaddresses">
<title><option>PingAddresses</option></title>
<para>This is probably the most important entry.</para>
<para>Here you say which addresses will be pinged. You can specify
multiple ranges, they are divided by semicolons.</para>
<para>There are four possible ways to define addresses:</para>
<variablelist>
<varlistentry>
<term>net address/network mask</term>
<listitem>
<para>192.168.100.0/255.255.255.0, &ie; an <acronym>IP</acronym> address
and the assigned network mask.</para>
<para>This doesn't have to be the network address and netmask of your
machine. For example, if you have 10.0.0.0/255.0.0.0 as your own
address, you could specify 10.1.2.0/255.255.255.0 if you are only
interested in these addresses. The combination <acronym>IP</acronym>
address-network mask must be divided by a slash <quote>/</quote> and the
address does not have to be a real network address, it can also be a
host address of the desired network, &ie; 10.12.34.67/255.0.0.0 is the
same as 10.0.0.0/255.0.0.0 .</para>
</listitem>
</varlistentry>
<varlistentry>
<term>a range of <acronym>IP</acronym> addresses</term>
<listitem>
<para>For example: 192.168.100.10-192.168.199.19</para>
<para>An <acronym>IP</acronym>-address where pinging will start and an
<acronym>IP</acronym>-address where pinging will end.</para>
<para>Both addresses must be divided by a <quote>-</quote>.</para>
<para>In this example this would produce 199-100+1=100, 100*256=25.600,
25.600+(19-10+1)=25.590 addresses</para>
</listitem>
</varlistentry>
<varlistentry>
<term>An <acronym>IP</acronym> address, as represented by ranges of each
of the four decimal numbers</term>
<listitem>
<para>An <acronym>IP</acronym> address can be represented by its four
decimal numbers, and you can specify ranges four each of these four
numbers: 192-192.169-171.100-199.0-9
</para>
<para>In this example all <acronym>IP</acronym> addresses with first
number 192, second number from 168 to 168, third number from 100 up to
199 and last number from 0 up to 9 will be pinged. This would give
1*1*100*10=1.000 addresses.</para>
<para>This is probably only useful in very seldom cases. Here you have
to provide ranges for every four numbers, always divided by
<quote>-</quote>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Single <acronym>IP</acronym> addresses or host names</term>
<listitem>
<para>The <acronym>IP</acronym> address or host name of any machine you
are particularly interested in.</para>
</listitem>
</varlistentry>
</variablelist>
<para>It is also valid to leave this entry empty.</para>
</sect1>
<sect1 id="pingnames">
<title><option>PingNames</option></title>
<para>Here you can additionally specify hosts to ping using their names.
The names have to be divided by semicolons.</para>
<para>It is also valid to leave this entry empty.</para>
</sect1>
<sect1 id="allowedaddresses">
<title><option>AllowedAddresses</option></title>
<para>This is also very important. &lisa; will only ping addresses,
accept clients and answer broadcasts from addresses, which are covered
by the addresses given in this line. You can add up to 32 network
addresses/network masks or single addresses. Divide them by ; and don't
put empty space between the addresses!</para>
<para>For example, 192.168.0.0/255.255.0.0;192.169.0.0</para>
<para>A complete network and a single address are valid. Always make
this as strict as possible, usually your network address/subnetmask is a
good choice.</para>
</sect1>
<sect1 id="broadcastnetwork">
<title><option>BroadcastNetwork</option></title>
<para>This entry contains exactly one network address/subnet mask. To
this network broadcasts will be sent. Usually this should be your own
network address/subnetmask, for example: 192.168.0.0/255.255.0.0</para>
</sect1>
<sect1 id="searchusingnmblookup">
<title><option>SearchUsingNmblookup</option></title>
<para>Here you can give <parameter>0</parameter> or
<parameter>1</parameter>. <parameter>1</parameter> means that &lisa;
will execute <command>nmblookup</command> <option>"*"</option> and parse
the output from this command. This produces less network traffic than
the pinging, but you will only get hosts which have a
<acronym>SMB</acronym> service running (&Windows; machines or machines
running samba).</para>
<para>If you enable this option and also give <acronym>IP</acronym>
addresses to ping, then <command>nmblookup</command> will be executed
first and then the pinging will start. Then only addresses will be
pinged, which were not already delivered from
<command>nmblookup</command>. This should slightly decrease the network
load.</para>
</sect1>
<sect1 id="firstwait">
<title><option>FirstWait</option></title>
<para>If &lisa; pings, &ie; if it sends the <acronym>ICMP</acronym> echo
requests, it sends a bunch of requests at once, and the it will wait for
the number of hundredth seconds you specify here. Usually values from 5
to 50 should be good, the maximum is 99 (gives 0.99 seconds, a very long
time). Try to make this value as small as possible while still finding
all running hosts.</para>
</sect1>
<sect1 id="secondwait">
<title><option>SecondWait</option></title>
<para>After &lisa; has sent the echo requests the first time, it can be
possible that some hosts were not found. To improve the results, &lisa;
can ping a second time. This time it will only ping hosts, from which it
didn't receive answers. If you have good results with pinging only once,
you can disable the second time with setting SecondWait to
<userinput>-1</userinput>.</para>
<para>Otherwise it might be a good idea to make this value a little bit
bigger than the value for <option>FirstWait</option>, since the hosts
which were not found on the first try, are probably slower or further
away so they might take some milliseconds longer to answer. Usually
values from 5 to 50 should be good or -1 to disable the second scan.
The maximum is 99 (gives 0.99 seconds, a very long time).</para>
</sect1>
<sect1 id="updateperiod">
<title><option>UpdatePeriod</option></title>
<para>This is the interval after which &lisa; will update. After this
time &lisa; will again ping or <command>nmblookup</command> or get the
list of hosts from the &lisa; server which actually does the
pinging.</para>
<para>Valid values are between 30 seconds and 1800 seconds (half an
hour). If you have a big network, don't make the interval too small (to
keep network load low). Values from 300 to 900 seconds (5 to 15 minutes)
might be a good idea.</para>
<para>Keep in mind that the update period is doubled if nobody accesses
the server, up to 4 times, so the interval will become 16 times the
value given here and will be reseted to the value given here if somebody
accesses the server.</para>
</sect1>
<sect1 id="deliver-unnamed-hosts">
<title><option>DeliverUnnamedHosts</option></title>
<para>If an answer to an echo request from an IP address was received,
were &lisa; could not determine a name, it will be only delivered over
the port if you set this to 1.</para>
<para>I am not really sure if this is a useful feature, but maybe there
are some infrastructure devices in your network without assigned names,
so they don't have to be published. Set this to 0 if you want to keep
them secret ;-) If unsure, say 0.</para>
</sect1>
<sect1 id="max-pings-at-once">
<title>MaxPingsAtOnce</title>
<para>When sending the pings (echo requests), &lisa; sends a bunch of
these at once and then waits for the answers. By default there are 256
pings sent at once, usually you should not need the change this
value. If you make it much bigger, the internal receive buffers for the
answers to the echo requests may become to small, if you make it to
small, the updating will be slower.</para>
</sect1>
<sect1 id="examples">
<title>Three more example files</title>
<example>
<title>FIXME</title>
<para>You are member of a small network with 24 bit network mask, &ie;
up to 256 hosts:</para>
<screen>
PingAddresses = 192.168.100.0/255.255.255.0
AllowedAddresses = 192.168.100.0/255.255.255.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 0 #don't use nmblookup
FirstWait = 20 #20 hundredth seconds
SecondWait = 30 #30 hundredth seconds on the seconds try
UpdatePeriod = 300 #update after 300 secs
DeliverUnnamedHosts = 0 #don't publish hosts without name
</screen>
</example>
<example>
<title>Configuration file for hosts running <acronym>SMB</acronym>
only</title>
<para>You are only interested in hosts running <acronym>SMB</acronym>
services and you don't have routers in your network:</para>
<screen>
AllowedAddresses = 192.168.100.0/255.255.255.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1 #use nmblookup
UpdatePeriod = 300 #update after 300 secs
DeliverUnnamedHosts = 0 #don't publish hosts without name
</screen>
</example>
<example>
<title>Configuration file using both <command>nmblookup</command> and
pinging</title>
<para>The same network, but here both nmblookup and pinging is
used.</para>
<screen>
PingAddresses = 192.168.100.0/255.255.255.0
PingNames = bb_mail
AllowedAddresses = 192.168.0.0/255.255.0.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1 #also try nmblookup
FirstWait = 30 #30 hundredth seconds
SecondWait = -1 #only one try
#SecondWait = 60 #try twice, and the second time wait 0.6 seconds
UpdatePeriod = 300 #update after 300 secs
DeliverUnnamedHosts = 0 #don't publish hosts without name
MaxPingsAtOnce = 256 #send up to 256 ICMP echo requests at once
</screen>
</example>
<example>
<title>Configuration file for &reslisa;</title>
<para>And now a configuration file for &reslisa;, PingAddresses is not
used by &reslisa;, neither is BroadcastNetwork.</para>
<screen>
PingNames = bb_mail;some_host;some_other_host
AllowedAddresses = 192.168.0.0/255.255.0.0
SearchUsingNmblookup = 1 # use nmblookup
FirstWait = 30 #30 hundredth seconds
SecondWait = -1 #only one try
#SecondWait = 60 #try twice, and the second time wait 0.6 seconds
UpdatePeriod = 300 #update after 300 secs
DeliverUnnamedHosts = 1 #also publish hosts without name
MaxPingsAtOnce = 256 #send up to 256 ICMP echo requests at once
</screen>
</example>
</sect1>
</chapter>
<chapter id="command-line-options">
<title>Command Line Options and Other Usage</title>
<para>The following command line options are supported:</para>
<variablelist>
<varlistentry>
<term><option>-v</option>, <option>--version</option></term>
<listitem>
<para>Prints brief version information.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option>, <option>--help</option></term>
<listitem>
<para>Gives an overview of the command line options</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option>, <option>--unix</option></term>
<listitem>
<para>Search at first for
<filename>$<envar>HOME</envar>/.lisarc</filename>, then for
<filename>/etc/lisarc</filename>. This is the default behavior.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-k</option>, <option>--kde1</option></term>
<listitem>
<para>Search first for
<filename>$<envar>HOME</envar>/.kde/share/config/lisarc</filename>, then
for
<filename>$<envar>KDEDIR</envar>/share/config/lisarc</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-K</option>, <option>--kde2</option></term>
<listitem>
<para>Looks for the file <filename>lisarc</filename> in every folder
returned by running <userinput><command>kde-config</command>
<option>--path</option> <parameter>config</parameter></userinput></para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option>,
<option>--config=</option><parameter>FILE</parameter></term>
<listitem>
<para>Read <parameter>FILE</parameter> and no other configuration
file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option>, <option>--port</option>
<parameter>PORTNR</parameter></term>
<listitem>
<para>Start the server on this portnumber. If you use this, &lisa;
won't be able to cooperate with other &lisa;'s on the network. This
option is not available for &reslisa;</para>
</listitem>
</varlistentry>
</variablelist>
<para>If you send the Hangup-Signal to &lisa; or &reslisa;, it will reread its
configuration file (<userinput><command>killall</command> <option>-HUP
lisa</option></userinput>).</para>
<para>If you send the User1-Signal to &lisa; or &reslisa;, it will print
some status information to the standard output
(<userinput><command>killall</command> <option>-USR1
lisa</option></userinput>). You won't see anything if the console from
which &lisa;/&reslisa; was started has terminated.</para>
</chapter>
<chapter id="credits-and-license">
<title>Credits and Licenses</title>
<para>&lisa; and &reslisa; copyright 2000, 2001, Alexander
Neundorf</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
<para>Have fun, Alexander Neundorf <email>neundorf@kde.org</email></para>
&underFDL;
&underGPL;
</chapter>
<appendix id="installation">
<title>Installation</title>
<para>&lisa; and &reslisa; need a libstdc++ (it uses only the
string-class from it), it <emphasis>does not</emphasis> need either &Qt;
nor &kde;.</para>
&install.compile.documentation;
<sect1 id="other-requirements">
<title>Other Requirements</title>
<para>Both &reslisa; and &lisa; open a so called <quote>raw
socket</quote> to send and receive <acronym>ICMP</acronym> echo requests
(pings). To do this, they need <systemitem
class="username">root</systemitem> privileges.</para>
<para>&lisa; offers a service on <acronym>TCP</acronym> port 7741, and
should be installed by <systemitem class="username">root</systemitem>
and started when the system comes up. It depends greatly on your &OS;
how to achieve this.</para>
<para>&reslisa; is intended to be started per user, it doesn't offer
anything to the network. It needs to be installed setuid <systemitem
class="username">root</systemitem>.</para>
<para>If you use the <userinput>rlan</userinput> ioslave from &kde; 2,
&reslisa; can be started automatically.</para>
<para>&lisa; reads the file <filename>lisarc</filename>, &reslisa; reads
the file <filename>reslisarc</filename>. If you want to be able to
configure both from &kcontrol;, you have to start them using the command
line switch <option>-K</option>.</para>
<para>For more information where they look for configuration files read
the chapter on <xref linkend="command-line-options"/>.</para>
</sect1>
</appendix>
</book>
|