Previous Next

dced_server_create(3dce)

Creates a DCE server's configuration data for the host's dced

Synopsis

#include <dce/dced.h>

void dced_server_create(

dced_binding_handle_t dced_bh,

server_t *conf_data,

error_status_t *status);

Parameters

Input

dced_bh
Specifies the dced binding handle for the srvrconf service on a specific host.

Input/Output

conf_data
Specifies the configuration data for the server. The dced_intro(3dce) reference page describes the server_t structure.

Output

status
Returns the status code from this routine. This status code indicates whether the routine completed successfully or, if not, why not.

Description
The dced_server_create( ) routine creates a server's configuration data. This routine is used by management installation applications to remotely (or locally) establish the data used to control how a DCE server starts. However, it does not create the program or start it. Since this activity is typically part of a server's installation, you can also use dcecp server create operation.

Management applications use the dced_object_read( ) routine to read the configuration data.

Prior to calling dced_server_create( ), the application must have established a valid dced binding handle to the srvrconf service by calling either dced_binding_create( ) or dced_binding_from_rpc_binding( ).

Examples
The following example shows how to fill in some of the fields of a server_t structure and then create the configuration in dced.

dced_binding_handle_t dced_bh;
server_t conf;
error_status_t status;

dced_binding_create("srvrconf@hosts/katharine",
dced_c_binding_syntax_default,
&dced_bh,
&status);
/* setup a server_t structure */
uuid_create(&conf.id, &status);
conf.name = (dced_string_t)"application";
conf.entryname = (dced_string_t)"/.:/development/new_app";
conf.services.count = 1;

/* service_t structure(s) */
conf.services.list = malloc(conf.services.count * sizeof(service_t));
rpc_if_inq_id(application_v1_0_c_ifspec, &(conf.services.list[0].ifspec), &status);
conf.services.list[0].ifname = (dced_string_t)"application";
conf.services.list[0].annotation = (dced_string_t)"A new application";

conf.services.list[0].flags = 0;

/* server_fixedattr_t structure */
conf.fixed.startupflags = server_c_startup_explicit | server_c_startup_on_failure;
conf.fixed.flags = 0;
conf.fixed.program = (dced_string_t)"/usr/users/bin/new_app";

dced_server_create(dced_bh, &conf, &status);
.
.
.

Errors

The following describes a partial list of errors that might be returned. Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages.

error_status_ok

db_s_bad_header_type

db_s_bad_index_type

db_s_iter_not_allowed

db_s_key_not_found

db_s_readonly

db_s_store_failed

dced_s_already_exists

dced_s_bad_binding

dced_s_name_missing

sec_acl_invalid_permission

Related Information
Routines: dced_object_read(3dce)

dced_binding_create(3dce)

dced_binding_from_rpc_binding(3dce)

dcecp objects: server(8dce)

Book: OSF DCE Application Development Guide - Core Components