Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 538396f428419dccc210a32fab3b4653 > files > 12

bincimap-1.1.4-1mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html401/loose.dtd">
<HTML>

<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
  <META HTTP-EQUIV="Content-Language" CONTENT="en">

  <TITLE>Binc IMAP - FAQ</TITLE>
  <META NAME="revisit-after" CONTENT="14 days">
  <META NAME="keywords" CONTENT="Binc IMAP FAQ checkpassword daemontools tcpserver xinetd Maildir qmail">
  <META NAME="description" CONTENT="Andreas Aardal Hanssen">
  <META NAME="copyright" CONTENT="Copyright Andreas Aardal Hanssen 2002, 2003">
  <META NAME="distribution" CONTENT="global">
  <META NAME="author" CONTENT="Andreas Aardal Hanssen">
  <LINK REL="stylesheet" HREF="bincimap.css" TYPE="text/css">
  <LINK REL="icon" HREF="/favicon.ico" TYPE="image/ico">
  <LINK REL="shortcut icon" HREF="/favicon.ico">

</HEAD>

<BODY BGCOLOR="#000000">

<TABLE WIDTH="95%" ALIGN="CENTER" CELLSPACING="0" CELLPADDING="4">
<TR>
<TD BGCOLOR="#004444">

<TABLE WIDTH="99%" ALIGN="CENTER" CELLSPACING="0" CELLPADDING="4">
  <TR>
    <TD CLASS="headtext" BGCOLOR="#226666" ALIGN="LEFT">
        Binc IMAP - FAQ
    </TD>
    <TD CLASS="bodytext" BGCOLOR="#226666" ALIGN="RIGHT">
        <A HREF="http://www.gnu.org/licenses/gpl.html">GNU General Public License</A><BR>
        Andreas Aardal Hanssen &lt;andreas@hanssen.name&gt;
    </TD>
  </TR>
  <TR>
    <TD CLASS="bodytext" BGCOLOR="#FFFFFF" COLSPAN="2"></TD>
  </TR>
</TABLE>

<DIV CLASS="bodytext">

<UL>
  <LI>General questions
    <BLOCKQUOTE>
      <P><A HREF="#q1">Q: Why did you start writing Binc IMAP?</A></P>
      <P><A HREF="#q2">Q: What is "Binc"?</A></P>
    </BLOCKQUOTE>
  </LI>
  <LI>About Binc IMAP
    <BLOCKQUOTE>
      <P><A HREF="#q3">Q: Why should I use Binc IMAP, and not the
      other Maildir capable IMAP servers?</A></P>
      <P><A HREF="#q4">Q: So Binc IMAP doesn't focus on security?</A></P>
      <P><A HREF="#q5">Q: Is Binc IMAP <I>fast</I>?</A></P>
      <P><A HREF="#q6">Q: Is Binc IMAP a stable, secure server?</A></P>
    </BLOCKQUOTE>
  </LI>
  <LI>Configuration
    <BLOCKQUOTE>
      <P><A HREF="#q7">Q: Which configuration files are used by Binc IMAP?</A></P>
      <P><A HREF="#q12">Q: How can I tell Binc IMAP where my Maildirs are?</A></P>
      <P><A HREF="#q13">Q: How can I get SSL to work?</A></P>
    </BLOCKQUOTE>
  </LI>
  <LI>Usage
    <BLOCKQUOTE>
      <P><A HREF="#q14">Q: How do I find my folders in Binc IMAP?</A></P>
    </BLOCKQUOTE>
  </LI>
  <LI>Authentication
    <BLOCKQUOTE>
      <P><A HREF="#q8">Q: How does Binc IMAP authentication work?</A></P>
      <P><A HREF="#q9">Q: How can I write my own Binc IMAP authenticator?</A></P>
    </BLOCKQUOTE>
  </LI>
  <LI>Compiling
    <BLOCKQUOTE>
      <P><A HREF="#q15">Q: How do I fix this: "Unable to find required function getopt_long"?</A></P>
      <P><A HREF="#q16">Q: How do I fix this: "Unable to find the crypto library which is part of OpenSSL"?</A></P>
      <P><A HREF="#q17">Q: How do I fix this: "Unable to find the ssl library which is part of OpenSSL"?</A></P>
    </BLOCKQUOTE>
  </LI>
  <LI>Installing
    <BLOCKQUOTE>
      <P><A HREF="#q10">Q: How do I install Binc IMAP?</A></P>
      <P><A HREF="#q11">Q: Why does Binc IMAP (RPM) install under /opt?</A></P>
    </BLOCKQUOTE>
  </LI>
