**fud** ******* Provide information about user mailboxes Synopsis ======== **fud** [ **-C** *config-file* ] [ **-U** *uses* ] [ **-T** *timeout* ] [ **-D** ] Description =========== **fud** is a long lived datagram daemon started from master that provides information about when a user last read their mail, when mail last arrived in a user's mailbox, and how many messages are recent for that user. **fud** reads its configuration options out of the imapd.conf(5) file unless specified otherwise by **-C**. **fud** will automatically proxy any and all FUD requests to the appropriate backend server if it is running on a Cyrus Murder frontend machine. To set up the FUD daemon, add this to your cyrus.conf: "fud cmd="fud" listen="fud" prefork=1 proto="udp"" and to /etc/services: "fud 4201/udp # Cyrus IMAP FUD Daemon" Client ------ There is no specific FUD client. This shows how one might access FUD. #!/usr/bin/perl use Socket; print( "Enter fud hostname: " ); $hostname = <>; chomp( $hostname ); print( "Enter username to query: " ); $username = <>; chomp( $username ); socket( FUD, PF_INET, SOCK_DGRAM, getprotobyname( "udp" ) ) or die( "failed to create udp socket: $!" ); $ipaddr = inet_aton( $hostname ); $portaddr = sockaddr_in( '4201', $ipaddr ); $fud_query = $username . '|user.' . $username; send( FUD, "$fud_query", 0, $portaddr ) == length( $fud_query ) or die( "failed to send fud query: $!" ); recv( FUD, $fud_response, 512, 0 ) or die( "recv() failed: $!" ); print( "FUD responded: $fud_response\n" ); exit( 0 ); Options ======= -C config-file Use the specified configuration file *config-file* rather than the default imapd.conf(5). -U uses The maximum number of times that the process should be used for new connections before shutting down. The default is 250. -T timeout The number of seconds that the process will wait for a new connection before shutting down. Note that a value of 0 (zero) will disable the timeout. The default is 60. -D Run external debugger specified in debug_command. Files ===== /etc/imapd.conf, /etc/cyrus.conf Bugs ==== Though not really a bug, **fud** will silently ignore any requests that it does not consider valid. Also not really a bug, **fud** requires that the anonymous user has the 0 (zero) right on the mailbox in question. This is only a "bug" because 0 is not a standard IMAP ACL bit. **fud** is an experimental interface meant to provide information to build a finger-like service around. Eventually it should be superseded by a more standards-based protocol. See Also ======== imapd.conf(5), cyrus.conf(5)