CUCIPOP(1)CUCIPOP(1)NAMEcucipop - Cubic Circle POP3 daemon
SYNOPSIS
/usr/local/libexec/cucipop [-qaYdPUSDAT] [-E age] [-p port]
/usr/local/libexec/cucipop -v
DESCRIPTION
Cucipop is a mailbox server which is a fully compliant implementation
of Internet RFC1939, Post Office Protocol Version 3. The program
allows remote access to UNIX mailboxes.
Cucipop can be started standalone or from within inetd(8).
OPTIONS-v Cucipop will print its version number, display its compile time
configuration and exit.
-q Quiet mode, do not log statistics of regular sessions to sys‐
logd(8).
-a Audit mode, also log statistics of regular sessions accessing
empty mailboxes.
-Y Assume traditional Berkeley mailbox format, ignoring any Content-
Length: fields.
-d Force interactive debug mode, accept commands from the tty.
-P Disable the optional USER and PASS command.
-U Disable the optional UIDL command.
-S Sabotage the UIDL command. Cucipop will return different UIDL
values for every session, hence causing mailclients that attempt
to leave mail on the server to pick up the entire mailbox every
time. Turning this option on will violate RFC1939.
-D Autodelete messages that have been retrieved. As soon as the QUIT
command has been received or the connection drops, cucipop will
behave as if those messages which have been collected using the
RETR command were also specified to the DELE command. Turning
this option on will violate RFC1939.
-E age
Expire (in conjunction with the -S or -D options) messages that
are older than age only. Age is specified in seconds. You can
increase the unit of measure by appending an s, m, h, w, M or y.
-A Disable the optional APOP command.
-T Disable the optional TOP command.
-p port
Bind to a different port.
EXAMPLES
Typically pop3 service is defined in services(5) as follows:
pop3 110/tcp
In order to start cucipop from within inetd(8), the following entry in
inetd.conf(5) would be suitable:
pop3 stream tcp nowait root /usr/local/libexec/cucipop cucipop-Y
If your site gets many hits from popclients, it would be preferable to
start cucipop standalone as in:
/usr/local/libexec/cucipop -Y
Your typical BOFH setting would be:
/usr/local/libexec/cucipop -YaSE 6w
FILES
/etc/passwd the default authentication
/usr/local/etc/vpop.db virtual host authentication, see the
makevpopdb(8) man page on how this file is cre‐
ated
/var/spool/cucipop/state.db
AI state information and bulletin history
/var/spool/cucipop/bulletins/nn
00 through 63 optional bulletin files in regular
mailbox format
/var/mail/$LOGNAME system mailbox
/var/mail/virtual.dom.ain/$LOGNAME
virtual host system mailbox
/var/mail/$LOGNAME.lock
lockfile for the system mailbox
/var/mail/virtual.dom.ain/$LOGNAME.lock
lockfile for the virtual host system mailbox
_????`hostname` temporary `unique' zero-length files created by
cucipopSEE ALSO
RFC1939, RFC822, makevpopdb(8), inetd(8), inetd.conf(5), services(5),
procmail(1), mail(1), binmail(1), uucp(1), sendmail(8), biff(1),
comsat(8), lockfile(1), formail(1), syslog.conf(5)BUGS
When two or more cucipop sessions are accessing the same mailbox simul‐
taneously, and at least one of them tries to update the mailbox, mild
mailbox corruption might result and the other cucipop sessions will
abort as soon as they detect unaccounted mailbox changes. The (unlike‐
ly) worst case scenario would result in some messages not being deleted
and/or gaining some trailing garbage. Due to the ongoing consistency
checks, existing messages or content is unlikely to be lost.
If a local mailreader alters the mailbox content after cucipop has
started and before cucipop has ended, cucipop will panic and abort the
update as soon as it detects unaccounted mailbox changes.
If the local maildelivery program is appending to the mailbox while cu‐
cipop is starting up, and the intervals between successive writes of
the same mail are larger than 32 seconds, then cucipop will, mistaken‐
ly, show the last message in the mailbox (which is currently being
written by the maildelivery agent) to be shorter than it actually is.
If the last message is marked for deletion in this session, cucipop
will notice the increased length shortly before actually deleting the
message and abort the update at that point.
The unique-id listing returned by the UIDL command is based on a hash‐
value calculated on-the-fly over the message content. The actual val‐
ues depend on the wordsize of the machine involved (defined as uidl_t
in the source). Also, since it is just a hashvalue (constructed out of
a true hash over the entire message and the length of the message),
there is a very slight chance that it will produce a false positive.
A continued Content-Length: field is not handled correctly.
If the TOP command is being used, the statistics of transferred octets
will become mildly inaccurate (too high, depending on the number of un‐
transferred newlines).
Cucipop will never create a nonexisting mailbox.
An empty first argument after a POP command is ignored (thanks to some
silly popclients that violate the standard).
When running in standalone daemon mode, an idle cucipop deamon will al‐
ways leave at least one zombie process behind. In order to improve
performance, zombie processes are only collected when new clients con‐
nect.
The Received field that is being tacked in front of a message misses
the trailing "; date-time" addendum to make it fully RFC822 compliant.
MISCELLANEOUS
To access the virtual host mailboxes, cucipop uses a fixed userid of
vpop.
Cucipop is NFS-resistant and eight-bit clean.
The format of the regular syslog statistics is as follows: username
originating-IP-address session-duration, retrieved messages (retrieved
bytes), messages left in mailbox (octets left in mailbox).
The state.db database is autocleansed at a rate of one entry per pop
access (entries that have been unused for more than three months are
purged).
NOTES
Calling up cucipop with the -h or -? options will cause it to display a
command-line help page.
SOURCE
Cucipop has graciously been made available by Cubic Circle and is
Copyright (c) 1996-1998, S.R. van den Berg, The Netherlands
AUTHOR
Stephen R. van den Berg, Cubic Circle, The Netherlands
<srb@cuci.nl>
BuGless 1998/05/11 CUCIPOP(1)