</UL>

<HR>

<A NAME="q1">
<B><U>Q: Why did you start writing Binc IMAP?</U></B>
</A>

<BLOCKQUOTE>
<P>First of all, I work a lot with qmail servers, and there haven't
really been many Maildir capable IMAP4rev1 servers around. I used
Courier-IMAP for years, but after loads of abuse from the Courier
community and its author, I found that earth had room for one more
IMAP4rev1 server.</P>

<P>Enjoying the simplicity of qmail-pop3d, I decided to create an IMAP
server that was equally simple to install and use, and that could work
side-by-side with qmail-pop3d to provide IMAP service to qmail
users.</P>

<P>I had already written an IMAP server for proxying POP3-accounts at
work, and I had so many good experiences from that project that I
beleived that I could really write a great IMAP server.</P>

<P>Well, it's up to you to determine how great it is, but I swear it has
it's advantages over the existing Maildir capable IMAP servers out
there.</P>
</BLOCKQUOTE>

<HR>

<A NAME="q2">
<B><U>Q: What is "Binc"?</U></B>
</A>

<BLOCKQUOTE>

<P>This should be quite obvious: Binc Is Not Courier-IMAP :-).</P>

</BLOCKQUOTE>

<HR>

<A NAME="q3">
<B><U>Q: Why should I use Binc IMAP, and not the other Maildir
capable IMAP servers?</U></B>
</A>

<BLOCKQUOTE>

<P>Binc IMAP is a <I>light weight alternative</I> to existing IMAP
servers. It's easier to install, easier to maintain, and it's easy to
integrate into existing (perhaps legacy) authentication
environments.</P>

<P>Binc IMAP is small and simple. The total number of lines of source
code is much smaller in Binc than in the other servers. Version
1.0.24-1 of Binc IMAP has about 18000 lines of code. There are only
17000 lines of hand written code, including comments. Few lines in
itself does <I>not</I> imply that the code is better, but it's
certainly much easier to maintain.</P>

<P>It is also written in C++, using standard C++ data components. If
this server crashes, it'll most likely abort, and not suffer a
segmentation fault, which is the most common reason for exploits.</P>

<P>It was designed before written(<A HREF="#dnote">*</A>), using an
object oriented design all the way.  A modular, simple design with few
lines of code means that it's easier to uncover bugs, and it's easier
to fix them without disturbing the rest of the source code.</P>

<P>This is free software, and you are free to choose the IMAP server
that suits your needs the best. Here are some of Binc IMAP's fellow
Maildir capable IMAP servers:</P>

   <UL>
   <LI>Courier-IMAP
     <UL>
       <LI>Programming language is C</LI>

       <LI>Supports many extensions</LI>

       <LI>Only supports Maildir</LI>

       <LI>Is <A HREF="http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&frame=right&rnum=1&thl=0,1553865664,1553836963,1553824098,1553820864,1553535859,1553412059,1553325106,1553340515,1553325122,1553123052,1553008781&seekm=Pine.NXT.4.30.0003102143130.16382-100000%40Tomobiki-Cho.CAC.Washington.EDU#link1"><I>not compliant with the IMAP4rev1 protocol</I></A> as defined in
       RFC2060, and it's author has no plans on making it compliant. I
       have had several complaints to the Courier community, among
       others that sequence sets are not interpreted correctly. Search
       on Google Groups for "courier imap +compliant Mark Crispin" for
       more info on Courier's disregards for Internet standards.</LI>

       <LI>The community is in general <A TARGET=_blank HREF="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=ad8hs8%242uqs%241%40FreeBSD.csie.NCTU.edu.tw&amp;rnum=1&amp;prev=/groups%3Fq%3Dcourier%2Bimap%2Bbroken%2Bfetch%2Baardal%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3Dad8hs8%25242uqs%25241%2540FreeBSD.csie.NCTU.edu.tw%26rnum%3D1"><I>hostile</I></A> and not open for input.</LI>

       <LI>It uses its own homebrew TCP wrapper. Modern TCP wrappers
       are advanced enough to do a better job.</LI>

       <LI>Courier-IMAP v1.6.2.20030119 consisted of over <B>80000</B>
       lines of C code. That's less than UW-IMAP's <B>125000</B>
       lines, but it's still very much code.</LI>

       <LI>One thing that Courier-IMAP has done right for the IMAP
       world is to provoke other open source authors to write better
       servers. :-)</LI>
     </UL>
   </LI>
   <LI>Dovecot IMAP
     <UL>
       <LI>Programming language is C</LI>

       <LI>Supports Maildir and mbox</LI>

       <LI>Uses indexes to speed up mailbox access.</LI>

       <LI>Has <A
       HREF="http://dovecot.procontrol.fi/list/dovecot/2003-02/msg00047.html">race
       conditions</A> where mails can disappear.</LI>

       <LI>Focuses on security, with among others, privilege
       seperation. Change logs show a history of mailbox curruption. I
       can't confirm how big this problem is.</LI>

       <LI>Uses its own homebrew TCP wrapper.</LI>

       <LI>Approx. <B>50000</B> lines of code in v0.99.7.</LI>
     </UL>
   </LI>
   </UL>

