diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-03-01 02:16:02 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-03-01 02:16:02 +0800 |
commit | 4321d72d9ba3e58e4ab05a75dc4beeb16246a392 (patch) | |
tree | 41c05185abe98030044f806820203dec34bf50b6 /camel/camel-sasl.c | |
parent | 27a5d50b233a2d780e6bc5866ae2daf55f3be8e9 (diff) | |
download | gsoc2013-evolution-4321d72d9ba3e58e4ab05a75dc4beeb16246a392.tar.gz gsoc2013-evolution-4321d72d9ba3e58e4ab05a75dc4beeb16246a392.tar.zst gsoc2013-evolution-4321d72d9ba3e58e4ab05a75dc4beeb16246a392.zip |
Added camel-sasl*.[c,h] to the build.
2001-02-28 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Added camel-sasl*.[c,h] to the build.
* camel-sasl.[c,h]: new "abstract" SASL class
* camel-sasl-kerberos4.[c,h]: new SASL class for KERBEROS_V4
* camel-sasl-cram-md5.[c,h]: new SASL class for CRAM-MD5
* camel-sasl-plain.[c,h]: new SASL class for PLAIN
* providers/imap/camel-imap-auth.c: Removed the base64 functions.
* camel-mime-utils.c (base64_encode_simple): Moved here from
camel-imap-auth.c
(base64_decode_simple): Same.
svn path=/trunk/; revision=8428
Diffstat (limited to 'camel/camel-sasl.c')
-rw-r--r-- | camel/camel-sasl.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/camel/camel-sasl.c b/camel/camel-sasl.c new file mode 100644 index 0000000000..a5aebe737c --- /dev/null +++ b/camel/camel-sasl.c @@ -0,0 +1,87 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Authors: Jeffrey Stedfast <fejj@ximian.com> + * + * Copyright 2001 Ximian, Inc. (www.ximian.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + * + */ + +#include <config.h> +#include "camel-sasl.h" + +static CamelObjectClass *parent_class = NULL; + +/* Returns the class for a CamelSasl */ +#define CS_CLASS(so) CAMEL_SASL_CLASS (CAMEL_OBJECT_GET_CLASS (so)) + +static GByteArray *sasl_challenge (CamelSasl *sasl, const char *token, CamelException *ex); + +static void +camel_sasl_class_init (CamelSaslClass *camel_sasl_class) +{ + parent_class = camel_type_get_global_classfuncs (CAMEL_OBJECT_TYPE); + + /* virtual method definition */ + camel_sasl_class->challenge = sasl_challenge; +} + +CamelType +camel_sasl_get_type (void) +{ + static CamelType type = CAMEL_INVALID_TYPE; + + if (type == CAMEL_INVALID_TYPE) { + type = camel_type_register (CAMEL_OBJECT_TYPE, + "CamelSasl", + sizeof (CamelSasl), + sizeof (CamelSaslClass), + (CamelObjectClassInitFunc) camel_sasl_class_init, + NULL, + NULL, + NULL ); + } + + return type; +} + + +static GByteArray * +sasl_challenge (CamelSasl *sasl, const char *token, CamelException *ex) +{ + g_warning ("sasl_challenge: Using default implementation!"); + return NULL; +} + +/** + * camel_sasl_challenge: + * @sasl: a sasl object + * @token: a token + * @ex: exception + * + * Generate the next sasl challenge to send to the server. + * + * Return value: a string containing the base64 encoded sasl challenge + * or NULL on either an error or if the negotiation is complete. If an + * error has occured, @ex will also be set. + **/ +GByteArray * +camel_sasl_challenge (CamelSasl *sasl, const char *token, CamelException *ex) +{ + g_return_val_if_fail (CAMEL_IS_SASL (sasl), NULL); + + return CS_CLASS (sasl)->challenge (sasl, token, ex); +} |