From 00c153c57c455ecaa5bd12d0ece2c7afe4d4fec7 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 22 Mar 2011 10:25:22 +0100 Subject: sync to spec 0.22.0 --- ...Account_Interface_External_Password_Storage.xml | 18 +- spec/Channel_Type_Server_TLS_Connection.xml | 60 +++++- spec/Connection.xml | 6 + spec/Connection_Interface_Contact_Blocking.xml | 207 +++++++++++++++++++++ ...onnection_Manager_Interface_Account_Storage.xml | 29 +-- spec/Makefile.am | 1 + spec/all.xml | 12 +- 7 files changed, 303 insertions(+), 30 deletions(-) create mode 100644 spec/Connection_Interface_Contact_Blocking.xml (limited to 'spec') diff --git a/spec/Account_Interface_External_Password_Storage.xml b/spec/Account_Interface_External_Password_Storage.xml index 71a542428..5bd1bfce0 100644 --- a/spec/Account_Interface_External_Password_Storage.xml +++ b/spec/Account_Interface_External_Password_Storage.xml @@ -27,24 +27,30 @@

An interface for Accounts whose passwords are stored externally and - SHOULD NOT be stored by either the AccountManager nor - any ServerAuthentication + SHOULD NOT be stored by either the + AccountManager nor any + ServerAuthentication handler.

+ +

This interface SHOULD only appear on accounts for which the + related Connection Manager implements + ConnectionManager.Interface.AccountStorage.DRAFT.

-

Clears any saved password associated with this account.

+ Clears any saved password associated with this account.
- +

Indicates whether the account has a saved password or not.

+ +

Change notification for this property is provided by the + standard D-Bus PropertiesChanged signal.

diff --git a/spec/Channel_Type_Server_TLS_Connection.xml b/spec/Channel_Type_Server_TLS_Connection.xml index 1f3348e12..97efd1b36 100644 --- a/spec/Channel_Type_Server_TLS_Connection.xml +++ b/spec/Channel_Type_Server_TLS_Connection.xml @@ -44,23 +44,71 @@ + tp:name-for-bindings="Server_Certificate" + tp:immutable='yeah'>

A TLSCertificate containing the certificate chain as sent by the server, and other relevant information.

-

This property is immutable.

+ tp:name-for-bindings="Hostname" + tp:immutable='sharks'> - The hostname of the server we expect ServerCertificate - to certify; clients SHOULD verify ServerCertificate against - this hostname when checking its validity. +

The hostname or domain that the user expects to connect to. Clients + SHOULD use the ReferenceIdentities + property to verify the identity of the certificate. Clients MAY display + this hostname to the user as the expected identity. Clients SHOULD use + this property to lookup pinned certificates or other user preferences + for the connection.

+
+
+ + + + If this property is not present, clients SHOULD use the + Hostname property as the reference + identity to validate server certificates against. + + + +

The identities of the server we expect + ServerCertificate to certify; clients + SHOULD verify that ServerCertificate + matches one of these identities when checking its validity.

+ +

This property MUST NOT be the empty list; it MUST + contain the value of the Hostname + property. All other identities included in this property MUST be derived from + explicit user input or choices, such as Parameters passed to + RequestConnection.

+ + +

The primary use for this property is for XMPP services hosted by + Google + Apps. When connecting to Google Talk using an + @gmail.com JID, the server correctly presents a + certificate for gmail.com; however, for domains hosted via + Google Apps, a certificate for talk.google.com is + offered, due to unresolved technical limitations.

+ +

If the user has explicitly chosen to create a Google Talk + account, then trusting a certificate for talk.google.com + is reasonable. To handle this case, the connection manager may add + the values of any or all of the server, + fallback-server and extra-identities parameters; + the Google Talk account creation user interface may set these + parameters appropriately, or the user may set them for accounts + with other services.

