Telepathy protocol errors

Telepathy protocol errors — The errors from the Telepathy D-Bus spec, as a GLib error domain

Synopsis


#include <telepathy-glib/errors.h>

#define             TP_ERROR_PREFIX
#define             TP_ERRORS
#define             TP_TYPE_ERROR
enum                TpError;
void                tp_g_set_error_invalid_handle_type  (guint type,
                                                         GError **error);
void                tp_g_set_error_unsupported_handle_type
                                                        (guint type,
                                                         GError **error);
const gchar*        tp_error_get_dbus_name              (TpError error);
#define             TP_ERROR_STR_NETWORK_ERROR
#define             TP_ERROR_STR_NOT_IMPLEMENTED
#define             TP_ERROR_STR_INVALID_ARGUMENT
#define             TP_ERROR_STR_NOT_AVAILABLE
#define             TP_ERROR_STR_PERMISSION_DENIED
#define             TP_ERROR_STR_DISCONNECTED
#define             TP_ERROR_STR_INVALID_HANDLE
#define             TP_ERROR_STR_CHANNEL_BANNED
#define             TP_ERROR_STR_CHANNEL_FULL
#define             TP_ERROR_STR_CHANNEL_INVITE_ONLY
#define             TP_ERROR_STR_NOT_YOURS
#define             TP_ERROR_STR_CANCELLED
#define             TP_ERROR_STR_AUTHENTICATION_FAILED
#define             TP_ERROR_STR_ENCRYPTION_NOT_AVAILABLE
#define             TP_ERROR_STR_ENCRYPTION_ERROR
#define             TP_ERROR_STR_CERT_NOT_PROVIDED
#define             TP_ERROR_STR_CERT_UNTRUSTED
#define             TP_ERROR_STR_CERT_EXPIRED
#define             TP_ERROR_STR_CERT_NOT_ACTIVATED
#define             TP_ERROR_STR_CERT_FINGERPRINT_MISMATCH
#define             TP_ERROR_STR_CERT_HOSTNAME_MISMATCH
#define             TP_ERROR_STR_CERT_SELF_SIGNED
#define             TP_ERROR_STR_CERT_INVALID
#define             TP_ERROR_STR_NOT_CAPABLE
#define             TP_ERROR_STR_OFFLINE
#define             TP_ERROR_STR_CHANNEL_KICKED
#define             TP_ERROR_STR_BUSY
#define             TP_ERROR_STR_NO_ANSWER
#define             TP_ERROR_STR_DOES_NOT_EXIST
#define             TP_ERROR_STR_TERMINATED
#define             TP_ERROR_STR_CONNECTION_REFUSED
#define             TP_ERROR_STR_CONNECTION_FAILED
#define             TP_ERROR_STR_CONNECTION_LOST

Description

This header provides the Telepathy D-Bus errors, in the form of a GLib error domain. For D-Bus methods which fail with one of these errors, dbus-glib will generate a reply message with the appropriate error.

It also provides utility functions used by functions which return an error.

Details

TP_ERROR_PREFIX

#define TP_ERROR_PREFIX "org.freedesktop.Telepathy.Error"

The common prefix of Telepathy errors, as a string constant, without the trailing '.' character.

Since 0.7.1


TP_ERRORS

#define TP_ERRORS (tp_errors_quark ())

The error domain for the D-Bus errors described in the Telepathy specification. Error codes in this domain come from the TpError enumeration.

This macro expands to a call to a function returning the Telepathy error domain. Since 0.7.17, this function automatically registers the domain with dbus-glib for server-side use (using dbus_g_error_domain_register()) when called.


TP_TYPE_ERROR

#define TP_TYPE_ERROR (tp_error_get_type())

The GType of the Telepathy error enumeration.


enum TpError