<P>For comparison, here are some key points about Binc IMAP:</P>

   <UL>
     <LI>Programming language is C++</LI>

     <LI>Only supports Maildir</LI>

     <LI>The main goal is to provide a compliant IMAP server that
     works.</LI>

     <LI>Focuses on portability, easy install, easy server
     maintenance, easy source code maintenance &amp; build.
     Over time, this will prove to be the clue to providing
     a secure service.</LI>

     <LI>Uses xinetd or tcpserver, or similar TCP wrappers. I beleive
     that developers who write <I>good TCP wrappers</I> should focus
     on that, and those who write <I>good IMAP servers</I> should not
     waste time debugging code that is not relevant to the
     project.</LI>

     <LI>Binc has approximately <B>18000</B> lines of code in
     v1.0.24.</LI>
   </UL>

</BLOCKQUOTE>

<HR>

<A NAME="q4">
<B><U>Q: So Binc IMAP doesn't focus on security?</U></B>
</A>

<UL>
  <LI>Security comes naturally with a service with a clean, correct
  design and no bugs</LI>

  <LI>Security can not be claimed. To prove that a server is not
  secure, one must simply find a way to exploit it. <I>Claiming</I>
  that a server is secure is like claiming that nobody can find a way
  to break it.</LI>

  <LI>The only true argument is to <I>prove</I> that it's secure. And
  that's almost impossible.</LI>

  <LI>Binc IMAP focuses on creating a service with a clean, correct
  design with no bugs. Time and experience will tell wether it's a
  secure server or not.</LI>
</UL>

<HR>

<A NAME="q5">
<B><U>Q: Is Binc IMAP <I>fast</I>?</U></B>
</A>

<P>Binc IMAP focuses its optimizations on the type of activity that
dominates the lifetime of an IMAP connection, which is idle time.</P>

   <UL>
     <LI>Pending updates: When a client issues NOOP, CHECK or similar,
     the server must give the latest changes to the depository. If no
     changes have been made, this operation will with Binc IMAP
     consist of only two stat-calls, which is extremely fast.</LI>

     <LI>FETCH: Multiple subsequent operations on the same message
     will never cause the message to be parsed more than twice - once
     for header-only operations and once for full message info.</LI>

     <LI>STATUS: The status command is typically used to check for
     new messages in all subscribed mailboxes. If no changes have been
     made to a mailbox, the status command in Binc IMAP consists of
     only two stat calls, which is extremely fast.</LI>

     <LI>SEARCH: The search keys are weighted, and the search query is
     sorted with lightest-search first. This prevents unnecessary
     processing of slow search keys if the light search keys do not
     match the message set.</LI>
   </UL>

<P>Some activity is not optimal in Binc IMAP, and searching for random
text in particular is no faster than a sequential search using
standard UNIX tools such as <I>grep</I>. Searching for text in a large
mailbox is quite rare, however, compared to the random activity of
close-to-idle clients.</P>

<HR>

<A NAME="q6">
<B><U>Q: Is Binc IMAP a stable, secure server?</U></B>
</A>

<BLOCKQUOTE>
<P>It's hard to write bug free programs, especially with a complex
protocol like IMAP4rev1. Any attempts to verify code usually comes
down to the limitations in the author's experience with
verification. Or as
<A HREF="http://www-cs-faculty.stanford.edu/~knuth/">Donald Knuth</A>
said (my favorite quote):</P>

<P><I>"Beware of bugs in the above code; I have only proved it correct,
 not tried it."</I></P>

<P>Knuth teaches that it can be easy to prove that your code is
correct, but who's going to prove that your <I>proof</I> is correct?
Proving your proof might turn out to be close to impossle. What you
can have, is conventions and principles that prevent bugs from showing
up in your programs. Here are mine:</P>