+
diff --git a/spec/Connection.xml b/spec/Connection.xml index 51ec1ab23..0ba095a9e 100644 --- a/spec/Connection.xml +++ b/spec/Connection.xml @@ -1033,6 +1033,12 @@ USA.

Debugging information on the change, corresponding to the message part of a D-Bus error message, which SHOULD NOT be displayed to users under normal circumstances
+ +
server-message (s)
+
A human-readable message from the server explaining what + happened. This may be in the user's native language, or in the + server operator's native language, or even in Lojban.
+
user-requested (b), expected-hostname (s), certificate-hostname (s)
The same details defined in TLS_Certificate_Rejection.
diff --git a/spec/Connection_Interface_Contact_Blocking.xml b/spec/Connection_Interface_Contact_Blocking.xml new file mode 100644 index 000000000..756fd4db8 --- /dev/null +++ b/spec/Connection_Interface_Contact_Blocking.xml @@ -0,0 +1,207 @@ + + + Copyright © 2009–2011 Collabora Ltd. + Copyright © 2009 Nokia Corporation + +

This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version.

+ +

This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details.

+ +

You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA.

+
+ + + + Changes from the draft: + methods and signals now return Handle_Identifier_Map + (a{us}) rather than bare lists of contact handles + (au) + + +

An interface for connections where contacts can be blocked from + communicating with this user and receiving this user's presence. + Clients may retrieve a list of currently-blocked contacts using + RequestBlockedContacts, and listen for + BlockedContactsChanged to be notified + when contacts are blocked and unblocked. The + BlockContacts and + UnblockContacts methods do what they say + on the tin; depending on the value of the + ContactBlockingCapabilities property, + contacts may be reported for spam or other abuse when calling + BlockContacts.

+ +

This interface is intended for protocols where blocking contacts + persists on the server between connections; connection managers for + protocols with no server-side support for blocking contacts MAY choose + to implement this interface using an on-disk file of blocked + contacts or some other means to store blocked contacts between + connections.

+ +

This interface is intended to replace the + ContactList + channel with TargetHandleType + List and TargetID "deny" + (along with the ContactList and + ContactGroups + interfaces replacing other channels with TargetHandleType + List and TargetHandleType + Group, respectively).

+
+ + + +

Direct the server to block some contacts. The precise effect is + protocol-dependent, but SHOULD include ignoring all current and + subsequent communications from the given contacts, avoiding sending + presence to them in future, and if they were already receiving the + local user's presence, behaving as if the local user went + offline.

+
+ + + Some contacts to block. If some of the contacts in this + list are already blocked, the connection manager MUST act as if they + were not specified in this list. + + + + +

In addition to blocking, report these contacts as abusive to the + server administrators.

+ +

Clients can determine whether this capability is available by + checking the + ContactBlockingCapabilities + property. If this argument is set to True by a client + despite ContactBlockingCapabilities + not containing the Can_Report_Abusive flag, the + connection manager SHOULD act as if it were False and + simply block the supplied contacts.

+ + +

A correct user interface shouldn't get this far without knowing + that reporting abusive contacts is not supported. If it does, + then the user has expressed their intention to block these + contacts. Returning an error would leave the UI with three + options:

+ +
    +
  • Ignore the error, leaving the contacts not actually blocked;
  • +
  • Display an error to the user;
  • +
  • Call this method again, passing False for this + argument.
  • +
+ +

None of these seem preferable to the CM just ignoring this flag + if it doesn't support it: that way, the contacts will be blocked, + as the user requested, and UIs have fewer ways to mess up + entirely.

+
+
+
+
+ + + +

Direct the server to unblock some contacts.

+
+ + + Some contacts to unblock. If some of the contacts in this + list are not currently blocked, the connection manager MUST act as if + they were not specified in this list. + +
+ + + +

List the contacts that are blocked.

+ +

Clients SHOULD allow a relatively long timeout for calls to this + method, since on some protocols contact blocking is part of the + contact list, which can take a significant time to retrieve.

