Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2005:
[Freeciv-Dev] Re: (PR#13262) RFC: pubserver-in-a-diff
Home

[Freeciv-Dev] Re: (PR#13262) RFC: pubserver-in-a-diff

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: per@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#13262) RFC: pubserver-in-a-diff
From: "Reinier Post" <rp@xxxxxxxxxx>
Date: Mon, 31 Oct 2005 05:40:26 -0800
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=13262 >

On Sun, Oct 30, 2005 at 04:57:38PM +0000, Per Inge Mathisen wrote:
> On Sun, 30 Oct 2005, Reinier Post wrote:
> > > This patch implements the ./configure switch --enable-pubserver.
> 
> I hope you realize that what you have commented here is a very old, and
> very different version of the patch in question.
> 
> > I appreciate your effort, but all I can think is: UGH.You are implementing
> > the wrong way of achieving functionality that is already implemented the
> > right way.
> ...
> > The beauty of pubserver, in my view
> 
> I find it hard to characterize pubserver as anything remotely similar to
> "beauty". It is such a mess, in my opinion, that it is unsalvagable. We
> now have two efforts to rewrite it by three people, who have given up
> understanding or fixing pubserver.

I agree with you that a core part of it (the Makefile) was a big mistake,
but the design was nice.  The biggest problem was that it wasn't documented,
so I did that yesterday, see

  http://www.freeciv.org/index.php/Pubserver_software

Another problem is that newer features such as server-started-from-client,
ranking and authentication were bolted on, and the feature to pick rulesets
is another.  This is as much a problem within civserver as it is with the
pubserver software, so changes to civserver may well be necessary.  I just
think these changes should be nicely orthogonal "features" instead of
"whatever it takes to allow the bloody thing to run on pubserver".
But I'm sure you agree with that.

> > One proof of that was that we didn't even have to make any changes to the
> > civserver executable
> 
> The result was, however, a crippled civserver, which could not save, load,
> change rulesets or run .serv files.

??  Under cmdlevel ctrl you cannot write to the filesystem, but you can read
from it.  The /read and /ruleset commands just work.  I agree that you
want an access level where certain information can be written to the filesystem,
in "safe" areas; this could be used to write settings or rulesets without 
allowing
arbitrary filesystem access.  But I do not see the need to have this feature on
pubserver.  The problem with rulesets is not that they cannot be written, it is
that the server doesn't provide a means to see which rulesets are available,
and no means to inspect the contents of a ruleset, let alone change it.
Only when these things are addressed, it may become interesting to
support saving of customized rulesets.  I don't think it's technically hard
to address them by the way.

> I really appreciate what pubserver has
> done for us up through the years, but it does have its significant
> limitations. It has also proven very hard to maintain for people other
> than its authors.

My point is that a new design is needed, not a new piece of code that goes
straight through the existing design to get things to work.  But we already
agreed on this.

> > If the cmdlevel system is no longer good enough to
> > capture the functionality required in civserver to support running on
> > pubserver, either improve it or take it out, but please don't add a more or
> > less randomly designed bit of other code to civserver that replicates its
> > functionality while crashing through the original architecture, because it
> > cripples and corrupts the cmdlevel system that is already there.
> 
> I have no idea what you are talking about. Sorry.

What I mean is that when I start a Freeciv game these days, it sometimes claims
I have info access level, and yet I can control a server.  This is just wrong,
since info means you cannot do anything.  The access level system wasn't good 
enough,
but it was broken instead of fixed.  I didn't know how to fix it either, but
that is what should be done.  I noticed some similar corruption of values
in your initial patch, hence my reply.

I care about the pubserver design, not about the implementation - many things
in the existing implementation can be replaced with improved parts, are
better rewritten in some other language, and some functionality can perhaps
be omitted altogether.  But I think a "pubserver mode" that makes
civserver perform functions it presently doesn't is just the wrong design.

>   - Per

-- 
Reinier





[Prev in Thread] Current Thread [Next in Thread]