typedef enum {
    TP_ERROR_NETWORK_ERROR,
    TP_ERROR_NOT_IMPLEMENTED,
    TP_ERROR_INVALID_ARGUMENT,
    TP_ERROR_NOT_AVAILABLE,
    TP_ERROR_PERMISSION_DENIED,
    TP_ERROR_DISCONNECTED,
    TP_ERROR_INVALID_HANDLE,
    TP_ERROR_CHANNEL_BANNED,
    TP_ERROR_CHANNEL_FULL,
    TP_ERROR_CHANNEL_INVITE_ONLY,
    TP_ERROR_NOT_YOURS,
    TP_ERROR_CANCELLED,
    TP_ERROR_AUTHENTICATION_FAILED,
    TP_ERROR_ENCRYPTION_NOT_AVAILABLE,
    TP_ERROR_ENCRYPTION_ERROR,
    TP_ERROR_CERT_NOT_PROVIDED,
    TP_ERROR_CERT_UNTRUSTED,
    TP_ERROR_CERT_EXPIRED,
    TP_ERROR_CERT_NOT_ACTIVATED,
    TP_ERROR_CERT_FINGERPRINT_MISMATCH,
    TP_ERROR_CERT_HOSTNAME_MISMATCH,
    TP_ERROR_CERT_SELF_SIGNED,
    TP_ERROR_CERT_INVALID,
    TP_ERROR_NOT_CAPABLE,
    TP_ERROR_OFFLINE,
    TP_ERROR_CHANNEL_KICKED,
    TP_ERROR_BUSY,
    TP_ERROR_NO_ANSWER,
    TP_ERROR_DOES_NOT_EXIST,
    TP_ERROR_TERMINATED,
    TP_ERROR_CONNECTION_REFUSED,
    TP_ERROR_CONNECTION_FAILED,
    TP_ERROR_CONNECTION_LOST,
} TpError;

Enumerated type representing the Telepathy D-Bus errors.

