Provided by: isdneurofile_3.12.20071127-0ubuntu11_amd64 bug


       eftd - ISDN EUROFILE file transfer server


       As this is alpha test software, options might change with each release!

       eftd  [-a  [ACCESS_FILE]]  [-IlsV?] [-d LEVEL] [-D MASK] [-b LOGFILE] [-l LEVEL] [-L MASK]
       [-U FALLBACK_USER_ID] [-x ADDR]


       eftd eftd allows clients to connect to your machine via the ISDN and to transfer files  by
       means  of  the  EUROFILE  transfer  protocol. That protocol is specified by ETSI norms ETS
       300-075 and ETS 300-383.

       Unless the -s option is given, the server loops forever waiting for  incoming  connections
       and forks a child process for each connection received.


       -a     Expects a string argument interpreted as a file name.  If eftd is compiled with the
              CONFIG_EFTD_WUAUTH option, eftd reads ACCESS_FILE and uses the  contents  for  user
              authentication  similarly to wu-ftpd's ftpaccess file. See eftaccess(5) for further

       -b     Expects a string argument  interpreted  as  a  file   name.   Communication  events
              selected  by the -l or -L option are logged (appended) to the file specified by the
              option's argument. (This is the 'LogBook' file in terms of ETS 300  383,  thus  the
              'b').   If   this   option   is   omitted,   a   system   dependent  default  (i.e.
              /var/log/eftd.log) is used. Opening of the LogBook file can be supressed simply  by
              not suppling any -l or -L option.

       -d     Expects  an  integer  argument  which  is  interpreted  as a log level. Protocol or
              internal events up to the level are logged to stderr.

              For levels 0 - 3, see the -l option.

              Higher values include more events in the log, such as low level protocol  and  call
              traces and temporarily inserted debugging output statements.

              Use  of  -d  as well as level > 3 is primarily intended for debugging purpose. This
              also implies that the output caused by log levels > 3 is not documented and  likely
              to change between releases.

       -D     The  bitmask  argument  allows  for  low level grained control of stderr output. It
              overrides previous -I and augments -d options.  For  maximum  amount  of  debugging
              output  use "-D -1". As this is really intended to be used for low level debugging,
              examine   the   eftp4linux   sources   (start   by   reading   the   source    file
              src/lib/tdu_user.h) if you really want to use this option on your own.

       -I     Logs  the  contents  of  /dev/isdnctrl to stderr. For this to work, other processes
              reading /dev/isdnctrl (i.e.  isdnlog) should be stopped  before).  This  option  is
              intended for debugging purpose only.

       -l     The  integer  argument  specifies the log level for selecting the events written to
              the LogBook file (as specified by the -b option). Levels are

              0 No events at all.

              1 Important events related to session start and end (login and logout)

              2 Important events during each session.  Also  adds  some  events  related  session
              start/stop of minor priority.

              3 Other minor priority events.

              >3  Low  level  events.  As  these are primarily useful for debugging purpose, it's
              probably better (but not strictly necessary) to log them by means of the -d option.
              See the latter for more info.

              this  log  feature is currently new, extremly unfinished, incomplete and subject to
              improvements (volunteers welcome) and not my highest priority  item.   Thus,  don't
              expect the current format of the messages to be fixed forever.

       -L     Conceptually  similar  to  -D  (see  the  latter).  Allows fine grained control for
              selecting the events logged to the LogBook (-b) file.

       -x     The string type argument should consist of up to 15 digits which specify  the  X.25
              [X.121/X.301]  address the servers listens on for incoming connections. As EUROFILE
              is usually used with ISO-8208 X.25 DTE-DTE mode, you should use the empty string as
              argument  here,  which is the default. Thus, it is extremely unlikely that you want
              to use this option at all.

              This option can be given two times, allowing the server to listen on two  different
              x25 addresses simultaneously.

       -s     Single  process  mode.  If  this  option is given, the server just serves the first
              incoming connection and exits when the session is finished.  It  does  not  fork  a
              child process for serving that connection.

              This  is  mainly  useful  for running eftd under the control of a debugger (such as
              gdb). If you want to debug eftd like this, also make sure that the '-m'  option  is
              not  set.  (As  the -m option forks an additional supervisor process, -s alone will
              not result in a debuggable single process eftd). Further,  as  the  single  process
              will  not  run  under  root permissions any longer after an EUROFile connection has
              been accepted, eftd can not clear isdn connections on its own, you may need  to  do
              so yourself.

       -m     Multiple connection mode. If this option is given, the server immidiately continues
              to accept new connections without waiting for the just accepted session to  finish.
              The  number  of  simultaneous  served  connections is not internally limited by the
              server. However, upper  limits  might  be  imposed  by  the  mumber  of  physically
              available  isdn  B-channels, the number of running incoming isdn network interfaces
              configured with "encap x25iface", or by the authentification procedure (i.e.  group
              limits configured in /etc/isdn/eftaccess).

              When  multi  mode  is  activated,  the  server forks an extra privileged supervisor
              process for each accepted  connections  which  takes  care  of  clearing  the  isdn
              connection  after  the session is finished. Thus, if N EURFILE sessions are active,
              there will be 2N+1 eftd processes.

       -UUSER When this option is specified, a login attempt with a user name not in  the  passwd
              database will be using USER as the login name (with empty password).

              You  might  use  '-U  ftp'  if  you  have configured anonymous access and want that
              unknown user ids should be handled as an anonymous eft access.   Unknown  user  ids
              frequently  occur  as  many  clients insert some dummy user name in the t_associate
              request if no user name was configured.

       -V     Prints version.

       -?     prints usage message.


       The server supports most of the EUROFILE primitives,  including  navigation  and  extended
       directory format.  However, T-RENAME, T-DELETE, and LIST are not supported yet.

       If  eftd  is  compiled with the CONFIG_EFTD_WUAUTH option, user access is granted using an
       authentication procedure derived from wu-ftpd, the Washington University ftp server. Refer
       to the eft_wuauth man page for further details.

       Transfers  can  be  logged  to /var/log/eft_xferlog. The format of this file is compatible
       with the wu-ftpd xferlog format. Refer to the eft_xferlog man page for details.  Also  see
       event logging below.

       eftd can also be invoked (and then stopped) by means of the /etc/init.d/isdneurofile shell

            /etc/init.d/isdneurofile start|stop

       This script reads configuration parameters (usually from  /etc/isdn/eft.conf).  You  might
       want to edit this file before starting it.

       Besides starting eftd, the script also takes care of setting up the necessary isdn network
       interfaces. The script can be used by sysvinit to automatically start eft service as  part
       of  the  system boot precedure. (But make sure it is called after isdn and x25 modules are


       The EUROFILE protocol identifies files to be transferred by means of a so called `transfer
       name'. According to ETS 300-383/ETS 300-075, a transfer name may constist up to 8 keywords
       separated by the '/' character. Each keyword may constist of up to 12  printable  (between
       0x21 and 0x7e) ascii characters except '(', ')', '*', bytes.

       The  transfer  names  generated  by  eftd (and which will be displayed in response to a T-
       Directory request) will always conform to this.

       eftd will also accept transfer names within incoming request (T-Load and  T-Save  request)
       that do not conform to the standards.  If a transfer name in an incoming request is valid,
       it is processed by a mapping procedure which resolves to a file name. Transfer  names  not
       conforming to the standard are not subject to mapping. They are treated literally as POSIX


       eftd maps transfer names to file names by means of two different methods. If  the  current
       working  directory  is writable by the user, a database is used that maps between transfer
       names and file names.

       The database is currently implemented by means  of  symlinks  which  are  created  in  the
       working  directory.  Symlinks  matching  .++eft_fn.TRANSFER_NAME  contain  the  file  name
       corresponding to TRANSFER_NAME. Symlinks matching .++eft_tn.FILE_NAME contain the transfer
       name  name  corresponding  to  FILE_NAME.  You can clean tha database by just removing all
       those symlinks (rm .++eft_[ft]n.*).

       If the directory is not writable by the user, an algorithm based ob the file/transfer name
       and the file's inode number is used to map between transfer names and file names.


       eftd provides for two event logging channels. The first is always stderr, the other is the
       so called LogBook file (an ETS 300 383 term) (which might be altered by means  of  the  -b

       The  amount  of  events  logged can be controlled by a log level, which may be supplied by
       means of the -d (for stderr channel) or the -l (for LogBook file channel). An  even  finer
       grained  (but  even  less  portable)  control  is  possible  by means of bitmask arguments
       supplied with the -D or -L option.

       For debugging purpose, it is  somtimes  helpful  to  write  the  standard  error  messages
       syncronized  with  the logged events into the same stream.  Thus, for generating debugging
       logs, it is preferable to use the stderr channel. For debugging  certain  very  low  (i.e.
       Linux  kernel)  level protocol problems, it is even desirable to write the isdn events (as
       read from /dev/isdnctrl) to the same stream. eftd provides for a -I option to achieve this
       goal as close as possible (however, synchronity cannot be granted here).

       Wenn  large log levels are used, huge amounts of stderr output will be generated. Thus you
       might consider to redirect stderr to a disk file in such a case.

       Writing to a log file might block the eftd process, which might result in timing  problems
       if  the  process  is  blocked  for  a  very  long  (several seconds) time. Thus, it is not
       advisable to log events to files (i.e. located on unreliable NFS servers) which are  likly
       to cause such blocking.


       The  majority  of  DOS/Windows  based  clients  implicitly assume that file transfer names
       fulfil DOS file name conventions and don't distinguish between upper and lower case names.
       This is in violation to the ETSI norms and might cause inter-working problems.  The server
       provides for a compatibility mode to inter-operate with such clients. In order to activate
       that  compatibility mode, prepend a '+' character to the login name when connecting to the
       server. See the doc/INTERWOKING file for details.

       If you intend to offer files for public download via eft, it is recommended  to  use  file
       names that match DOS conventions only.

RESTRICTIONS (also called BUGS :-)

       Renaming  and  deleting  (T-RENAME,  T-DELETE)  of files is not supported yet.  The S-LIST
       primitive (recursivly listing all directories) is not supported.

       Compression is not supported. This is not a serious limitation  nowadays  because  on-disk
       compression  formats like [g]zip are widley available, compress better, and also save disk
       storage.  When eftp has established the connection, it issues the "eftp>" prompt and waits
       for  commands  that  will be read from standard input.  Interactive input can be edited by
       means of the GNU readline library.


       manpage written from usage text file by Paul Slootman <>.