Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sec_login_get_pwent(3sec) — DCE 3.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

sec_login_get_pwent(3sec)  —  Subroutines

NAME

sec_login_get_pwent — Returns a passwd-style entry for a login context

Synopsis

void sec_login_get_pwent(
sec_login_handle_t login_context,
sec_login_passwd_t ∗pwent,
error_status_t ∗status);

Parameters

Input

login_context
An opaque handle to login context data.  The login context contains, among other data, the account principal name and Universal Unique Identifier (UUID), account restrictions, records of group membership, and the process home directory.  (See the sec_intro(3sec) reference page for more details about the login context.) 

Output

pwentA pointer to a pointer to the returned passwd-style structure.  The particular structure depends on the underlying system.  For example, on a system with a passwd structure like that supported by 4.4BSD and OSF/1, the structure (found in /usr/include/pwd.h) is as follows:

struct passwd {
    char   ∗pw_name;     /∗ user name ∗/
    char   ∗pw_passwd;   /∗ encrypted password ∗/
    int     pw_uid;      /∗ user uid ∗/
    int     pw_gid;      /∗ user gid ∗/
    time_t  pw_change;   /∗ password change time ∗/
    char   ∗pw_class;    /∗ user access class ∗/
    char   ∗pw_gecos;    /∗ miscellaneous account info ∗/
    char   ∗pw_dir;      /∗ home directory ∗/
    char   ∗pw_shell;    /∗ default shell ∗/
    time_t  pw_expire;   /∗ account expiration ∗/
};

statusA pointer to the completion status.  On successful completion, the routine returns one of the following status codes:

error_status_ok
Indicates that the login context has been validated and certified.

sec_login_s_not_certified
Indicates that the login context has been validated, but not certified.  Although this code indicates successful completion, it warns you that the context is not validated.

If the call does not complete successfully, it returns an error. 

Description

The sec_login_get_pwent() routine creates a passwd-style structure for the current network login context.  This is generally useful for establishing the local operating system context.  Applications that require all of the data normally extracted via getpwnam() should extract that data from the login context with this call. 

This routine works only on explicitly created (not inherited or imported) contexts. 

Caution:

The returned sec_login_passwd_t structure points to data stored in the structure indicated by the login_context pointer, and must be treated as read-only data.  Writing to these data objects may cause unexpected failures. 

Files

/usr/include/dce/sec_login.idl
The idl file from which dce/sec_login.h was derived. 

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. 

sec_login_s_context_invalid
The login context itself is invalid.

sec_login_s_not_certified
The login context has not been certified.

sec_login_s_default_use
Illegal use of the default login handle occurred.

sec_login_s_info_not_avail
The login context has no UNIX information.

sec_rgy_object_not_found
The registry server could not find the specified login context data.

sec_rgy_server_unavailable
The DCE registry server is unavailable.

error_status_ok
The call was successful.

Examples

The following example illustrates use of the sec_login_get_pwent() routine:

#include <pwd.h>
...struct passwd ∗pwd;
...sec_login_get_pwent(login_context,(sec_login_passwd_t∗)&pwd,&status);
...printf ("%s",pwd->pw_name);

Related Information

Functions: sec_intro(3sec). 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026