TP_ERROR_NETWORK_ERROR org.freedesktop.Telepathy.Error.NetworkError: Raised when there is an error reading from or writing to the network.
TP_ERROR_NOT_IMPLEMENTED org.freedesktop.Telepathy.Error.NotImplemented: Raised when the requested method, channel, etc is not available on this connection.
TP_ERROR_INVALID_ARGUMENT org.freedesktop.Telepathy.Error.InvalidArgument: Raised when one of the provided arguments is invalid.
TP_ERROR_NOT_AVAILABLE org.freedesktop.Telepathy.Error.NotAvailable: Raised when the requested functionality is temporarily unavailable.
TP_ERROR_PERMISSION_DENIED org.freedesktop.Telepathy.Error.PermissionDenied: The user is not permitted to perform the requested operation.
TP_ERROR_DISCONNECTED org.freedesktop.Telepathy.Error.Disconnected: The connection is not currently connected and cannot be used. This error may also be raised when operations are performed on a Connection for which StatusChanged has signalled status Disconnected for reason None.
TP_ERROR_INVALID_HANDLE org.freedesktop.Telepathy.Error.InvalidHandle: An identifier being converted to a handle was syntactically invalid, or an invalid handle was used.
TP_ERROR_CHANNEL_BANNED org.freedesktop.Telepathy.Error.Channel.Banned: You are banned from the channel.
TP_ERROR_CHANNEL_FULL org.freedesktop.Telepathy.Error.Channel.Full: The channel is full.
TP_ERROR_CHANNEL_INVITE_ONLY org.freedesktop.Telepathy.Error.Channel.InviteOnly: The requested channel is invite-only.
TP_ERROR_NOT_YOURS org.freedesktop.Telepathy.Error.NotYours: The requested channel or other resource already exists, and another client is responsible for it
TP_ERROR_CANCELLED org.freedesktop.Telepathy.Error.Cancelled: Raised by an ongoing request if it is cancelled by user request before it has completed, or when operations are performed on an object which the user has asked to close (for instance, a Connection where the user has called Disconnect, or a Channel where the user has called Close).
TP_ERROR_AUTHENTICATION_FAILED org.freedesktop.Telepathy.Error.AuthenticationFailed: Raised when authentication with a service was unsuccessful.
TP_ERROR_ENCRYPTION_NOT_AVAILABLE org.freedesktop.Telepathy.Error.EncryptionNotAvailable: Raised if a user request insisted that encryption should be used, but encryption was not actually available.
TP_ERROR_ENCRYPTION_ERROR org.freedesktop.Telepathy.Error.EncryptionError: Raised if encryption appears to be available, but could not actually be used (for instance if SSL/TLS negotiation fails).
TP_ERROR_CERT_NOT_PROVIDED org.freedesktop.Telepathy.Error.Cert.NotProvided: Raised if the server did not provide a SSL/TLS certificate.
TP_ERROR_CERT_UNTRUSTED org.freedesktop.Telepathy.Error.Cert.Untrusted: Raised if the server provided a SSL/TLS certificate signed by an untrusted certifying authority.
TP_ERROR_CERT_EXPIRED org.freedesktop.Telepathy.Error.Cert.Expired: Raised if the server provided an expired SSL/TLS certificate.
TP_ERROR_CERT_NOT_ACTIVATED org.freedesktop.Telepathy.Error.Cert.NotActivated: Raised if the server provided an SSL/TLS certificate that will become valid at some point in the future.
TP_ERROR_CERT_FINGERPRINT_MISMATCH org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch: Raised if the server provided an SSL/TLS certificate that did not have the expected fingerprint.
TP_ERROR_CERT_HOSTNAME_MISMATCH org.freedesktop.Telepathy.Error.Cert.HostnameMismatch: Raised if the server provided an SSL/TLS certificate that did not match its hostname.
TP_ERROR_CERT_SELF_SIGNED org.freedesktop.Telepathy.Error.Cert.SelfSigned: Raised if the server provided an SSL/TLS certificate that is self-signed and untrusted.
TP_ERROR_CERT_INVALID org.freedesktop.Telepathy.Error.Cert.Invalid: Raised if the server provided an SSL/TLS certificate that is unacceptable in some way that does not have a more specific error.
TP_ERROR_NOT_CAPABLE org.freedesktop.Telepathy.Error.NotCapable: Raised when requested functionality is unavailable due to a contact not having the required capabilities.
TP_ERROR_OFFLINE org.freedesktop.Telepathy.Error.Offline: Raised when requested functionality is unavailable because a contact is offline.
TP_ERROR_CHANNEL_KICKED org.freedesktop.Telepathy.Error.Channel.Kicked: Used to represent a user being ejected from a channel by another user, for instance being kicked from a chatroom.
TP_ERROR_BUSY org.freedesktop.Telepathy.Error.Busy: Used to represent a user being removed from a channel because of a "busy" indication.
TP_ERROR_NO_ANSWER org.freedesktop.Telepathy.Error.NoAnswer: Used to represent a user being removed from a channel because they did not respond, e.g. to a StreamedMedia call.
TP_ERROR_DOES_NOT_EXIST org.freedesktop.Telepathy.Error.DoesNotExist: Raised when the requested user does not, in fact, exist.
TP_ERROR_TERMINATED org.freedesktop.Telepathy.Error.Terminated: Raised when a channel is terminated for an unspecified reason. In particular, this error SHOULD be used whenever normal termination of a 1-1 StreamedMedia call by the remote user is represented as a D-Bus error name.
TP_ERROR_CONNECTION_REFUSED org.freedesktop.Telepathy.Error.ConnectionRefused: Raised when a connection is refused.
TP_ERROR_CONNECTION_FAILED org.freedesktop.Telepathy.Error.ConnectionFailed: Raised when a connection can't be established.
TP_ERROR_CONNECTION_LOST org.freedesktop.Telepathy.Error.ConnectionLost: Raised when a connection is broken.

tp_g_set_error_invalid_handle_type ()

void                tp_g_set_error_invalid_handle_type  (guint type,
                                                         GError **error);

Set the error NotImplemented for an invalid handle type, with an appropriate message.

