<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for remle</title>
    <link>http://www.advogato.org/person/remle/</link>
    <description>Advogato blog for remle</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 18 May 2013 14:33:01 GMT</pubDate>
    <item>
      <pubDate>Fri, 15 Nov 2002 03:26:42 GMT</pubDate>
      <title>15 Nov 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=15</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=15</guid>
      <description>&lt;a href="http://www.advogato.org/person/jnewbigin/" &gt;jnewbigin&lt;/a&gt;:&lt;br&gt;
Why qmail? Why not take everything learned from other MTA's and web servers and create something better then the rest? Look at &lt;a href="http://www.kegel.com/c10k.html" &gt;Dan Kegel's&lt;/a&gt; site for inspiration. Send me mail at jeff at virtualbuilder dot com if you want to chat some more.</description>
    </item>
    <item>
      <pubDate>Thu, 12 Sep 2002 18:10:21 GMT</pubDate>
      <title>12 Sep 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=14</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=14</guid>
      <description>What do the words "async i/o" mean to you?
&lt;ul&gt;
&lt;li&gt;Disk i/o
&lt;li&gt;Net i/o
&lt;li&gt;both
&lt;/ul&gt;

&lt;p&gt; What type of i/o do you think of if someone told you a smtp server does async i/o?

</description>
    </item>
    <item>
      <pubDate>Tue, 20 Aug 2002 19:29:43 GMT</pubDate>
      <title>20 Aug 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=13</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=13</guid>
      <description>It's been a while since I've written. For those trying to reduce Spam, check out the company
&lt;a href="http://www.habeas.com/" &gt;Habeas&lt;/a&gt;. It uses copyright law to fight spam. Good stuff. Basically it adds a copyrighted haiku header to your messages if you say you are not a spammer. Others can use those headers to filter good mail into one pile. Basically a white list. A different approach than those trying to identify spam, it simply identifies good mail instead.</description>
    </item>
    <item>
      <pubDate>Mon, 8 Jul 2002 15:35:54 GMT</pubDate>
      <title>8 Jul 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=12</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=12</guid>
      <description>&lt;b&gt;Fun&lt;/b&gt;&lt;br&gt;
&lt;a href="http://www.advogato.org/person/groom/" &gt;groom&lt;/a&gt; checked out my site 
&lt;a href="http://www.migratus.com" &gt;migratus&lt;/a&gt; and tried to email me about it, but I had blocked .fr along with a bunch of other domains one day when I was getting to much spam. Anyhow, being a clever fellow he was able to send me mail from another domain. I've removed the block on .fr.


&lt;p&gt; This weekend I wrote a device driver for linux. It's very simple and doesn't actually talk to any devices. It simply increments a global variable by one every time it is read from. The device returns 2 integers. One integer is a generation, the other a sequence. The generation part should be incremented every time the module is loaded, while the sequence integer is incremented every time the device is read from. There are 2 devices one can read from. One device is meant for C programs that read the data into an integer. It will never return an 'EOF'. Therefore if you want 10 sequences, just read 10 x (2 * sizeof(int)). Then close it. The other device is meant for scripts and returns and ascii string in the form generation:sequence. It returns 'EOF' when just one sequence is read. Writing to the device sets the device to whatever value you write to it.


&lt;p&gt; With &lt;a href="http://www.advogato.org/person/axehind/" &gt;axehind&lt;/a&gt;'s prodding, I've been looking into openMosix. It's is an extremely simple system to setup. He wants to update the userland tools. I didn't want to start that till I understood the oMFS file system. Now that I do (after many questions to the list) I should be able to start some work on it. First thing is to get the kernel-headers RPM working properly.


&lt;p&gt; &lt;b&gt;Work&lt;/b&gt;&lt;br&gt;
After much research, I've decided not to use Apache 2.0 as the basis for my next SMTP server. I'm convinced that async i/o is the way to go. Thanks &lt;a href="http://www.advogato.org/person/raph/" &gt;raph&lt;/a&gt; for mentioning that topic in your diary. My SMTP server system will use ReiserFS for a filesystem and perhaps
&lt;a href="http://www.xmailserver.org/linux-patches/nio-improve.html" &gt;
/dev/epoll&lt;/a&gt; for event notification. I'm not worried about  portability yet. I more interested in raw performance and /dev/epoll seems the best way to go. I've requested that this be open source so others can join in the developement. I'll be posting snippets either way.
</description>
    </item>
    <item>
      <pubDate>Tue, 18 Jun 2002 14:22:59 GMT</pubDate>
      <title>18 Jun 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=11</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=11</guid>
      <description>&lt;a href="http://www.advogato.org/person/raph/" &gt;raph&lt;/a&gt;: Here's an idea. When
