File: ifcico.8

package info (click to toggle)
ifmail 2.14tx8.10-22
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 3,816 kB
  • ctags: 4,126
  • sloc: ansic: 30,317; perl: 4,955; yacc: 835; makefile: 732; sh: 426; cpp: 235; lex: 206; awk: 24
file content (303 lines) | stat: -rw-r--r-- 8,357 bytes parent folder | download | duplicates (13)
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
.\" Set up \*(lq, \*(rq if -man hasn't already set it up.
.if @@\*(lq@ \{\
.	ds lq "
.	if t .ds lq ``
.	if !@@\(lq@ .ds lq "\(lq
.\}
.if @@\*(rq@ \{\
.	ds rq "
.	if t .ds rq ''
.	if !@@\(rq@ .ds rq "\(rq
.\}
.de Id
.ds Rv \\$3
.ds Dt \\$4
..
.de Sp
.if n .sp
.if t .sp 0.4
..
.TH IFCICO 8 "September 24, 1998" "2.14" "FTN mailer"
.UC 4
.SH NAME
.B	ifcico
\- Establish connections with other FTN nodes.
.PP
.br
.SH SYNOPSIS
.B	ifcico
.RB [ -h ]
.RB [ -x "<verbosity>]"
.RB [ -I "<file>]"
.RB [ -r0 "|" 1 "]" 
.RB [ -n  "<phone>]"
.RB [ -l "<ttydevice>]"
.B node
.PP
.B      ifcico
.RB [ -h ]
.RB [ -x "<verbosity>]"
.RB [ -I "<file>]"
.RB [ -r0 "|" 1 "]"
.RB [ -t0 "|" 1 "]"
.RB "" -a "<inetaddr>[:<port>]"
.B node
.PP
.B	ifcico tsync
| 
.B yoohoo 
| 
.B **EMSI_INQC816
.PP
(this implies slave mode)
.SH DESCRIPTION
.B Ifcico
stands for "Internet - Fidonet Copy In / Copy Out", this is a
FidoNet(r) compatible transport agent.  Currently it supports FTS-0001,
YooHoo/2U2 and EMSI handshake protocols, Xmodem (untested), Telink
(untested), Modem7 (untested), SEAlink w/overdrive and crash recovery,
Bark file and update requests, WaZOO protocols: DietIFNA, plain Zmodem
(aka ZedZip, EMSI flag "ZMO"), ZedZap and Hydra, WaZOO file and update
requests (nodelist flag should be XA). Password protected requests are
not implemented. There are plans to implement Janus protocol in the
future.
.PP
There is also a special protocol optimized to use over TCP/IP connection,
contributed by Stanislav Voronyi <stas@uanet.kharkov.ua>, it is identified
by EMSI proto code TCP (not registered).
.PP
Outbound directory structure is BinkleyTerm compatible, with domains and
point subdirectories (full 5d).  There are separate "listed" and
"protected" inbound directories for the incoming sessions with the nodes
present in the nodelist(s) and with nodes that have a password assigned
respectively.  Files received during an outbound session are always put
into the "protected" directory. (Only "protected" directory is looked up
by ifunpack by default).
.PP
"Magic" file request processors are executable files placed in the
"magic" directory.  If request is made for a file with matching name,
the executable from the "magic" directory is run, and its stdout sent to
the requester.  Full requester's address, in the form "John Smith of
1:234/56.7" is passed to the executable in the command line.  See
"misc/FILES" for an example of a magic request processor.  Non-
executable files in the "magic" directory are "references".  If a
request is made for a file with matching name, the file is read line by
line, and request re-made for the name found in each line.  Up to 5
levels of recursion are allowed.
.PP
To run
.I ifcico
in master mode, you must make dialout devices read/writable for
.I ifcico,
-B and
do the same for the directory where your uucp locks
are created (usually /var/lock/).
.PP
To make
.I ifcico
work in answer mode, you need an FTN-able getty.  Linux "standard"
.IR getty_ps ,
and Gert Doering's
.I mgetty
(from the
.I mgetty+sendfax
package) and later versions have fidonet support built-in. Getty must
distinguish incoming FidoNet type calls, and start
.I ifcico
with one parameter:
.PP
.TS
tab (@);
l l.
FTS-0001 call:@"ifcico tsync"
FTS-0006 call:@"ifcico yoohoo"
EMSI call:@"ifcico **EMSI_....."
.TE
.PP
(in the latter case the received EMSI packet should be passed without
trailing CR).
.PP
If you are using
.IR getty_ps,
don't forget to create the file /etc/default/uugetty with the contents
similar to the following (case sensitive):
.PP
FIDO=/usr/local/lib/fnet/ifcico
.br
EMSI=yes
.PP
When called without parameters,
.I ifcico
runs in slave mode and determines the type of inbound session itself.
This mode may be used when
.I ifcico
runs as an internet or ISDN daemon.
.PP
To make
.I ifcico
scan for pending outbound mail and do appropriate calls, start it with
"-r1" flag.  To force polling of particular nodes, specify these nodes
in the command line (addresses should be in domain notation, e.g.
"ifcico f23.n5020 f155.n5020").  The latter implies master mode
(-r1).  Note that "hold" packets and files, as well as file requests, do
not cause the node to be polled.
.PP
Inbound directory is created automatically if it does not exist, along
with the "tmp" subdir. The latter is used while receiving files. After
being successfully received, the files are moved up to the "inbound"
directory.  "protinbound" and "listinbound" directories accept files
received during password protected sessions and session with the nodes
present in the nodelist(s) respectively.
.PP
.I Ifcico
can use text format nodelists in original (MS/DOS) form with
<CR><LF>'s as well as in UNIX form, with <LF>'s only.  When you get
a fresh nodelist, or change the "nodelist" statements in the config
file, you must rebuild index with
.I ifindex
program.
.PP
For outgoing calls, status files are created for nodes, with the extention
".sts".  These are ascii files containg three decimal numbers in a single
line:
.PP
.B time retries code
.PP
.B time
is the last call attempt time (attempts failing with "retry time
not reached" do not count).  It is unsigned long representing the number
of seconds since the epoch.
.br
.B retries
is the number of consequitve call attempts made that returned
"call failed" or "could not establish session".  This field is zeroed
when call succeeds.
.br
.B code
is the return code of the last attempt.
.PP
.I nlpatch
program compiles a new version of the nodelist from the old
nodelist and nodediff.
.PP
.SH OPTIONS
.B \-h
	Display a short help message.
.PP
.B \-x Verbosity
	Set the debug verbosity
.B Verbosity
may be a number from 0 to 32 to set 'on' bits from 1 to number, or
a string of letters where 'a' = bit 1, 'b' = bit 2, etc. up to bit 26.
.PP
.B \-I File
	Use the alternate configuration file
.B File.
.PP
.B \-r Role
	1 - master, 0 - slave. default is 0 (slave mode) if no
.B node
is provided; else the default is 1 (master mode).
.PP
.B \-a Inetaddr
	Tell an internet address 
.B Inetaddr
to make a connection by TCP/IP. A specific port can be given (
.B \-a Inetaddr:Port
).
The default is the one given by
.B fido
in 
.B /etc/services.
.PP
.B \-t Mode
	0 - TCP, 1 - Telnet-Vmodem. Tells the mode to use for TCP/IP
connections, the default is TCP mode (-t0)
.PP
.B \-n Phone
        For modem conections, this overrides the phone number given in the nodelist
.PP
.B \-l TtyDevice
        For modem connections, this overrides the tty value give in the config
file
.PP
.B Node
	This is the FTN addres of the node to call. The addres must be 
in the format "[pNN.]fNN.nNN[.zNN[.domain]]".
.PP
.B tsync 
| 
.B yoohoo 
| 
.B **EMSI_INQC816
	Those values are typically given by an FTN-able getty (
.B mgetty
or
.B getty_ps
), they determine the type of FTN protocol to use. They imply slave mode.
.PP
.SH "RETURN CODES"
.PP
.I ifcico
returns maximum return code for all calls made. Codes are as follows:
.PP
.TS
tab (@);
l l.
0@Successfull call
1@Dialout port unavailable
2@Dial failed (no "CONNECT" or TCP connection failed)
3@Could not reset the modem (no "OK")
4@System locked
5@Retry time not reached
6@Fatal error in nodelist lookup
7@Call prohibited by config options
8@Phone number unavailable
9@No matching ports defined
10@Unused
>10@Session failures (not defined yet)
30@Could not establish session
.TE
.SH FILES
.TP
.B $IFLIBDIR/config
	Runtime configuration file.
.TP
.B /etc/services
	Determines the default port number for
.B fido,
the port used by ifcico for tcp connections.
.TP
.B nodelist.???
	A list of nodes in an FTN network.
.I ifcico
uses it by compiling it with
.B ifindex
.TP
.B $BINDIR/ifindex
	compiles a nodelist so
.I ifcico
can use it.
.TP
.B $BINDIR/ifstat
	show statistics of calls, etc.

.SH SEE ALSO
ifmail(8), ifindex(8), ifinfo(8), ifstat(8), 
ifpack(8), ifunpack(8), iftoss(8), mgetty(8), getty(1)
.PP
.SH ACKNOWLEDGEMENTS
Some ideas taken from Fidogate/RFmail package, written by Teemu Torma
and hacked by Martin Junius.
.br
Some tcp code taken from JE version, written by Tsuneo Tanaka <ttan@twics.com>
.PP
Hydra protocol support by Christof Meerwald <cmeerw@htl.fh-sbg.ac.at>
.PP
.if t \(co
1993, 1994 Eugene Crosser
.PP
This is free software. You can do what you wish with it
as long as this copyright notice is preserved.
.PP
Manpage by Pablo Saratxaga <srtxg@chanae.alphanet.ch>