The GSoC is done. My last post on August 12 explained the last major changes I did on the server. Since then, and until my Final Code Submission on August 26, I spent all my time fixing bugs, adding comments and indenting the code to the Hurd standards. Summarizing, it was necessary to polish the code and leave it acceptable for upstream.
Now the project is finished, it's time to talk about the results. I'm very happy as I could meet all goals I've set in my proposal, That is, providing all the functionality provided by the current translator, pfinet, so the lwip translator can replace it completely. There has been two major contingencies in this project: first, the unexpected limit in the number of sockets; second, having to add support for a VPN client.
I feel I couldn't avoid the problem with the number of sockets, in March I hadn't enough knowledge about LwIP codebase and it was difficult to me to foreseen where could the problems come from. Regarding the VPN client, I just didn't realize pfinet was able to do that. Maybe I could have foreseen this if I had made more tests before writing my proposal. Fortunately, I knew there would be problems and started to work on the project in my free time during months before the official coding period, which finally gave me enough time to work on the contingencies.
If we take a look at my previous posts, we'll find a brief list of topics I had to learn about during the summer. I've learned about the Hurd, LwIP, Berkeley's Sockets, Glibc, IPv6 and ifupdown. But I also learned many other things that are not in the blog, for instance, I got to know the Hurd and LwIP communities and their working methods, I've learned to how to contribute and I've struggled with git as never before.
In conclusion, this has been a very positive experience and I can but highly recommend to everyone applying for next editions. I think that participating in such a project is a very valuable counterpart to the theory taught in the university. Getting your hands dirty makes you lose your fear and see by yourself that behind some projects that seem to be much complicated there's always a set of simple concepts anyone can understand.
...And this is how this blog ends, farewell! :)