Friday, October 24, 2008

Routing Daemon

A basic working "skeletal" routing daemon for the IRC server project was completed today. It was an interesting undertaking—ZQ and I wrote roughly 200,000+ bytes worth of raw C code (roughly 8,000 lines) for both the server and routing daemon, and managed to get past the second checkpoint today.

It would seem that the age-old computer science idea of abstracting away the details is a most useful idea when doing software engineering. The approach that we took involved writing abstract data types like linked lists, hash tables, bidirectional dictionaries (allowing references between any two sets S and T with a bijective function over S→T, graphs (weighted multi-directed graphs), extensible octet buffers before hand, and then when we had to deal with the upper layer items like routing tables, packet forwarding and all the other protocol specific items, we already had the necessary framework to work with.

Most of the final parts of the code were put in over last night. That was a good 2,000+ lines of code from the two of us. Then, the debugging was done today, and amazingly, it all worked out fine; there were only 5 or 6 minor bugs that required fixing.

Alright, I've done babbling for now. Off to bed.

No comments: