bzr branch
http://bzr.recompile.se/loggerhead/mandos/trunk
423
by Teddy Hogeborn
Documentation changes: |
1 |
-*- mode: org; coding: utf-8 -*- |
2 |
||
3 |
Mandos Server D-Bus Interface |
|
4 |
||
5 |
This file documents the D-Bus interface to the Mandos server. |
|
6 |
||
7 |
* Bus: System bus |
|
8 |
Bus name: "se.bsnet.fukt.Mandos" |
|
9 |
||
10 |
||
11 |
* Object Paths: |
|
12 |
|
|
13 |
| Path | Object | |
|
14 |
|-----------------------+-------------------| |
|
15 |
| "/" | The Mandos Server | |
|
16 |
| "/clients/CLIENTNAME" | Mandos Client | |
|
17 |
||
18 |
|
|
19 |
* Mandos Server Interface: |
|
20 |
Interface name: "se.bsnet.fukt.Mandos" |
|
21 |
|
|
22 |
** Methods: |
|
23 |
*** GetAllClients() → (ao: Clients) |
|
24 |
Returns an array of all client D-Bus object paths |
|
25 |
|
|
26 |
*** GetAllClientsWithProperties() → (a{oa{sv}}: ClientProperties) |
|
27 |
Returns an array of all clients and all their properties |
|
28 |
|
|
29 |
*** RemoveClient(o: ObjectPath) → nothing |
|
30 |
Removes a client |
|
31 |
|
|
32 |
** Signals: |
|
33 |
*** ClientAdded(o: ObjectPath) |
|
34 |
A new client was added. |
|
35 |
|
|
36 |
*** ClientNotFound(s: Fingerprint, s: Address) |
|
37 |
A client connected from Address using Fingerprint, but was |
|
38 |
rejected because it was not found in the server. The fingerprint |
|
39 |
is represented as a string of hexadecimal digits. The address is |
|
40 |
an IPv4 or IPv6 address in its normal string format. |
|
41 |
|
|
42 |
*** ClientRemoved(o: ObjectPath, s: Name) |
|
43 |
A client named Name on ObjectPath was removed. |
|
44 |
||
45 |
||
46 |
* Mandos Client Interface: |
|
47 |
Interface name: "se.bsnet.fukt.Mandos.Client" |
|
48 |
|
|
49 |
** Methods |
|
50 |
*** Approve(b: Approve) → nothing |
|
51 |
Approve or deny a connected client waiting for approval. If |
|
52 |
denied, a client will not be sent its secret. |
|
53 |
|
|
54 |
*** CheckedOK() → nothing |
|
55 |
Assert that this client has been checked and found to be alive. |
|
56 |
This will restart the timeout before disabling this client. See |
|
57 |
also the "LastCheckedOK" property. |
|
58 |
|
|
59 |
*** Disable() → nothing |
|
60 |
Disable this client. See also the "Enabled" property. |
|
61 |
|
|
62 |
*** Enable() → nothing |
|
63 |
Enable this client. See also the "Enabled" property. |
|
64 |
|
|
65 |
*** StartChecker() → nothing |
|
66 |
Start a new checker for this client, if none is currently |
|
67 |
running. See also the "CheckerRunning" property. |
|
68 |
|
|
69 |
*** StopChecker() → nothing |
|
70 |
Abort a running checker process for this client, if any. See also |
|
71 |
the "CheckerRunning" property. |
|
72 |
||
73 |
** Properties |
|
74 |
|
|
75 |
Note: Many of these properties directly correspond to a setting in |
|
76 |
"clients.conf", in which case they are fully documented in |
|
77 |
mandos-clients.conf(5). |
|
78 |
|
|
442
by Teddy Hogeborn
* DBUS-API: Document new "LastApprovalRequest" client property. |
79 |
| Name | Type | Access | clients.conf | |
80 |
|-------------------------+------+------------+---------------------| |
|
81 |
| ApprovedByDefault | b | Read/Write | approved_by_default | |
|
82 |
| ApprovalDelay (a) | t | Read/Write | approval_delay | |
|
83 |
| ApprovalDuration (a) | t | Read/Write | approval_duration | |
|
84 |
| ApprovalPending (b) | b | Read | N/A | |
|
85 |
| Checker | s | Read/Write | checker | |
|
86 |
| CheckerRunning (c) | b | Read/Write | N/A | |
|
87 |
| Created (d) | s | Read | N/A | |
|
88 |
| Enabled (e) | b | Read/Write | N/A | |
|
89 |
| Fingerprint | s | Read | fingerprint | |
|
90 |
| Host | s | Read/Write | host | |
|
91 |
| Interval (a) | t | Read/Write | interval | |
|
92 |
| LastApprovalRequest (f) | s | Read | N/A | |
|
93 |
| LastCheckedOK (g) | s | Read/Write | N/A | |
|
94 |
| LastEnabled (h) | s | Read | N/A | |
|
95 |
| Name | s | Read | (Section name) | |
|
96 |
| ObjectPath | o | Read | N/A | |
|
97 |
| Secret (i) | ay | Write | secret (or secfile) | |
|
98 |
| Timeout (a) | t | Read/Write | timeout | |
|
423
by Teddy Hogeborn
Documentation changes: |
99 |
|
100 |
a) Represented as milliseconds. |
|
101 |
|
|
102 |
b) An approval is currently pending. |
|
103 |
|
|
104 |
c) Setting this property is equivalent to calling StartChecker() or |
|
105 |
StopChecker(). |
|
106 |
|
|
107 |
d) The creation time of this client object, as a RFC 3339 string. |
|
108 |
|
|
109 |
e) Setting this property is equivalent to calling Enable() or |
|
110 |
Disable(). |
|
111 |
|
|
442
by Teddy Hogeborn
* DBUS-API: Document new "LastApprovalRequest" client property. |
112 |
f) The time of the last approval request, as a RFC 3339 string, or |
113 |
an empty string if this has not happened. |
|
114 |
|
|
115 |
g) The last time a checker was successful, as a RFC 3339 string, or |
|
423
by Teddy Hogeborn
Documentation changes: |
116 |
an empty string if this has not happened. Setting this property |
117 |
is equivalent to calling CheckedOK(), i.e. the current time is |
|
118 |
set, regardless of the string sent. Please always use an empty |
|
119 |
string when setting this property, to allow for possible future |
|
120 |
expansion. |
|
121 |
|
|
442
by Teddy Hogeborn
* DBUS-API: Document new "LastApprovalRequest" client property. |
122 |
h) The last time this client was enabled, as a RFC 3339 string, or |
423
by Teddy Hogeborn
Documentation changes: |
123 |
an empty string if this has not happened. |
124 |
|
|
442
by Teddy Hogeborn
* DBUS-API: Document new "LastApprovalRequest" client property. |
125 |
i) A raw byte array, not hexadecimal digits. |
423
by Teddy Hogeborn
Documentation changes: |
126 |
|
127 |
** Signals |
|
128 |
*** CheckerCompleted(n: Exitcode, x: Waitstatus, s: Command) |
|
129 |
A checker (Command) has completed. Exitcode is either the exit |
|
130 |
code or -1 for abnormal exit. In any case, the full Waitstatus |
|
131 |
(as from wait(2)) is also available. |
|
132 |
|
|
133 |
*** CheckerStarted(s: Command) |
|
134 |
A checker command (Command) has just been started. |
|
135 |
|
|
136 |
*** GotSecret() |
|
137 |
This client has been sent its secret. |
|
138 |
|
|
139 |
*** NeedApproval(t: Timeout, b: ApprovedByDefault) |
|
140 |
This client will be approved or denied in exactly Timeout |
|
141 |
milliseconds, depending on ApprovedByDefault. Approve() can now |
|
142 |
usefully be called on this client object. |
|
143 |
||
144 |
*** PropertyChanged(s: Property, v: Value) |
|
145 |
The Property on this client has changed to Value. |
|
146 |
||
147 |
*** Rejected(s: Reason) |
|
148 |
This client was not given its secret for a specified Reason. |
|
149 |
||
444
by Teddy Hogeborn
Update copyright year to "2010" wherever appropriate. |
150 |
* Copyright |
151 |
||
152 |
Copyright © 2010 Teddy Hogeborn |
|
153 |
Copyright © 2010 Björn Påhlsson |
|
154 |
|
|
155 |
** License: |
|
156 |
|
|
157 |
This program is free software: you can redistribute it and/or |
|
158 |
modify it under the terms of the GNU General Public License as |
|
159 |
published by the Free Software Foundation, either version 3 of the |
|
160 |
License, or (at your option) any later version. |
|
161 |
||
162 |
This program is distributed in the hope that it will be useful, but |
|
163 |
WITHOUT ANY WARRANTY; without even the implied warranty of |
|
164 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
165 |
General Public License for more details. |
|
166 |
||
167 |
You should have received a copy of the GNU General Public License |
|
168 |
along with this program. If not, see |
|
169 |
<http://www.gnu.org/licenses/>. |
|
170 |
||
423
by Teddy Hogeborn
Documentation changes: |
171 |
|
172 |
#+STARTUP: showall |