[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS gsasl/src
From: |
gsasl-commit |
Subject: |
CVS gsasl/src |
Date: |
Tue, 30 Nov 2004 03:17:49 +0100 |
Update of /home/cvs/gsasl/src
In directory dopio:/tmp/cvs-serv2620
Modified Files:
gsasl.c
Log Message:
Use new API (server mode not ported yet).
--- /home/cvs/gsasl/src/gsasl.c 2004/09/23 23:33:40 1.64
+++ /home/cvs/gsasl/src/gsasl.c 2004/11/30 02:17:49 1.65
@@ -195,7 +195,7 @@
int
main (int argc, char *argv[])
{
- Gsasl_ctx *ctx = NULL;
+ Gsasl *ctx = NULL;
int res;
char input[MAX_LINE_LENGTH];
char *in;
@@ -293,7 +293,8 @@
if (!args_info.hostname_arg)
args_info.hostname_arg = strdup (connect_hostname);
}
- else
+ else if (!args_info.client_mechanisms_flag &&
+ !args_info.server_mechanisms_flag)
{
cmdline_parser_print_help ();
return EXIT_SUCCESS;
@@ -304,34 +305,7 @@
error (EXIT_FAILURE, 0, _("Libgsasl error (%d): %s"), res,
gsasl_strerror (res));
- /* Set callbacks */
- if (args_info.maxbuf_arg != 0)
- gsasl_client_callback_maxbuf_set (ctx, client_callback_maxbuf);
- if (args_info.quality_of_protection_arg != 0)
- gsasl_client_callback_qop_set (ctx, client_callback_qop);
- gsasl_client_callback_anonymous_set (ctx, client_callback_anonymous);
- gsasl_client_callback_authentication_id_set
- (ctx, client_callback_authentication_id);
- gsasl_client_callback_authorization_id_set
- (ctx, client_callback_authorization_id);
- gsasl_client_callback_password_set (ctx, client_callback_password);
- gsasl_client_callback_passcode_set (ctx, client_callback_passcode);
- gsasl_client_callback_service_set (ctx, client_callback_service);
- gsasl_client_callback_realm_set (ctx, client_callback_realm);
-
- gsasl_server_callback_realm_set (ctx, server_callback_realm);
- gsasl_server_callback_qop_set (ctx, server_callback_qop);
- if (args_info.maxbuf_arg != 0)
- gsasl_server_callback_maxbuf_set (ctx, server_callback_maxbuf);
- if (args_info.enable_cram_md5_validate_flag)
- gsasl_server_callback_cram_md5_set (ctx, server_callback_cram_md5);
- if (!args_info.disable_cleartext_validate_flag)
- gsasl_server_callback_validate_set (ctx, server_callback_validate);
- gsasl_server_callback_retrieve_set (ctx, server_callback_retrieve);
- gsasl_server_callback_anonymous_set (ctx, server_callback_anonymous);
- gsasl_server_callback_external_set (ctx, server_callback_external);
- gsasl_server_callback_service_set (ctx, server_callback_service);
- gsasl_server_callback_gssapi_set (ctx, server_callback_gssapi);
+ gsasl_callback_set (ctx, callback);
if (args_info.client_mechanisms_flag || args_info.server_mechanisms_flag)
{
@@ -359,17 +333,19 @@
fprintf (stdout, "%s\n", mechs);
free (mechs);
+
+ return EXIT_SUCCESS;
}
if (args_info.client_flag || args_info.server_flag)
{
char output[MAX_LINE_LENGTH];
char *out;
- char b64output[MAX_LINE_LENGTH];
+ char *b64output;
size_t output_len;
- ssize_t b64output_len;
+ size_t b64output_len;
const char *mech;
- Gsasl_session_ctx *xctx = NULL;
+ Gsasl_session *xctx = NULL;
if (!select_mechanism (&in))
return 1;
@@ -496,20 +472,17 @@
else if (!(strlen (input) == output_len &&
memcmp (input, out, output_len) == 0))
{
- b64output_len = sizeof (b64output);
- b64output_len = gsasl_base64_encode (out, output_len,
- b64output,
- b64output_len);
- if (b64output_len == -1)
- {
- res = GSASL_BASE64_ERROR;
- break;
- }
+ res = gsasl_base64_to (out, output_len,
+ &b64output, &b64output_len);
+ if (res != GSASL_OK)
+ break;
if (!args_info.quiet_given)
fprintf (stderr, _("Base64 encoded application "
"data to send:\n"));
fprintf (stdout, "%s\n", b64output);
+
+ free (b64output);
}
free (out);