<UL>
  <LI>Don't reinvent the wheel. Unless absolutely necessary, write
  code that doesn't exist already.</LI>
  <LI>Spend your time on making it work as simple as possible,
  then start making optimizations.</LI>
  <LI>Don't let optimization obfuscate your source code.</LI>
  <LI>Find a better algorithm, or if you can't get the speed that you
  want, change to a more efficient programming language.</LI>
  <LI>Handle all error conditions.</LI>
  <LI>Avoid buffers altogether.</LI>
  <LI>Don't hand write parsers unless strictly necessary - they are
  hard to get right.</LI>
  <LI>For G's sake, be compliant! If the standard has flaws, then
  <I>help fix the flaws</I> - don't break the standard.</LI>
</UL>

<P>Now I don't pay $2.56^n where n equals the total number of
bugs discovered in Binc IMAP, but I will certainly give you
many pats on the back if I get the chance. :-)</P>

<P>I could go on and on, but the point is that I have tried my best to
perform all the expected tasks in the most logical and obvious way
possible, using all my C++ security experience to aid me. But at the
time of writing, the server is young, the community small, and we are
only in Beta.  So time will have to tell how stable and secure we
are.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q7">
<B><U>Q: Which configuration files are used by Binc IMAP?</U></B>
</A>

<BLOCKQUOTE>
<UL>
  <LI>/etc/opt/bincimap/supervise/imap/run</LI>
  <LI>/etc/opt/bincimap/supervise/imaps/run</LI>  
  <LI>/etc/opt/bincimap/xinetd/imap</LI>
  <LI>/etc/opt/bincimap/xinetd/imaps</LI>    
</UL>

<P>These files are for administrators. You can set up Binc IMAP's
authentication method here.</P>

<UL>
<LI>/etc/opt/bincimap/bincimap.conf</LI>
</UL>

<P>This first file is for setting global administrator settings, such
as paths to the host's SSL certificate, timeouts for idle clients and
so on. It need not be readable for anyone but root.</P>

<UL>
<LI>$HOME/.bincimap</LI>
</UL>

<P>This file is for individual settings, such as what the exact path
is to this user's Maildir (for instance, /var/mail/$USER/Maildir). It
is currently not used for much.</P>
</BLOCKQUOTE>

<HR>

<A NAME="q12">
<B><U>Q: How can I tell Binc IMAP where my Maildirs are?</U></B>
</A>

<BLOCKQUOTE>

<P>The configuration file has a section called <B>Mailbox</B>. You can
set the <B>path</B> to your users' Maildir there, relative to the
users' home areas.</P>

<P>If your Maildirs are not is users' homeareas, for instance if your
Maildir depository has a <B>/var/mail/user/</B> structure, you can
safely set <B>path</B> to <B>""</B>. Your authenticator must then
return the full path of the Maildir.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q13">
<B><U>Q: How can I get SSL to work?</U></B>
</A>

<BLOCKQUOTE>

<P>SSL in Binc IMAP is quite simple to set up. First you need a PEM
encoded certificate file. In some distributions, you can generate this
file by changing to /usr/share/ssl/certs and running "make". A script
will give you the option to build a PEM file.</P>

<P>When you have a PEM file, edit <B>bincimap.conf</B> in the SSL
section . You need to add an item called <B>pem file</B> and set it to
point to your PEM certificate. The path name must be absolute. For
example:</P>

<PRE>
  SSL {
    pem file = "/usr/share/ssl/certs/mypemfile.pem",
    ca file = "",
    cipher list = "!ADH:RC4+RSA:HIGH:MEDIUM:LOW:EXP:+SSLv2:+EXP",
    verify peer = "yes"
  }
</PRE>

<P>The item <B>ca file</B> in <B>bincimap.conf</B> tells Binc IMAP
which file on your system contains a bundle of <B>certificate
authorities</B>.</P>

<P>Next comes the item called <B>cipher list</B>. It tells Binc IMAP
about which ciphers you want your server to support. This depends on
what version of OpenSSL you're running.</P>

<P>Last comes an option called <B>verify peer</B>. This tells Binc
IMAP to attempt to verify the client's identity.</P>

<P>Visit <A
HREF="http://httpd.apache.org/docs-2.0/ssl/ssl_intro.html">this link
at the Apache.org website</A> to read more about SSL and TLS
principles.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q14">
<B><U>Q: How do I find my folders in Binc IMAP?</U></B>
</A>

