* 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 <http://www.gnu.org/licenses/>.
*
* Author: Stef Walter <stefw@collabora.co.uk>
*/
g_return_val_if_fail (G_IS_TLS_PASSWORD (password), G_TLS_INTERACTION_UNHANDLED);
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), G_TLS_INTERACTION_UNHANDLED);
- closure = invoke_closure_new (interaction, G_OBJECT (password), cancellable);
-
klass = G_TLS_INTERACTION_GET_CLASS (interaction);
+
if (klass->ask_password)
{
+ closure = invoke_closure_new (interaction, G_OBJECT (password), cancellable);
g_main_context_invoke (interaction->priv->context,
on_invoke_ask_password_sync, closure);
result = invoke_closure_wait_and_free (closure, error);
else if (klass->ask_password_async)
{
g_return_val_if_fail (klass->ask_password_finish, G_TLS_INTERACTION_UNHANDLED);
+
+ closure = invoke_closure_new (interaction, G_OBJECT (password), cancellable);
g_main_context_invoke (interaction->priv->context,
on_invoke_ask_password_async_as_sync, closure);
else
{
result = G_TLS_INTERACTION_UNHANDLED;
- invoke_closure_free (closure);
}
return result;
g_return_val_if_fail (G_IS_TLS_CONNECTION (connection), G_TLS_INTERACTION_UNHANDLED);
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), G_TLS_INTERACTION_UNHANDLED);
- closure = invoke_closure_new (interaction, G_OBJECT (connection), cancellable);
-
klass = G_TLS_INTERACTION_GET_CLASS (interaction);
+
if (klass->request_certificate)
{
+ closure = invoke_closure_new (interaction, G_OBJECT (connection), cancellable);
g_main_context_invoke (interaction->priv->context,
on_invoke_request_certificate_sync, closure);
result = invoke_closure_wait_and_free (closure, error);
else if (klass->request_certificate_async)
{
g_return_val_if_fail (klass->request_certificate_finish, G_TLS_INTERACTION_UNHANDLED);
+
+ closure = invoke_closure_new (interaction, G_OBJECT (connection), cancellable);
g_main_context_invoke (interaction->priv->context,
on_invoke_request_certificate_async_as_sync, closure);
else
{
result = G_TLS_INTERACTION_UNHANDLED;
- invoke_closure_free (closure);
}
return result;