Possible Errors: net.connman.Agent.Error.Retry
+ void ReportPeerError(object peer, string error)
+
+ This method gets called when an error has to be
+ reported to the user about a peer connection.
+
+ A special return value can be used to trigger a
+ retry of the failed transaction.
+
+ Possible Errors: net.connman.Agent.Error.Retry
+
+ void RequestBrowser(object service, string url)
+
+ This method gets called when it is required
+ to ask the user to open a website to proceed
+ with login handling.
+
+ This can happen if connected to a hotspot portal
+ page without WISPr support.
+
+ Possible Errors: net.connman.Agent.Error.Canceled
+
dict RequestInput(object service, dict fields)
This method gets called when trying to connect to
The return value should be a dictionary where the
keys are the field names and the values are the
- actual fields. Alternative an error indicating that
- the request got cannceled can be returned.
+ actual fields. Alternatively an error indicating that
+ the request got canceled can be returned.
+ OperationAborted will be return on a successful
+ cancel request.
Most common return field names are "Name" and of
course "Passphrase".
The dictionary arguments contains field names with
their input parameters.
+ In case of WISPr credentials requests and if the user
+ prefers to login through the browser by himself, agent
+ will have to return a LaunchBrowser error (see below).
+
+ Possible Errors: net.connman.Agent.Error.Canceled
+ net.connman.Agent.Error.LaunchBrowser
+
+ dict RequestPeerAuthorization(object peer, dict fields) [experimental]
+
+ This method gets called when trying to connect to a
+ peer or when an incoming peer connection is requested,
+ for which some extra input is required. In this case,
+ it will only deal with WPS input as well as accepting
+ or rejecting an incoming connection.
+
+ The return value should be a dictionary where the
+ keys are the field names and the values are the
+ actual fields. Alternatively an error indicating that
+ the request got canceled or rejected can be returned.
+
+ The dictionary arguments contains field names with
+ their input parameters.
+
Possible Errors: net.connman.Agent.Error.Canceled
+ net.connman.Agent.Error.Rejected
void Cancel()
Normally returning the "Name" field is the better
option here.
+ string Identity
+
+ Identity (username) for EAP authentication methods.
+
string Passphrase
- The passphrase for a network. For example a WEP
- key or a PSK passphrase.
+ The passphrase for authentication. For example a WEP
+ key, a PSK passphrase or a passphrase for EAP
+ authentication methods.
+
+ string PreviousPassphrase
+
+ The previous passphrase successfully saved, i.e.
+ which led to a successful connection. This field is
+ provided as an informational argument when connecting
+ with it does not work anymore, for instance when it
+ has been changed on the AP. Such argument appears when
+ a RequestInput is raised after a retry. In case of WPS
+ association through PIN method: when retrying, the
+ previous wpspin will be provided.
+
+ string WPS
+
+ This field requests the use of WPS to get associated.
+ This is an alternate choice against Passphrase when
+ requested service supports WPS. The reply can contain
+ either empty pin, if user wants to use push-button
+ method, or a pin code if user wants to use the pin
+ method.
+
+ In case of a RequestPeerAuthorization, this field will
+ be set as mandatory.
+
+ string Username
+
+ Username for WISPr authentication. This field will be
+ requested when connecting to a WISPr-enabled hotspot.
+
+ string Password
+
+ Password for WISPr authentication. This field will be
+ requested when connecting to a WISPr-enabled hotspot.
Arguments string Type
- Contains the type of a field. For example "psk",
- "wep", "ssid" or plain "string".
+ Contains the type of a field. For example "psk", "wep"
+ "passphrase", "response", "ssid", "wpspin" or plain
+ "string".
string Requirement
Contains the requirement option. Valid values are
- "mandatory", "optional" or "alternate".
+ "mandatory", "optional", "alternate" or
+ "informational".
- The "alternate" specifies that this field can be
- return as an alternative to another one. An example
+ The "alternate" value specifies that this field can be
+ returned as an alternative to another one. An example
would be the network name or SSID.
All "mandatory" fields must be returned, while the
- "optional" can be returned if available.
+ "optional" ones can be returned if available.
+
+ Nothing needs to be returned for "informational", as it
+ is here only to provide an information. A value is
+ attached to it.
array{string} Alternates
Contains the list of alternate field names this
field can be represented by.
+ string Value
+
+ Contains data as a string, relatively to an
+ "informational" argument.
+
Examples Requesting a passphrase for WPA2 network
RequestInput("/service1",
- { "Passphrase" : { "Type" : "psk",
+ { "Passphrase" : { "Type" : "psk",
"Requirement" : "mandatory"
}
}
==> { "Passphrase" : "secret123" }
+ Requesting a passphrase after an error on the previous one:
+
+ RequestInput("/service1",
+ { "Passphrase" : { "Type" : "psk",
+ "Requirement" : "mandatory"
+ },
+ "PreviousPassphrase" :
+ { "Type" : "psk",
+ "Requirement : "informational",
+ "Value" : "secret123"
+ }
+ }
+
Requesting name for hidden network
RequestInput("/service2",
"Requirement" : "mandatory",
"Alternates" : [ "SSID" ]
},
- "SSID" : { "Type" : "ssid",
- "Requirement" : "alternate"
- }
+ "SSID" : { "Type" : "ssid",
+ "Requirement" : "alternate"
+ }
}
==> { "Name" : "My hidden network" }
+
+ Requesting a passphrase for a WPA2 network with WPS alternative:
+
+ RequestInput("/service3",
+ { "Passphrase" : { "Type" : "psk",
+ "Requirement" : "mandatory",
+ "Alternates" : [ "WPS" ]
+ },
+ "WPS" : { "Type" : "wpspin",
+ "Requirement" : "alternate"
+ }
+ }
+
+ ==> { "WPS" : "123456" }
+
+ Requesting a passphrase for a WPA2 network with WPS alternative
+ after an error on the previous one:
+
+ RequestInput("/service3",
+ { "Passphrase" : { "Type" : "psk",
+ "Requirement" : "mandatory",
+ "Alternates" : [ "WPS" ]
+ },
+ "WPS" : { "Type" : "wpspin",
+ "Requirement" : "alternate"
+ }
+ "PreviousPassphrase" :
+ { "Type" : "wpspin",
+ "Requirement : "informational",
+ "Value" : "123456"
+ }
+
+ Requesting passphrase for a WPA-Enterprise network:
+
+ RequestInput("/service4",
+ { "Identity" : { "Type" : "string",
+ "Requirement" : "mandatory"
+ },
+ "Passphrase" : { "Type" : "passphrase",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "Identity" : "alice", "Passphrase": "secret123" }
+
+ Requesting challenge response for a WPA-Enterprise network:
+
+ RequestInput("/service4",
+ { "Identity" : { "Type" : "string",
+ "Requirement" : "mandatory"
+ },
+ "Passphrase" : { "Type" : "response",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "Identity" : "bob", "Passphrase": "secret123" }
+
+ Requesting username and password for a WISPr-enabled hotspot:
+
+ RequestInput("/service5",
+ { "Username" : { "Type" : "string",
+ "Requirement" : "mandatory"
+ },
+ "Password" : { "Type" : "passphrase",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "Username" : "foo", "Password": "secret" }
+
+ Requesting a answer about an inconming peer connection:
+
+ RequestPeerAuthorization("/peer3", {})
+
+ ==> { }
+
+ Requesting the WPS details when connecting to a peer:
+
+ RequestPeerAuthorization("/peer4",
+ { "WPS":
+ { "Type" : "wpspin",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "WPS" : "" }