+
+ + + The blocked contacts’ handles, together with their + identifiers. + +
+ + + +

Emitted when the list of blocked contacts is first retrieved + (before returning from any pending calls to + RequestBlockedContacts), and + whenever the list of blocked contacts subsequently changes.

+
+ + + Contacts added to the result of + RequestBlockedContacts. + + + + Contacts removed from the result of + RequestBlockedContacts. + +
+ + + +

True if the contact would be in the result of + RequestBlockedContacts; + False or omitted if the contact is not blocked, or if it + is unknown whether the contact is blocked.

+
+
+ + + +

Additional capabilities for contact blocking; currently, this is + limited to whether contacts may be reported as abusive.

+ +

Note that there is no capability for supporting blocking itself: + the presence of this interface on a Connection indicates that blocking + contacts is supported.

+
+
+ + + + + When calling BlockContacts, the + contacts may be reporting as abusive to the server administrators by + setting Report_Abusive to True. + + + + +
+
+ diff --git a/spec/Connection_Manager_Interface_Account_Storage.xml b/spec/Connection_Manager_Interface_Account_Storage.xml index 143d5de73..2f4f4bf78 100644 --- a/spec/Connection_Manager_Interface_Account_Storage.xml +++ b/spec/Connection_Manager_Interface_Account_Storage.xml @@ -29,18 +29,18 @@

An interface for connection managers that store account details internally. At the moment this consists only of storing an account's credentials, but other functionality may be added in the future.

-

Account objects + +

Account objects representing accounts on a connection manager that implements this - interface should implement the ExternalPasswordStorage.DRAFT + interface should implement the + ExternalPasswordStorage.DRAFT interface.

- - A set of flags representing the status of the Account stored in the Connection Manager. + A set of flags representing the status of the Account stored in the + Connection Manager. @@ -61,9 +61,12 @@ - - The set of Accounts stored in this connection manager, and flags - indicating their status. + +

The set of Accounts stored in this Connection Manager, and flags + indicating their status.

+ +

Change notification for this property is provided by the standard + D-Bus PropertiesChanged signal.

@@ -76,8 +79,8 @@ - An account id as returned from Protocol.IdentifyAccount. + An account id as returned from + Protocol.IdentifyAccount. @@ -99,8 +102,8 @@ - An account id as returned from Protocol.IdentifyAccount. + An account id as returned from + Protocol.IdentifyAccount. diff --git a/spec/Makefile.am b/spec/Makefile.am index e8e3e0cc5..767780e59 100644 --- a/spec/Makefile.am +++ b/spec/Makefile.am @@ -75,6 +75,7 @@ EXTRA_DIST = \ Connection_Interface_Cellular.xml \ Connection_Interface_Client_Types.xml \ Connection_Interface_Communication_Policy.xml \ + Connection_Interface_Contact_Blocking.xml \ Connection_Interface_Contact_Capabilities.xml \ Connection_Interface_Contact_Groups.xml \ Connection_Interface_Contact_Info.xml \ diff --git a/spec/all.xml b/spec/all.xml index fccf75c95..a5644a90f 100644 --- a/spec/all.xml +++ b/spec/all.xml @@ -3,10 +3,10 @@ xmlns:xi="http://www.w3.org/2001/XInclude"> Telepathy D-Bus Interface Specification -0.21.12 +0.22.0 -Copyright © 2005-2010 Collabora Limited -Copyright © 2005-2010 Nokia Corporation +Copyright © 2005-2011 Collabora Limited +Copyright © 2005-2011 Nokia Corporation Copyright © 2006 INdT @@ -56,13 +56,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

On protocols that support contact lists, these interface expose the user's - contact lists, along with presence subscription information and contact - list groups (if supported). + contact lists, along with presence subscription information, contact + list groups (if supported), and the ability to block and unblock contacts + (if supported).

+ -- cgit v1.2.1