X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=doc%2Fprotocol%2Fprotocol.tex;h=1520f2152bb02c4e0c37f68b1e9bece4fbded8e7;hb=43c0eb2d8744a2f2d3690b723eb226dca33c0c3b;hp=8184cfb92cf5a3505f43134febae46acf262bfdd;hpb=66e1551f774c1b4cb9eeb92c594b6c4bfc9fa21a;p=doldaconnect.git diff --git a/doc/protocol/protocol.tex b/doc/protocol/protocol.tex index 8184cfb..1520f21 100644 --- a/doc/protocol/protocol.tex +++ b/doc/protocol/protocol.tex @@ -2,9 +2,10 @@ \usepackage[T1]{fontenc} \usepackage[utf8x]{inputenc} +\usepackage[ps2pdf]{hyperref} \usepackage{reqlist} -\newcommand{\url}[1]{\texttt{<#1>}} +\newcommand{\urlink}[1]{\texttt{<#1>}} \newcommand{\unix}{\textsc{Unix}} \title{Dolda Connect protocol} @@ -14,6 +15,8 @@ \maketitle +\tableofcontents + \section{Introduction} Dolda Connect consists partly of a daemon (a.k.a. server) that runs in the background and carries out all the actual work, and a number of @@ -33,7 +36,7 @@ project's Scheme interpreter) and for Python. The former is distributed with the main Dolda Connect source tree, while the latter is distributed separately (for technical reasons). To get a copy, please refer to Dolda Connect's homepage at -\url{http://www.dolda2000.com}. +\urlink{http://www.dolda2000.com}. \section{Transport format} Note: Everything covered in this section is handled by the @@ -226,7 +229,7 @@ table \ref{tab:perm}. \end{table} \subsection{Protocol revisions} - +\label{rev} Since Dolda Connect is developing, its command set may change occasionally. Sometimes new commands are added, sometimes commands change argument syntax, and sometimes commands are removed. In order @@ -248,11 +251,16 @@ entirely to the new revision. Therefore, a client can check for a certain revision and be sure that everything it wants is supported by the daemon. +At the time of this writing, the latest protocol revision is 2. Please +see the file \texttt{doc/protorev} that comes with the Dolda Connect +source tree for a full list of revisions and what changed between +them. + \subsection{List of commands} Follows does a (hopefully) exhaustive listing of all commands valid for a request. For each possible request, it includes the name of the -command for the request, the permissions required, the syntax the +command for the request, the permissions required, the syntax for the entire request line, and the possible responses. The syntax of the request and response lines is described in a format @@ -281,6 +289,8 @@ considered a request, soliciting a response. Such a request obviously has no command name and no syntax, but needs a description nonetheless. +\revision{1} + \noperm \begin{responses} @@ -288,6 +298,17 @@ nonetheless. The old response given by daemons not yet using the revisioned protocol. Clients receiving this response should consider it an error. + \response{201 LOREV HIREV} + Indicates that the connection is accepted. The \param{LOREV} and + \param{HIREV} parameters specify the range of supported protocol + revisions, as described in section \ref{rev}. + \response{502 REASON} + The connection is refused by the daemon and will be closed. The + \param{REASON} parameter states the reason for the refusal in + English\footnote{So it is probably not suitable for localized + programs}. \end{responses} +\input{commands} + \end{document}