someone uses a
person tag, write a recent-log into the person's directory
with the content being the author's name. Then add a 'recent
citations' to the home page that key's off the authenicated
user.


&lt;p&gt; &lt;p&gt; If any Advogato users are bird watchers, I have a bird
watching site based on Advogato code. It's at &lt;a
href="http://www.migratus.com"&gt;www.migratus.com&lt;/a&gt;. There
are some
user interface issues that I need to work on, but any
feedback would be nice.</description>
    </item>
    <item>
      <pubDate>Fri, 3 May 2002 16:48:53 GMT</pubDate>
      <title>3 May 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=10</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=10</guid>
      <description>It's been a while since I've posted. I'm ready to write
another version of the smtp server I wrote for work, but I
would like to use Apache 2.x as the underlying system. I
haven't been able to convince work that this could should be
an open source project. I'm the only hardcore C programmer
here, so having others look at the code would be of
tremendous help.&lt;p&gt;
I've been playing with mod_virgule code.
&lt;a href="http://www.advogato.org/person/StevenRainwater/" &gt;StevenRainwater&lt;/a&gt; has been very responsive
about my needs. I even submitted a patch for a bug, but
Steven found that the bug is much deeper and has posted an
even bigger patch. I'm playing with this code too so I can
use it for a birding site that I've been trying to do for
years. I would be cool if anything could be rated (ie diary
entries, articles, etc). However, it seems like that is
going to take a while to do.&lt;p&gt;
I bought 'The GNU C Library Reference Manual' 2 weeks ago
and did a fast read of it. I like how glibc2 added dynamic
buffer allocations for things like sprintf (ie asprintf).
Also of interest was the hash and tree functions as well as
argp (a getopt alternative). There are a bunch of useful
functions in glibc2 that my linux system doesn't have man
pages for, so the books (it is 2 volumes) are going to be
very useful. Oh, one thing that interested me very much was
that all the stream functions (ie fprint etc) do intristic
locking so that those functions are thread safe. It seems
you get that even if you aren't writing a threaded program.
There are corresponding _unlocked functions if you don't
want locking.&lt;p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 19 Feb 2002 19:25:38 GMT</pubDate>
      <title>19 Feb 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=9</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=9</guid>
      <description>Seems like I only post when I need help!&lt;br&gt;&lt;br&gt;
I've been running my SMTP server for quite a while now (a
month) and I've noticed the following behaviour. Every now
and then a client closes the socket during the DATA phase. I
catch that and discard the message. However, after
re-reading the RFC, I get 2 conflicting ways to handle
this:&lt;br&gt;

&lt;p&gt; &lt;p&gt; one part of the rfc states: 4.1.1.5 RESET (RSET)&lt;br&gt;
&lt;br&gt;
... There are circumstances, contrary to the intent of this
specification, in which an SMTP server may receive an
indication that
the underlying TCP connection has been closed or reset.  To
preserve
the robustness of the mail system, SMTP servers SHOULD be
prepared
for this condition and SHOULD treat it as if a QUIT had been
received
before the connection disappeared.
&lt;br&gt;
&lt;br&gt;
ok, that says treat it as though a quit happened, which just
doesn't sound
right to me. If DATA was issued and I'm waiting to see a
CRLF.CRLF, and
the client closes the connection, I would think that it
would be better
to assume the entire message hasn't been sent.
&lt;br&gt;
however later I see:&lt;br&gt;&lt;br&gt;
4.1.1.10 QUIT (QUIT)&lt;br&gt;
... If the connection is closed prematurely due to
violations
of the above or system or network failure, the server MUST
cancel any
pending transaction, but not undo any previously completed
transaction, and generally MUST act as if the command or
transaction
in progress had received a temporary error (i.e., a 4yz
response).
&lt;br&gt;&lt;br&gt;
which doesn't quite make sense to me because basically it
sounds like this:&lt;br&gt;
DATA -&amp;gt; oops! -&amp;gt; back to MAIL state -&amp;gt; return a 4xx
code
but wait, the socket is closed!&lt;br&gt;
&lt;br&gt;
So does anybody have some words of wisdom?

