Paul Stewart | a4e618b | 2012-04-25 16:21:22 -0700 | [diff] [blame] | 1 | Manager hierarchy |
| 2 | ================= |
| 3 | |
| 4 | Service org.chromium.flimflam |
| 5 | Interface org.chromium.flimflam.Manager |
| 6 | Object path / |
| 7 | |
| 8 | Methods dict GetProperties() |
| 9 | |
| 10 | Return the global system properties specified |
| 11 | in the Properties section. |
| 12 | |
| 13 | void SetProperty(string name, variant value) |
| 14 | |
| 15 | Changes the value of the specified property. Only |
| 16 | properties that are listed as read-write are |
| 17 | changeable. On success a PropertyChanged signal |
| 18 | will be emitted. |
| 19 | |
| 20 | Possible Errors: [service].Error.InvalidArguments |
| 21 | [service].Error.InvalidProperty |
| 22 | |
| 23 | string GetState() |
| 24 | |
| 25 | Return the connection state of a system. The |
| 26 | same value is return via the State property. |
| 27 | |
| 28 | object CreateProfile(string name) |
| 29 | |
| 30 | Create and add new profile with the specified |
| 31 | identifier name. The name should either be in the |
| 32 | form ``name'' or ``~user/name'' where where ``user'' |
| 33 | is the login name of a user suitable for finding |
| 34 | their home directory. Both strings must contain |
| 35 | only alpha-numeric ASCII characters. |
| 36 | |
| 37 | Profiles created without a user name are stored in |
| 38 | a system directory readable only by the connection |
| 39 | mananger. Profiles created with a user name are |
| 40 | stored in the user's home directory but readable |
| 41 | only by the connection manager. |
| 42 | |
| 43 | If any existing profile is specified its contents |
| 44 | are reset to a default (minimal) contents. If the |
| 45 | profile is already registered with a CreateProfile |
| 46 | or PushProfile request then an error is returned. |
| 47 | |
| 48 | Possible Errors: [service].Error.InvalidArguments |
| 49 | [service].Error.AlreadyExists |
| 50 | |
| 51 | object PushProfile(string name) |
| 52 | |
| 53 | Push the profile with the specified identifier |
| 54 | onto the profile stack. The profile must have |
| 55 | previously been created with CreateProfile. |
| 56 | The profile becomes the ``active profile'' that |
| 57 | is searched first when loading data and to which |
| 58 | updates are stored. |
| 59 | |
| 60 | A profile may be pushed only once. |
| 61 | |
| 62 | Possible Errors: [service].Error.InvalidArguments |
| 63 | [service].Error.AlreadyExists |
| 64 | |
| 65 | object PopProfile(string name) |
| 66 | |
| 67 | Pop the top-most profile on the profile stack. |
| 68 | Any profile beneath this profile becomes the |
| 69 | ``active profile''. Any services using configuration |
| 70 | from the popped profile are disconnected and the |
| 71 | credentials invalidated (the next time |
| 72 | credentials are needed they are loaded from the |
| 73 | (new) active profile). |
| 74 | |
| 75 | The name must match the identifer of the active |
| 76 | profile. This is a safeguard against accidentally |
| 77 | removing the wrong profile. |
| 78 | |
| 79 | Note it is valid to pop all profiles from the |
| 80 | stack; in this state the connection manager does |
| 81 | not write any state to persistent storage. |
| 82 | |
| 83 | Possible Errors: [service].Error.InvalidArguments |
| 84 | [service].Error.NotFound |
| 85 | |
| 86 | object PopAnyProfile() |
| 87 | |
| 88 | Like PopProfile but do not check the profile on |
| 89 | the top of the stack; pop anything. |
| 90 | |
| 91 | Possible Errors: [service].Error.InvalidArguments |
| 92 | |
| 93 | void RemoveProfile(string name) |
| 94 | |
| 95 | Remove the profile with specified identifier. |
| 96 | |
| 97 | The profile may not be resident on the stack. |
| 98 | The default profile may not be removed. |
| 99 | |
| 100 | Possible Errors: [service].Error.InvalidArguments |
| 101 | [service].Error.AlreadyExists |
| 102 | |
| 103 | void RequestScan(string type) |
| 104 | |
| 105 | Request a scan for the specified technology. If |
| 106 | type is the string "" then a scan request is |
| 107 | made for each technology. |
| 108 | |
| 109 | Possible Errors: [service].Error.InvalidArguments |
| 110 | |
| 111 | void EnableTechnology(string type) |
| 112 | |
| 113 | Enable all technologies of the specified type. |
| 114 | |
| 115 | Possible Errors: [service].Error.InvalidArguments |
| 116 | [service].Error.InProgress |
| 117 | [service].Error.AlreadyEnabled |
| 118 | |
| 119 | void DisableTechnology(string type) |
| 120 | |
| 121 | Disable all technologies of the specified type. |
| 122 | |
| 123 | Possible Errors: [service].Error.InvalidArguments |
| 124 | [service].Error.InProgress |
| 125 | [service].Error.AlreadyDisabled |
| 126 | |
| 127 | void ConfigureService(dict properties) |
| 128 | |
| 129 | Update the configuration of a service in memory |
| 130 | and in the profile. If no service exists in |
| 131 | memory it is temporarily created to carry out |
| 132 | this work and then removed after saving its |
| 133 | configuration to the profle. |
| 134 | |
| 135 | If a GUID property is specified in properties |
| 136 | it is used to find the service; otherwise Type, |
| 137 | Security, and type-specific properties such as |
| 138 | WiFi.SSID are used to find any existing service. |
| 139 | If no service is located in memory a new one is |
| 140 | created with the supplied properties. |
| 141 | |
| 142 | All provided parameters are applied to the in |
| 143 | memory service regardless of errors. But if an |
| 144 | error occurs while setting a property and the |
| 145 | service object was created as a result of this |
| 146 | call it is removed. In the event of multiple |
| 147 | errors the first error code is returned by |
| 148 | this call. |
| 149 | |
| 150 | See the Service Properties section for a list of |
| 151 | properties and constraints on property values. |
| 152 | See also GetService. |
| 153 | |
| 154 | Possible Errors: [service].Error.InvalidArguments |
| 155 | [service].Error.NotSupported |
| 156 | |
| 157 | object GetService(dict properties) |
| 158 | |
| 159 | Return the object path of a service after |
| 160 | applying any requested configuration changes. |
| 161 | If no service exists it is created. |
| 162 | |
| 163 | If a GUID property is specified in properties |
| 164 | it is used to find the service; otherwise Type, |
| 165 | Security, and type-specific properties such as |
| 166 | WiFi.SSID are used to find any existing service. |
| 167 | If no service is located in memory a new one is |
| 168 | created with the supplied properties. |
| 169 | |
| 170 | All provided parameters are applied to the service |
| 171 | regardless of errors. But if an error occurs |
| 172 | while setting a property and the service was |
| 173 | created as a result of this call it is removed. |
| 174 | In the event of multiple errors the first error |
| 175 | code is returned by this call. |
| 176 | |
| 177 | See the Service Properties section for a list of |
| 178 | properties and constraints on property values. |
| 179 | See also ConfigureService. |
| 180 | |
| 181 | Possible Errors: [service].Error.InvalidArguments |
| 182 | [service].Error.NotSupported |
| 183 | [service].Error.PermissionDenied |
| 184 | [service].Error.InternalError |
| 185 | [service].Error.InvalidNetworkName |
| 186 | [service].Error.InvalidPassphrase |
| 187 | |
| 188 | object GetVPNService(dict properties) --DEPRECATED-- |
| 189 | |
| 190 | Like GetService, but only for "vpn" services and |
| 191 | without using the GUID property to lookup a service. |
| 192 | |
| 193 | Possible Errors: [service].Error.InvalidArguments |
| 194 | [service].Error.NotSupported |
| 195 | [service].Error.PermissionDenied |
| 196 | [service].Error.InternalError |
| 197 | |
| 198 | object GetWifiService(dict properties) --DEPRECATED-- |
| 199 | |
| 200 | Like GetService, but only for "wifi" services and |
| 201 | without using the GUID property to lookup a service. |
| 202 | |
| 203 | Possible Errors: [service].Error.InvalidArguments |
| 204 | [service].Error.NotSupported |
| 205 | [service].Error.PermissionDenied |
| 206 | [service].Error.InternalError |
| 207 | [service].Error.InvalidNetworkName |
| 208 | [service].Error.InvalidPassphrase |
| 209 | |
| 210 | void SetDebugTags(string taglist) |
| 211 | |
| 212 | Set the debug tags that are enabled for logging to |
| 213 | syslog. "taglist" is a list of valid tag names |
| 214 | separated by "+". Shill silently ignores |
| 215 | invalid flags. |
| 216 | |
| 217 | string GetDebugTags() |
| 218 | Get the list of enabled debug tags. The list is |
| 219 | represented as a string of tag names separated |
| 220 | by "+". |
| 221 | |
| 222 | string ListDebugTags() |
| 223 | Get the list of all debug tags that can be enabled. |
| 224 | The list is represented as a string of tag names |
| 225 | separated by "+". |
| 226 | |
| 227 | string GetServiceOrder() |
| 228 | |
| 229 | Return a ','-separated string listing known technologies |
| 230 | in priority ordering. |
| 231 | |
| 232 | For example, the default ordering would be returned as: |
| 233 | "ethernet,bluetooth,wifi,wimax,cellular" |
| 234 | |
| 235 | void SetServiceOrder(string mask) |
| 236 | |
| 237 | Set the technology priority based on a provided |
| 238 | ','-separated list of technologies, sorted from highest |
| 239 | priority to lowest. |
| 240 | |
| 241 | The list may contain the following services: |
| 242 | { ethernet, wifi, wimax, bluetooth, cellular } |
| 243 | Technologies not included are assigned the lowest |
| 244 | priority. |
| 245 | |
| 246 | Technology priority changes occur immediately. |
| 247 | |
| 248 | Possible Errors: [service].Error.InvalidArguments |
| 249 | |
| 250 | void RecheckPortal() |
| 251 | |
| 252 | Retest the portal state of the active service |
| 253 | if a check is not currently in progress. This |
| 254 | will only have an effect if the active service |
| 255 | is currently in the portal state. |
| 256 | |
| 257 | |
| 258 | Signals PropertyChanged(string name, variant value) |
| 259 | |
| 260 | This signal indicates a changed value of the given |
| 261 | property. |
| 262 | |
| 263 | StateChanged(string state) |
| 264 | |
| 265 | This signal is similar to the PropertyChanged signal |
| 266 | for the State property. |
| 267 | |
| 268 | It exists for application state only care about the |
| 269 | current state and so can avoid to be woken up when |
| 270 | other details changes. |
| 271 | |
| 272 | Properties object ActiveProfile [readwrite] |
| 273 | |
| 274 | Object path of the current active profile. |
| 275 | |
Paul Stewart | d408fdf | 2012-05-07 17:15:57 -0700 | [diff] [blame] | 276 | boolean ArpGateway [readwrite] |
| 277 | |
| 278 | Specifies whether the DHCP client should be |
| 279 | configured to perform the extra step of performing |
| 280 | an ARP of the gateway IP address. This provides |
| 281 | a level of assurance that the issued IP address is |
| 282 | valid and not blocked in some manner unknown by the |
| 283 | DHCP server. |
| 284 | |
Paul Stewart | a4e618b | 2012-04-25 16:21:22 -0700 | [diff] [blame] | 285 | array{string} AvailableTechnologies [readonly] |
| 286 | |
| 287 | The list of available technologies. The strings |
| 288 | are the same as the ones from the service types. |
| 289 | |
| 290 | string CheckPortalList [readwrite] |
| 291 | |
| 292 | The list of technologies for which captive portal |
| 293 | checking is enabled. This is a comma-separated |
| 294 | string; e.g. "wifi,wimax,vpn". |
| 295 | |
| 296 | array{string} ConnectedTechnologies [readonly] |
| 297 | |
| 298 | The list of connected technologies. The strings |
| 299 | are the same as the ones from the service type. |
| 300 | |
| 301 | string Country [readwrite] |
| 302 | |
| 303 | The ISO 3166 country code. This may not be defined; |
| 304 | it is defined if manually set or if it is discovered |
| 305 | through a service such as WiFi, Celluar, or GPS. |
| 306 | |
| 307 | string DefaultTechnology [readonly] |
| 308 | |
| 309 | The current connected technology which holds the |
| 310 | default route. |
| 311 | |
| 312 | array{object} Devices [readonly] |
| 313 | |
| 314 | List of device object paths. |
| 315 | |
| 316 | array{string} EnabledTechnologies [readonly] |
| 317 | |
| 318 | The list of enabled technologies. The strings |
| 319 | are the same as the ones from the service types. |
| 320 | |
| 321 | string HostName [readwrite] |
| 322 | |
| 323 | The hostname to be reported in DHCP requests. |
| 324 | Some DHCP servers may register a DNS entry on |
| 325 | behalf of this hostname; others may just make |
| 326 | available a table for administrators to tell |
| 327 | what machines are on their network. |
| 328 | |
| 329 | The default for this name is empty, which |
| 330 | means that the system will not report a hostname. |
| 331 | |
| 332 | boolean OfflineMode [readwrite] |
| 333 | |
| 334 | The offline mode indicates the global setting for |
| 335 | switching all radios on or off. Changing offline mode |
| 336 | to true results in powering down all devices. When |
| 337 | leaving offline mode the individual policy of each |
| 338 | device decides to switch the radio back on or not. |
| 339 | |
| 340 | During offline mode, it is still possible to switch |
| 341 | certain technologies manually back on. For example |
| 342 | the limited usage of WiFi or Bluetooth devices might |
| 343 | be allowed in some situations. |
| 344 | |
| 345 | string PortalURL [readwrite] |
| 346 | |
| 347 | The URL to use when doing captive portal checking. |
| 348 | When a service reaches the "ready" state and |
| 349 | captive portal checking is enabled for it; an |
| 350 | HTTP GET of this URL is done. If this fails |
| 351 | with a 204 error then the service is moved |
| 352 | to the "online" state. Otherwise the service |
| 353 | is assumed to be not online and marked in a |
| 354 | "portal" state. Note that this check may fail |
| 355 | for multiple reasons that are indicated in the |
| 356 | Error property of the service. |
| 357 | |
| 358 | int32 PortalCheckInterval [readwrite] |
| 359 | |
| 360 | The interval in seconds between re-checking a |
| 361 | service in the portal state. |
| 362 | |
| 363 | array{object} Profiles [readonly] |
| 364 | |
| 365 | List of profile object paths. |
| 366 | |
| 367 | array{object} Services [readonly] |
| 368 | |
| 369 | List of service object paths. The list is sorted |
| 370 | internally to have the service with the default |
| 371 | route always first and then the favorite services |
| 372 | followed by scan results. |
| 373 | |
| 374 | This list represents the available services for the |
| 375 | current selected profile. If the profile gets changed |
| 376 | then this list will be updated. |
| 377 | |
| 378 | The same list is available via the profile object |
| 379 | itself. It is just provided here for convenience of |
| 380 | applications only dealing with the current active |
| 381 | profile. |
| 382 | |
| 383 | array{object} ServiceWatchList [readonly] |
| 384 | |
| 385 | List of service object paths that are in a |
| 386 | 'non-idle' state. This indicates the set of services |
| 387 | which are currently listed as associating, configuring, |
| 388 | or some other state other than idle. This allows a |
| 389 | caller to use this property indication to track which |
| 390 | services should be monitored for state changes. |
| 391 | |
| 392 | In particular, services in error states like "failure" |
| 393 | and "disconnect" are in the watchlist. |
| 394 | |
| 395 | The services are listed in the same service sorting |
| 396 | order as the "Services" property above, but this |
| 397 | property is not considered "changed" if the ordering |
| 398 | changes. |
| 399 | |
| 400 | Changes to this list are batched up for small periods |
| 401 | of time, so that batches of changes are collected |
| 402 | into a single message containing the final state, and |
| 403 | ephemeral changes where the list returns to the |
| 404 | previous state are filtered out. |
| 405 | |
| 406 | Note: Currently shill reports the entire service |
| 407 | list, unfiltered. |
| 408 | |
| 409 | string State [readonly] |
| 410 | |
| 411 | The global connection state of a system. Possible |
| 412 | values are "online" if at least one connection exists |
| 413 | and "offline" if no device is connected. |