<BLOCKQUOTE>

<P>All folders in Binc IMAP must be subfolders of INBOX.</P>

<P>This means that if you want to create a folder called <B>work</B>,
you have to create <B>INBOX.work</B> or <B>INBOX/work</B>.</P>

<P>For some graphical IMAP clients like <B>Outlook</B> (look out!) or
<B>Mozilla Mail</B>, this means you need to <I>right click</I> on
<B>INBOX</B> and select "Create subfolder".</P>

<P>Note: Remember to <I>subscribe</I> to your folders.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q8">
<B><U>Q: How does Binc IMAP authentication work?</U></B>
</A>

<BLOCKQUOTE>
<P>Binc IMAP is spawned by xinetd, tcpserver or any other TCP wrapper
running as root.</P>

<P>It immediately goes into pre-authentication mode, where it expects
the client to enter STARTTLS if the client is not already running an
SSL connection. When in TLS/SSL mode, it will accept clear text
authentication.</P>

<P>Binc IMAP uses a generic authentication method which currently only
has support for checkpassword. Binc invokes a checkpassword stub
called bincimap-auth-checkpassword, and sends the username and
password in two environment variables.</P>

<P>The checkpassword stub then forks and the child invokes its first
argument, which typically is /bin/checkpassword. The stub then writes
the username and password to fd 3. checkpassword accepts the password,
and invokes its first argument directly, replacing the checkpassword
process itself.</P>

<P>The program invoked by checkpassword is bincimap-uidpwd. Its sole
purpose is to write the user id, the group id and the user's home
directory to stdout in the following format:</P>

<PRE>uid.gid\n
pwd\n</PRE>

<P>or</P>

<PRE>500.500\n
/home/user\n</PRE>

<P>The uidpwd process then exits, and is caught by the authentication
stub, bincimap-auth-checkpassword. The stub analyzes the exit code of
its child, and reads the child's stdout output if the exit code
indicates that authentication succeeded. It writes the data it read
from the child to its own stdout.</P>

<P>If authentication succeeded, the stub exits with exitcode
<B><U>0</U></B>. If authentication failed, it exits
<B><U>100</U></B>. If there was an internal error with authenticating
the user, it exits <B><U>111</U></B>.</P>

<P>Binc then catches its stub and checks its exit code, and reads data
from the stub's stdout if authentication succeeded.</P>

<P>At the final stage, Binc IMAP can chroot to the user's home
directory + "/Maildir" and setuid/setgid to operate under this user's
priviledges.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q9">
<B><U>Q: How can I write my own Binc IMAP authenticator?</U></B>
</A>

<BLOCKQUOTE>

<P>You can write your own authenticator in Perl, Python, bash, C++,
Java or whichever language you like. And it's <B>easy</B>.</P>

<UL>
  <LI>1.0.24 and older: Write a standalone executable that reads the username and
  password from the environment. <I>Note that there are security issues with using
  this method on some platforms.</I>The environment variables are:
    <PRE>
BINC_USERID
BINC_PASSWD
    </PRE>
  </LI>
  <LI>From 1.0.25 and on: Read the user ID and password from
  <I>stdin</I> in <A
  HREF="http://cr.yp.to/proto/netstrings.txt">netstring</A>
  format. The first string is the user ID and the second is the
  password, as in the following example (note the trailing comma,
  and there is no line feed):

    <PRE>
7:andreas,8:mysecret,
    </PRE>

  <LI>Make the stub do your piece of magic: figure out wether the
  password is correct or not, and find the user's home
  directory. Write these to stdout if authentication was successful,
  in the format described in the former question.</LI>

  <LI>Edit your xinetd or supervise "run" files so that your stub is
  called as the first non-option argument after bincimapd, as in the
  following example:
    <PRE>
/opt/bincimap/bin/bincimapd                \
   --conf=/etc/opt/bincimap/bincimap.conf  \
   --ssl                                   \
/usr/local/bin/myauthenticator
    </PRE>
  </LI>
</UL>

</BLOCKQUOTE>

<HR>

<A NAME="q15">
<B><U>Q: How do I fix this: "Unable to find required function getopt_long"?</U></B>
</A>

<BLOCKQUOTE>

<P>The <U>getopt_long</U> function is a GNU extension to the POSIX.2 <U>getopt</U>
function. It allows long arguments such as <B>--enable-ssl</B>.</P>

<P>Unfortunately, this function is not defined on all
platforms. Specifically, it is known to not exist on FreeBSD.</P>