&lt;p&gt; &lt;p&gt; I'm thinking the correct behaviour is to treat it as the
following:
client closed socket
server treats it as a RSET and QUIT.
&lt;br&gt;&lt;br&gt;
I'm reachable at jeff @ virtualbuilder dot com</description>
    </item>
    <item>
      <pubDate>Mon, 7 Jan 2002 19:57:33 GMT</pubDate>
      <title>7 Jan 2002</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=8</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=8</guid>
      <description>I'm moving on up! &lt;p&gt;
Been a while since I've posted. Basically I've been
optimizing the code. I've replaced several write() calls
with writev, trying to minimize system calls as much as
possible. I'm now starting on better RFC conformance. For
example I must accept postmaster without a domain for a
recipient. Also been thinking of how to get managment to let
me opensource the code.&lt;p&gt;
I signed up to a bunch of yahoo lists to see how the MTA is.
So far no memory leaks. I've had a few timeouts, so I now
change the process title for each SMTP phase, much like
sendmail does. I also had 60k messages sent to it, and it
handled them in under an hour (~16/sec) with 50 children.
Thing is most of the children were idle. 4 machines running
sendmail fed it. I was expecting the machine to be
overloaded, but it didn't even burp. The test machine is an
old ibm pentium II 350MHz with 256MB ram.
</description>
    </item>
    <item>
      <pubDate>Thu, 20 Dec 2001 18:30:19 GMT</pubDate>
      <title>20 Dec 2001</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=7</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=7</guid>
      <description>Thanks to all who responded to my request for help. Looks
like I need to learn how to read. My smtp server now works
with sendmail. Sendmail has this weird loop detection based
on the 2nd word of the response to helo/ehlo. I've fixed the
code and it works. Now for some more testing.
</description>
    </item>
    <item>
      <pubDate>Tue, 18 Dec 2001 22:40:11 GMT</pubDate>
      <title>18 Dec 2001</title>
      <link>http://www.advogato.org/person/remle/diary.html?start=6</link>
      <guid>http://www.advogato.org/person/remle/diary.html?start=6</guid>
      <description>Ok, I am now testing MTA interaction with my smtpd server.
Sendmail barfs. Here is what I posted to comp.mail.sendmail:
&lt;br&gt;
Hi,&lt;br&gt;
I've written a custom MTA and I testing interaction with it
from other MTA's.&lt;br&gt;
It seems sendmail (8.11.6 and whatever AOL is using) doesn't
like my MTA,
but Yahoo and Exim does. Here's a smtp log:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;
/usr/lib/sendmail -v jeff.test@somehost.e-dialog.com
Subject: testing sendmail

&lt;p&gt; This is a test from sendmail
.
jeff.test@somehost.e-dialog.com... Connecting to
somehost.e-dialog.com. via esmtp...
220 e-dialog smtpd server $Id: smtp.c,v 1.14 2001/12/18
19:56:38 me Exp $
&amp;gt;&amp;gt;&amp;gt; EHLO server1.somedomain.com
250 server1.somedomain.com Hello, how are you?
somehost.e-dialog.com. config error: mail loops back to me
(MX problem?)
&amp;gt;&amp;gt;&amp;gt; QUIT
250 Good bye
jeff.test@somehost.e-dialog.com... Local configuration error
/home/jeff/dead.letter... Saved message in
/home/jeff/dead.letter
Closing connection to somehost.e-dialog.com.
&lt;/pre&gt;
&lt;br&gt;
I don't understand why I'm getting the MX error. That is
printed out by sendmail,
I'm not generating it in my SMTP server. The only thing I
can think that
may be tripping up sendmail is that I'm doing 3 writes,
one for the 250,
one for the server name,
and one for the message "Hello, how are you?"
when I send send a response to ehlo.
&lt;br&gt;
Thank in advance for any pointers.
&lt;br&gt;&lt;br&gt;
Like the message states, any pointers would be great. You
can send email to me at jeff+advogato@virtualbuilder.com.
</description>
    </item>
  </channel>
</rss>
