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 | |
| 24.1.186
by Björn Påhlsson transitional stuff actually working | 8 | Bus name: "se.recompile.Mandos" | 
| 423
by Teddy Hogeborn Documentation changes: | 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: | |
| 24.1.186
by Björn Påhlsson transitional stuff actually working | 20 | Interface name: "se.recompile.Mandos" | 
| 423
by Teddy Hogeborn Documentation changes: | 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: | |
| 24.1.186
by Björn Påhlsson transitional stuff actually working | 47 | Interface name: "se.recompile.Mandos.Client" | 
| 423
by Teddy Hogeborn Documentation changes: | 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 | | |
| 24.1.179
by Björn Påhlsson New feature: | 89 | | Expires (f) | s | Read | N/A | | 
| 497
by Teddy Hogeborn * DBUS-API: Document new "Expires" and "ExtendedTimeout" properties. | 90 | | ExtendedTimeout (a) | t | Read/Write | extended_timeout | | 
| 442
by Teddy Hogeborn * DBUS-API: Document new "LastApprovalRequest" client property. | 91 | | Fingerprint | s | Read | fingerprint | | 
| 92 | | Host | s | Read/Write | host | | |
| 93 | | Interval (a) | t | Read/Write | interval | | |
| 24.1.179
by Björn Påhlsson New feature: | 94 | | LastApprovalRequest (g) | s | Read | N/A | | 
| 95 | | LastCheckedOK (h) | s | Read/Write | N/A | | |
| 96 | | LastEnabled (i) | s | Read | N/A | | |
| 442
by Teddy Hogeborn * DBUS-API: Document new "LastApprovalRequest" client property. | 97 | | Name | s | Read | (Section name) | | 
| 98 | | ObjectPath | o | Read | N/A | | |
| 24.1.179
by Björn Påhlsson New feature: | 99 | | Secret (j) | ay | Write | secret (or secfile) | | 
| 442
by Teddy Hogeborn * DBUS-API: Document new "LastApprovalRequest" client property. | 100 | | Timeout (a) | t | Read/Write | timeout | | 
| 423
by Teddy Hogeborn Documentation changes: | 101 |    
 | 
| 102 | a) Represented as milliseconds. | |
| 103 |    
 | |
| 104 | b) An approval is currently pending. | |
| 105 |    
 | |
| 106 | c) Setting this property is equivalent to calling StartChecker() or | |
| 107 | StopChecker(). | |
| 108 |    
 | |
| 477
by Teddy Hogeborn * DBUS-API: Fix grammar. | 109 | d) The creation time of this client object, as an RFC 3339 string. | 
| 423
by Teddy Hogeborn Documentation changes: | 110 |    
 | 
| 111 | e) Setting this property is equivalent to calling Enable() or | |
| 112 | Disable(). | |
| 113 |    
 | |
| 24.1.179
by Björn Påhlsson New feature: | 114 | f) The date and time this client will be disabled, as an RFC 3339 | 
| 115 | string, or an empty string if this has not happened. | |
| 116 |    
 | |
| 497
by Teddy Hogeborn * DBUS-API: Document new "Expires" and "ExtendedTimeout" properties. | 117 | g) The date and time of the last approval request, as an RFC 3339 | 
| 118 | string, or an empty string if this has not happened. | |
| 119 |    
 | |
| 120 | h) The date and time a checker was last successful, as an RFC 3339 | |
| 121 | string, or an empty string if this has not happened. Setting | |
| 122 | this property is equivalent to calling CheckedOK(), i.e. the | |
| 123 | current time is set, regardless of the string sent. Please | |
| 124 | always use an empty string when setting this property, to allow | |
| 125 | for possible future expansion. | |
| 126 |    
 | |
| 127 | i) The date and time this client was last enabled, as an RFC 3339 | |
| 128 | string, or an empty string if this has not happened. | |
| 423
by Teddy Hogeborn Documentation changes: | 129 |    
 | 
| 24.1.179
by Björn Påhlsson New feature: | 130 | j) A raw byte array, not hexadecimal digits. | 
| 423
by Teddy Hogeborn Documentation changes: | 131 | |
| 132 | ** Signals | |
| 133 | *** CheckerCompleted(n: Exitcode, x: Waitstatus, s: Command) | |
| 134 | A checker (Command) has completed. Exitcode is either the exit | |
| 135 | code or -1 for abnormal exit. In any case, the full Waitstatus | |
| 136 | (as from wait(2)) is also available. | |
| 137 |     
 | |
| 138 | *** CheckerStarted(s: Command) | |
| 139 | A checker command (Command) has just been started. | |
| 140 |     
 | |
| 141 | *** GotSecret() | |
| 142 | This client has been sent its secret. | |
| 143 |     
 | |
| 144 | *** NeedApproval(t: Timeout, b: ApprovedByDefault) | |
| 145 | This client will be approved or denied in exactly Timeout | |
| 146 | milliseconds, depending on ApprovedByDefault. Approve() can now | |
| 147 | usefully be called on this client object. | |
| 477
by Teddy Hogeborn * DBUS-API: Fix grammar. | 148 |     
 | 
| 423
by Teddy Hogeborn Documentation changes: | 149 | *** PropertyChanged(s: Property, v: Value) | 
| 150 | The Property on this client has changed to Value. | |
| 477
by Teddy Hogeborn * DBUS-API: Fix grammar. | 151 |     
 | 
| 423
by Teddy Hogeborn Documentation changes: | 152 | *** Rejected(s: Reason) | 
| 153 | This client was not given its secret for a specified Reason. | |
| 154 | ||
| 444
by Teddy Hogeborn Update copyright year to "2010" wherever appropriate. | 155 | * Copyright | 
| 156 | ||
| 466
by Teddy Hogeborn Update copyright year to "2011" wherever appropriate. | 157 | Copyright © 2010-2011 Teddy Hogeborn | 
| 158 | Copyright © 2010-2011 Björn Påhlsson | |
| 444
by Teddy Hogeborn Update copyright year to "2010" wherever appropriate. | 159 |   
 | 
| 160 | ** License: | |
| 161 |    
 | |
| 162 | This program is free software: you can redistribute it and/or | |
| 163 | modify it under the terms of the GNU General Public License as | |
| 164 | published by the Free Software Foundation, either version 3 of the | |
| 165 | License, or (at your option) any later version. | |
| 166 | ||
| 167 | This program is distributed in the hope that it will be useful, but | |
| 168 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 169 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 170 | General Public License for more details. | |
| 171 | ||
| 172 | You should have received a copy of the GNU General Public License | |
| 173 | along with this program. If not, see | |
| 174 | <http://www.gnu.org/licenses/>. | |
| 175 | ||
| 423
by Teddy Hogeborn Documentation changes: | 176 | |
| 177 | #+STARTUP: showall |