.\" Man page generated from reStructuredText. . . .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 .. .TH "FUD" "8" "Mar 13, 2024" "3.8.2" "Cyrus IMAP" .SH NAME fud \- Cyrus IMAP documentation .sp Provide information about user mailboxes .SH SYNOPSIS .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C \fBfud\fP [ \fB\-C\fP \fIconfig\-file\fP ] [ \fB\-U\fP \fIuses\fP ] [ \fB\-T\fP \fItimeout\fP ] [ \fB\-D\fP ] .ft P .fi .UNINDENT .UNINDENT .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\(aqs mailbox, and how many messages are recent for that user. .sp \fBfud\fP reads its configuration options out of the \fI\%imapd.conf(5)\fP 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=\(dqfud\(dq listen=\(dqfud\(dq prefork=1 proto=\(dqudp\(dq\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. .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C #!/usr/bin/perl use Socket; print( \(dqEnter fud hostname: \(dq ); $hostname = <>; chomp( $hostname ); print( \(dqEnter username to query: \(dq ); $username = <>; chomp( $username ); socket( FUD, PF_INET, SOCK_DGRAM, getprotobyname( \(dqudp\(dq ) ) or die( \(dqfailed to create udp socket: $!\(dq ); $ipaddr = inet_aton( $hostname ); $portaddr = sockaddr_in( \(aq4201\(aq, $ipaddr ); $fud_query = $username . \(aq|user.\(aq . $username; send( FUD, \(dq$fud_query\(dq, 0, $portaddr ) == length( $fud_query ) or die( \(dqfailed to send fud query: $!\(dq ); recv( FUD, $fud_response, 512, 0 ) or die( \(dqrecv() failed: $!\(dq ); print( \(dqFUD responded: $fud_response\en\(dq ); exit( 0 ); .ft P .fi .UNINDENT .UNINDENT .SH OPTIONS .INDENT 0.0 .TP .B \-C config\-file Use the specified configuration file \fIconfig\-file\fP rather than the default \fI\%imapd.conf(5)\fP\&. .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 \(dqbug\(dq 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 \fI\%imapd.conf(5)\fP, \fI\%cyrus.conf(5)\fP .SH AUTHOR The Cyrus Team, Nic Bernstein (Onlight) .SH COPYRIGHT 1993–2024, The Cyrus Team .\" Generated by docutils manpage writer. .