## ESourceSecurity

ESourceSecurity — ESource extension for security settings

## Functions

const gchar * | e_source_security_get_method ()
gchar * | e_source_security_dup_method ()
void | e_source_security_set_method ()
gboolean | e_source_security_get_secure ()
void | e_source_security_set_secure ()

## Types and Values

#define | E_SOURCE_EXTENSION_SECURITY
struct | ESourceSecurity
struct | ESourceSecurityClass

## Includes

    #include <libedataserver/libedataserver.h>

## Description

The ESourceSecurity extension tracks settings for establishing a secure connection with a remote server.

Access the extension as follows:

    1
    2
    3
    4
    5

    #include <libedataserver/libedataserver.h>

    ESourceSecurity *extension;

    extension = e_source_get_extension (source, E_SOURCE_EXTENSION_SECURITY);

## Functions

### e_source_security_get_method ()

    const gchar *
    e_source_security_get_method (ESourceSecurity *extension);

Returns the method used to establish a secure network connection to a remote account. There are no pre-defined method names; backends are free to set this however they wish. If a secure connection is not desired, the convention is to set “method” to "none".

#### Parameters

extension | an ESourceSecurity |

#### Returns

the method used to establish a secure network connection

Since 3.6

### e_source_security_dup_method ()

    gchar *
    e_source_security_dup_method (ESourceSecurity *extension);

Thread-safe variation of `e_source_security_get_method()`. Use this function when accessing `extension` from multiple threads.

The returned string should be freed with `g_free()` when no longer needed.

#### Parameters

extension | an ESourceSecurity |

#### Returns

a newly-allocated copy of “method”

Since 3.6

### e_source_security_set_method ()

    void
    e_source_security_set_method (ESourceSecurity *extension,
                                  const gchar *method);

Sets the method used to establish a secure network connection to a remote account. There are no pre-defined method names; backends are free to set this however they wish. If a secure connection is not desired, the convention is to set “method” to "none". In keeping with that convention, “method” will be set to "none" if `method` is `NULL` or an empty string.

#### Parameters

extension | an ESourceSecurity |
method | security method, or `NULL`. | [allow-none]

Since 3.6

### e_source_security_get_secure ()

    gboolean
    e_source_security_get_secure (ESourceSecurity *extension);

This is a convenience function which returns whether a secure network connection is desired, regardless of the method used. This relies on the convention of setting “method” to "none" when a secure network connection is not desired.

#### Parameters

extension | an ESourceSecurity |

#### Returns

whether a secure network connection is desired

Since 3.6

### e_source_security_set_secure ()

    void
    e_source_security_set_secure (ESourceSecurity *extension,
                                  gboolean secure);

This function provides a simpler way to set “method” when using a secure network connection is a yes or no option and the exact method name is unimportant. If `secure` is `FALSE`, the “method” property is set to "none". If `secure` is `TRUE`, the function assumes the backend will use Transport Layer Security and sets the “method” property to "tls".

#### Parameters

extension | an ESourceSecurity |
secure | whether a secure network connection is desired |

Since 3.6

## Types and Values

### E_SOURCE_EXTENSION_SECURITY

    #define E_SOURCE_EXTENSION_SECURITY "Security"

Pass this extension name to `e_source_get_extension()` to access ESourceSecurity. This is also used as a group name in key files.

Since 3.6

### struct ESourceSecurity

    struct ESourceSecurity {
    	ESourceExtension parent;
    	ESourceSecurityPrivate *priv;
    };

Contains only private data that should be read and manipulated using the functions below.

Since 3.6

### struct ESourceSecurityClass

    struct ESourceSecurityClass {
    	ESourceExtensionClass parent_class;
    };