<P>For FreeBSD users, install <U>gnugetopt</U> from ports. Otherwise,
post this problem with as much relevant info as you can provide, to
the mailing list.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q16">
<B><U>Q: How do I fix this: "Unable to find the crypto library which is part of OpenSSL"?</U></B>
</A>

<BLOCKQUOTE>

<P>The <U>crypto</U> library is a part of <A HREF="http://www.openssl.org">OpenSSL</A>. This
library is required for Binc IMAP to compile.</P>

<P>If you can not get Binc IMAP to compile with OpenSSL, there should
be a <A HREF="dl/RPMS">static RPM package</A> available for download.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q17">
<B><U>Q: How do I fix this: "Unable to find the ssl library which is part of OpenSSL"?</U></B>
</A>

<BLOCKQUOTE>

<P>The <U>crypto</U> library is a part of <A HREF="http://www.openssl.org">OpenSSL</A>. This
library is required for Binc IMAP to compile.</P>

<P>If you can not get Binc IMAP to compile with OpenSSL, there should
be a <A HREF="dl/RPMS">static RPM package</A> available for download.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q10">
<B><U>Q: How do I install Binc IMAP?</U></B>
</A>

<BLOCKQUOTE>

<P>The <I>easiest</I> way to install Binc IMAP on your server is to
follow these instructions:</P>

<UL>
  <LI>Download the RPM from <A HREF="dl/RPMS">http://www.bincimap.andreas.hanssen.name/dl/RPMS</A></LI>
  <LI>Install the RPM</LI>
  <LI>Copy, edit and perhaps symlink the configuration files:
    <UL>
    <LI>with daemontools:
      <UL>
        <LI>ln -s /etc/opt/bincimap/supervise/imap /service/imap</LI>
        <LI>ln -s /etc/opt/bincimap/supervise/imaps /service/imaps</LI>	
      </UL>
    </LI>
    <LI>with xinetd:
      <UL>
        <LI>ln -s /etc/opt/bincimap/xinetd/imap /etc/xinetd.d/imap</LI>
        <LI>ln -s /etc/opt/bincimap/xinetd/imaps /etc/xinetd.d/imaps</LI>
	<LI>service xinetd restart</LI>
      </UL>
    </LI>
    </UL>
  </LI>
  <LI>Check that the service is up by connecting using a standard IMAP client</LI>
</UL>

<P>If you want to build Binc IMAP from source, there's a <B>README</B>
file that gives you the instructions step by step, inside the
tarball. You can also get some clues by inspecting the bundled
<B>bincimap-spec</B> file's <B>install</B> section.</P>

</BLOCKQUOTE>

<HR>

<A NAME="q11">
<B><U>Q: Why does Binc IMAP (RPM) install under /opt?</U></B>
</A>

<BLOCKQUOTE>

<P>The reason for this is that I have tried my best to follow the <A
HREF="http://www.pathname.com/fhs/">File System Hierarchy
Standard</A>.</P>

<P>Binaries go under <B>/opt/bincimap/bin</B></P>

<P>Host specific configuration goes under <B>/etc/opt/bincimap</B></P>

<P>If you want your files elsewhere, there's always the option to build
the project from source. :-)</P>

</BLOCKQUOTE>

<HR>

(<A NAME="dnote">*</A>) Binc IMAP was designed before implementation
started. However, the current implementation deviates from the
original design to some extent. The design is likely to be revised
some time in near future.

<TABLE WIDTH="99%" ALIGN="CENTER" CELLSPACING="0" CELLPADDING="4">
  <TR>
    <TD CLASS="bodytext" BGCOLOR="#FFFFFF"></TD>
  </TR>
  <TR>
    <TD CLASS="headtext" BGCOLOR="#226666">
      <A HREF="http://validator.w3.org/check/referer">
        <IMG BORDER="0" SRC="http://www.w3.org/Icons/valid-html401"
         ALT="Valid HTML 4.01!" HEIGHT="31" WIDTH="88">
      </A>
      <A HREF="http://cr.yp.to/djbdns.html"><IMG BORDER="0" WIDTH="88"
      HEIGHT="31" SRC="djbdns.jpg" ALT="Powered by djbdns!"></A>
      <IMG BORDER="0" WIDTH="88" HEIGHT="30" SRC="binclogo.gif"
      ALT="Powered by Binc IMAP">
    </TD>
  </TR>
</TABLE>

</DIV>
</TD>
</TR>
</TABLE>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>

</BODY>
</HTML>