Changed in version 0.7.23: previously, the error was InvalidArgument.

type : An invalid handle type
error : Either NULL, or used to return an error (as for g_set_error)

tp_g_set_error_unsupported_handle_type ()

void                tp_g_set_error_unsupported_handle_type
                                                        (guint type,
                                                         GError **error);

Set the error NotImplemented for a handle type which is valid but is not supported by this connection manager, with an appropriate message.

Changed in version 0.7.23: previously, the error was InvalidArgument.

type : An unsupported handle type
error : Either NULL, or used to return an error (as for g_set_error)

tp_error_get_dbus_name ()

const gchar*        tp_error_get_dbus_name              (TpError error);

error : a member of the TpError enum.
Returns : the D-Bus error name corresponding to error.

Since 0.7.31


TP_ERROR_STR_NETWORK_ERROR

#define             TP_ERROR_STR_NETWORK_ERROR

The D-Bus error name org.freedesktop.Telepathy.Error.NetworkError

Raised when there is an error reading from or writing to the network.


TP_ERROR_STR_NOT_IMPLEMENTED

#define             TP_ERROR_STR_NOT_IMPLEMENTED

The D-Bus error name org.freedesktop.Telepathy.Error.NotImplemented

Raised when the requested method, channel, etc is not available on this connection.


TP_ERROR_STR_INVALID_ARGUMENT

#define             TP_ERROR_STR_INVALID_ARGUMENT

The D-Bus error name org.freedesktop.Telepathy.Error.InvalidArgument

Raised when one of the provided arguments is invalid.


TP_ERROR_STR_NOT_AVAILABLE

#define             TP_ERROR_STR_NOT_AVAILABLE

The D-Bus error name org.freedesktop.Telepathy.Error.NotAvailable

Raised when the requested functionality is temporarily unavailable.


TP_ERROR_STR_PERMISSION_DENIED

#define             TP_ERROR_STR_PERMISSION_DENIED

The D-Bus error name org.freedesktop.Telepathy.Error.PermissionDenied

The user is not permitted to perform the requested operation.


TP_ERROR_STR_DISCONNECTED

#define             TP_ERROR_STR_DISCONNECTED

The D-Bus error name org.freedesktop.Telepathy.Error.Disconnected

The connection is not currently connected and cannot be used. This error may also be raised when operations are performed on a Connection for which <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection">StatusChanged</tp:dbus-ref> has signalled status Disconnected for reason None. <tp:rationale> The second usage corresponds to None in the <tp:type>Connection_Status_Reason</tp:type> enum; if a better reason is available, the corresponding error should be used instead. </tp:rationale>


TP_ERROR_STR_INVALID_HANDLE

#define             TP_ERROR_STR_INVALID_HANDLE

The D-Bus error name org.freedesktop.Telepathy.Error.InvalidHandle

The contact name specified is unknown on this channel or connection.


TP_ERROR_STR_CHANNEL_BANNED

#define             TP_ERROR_STR_CHANNEL_BANNED

The D-Bus error name org.freedesktop.Telepathy.Error.Channel.Banned

You are banned from the channel.


TP_ERROR_STR_CHANNEL_FULL

#define             TP_ERROR_STR_CHANNEL_FULL

The D-Bus error name org.freedesktop.Telepathy.Error.Channel.Full

The channel is full.


TP_ERROR_STR_CHANNEL_INVITE_ONLY

#define             TP_ERROR_STR_CHANNEL_INVITE_ONLY

The D-Bus error name org.freedesktop.Telepathy.Error.Channel.InviteOnly

The requested channel is invite-only.


TP_ERROR_STR_NOT_YOURS

#define             TP_ERROR_STR_NOT_YOURS

The D-Bus error name org.freedesktop.Telepathy.Error.NotYours

The requested channel or other resource already exists, and another client is responsible for it


TP_ERROR_STR_CANCELLED

#define             TP_ERROR_STR_CANCELLED

The D-Bus error name org.freedesktop.Telepathy.Error.Cancelled

