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.