* * * * *
Progress
It was a fairly productive day today, despite waking up feeling like death
warmed over. I've pretty much recovered from Friday night's meltdown [1]—my
Stupid Twitter Project [2] is back up and running and I fixed the rather bad
display bug in mod_blog [3] (that was just a one-line fix).
Work on the graylist program [4] continues, albeit at a slow pace. While
working on it, I discovered that some library code I wrote (which is
basically a replacement for ANSI (American National Standards Institute) C's
stdio.h) has problems with the whole “end of file” concept. While that sounds
bad, it's not, because the whole concept of “end of file” under Unix is
rather undefined. Normally, you detect the “end of file” under Unix by
calling read() and if you get back 0 bytes, then you can assume there's
nothing more of the file to read—you've reached the “end of file.”
But depending upon how things are set, and what type of device is the target
of the read() call, getting back 0 bytes doesn't necessarily mean there's
nothing more to read. It just means there's nothing more to read right now.
That, coupled with the fact that you can't normally detect “end of file”
without actually trying to read the file (if in fact, it is a file) means
that having a function to check to see if you are at “end of file ” (like
feof()) is a rather difficult thing to get correct (which gets around to the
question of why I felt it was necessary to write my own replacement for
stdio.h—because I needed the ability to treat strings as files and you don't
get that under stdio.h).
I'm hoping to get the initial version of the graylist software up and running
in the next few days.
[1]
gopher://gopher.conman.org/0Phlog:2007/08/18.1
[2]
gopher://gopher.conman.org/0Phlog:2007/07/18.2
[3]
https://boston.conman.org/about/
[4]
gopher://gopher.conman.org/0Phlog:2007/08/16.1
Email author at
[email protected]