Raised by an ongoing request if it is cancelled by user request before it has completed, or when operations are performed on an object which the user has asked to close (for instance, a Connection where the user has called Disconnect, or a Channel where the user has called Close). <tp:rationale> The second form can be used to correspond to the Requested member in the <tp:type>Connection_Status_Reason</tp:type> enum, or to to represent the situation where disconnecting a Connection, closing a Channel, etc. has been requested by the user but this request has not yet been acted on, for instance because the service will only act on the request when it has finished processing an event queue. </tp:rationale>


TP_ERROR_STR_AUTHENTICATION_FAILED

#define             TP_ERROR_STR_AUTHENTICATION_FAILED

The D-Bus error name org.freedesktop.Telepathy.Error.AuthenticationFailed

Raised when authentication with a service was unsuccessful. <tp:rationale> This corresponds to Authentication_Failed in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_ENCRYPTION_NOT_AVAILABLE

#define             TP_ERROR_STR_ENCRYPTION_NOT_AVAILABLE

The D-Bus error name org.freedesktop.Telepathy.Error.EncryptionNotAvailable

Raised if a user request insisted that encryption should be used, but encryption was not actually available. <tp:rationale> This corresponds to part of Encryption_Error in the <tp:type>Connection_Status_Reason</tp:type> enum. It's been separated into a distinct error here because the two concepts that were part of EncryptionError seem to be things that could reasonably appear differently in the UI. </tp:rationale>


TP_ERROR_STR_ENCRYPTION_ERROR

#define             TP_ERROR_STR_ENCRYPTION_ERROR

The D-Bus error name org.freedesktop.Telepathy.Error.EncryptionError

Raised if encryption appears to be available, but could not actually be used (for instance if SSL/TLS negotiation fails). <tp:rationale> This corresponds to part of Encryption_Error in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CERT_NOT_PROVIDED

#define             TP_ERROR_STR_CERT_NOT_PROVIDED

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.NotProvided

Raised if the server did not provide a SSL/TLS certificate. This error MUST NOT be used to represent the absence of a client certificate provided by the Telepathy connection manager. <tp:rationale> This corresponds to Cert_Not_Provided in the <tp:type>Connection_Status_Reason</tp:type> enum. That error explicitly applied only to server SSL certificates, so this one is similarly limited; having the CM present a client certificate is a possible future feature, but it should have its own error handling. </tp:rationale>


TP_ERROR_STR_CERT_UNTRUSTED

#define             TP_ERROR_STR_CERT_UNTRUSTED

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.Untrusted

Raised if the server provided a SSL/TLS certificate signed by an untrusted certifying authority. This error SHOULD NOT be used to represent a self-signed certificate: see the Self Signed error for that. <tp:rationale> This corresponds to Cert_Untrusted in the <tp:type>Connection_Status_Reason</tp:type> enum, with a clarification to avoid ambiguity. </tp:rationale>


TP_ERROR_STR_CERT_EXPIRED

#define             TP_ERROR_STR_CERT_EXPIRED

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.Expired

Raised if the server provided an expired SSL/TLS certificate. <tp:rationale> This corresponds to Cert_Expired in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CERT_NOT_ACTIVATED

#define             TP_ERROR_STR_CERT_NOT_ACTIVATED

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.NotActivated

Raised if the server provided an SSL/TLS certificate that will become valid at some point in the future. <tp:rationale> This corresponds to Cert_Not_Activated in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CERT_FINGERPRINT_MISMATCH

#define             TP_ERROR_STR_CERT_FINGERPRINT_MISMATCH

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch

Raised if the server provided an SSL/TLS certificate that did not have the expected fingerprint. <tp:rationale> This corresponds to Cert_Fingerprint_Mismatch in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CERT_HOSTNAME_MISMATCH

#define             TP_ERROR_STR_CERT_HOSTNAME_MISMATCH

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.HostnameMismatch

