What is IRCfs
  Current Status

Getting it

SourceForge Project Page

Status Snapshot
Current Milestone: 2 (Released 2002-09-20) Target Milestone: 3 - Alpha (Due Real-Soon-Now(tm))


blue 2002-12-03 Object System
Welcome to the wonderful world of code hacks! Yes, we have a new ride for you today! Its the object based system. Actually, its not new and its not much of a ride, however, it is a hack. The object based system is being implemented at the moment (which explains, or hopefully does) the large delay in updates. Its a simple solution to a complicated problem. Though the implementation will be complicated, the interface should be very simple. See src/object.txt for a discussion of the solution. The CVS build, is, as always, broken, due to the code changes. However, hopefully, the reentrant problem should be the last one stopping Milestone 3, aka Alpha release (as opposed to prealpha). (Everyone may now cheer).

blue 2002-12-03 ircfs-pre-alpha-M3-pre-2 (aka almost there release)
Ok, so after a Xmas holiday, and all sorts of other delays, I've resumed work once again on the project. Pre-release 2 is out. All showstopper bugs that I know of should be fixed. Its usable, uploads and downloads. No resume yet though. There is still lots of debugging output, though that can be configured through the ircfs.conf file now. I'll do testing on this release for awhile, maybe even expose it to The Real World (insert loud scary music here). If you are using this fserv in the real world, you must be nuts. Just like me :)

So that brings an interesting, and important question. How much effort has been put in to ensure the code has as few security bugs as possible? Well, the major source of bugs in new code is buffer overflows, and I've been as careful as I can with that. Most string manipulation is done with dynamic buffers, and the stack based stuff is carefully controlled with snprintf. There could be a number of fence-post errors, but I'm not sure. An audit of the code, and runtime testing will be the best way to tell, but I haven't done much of either of those (Shock horror!).

In summary, don't leave this code unattended, and if you are using this code on a public network, you better be a coder and understand the code so you can fix problems. (And then send me patches!).

blue 2002-12-03 ircfs-pre-alpha-M3-pre-1 (aka the longest version string release)
Milestone 3 has been a long time comming, unfortunatly its difficult to determine when we have reached this exact milestone. The code is usable at the moment, though it is unstable, and lacks timeouts. So this is still pre-alpha code. Once the timeouts are in, and the major bugs (like SEGV on QUIT, etc) are fixed, then I will release ircfs-alpha-M3.

Don't be discouraged however, one of the minor-but-most-annoying bugs has been fixed; the console readline bug. This bug took awhile to figure out since <RANT>GNU readline is the most poorly documented project I've seen (except for IRCfs). Considering the ammount of usuage it has, its lacking in programmers documentation for what they label as the "alternative" usage. (the only usable usage if you are a single-thread select program).</RANT>

blue 2002-11-15 Interested?.
Are you interested in seeing this project at a usable level? If so, let me know, email me zaf at users dot sourceforge dot net and let me know what features you are most interested in. That way I can focus my efforts on areas which are important to most users.

As for a status update, well: FServ code is almost complete, just need to interface the channel module with it so it can answer requests, etc.

blue 2002-11-04 It's got the same release schedule as ID software.
It'll be done when its done. Ok, so I still haven't completed M3 yet, and have missed the revised deadline again. It'll be done though, it is still being worked on. CVS commits are occuring, and the code is moving along nicely.

blue 2002-10-21 M3 coming closer.
Have made considerable progress towards Milestone 3, and fixed many bugs along the way. Only things left are finish the get code in the session module, do the fserv module, and support uploads.

Milestone 3 will be the first alpha release, indicating that the product is usable for end users, however the code is still unstable. I'm not sure how many bugs are there.

The plan is, as we progress to Milestone 4 and beyond, the codebase set at Milestone 3 will get more and more testing, and become stabler.

blue 2002-10-16 Oops.
Due to stuff in The Big Blue Room we are running late on the latest milestone. I've pushed the deadline back to the 26th of October, we'll see if we can meet this one. The only reason why we wouldn't would be more real life stuff.

blue 2002-10-03 Coming along.
The code base for M3 is coming along nicely. The fserv has been split into 2 modules (fserv and session), which I should have done along time ago. At the moment focusing on getting session working, which will provide very basic fserv abilities.

The fserv module is responsible for starting the session module, and handling uploads and accounting for them. The session module is responsible for handling downloads, and accouting for them. (That of course assumes the accounts module is active).

For each fserv design, (eg basic, ratio, etc), there are a fserv and session module.

blue 2002-09-30 I'm back.
After a weeks halt due to an emergancy trip to Wellington (without a laptop! Ugh!), I'm back, and will be on track again, although slightly off schedule. Never fear, IRCfs will be here.

blue 2002-09-20 IRCfs pre-alpha-m2 released.
In an all night coding effort, the last bit of tidying up required in the configuration system was done, and Milestone 2 was reached.

In another note, proof that milestones aren't as easy to work out as we would like, the configuration module has already had some more code put into after the milestone 2 release, for supporting string lists.

blue 2002-09-19 Almost at Milestone 2. Config subsystem rethought a bit. Fixed many bugs with base code. Working on other components, especially the logging system (debug module). Expect to reach Milestone 2 within 1 week.

blue 2002-09-12 Well on the way to Milestone 2. Config subsystem is at a usable level. Just need to tidy up the code, and finish some of the TODO stuff. Finished ctcp module.

blue 2002-09-03 Milestone M1, we're here. Yup, now focusing on M2, the configuration system, however I'm sure other modules will be worked on during the configuration module creation.

blue 2002-08-28 Ok, so I've been secretly working on a new version on ircfs. What happened to the old one you ask? I got too busy with The Big Blue Room (eg Real Life). Well, either way, I've rewritten ircfs in C, and I'm much more comfortable working with it now. Funny enough, its more object oriented now, written in C, than it was in C++. Events, Callbacks, etc all plauge the code now :)

About IRCfs

Put simply, IrcFS is a standalone IRC FileServer 1 .

There are many many IRC FileServers (or fservs) out there, but what makes this one significant is it's standalone. Most fservs require a pariticular IRC client, such as mIRC. IrcFS requires no such program, it runs on its own, by itself. IrcFS is also, to the best of my knowledge the only Open Source standalone fserv available. (I know of one other project, but I believe that it currently only implements XDCC lists, which is very different to a fserv).

  • 1 - An IRC FileServer, (or FServ) is a method of sharing large ammounts of files via IRC. It works similar to an FTP server, except its totally text based, and done via DCC CHATs to the person.