On Thu, Jun 10, 2010 at 10:12:13AM +0200, Alan DeKok wrote:
Josip Rodin wrote:
That code has indeed changed from 2.1.8 to 2.1.9, and it may be a simple bug - there is no existence check for request->packet before its dereference in the new CoA-related condition. There is an existence check for it below, but by then it's too late. It looks like that branching could do with some more reordering.
Yes. The code to fix a CoA bug caused another one. <sigh>
The server is quickly getting to the point where it's doing so much that any small change can have large implications.
The solution is to start re-organizing the code in the server core, and simplifying it. When 2.0 cam out, the code was much simpler than 1.x for the same functionality. Three years later, added functionality makes the code more complicated again.
The Change of Authorization code hasn't really found its place, it looks a bit like a hack. Maybe it's the WITH_COA defines that make it look so. But more generally, after reading through the proxy code, I see it as a something of an unadjusted citizen :) yet CoA builds upon it and just ends up creating a bigger mess. The server started as a simple server that just responded to outside clients, whereas these two functions really want it to behave more like a client. I know that's a big readjustment :) -- 2. That which causes joy or happiness.