X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgtlsbackend.c;h=aa46e3a3c6df90b924fd780012f32809d1c07259;hb=7fd6f07d498063470903a886b4805a13bd333908;hp=64a9794616acccc6471c90313b9ff83975071f89;hpb=d8ca6404229e5b64d2bf2e1a3660ad9fe7feefdd;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gtlsbackend.c b/gio/gtlsbackend.c index 64a9794..aa46e3a 100644 --- a/gio/gtlsbackend.c +++ b/gio/gtlsbackend.c @@ -13,9 +13,7 @@ * 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., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . */ #include "config.h" @@ -67,8 +65,9 @@ /** * GTlsBackend: * - * Type implemented by TLS #GIOModules to provide access to additional - * TLS-related types. + * TLS (Transport Layer Security, aka SSL) backend. This is an + * internal type used to coordinate the different classes implemented + * by a TLS backend. * * Since: 2.28 */ @@ -80,51 +79,20 @@ g_tls_backend_default_init (GTlsBackendInterface *iface) { } -static gpointer -get_default_tls_backend (gpointer arg) -{ - const char *use_this; - GList *extensions; - GIOExtensionPoint *ep; - GIOExtension *extension; - - _g_io_modules_ensure_loaded (); - - ep = g_io_extension_point_lookup (G_TLS_BACKEND_EXTENSION_POINT_NAME); - - use_this = g_getenv ("GIO_USE_TLS"); - if (use_this) - { - extension = g_io_extension_point_get_extension_by_name (ep, use_this); - if (extension) - return g_object_new (g_io_extension_get_type (extension), NULL); - } - - extensions = g_io_extension_point_get_extensions (ep); - if (extensions) - { - extension = extensions->data; - return g_object_new (g_io_extension_get_type (extension), NULL); - } - - return NULL; -} - /** * g_tls_backend_get_default: * * Gets the default #GTlsBackend for the system. * - * Returns: a #GTlsBackend + * Returns: (transfer none): a #GTlsBackend * * Since: 2.28 */ GTlsBackend * g_tls_backend_get_default (void) { - static GOnce once_init = G_ONCE_INIT; - - return g_once (&once_init, get_default_tls_backend, NULL); + return _g_io_module_get_default (G_TLS_BACKEND_EXTENSION_POINT_NAME, + "GIO_USE_TLS", NULL); } /** @@ -134,7 +102,7 @@ g_tls_backend_get_default (void) * Checks if TLS is supported; if this returns %FALSE for the default * #GTlsBackend, it means no "real" TLS backend is available. * - * Return value: whether or not TLS is supported + * Returns: whether or not TLS is supported * * Since: 2.28 */ @@ -150,12 +118,35 @@ g_tls_backend_supports_tls (GTlsBackend *backend) } /** + * g_tls_backend_get_default_database: + * @backend: the #GTlsBackend + * + * Gets the default #GTlsDatabase used to verify TLS connections. + * + * Returns: (transfer full): the default database, which should be + * unreffed when done. + * + * Since: 2.30 + */ +GTlsDatabase * +g_tls_backend_get_default_database (GTlsBackend *backend) +{ + g_return_val_if_fail (G_IS_TLS_BACKEND (backend), NULL); + + /* This method was added later, so accept the (remote) possibility it can be NULL */ + if (!G_TLS_BACKEND_GET_INTERFACE (backend)->get_default_database) + return NULL; + + return G_TLS_BACKEND_GET_INTERFACE (backend)->get_default_database (backend); +} + +/** * g_tls_backend_get_certificate_type: * @backend: the #GTlsBackend * * Gets the #GType of @backend's #GTlsCertificate implementation. * - * Return value: the #GType of @backend's #GTlsCertificate + * Returns: the #GType of @backend's #GTlsCertificate * implementation. * * Since: 2.28 @@ -172,7 +163,7 @@ g_tls_backend_get_certificate_type (GTlsBackend *backend) * * Gets the #GType of @backend's #GTlsClientConnection implementation. * - * Return value: the #GType of @backend's #GTlsClientConnection + * Returns: the #GType of @backend's #GTlsClientConnection * implementation. * * Since: 2.28 @@ -189,7 +180,7 @@ g_tls_backend_get_client_connection_type (GTlsBackend *backend) * * Gets the #GType of @backend's #GTlsServerConnection implementation. * - * Return value: the #GType of @backend's #GTlsServerConnection + * Returns: the #GType of @backend's #GTlsServerConnection * implementation. * * Since: 2.28 @@ -199,3 +190,25 @@ g_tls_backend_get_server_connection_type (GTlsBackend *backend) { return G_TLS_BACKEND_GET_INTERFACE (backend)->get_server_connection_type (); } + +/** + * g_tls_backend_get_file_database_type: + * @backend: the #GTlsBackend + * + * Gets the #GType of @backend's #GTlsFileDatabase implementation. + * + * Returns: the #GType of backend's #GTlsFileDatabase implementation. + * + * Since: 2.30 + */ +GType +g_tls_backend_get_file_database_type (GTlsBackend *backend) +{ + g_return_val_if_fail (G_IS_TLS_BACKEND (backend), 0); + + /* This method was added later, so accept the (remote) possibility it can be NULL */ + if (!G_TLS_BACKEND_GET_INTERFACE (backend)->get_file_database_type) + return 0; + + return G_TLS_BACKEND_GET_INTERFACE (backend)->get_file_database_type (); +}