aboutsummaryrefslogtreecommitdiff
path: root/lib/kadm5/init_s.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kadm5/init_s.c')
-rw-r--r--lib/kadm5/init_s.c130
1 files changed, 70 insertions, 60 deletions
diff --git a/lib/kadm5/init_s.c b/lib/kadm5/init_s.c
index dee464b4b9a4..1001fce6ddc6 100644
--- a/lib/kadm5/init_s.c
+++ b/lib/kadm5/init_s.c
@@ -1,44 +1,44 @@
/*
- * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
+ * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
*
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
*
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
*
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
+ * 3. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
*
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
*/
#include "kadm5_locl.h"
-RCSID("$Id: init_s.c 9441 2000-12-31 08:01:16Z assar $");
+RCSID("$Id$");
-static kadm5_ret_t
+static kadm5_ret_t
kadm5_s_init_with_context(krb5_context context,
- const char *client_name,
+ const char *client_name,
const char *service_name,
kadm5_config_params *realm_params,
unsigned long struct_version,
@@ -55,19 +55,29 @@ kadm5_s_init_with_context(krb5_context context,
assert(ctx->config.stash_file != NULL);
assert(ctx->config.acl_file != NULL);
assert(ctx->log_context.log_file != NULL);
+#ifndef NO_UNIX_SOCKETS
assert(ctx->log_context.socket_name.sun_path[0] != '\0');
+#else
+ assert(ctx->log_context.socket_info != NULL);
+#endif
ret = hdb_create(ctx->context, &ctx->db, ctx->config.dbname);
if(ret)
return ret;
- ret = hdb_set_master_keyfile (ctx->context,
+ ret = hdb_set_master_keyfile (ctx->context,
ctx->db, ctx->config.stash_file);
if(ret)
return ret;
ctx->log_context.log_fd = -1;
+#ifndef NO_UNIX_SOCKETS
ctx->log_context.socket_fd = socket (AF_UNIX, SOCK_DGRAM, 0);
+#else
+ ctx->log_context.socket_fd = socket (ctx->log_context.socket_info->ai_family,
+ ctx->log_context.socket_info->ai_socktype,
+ ctx->log_context.socket_info->ai_protocol);
+#endif
ret = krb5_parse_name(ctx->context, client_name, &ctx->caller);
if(ret)
@@ -76,14 +86,14 @@ kadm5_s_init_with_context(krb5_context context,
ret = _kadm5_acl_init(ctx);
if(ret)
return ret;
-
+
*server_handle = ctx;
return 0;
}
-kadm5_ret_t
+kadm5_ret_t
kadm5_s_init_with_password_ctx(krb5_context context,
- const char *client_name,
+ const char *client_name,
const char *password,
const char *service_name,
kadm5_config_params *realm_params,
@@ -100,8 +110,8 @@ kadm5_s_init_with_password_ctx(krb5_context context,
server_handle);
}
-kadm5_ret_t
-kadm5_s_init_with_password(const char *client_name,
+kadm5_ret_t
+kadm5_s_init_with_password(const char *client_name,
const char *password,
const char *service_name,
kadm5_config_params *realm_params,
@@ -116,13 +126,13 @@ kadm5_s_init_with_password(const char *client_name,
ret = krb5_init_context(&context);
if (ret)
return ret;
- ret = kadm5_s_init_with_password_ctx(context,
- client_name,
- password,
- service_name,
- realm_params,
- struct_version,
- api_version,
+ ret = kadm5_s_init_with_password_ctx(context,
+ client_name,
+ password,
+ service_name,
+ realm_params,
+ struct_version,
+ api_version,
server_handle);
if(ret){
krb5_free_context(context);
@@ -133,9 +143,9 @@ kadm5_s_init_with_password(const char *client_name,
return 0;
}
-kadm5_ret_t
+kadm5_ret_t
kadm5_s_init_with_skey_ctx(krb5_context context,
- const char *client_name,
+ const char *client_name,
const char *keytab,
const char *service_name,
kadm5_config_params *realm_params,
@@ -152,7 +162,7 @@ kadm5_s_init_with_skey_ctx(krb5_context context,
server_handle);
}
-kadm5_ret_t
+kadm5_ret_t
kadm5_s_init_with_skey(const char *client_name,
const char *keytab,
const char *service_name,
@@ -168,13 +178,13 @@ kadm5_s_init_with_skey(const char *client_name,
ret = krb5_init_context(&context);
if (ret)
return ret;
- ret = kadm5_s_init_with_skey_ctx(context,
- client_name,
- keytab,
- service_name,
- realm_params,
- struct_version,
- api_version,
+ ret = kadm5_s_init_with_skey_ctx(context,
+ client_name,
+ keytab,
+ service_name,
+ realm_params,
+ struct_version,
+ api_version,
server_handle);
if(ret){
krb5_free_context(context);
@@ -185,7 +195,7 @@ kadm5_s_init_with_skey(const char *client_name,
return 0;
}
-kadm5_ret_t
+kadm5_ret_t
kadm5_s_init_with_creds_ctx(krb5_context context,
const char *client_name,
krb5_ccache ccache,
@@ -204,7 +214,7 @@ kadm5_s_init_with_creds_ctx(krb5_context context,
server_handle);
}
-kadm5_ret_t
+kadm5_ret_t
kadm5_s_init_with_creds(const char *client_name,
krb5_ccache ccache,
const char *service_name,
@@ -220,13 +230,13 @@ kadm5_s_init_with_creds(const char *client_name,
ret = krb5_init_context(&context);
if (ret)
return ret;
- ret = kadm5_s_init_with_creds_ctx(context,
- client_name,
- ccache,
- service_name,
- realm_params,
- struct_version,
- api_version,
+ ret = kadm5_s_init_with_creds_ctx(context,
+ client_name,
+ ccache,
+ service_name,
+ realm_params,
+ struct_version,
+ api_version,
server_handle);
if(ret){
krb5_free_context(context);