.\" Man page generated from reStructuredText. . .TH "FUD" "8" "February 13, 2023" "3.6.1" "Cyrus IMAP" .SH NAME fud \- Cyrus IMAP documentation . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp Provide information about user mailboxes .SH SYNOPSIS .sp .nf \fBfud\fP [ \fB\-C\fP \fIconfig\-file\fP ] [ \fB\-U\fP \fIuses\fP ] [ \fB\-T\fP \fItimeout\fP ] [ \fB\-D\fP ] .fi .SH DESCRIPTION .sp \fBfud\fP 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. .sp \fBfud\fP reads its configuration options out of the imapd.conf(5) file unless specified otherwise by \fB\-C\fP\&. .sp \fBfud\fP will automatically proxy any and all FUD requests to the appropriate backend server if it is running on a Cyrus Murder frontend machine. .sp To set up the FUD daemon, add this to your cyrus.conf: .sp \fBfud cmd="fud" listen="fud" prefork=1 proto="udp"\fP .sp and to /etc/services: .sp \fBfud 4201/udp # Cyrus IMAP FUD Daemon\fP .SS Client .sp There is no specific FUD client. This shows how one might access FUD. .sp .nf #!/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( \(aq4201\(aq, $ipaddr ); $fud_query = $username . \(aq|user.\(aq . $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\en" ); exit( 0 ); .fi .SH OPTIONS .INDENT 0.0 .TP .B \-C config\-file Use the specified configuration file \fIconfig\-file\fP rather than the default imapd.conf(5)\&. .UNINDENT .INDENT 0.0 .TP .B \-U uses The maximum number of times that the process should be used for new connections before shutting down. The default is 250. .UNINDENT .INDENT 0.0 .TP .B \-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. .UNINDENT .INDENT 0.0 .TP .B \-D Run external debugger specified in debug_command. .UNINDENT .SH FILES .sp /etc/imapd.conf, /etc/cyrus.conf .SH BUGS .sp Though not really a bug, \fBfud\fP will silently ignore any requests that it does not consider valid. .sp Also not really a bug, \fBfud\fP 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. .sp \fBfud\fP 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. .SH SEE ALSO .sp imapd.conf(5), cyrus.conf(5) .SH AUTHOR The Cyrus Team, Nic Bernstein (Onlight) .SH COPYRIGHT 1993–2023, The Cyrus Team .\" Generated by docutils manpage writer. .