monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] merging branch to allow 'automate stdio' over the n


From: Thomas Keller
Subject: Re: [Monotone-devel] merging branch to allow 'automate stdio' over the network
Date: Mon, 28 Sep 2009 13:29:11 +0200
User-agent: Thunderbird 2.0.0.22 (X11/20090605)

Timothy Brownawell wrote:
> I think branch net.venge.monotone.tbrownaw.serve_automate.single_port
> is ready for merging. Instead of putting raw 'automate stdio' on the
> network, this encapsulates it as netcmds and keeps the same initial
> negotiation/authentication sequence (and the same 'bye' sequence) as
> netsync.

I quickly skimmed over the huge diff (around 10k lines...) and while I
haven't yet been able to test / play with it yet, some questions /
observations:

> This splits netsync.cc into multiple files, and splits the negotiation
> and teardown out of the 'session' class. Then it adds 'automate_cmd'
> as an alternative to 'anonymous_cmd'/'auth_cmd' so that network
> clients can request either an automate connection or a netsync
> connection.

The split is definitely welcome, what I miss (and to be honest already
missed before) is some chatter about the roles of the different classes
and their inner workings. I know that monotone's source code is mostly
documented, erm, "as is", so either I read and understand it or it is my
problem, but still I see your refactoring as chance to improve the
documentation of this crucial part of monotone.

> This also adds an "automate remote_stdio <address>" command to make
> use of these changes, and on the server side a
>    get_remote_automate_permitted(identity, command, options)
> hook which is checked for each automate command received and defaults
> to "deny everything".

Is the execution of the "l5:stdioe" and "l12:remote_stdioe" commands
over stdio / remote_stdio forbidden (this should be the case)? How are
network errors handled, i.e. are these encoded properly in stdio or do
these come as out-of-band messages? (I'm trying to revive the
out-of-band error handling from the last summit in my spare time because
I really want netsync-over-stdio working now... maybe this rather small
code part could go into your branch as well? monotone.texi states that
"automate remote_stdio" has a --quiet option to supress some of the
netsync output - maybe this could be fixed by that.) How are network
timeouts handled, i.e. do we automatically reconnect an idled but broken
remote_stdio connection? Are there more differences in general between
commands executed in stdio and remote_stdio other than
"interface_version returns the remote mtn interface_version" and "for
actions which require a key the server's key is used" (ie. individual
remote commits are not possible)?

I guess I have more questions later on when I looked at it more in detail.

Thanks in advance,
Thomas.

-- 
GPG-Key 0x160D1092 | address@hidden | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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