Raised if the server provided an SSL/TLS certificate that did not match its hostname. <tp:rationale> This corresponds to Cert_Hostname_Mismatch in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CERT_SELF_SIGNED

#define             TP_ERROR_STR_CERT_SELF_SIGNED

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.SelfSigned

Raised if the server provided an SSL/TLS certificate that is self-signed and untrusted. <tp:rationale> This corresponds to Cert_Hostname_Mismatch in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CERT_INVALID

#define             TP_ERROR_STR_CERT_INVALID

The D-Bus error name org.freedesktop.Telepathy.Error.Cert.Invalid

Raised if the server provided an SSL/TLS certificate that is unacceptable in some way that does not have a more specific error. <tp:rationale> This corresponds to Cert_Other_Error in the <tp:type>Connection_Status_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_NOT_CAPABLE

#define             TP_ERROR_STR_NOT_CAPABLE

The D-Bus error name org.freedesktop.Telepathy.Error.NotCapable

Raised when requested functionality is unavailable due to contact not having required capabilities.


TP_ERROR_STR_OFFLINE

#define             TP_ERROR_STR_OFFLINE

The D-Bus error name org.freedesktop.Telepathy.Error.Offline

Raised when requested functionality is unavailable because a contact is offline. <tp:rationale> This corresponds to Offline in the <tp:type>Channel_Group_Change_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CHANNEL_KICKED

#define             TP_ERROR_STR_CHANNEL_KICKED

The D-Bus error name org.freedesktop.Telepathy.Error.Channel.Kicked

Used to represent a user being ejected from a channel by another user, for instance being kicked from a chatroom. <tp:rationale> This corresponds to Kicked in the <tp:type>Channel_Group_Change_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_BUSY

#define             TP_ERROR_STR_BUSY

The D-Bus error name org.freedesktop.Telepathy.Error.Busy

Used to represent a user being removed from a channel because of a &quot;busy&quot; indication. <tp:rationale> This corresponds to Busy in the <tp:type>Channel_Group_Change_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_NO_ANSWER

#define             TP_ERROR_STR_NO_ANSWER

The D-Bus error name org.freedesktop.Telepathy.Error.NoAnswer

Used to represent a user being removed from a channel because they did not respond, e.g. to a StreamedMedia call. <tp:rationale> This corresponds to No_Answer in the <tp:type>Channel_Group_Change_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_DOES_NOT_EXIST

#define             TP_ERROR_STR_DOES_NOT_EXIST

The D-Bus error name org.freedesktop.Telepathy.Error.DoesNotExist

Raised when the requested user does not, in fact, exist. <tp:rationale> This corresponds to Invalid_Contact in the <tp:type>Channel_Group_Change_Reason</tp:type> enum, but can also be used to represent other things not existing (like chatrooms, perhaps). </tp:rationale>


TP_ERROR_STR_TERMINATED

#define             TP_ERROR_STR_TERMINATED

The D-Bus error name org.freedesktop.Telepathy.Error.Terminated

Raised when a channel is terminated for an unspecified reason. In particular, this error SHOULD be used whenever normal termination of a 1-1 StreamedMedia call by the remote user is represented as a D-Bus error name. <tp:rationale> This corresponds to None in the <tp:type>Channel_Group_Change_Reason</tp:type> enum. </tp:rationale>


TP_ERROR_STR_CONNECTION_REFUSED

#define             TP_ERROR_STR_CONNECTION_REFUSED

The D-Bus error name org.freedesktop.Telepathy.Error.ConnectionRefused

Raised when a connection is refused.


TP_ERROR_STR_CONNECTION_FAILED

#define             TP_ERROR_STR_CONNECTION_FAILED

The D-Bus error name org.freedesktop.Telepathy.Error.ConnectionFailed

Raised when a connection can't be established.


TP_ERROR_STR_CONNECTION_LOST

#define             TP_ERROR_STR_CONNECTION_LOST

The D-Bus error name org.freedesktop.Telepathy.Error.ConnectionLost

Raised when a connection is broken.