Purpose
Converts from a domain-specific user ID to a network name that is independent from the operating system.
Library
C Library (libc.a)
Syntax
Description
The user2netname subroutine converts from a domain-specific user ID to a network name that is independent from the operating system.
This subroutine is the inverse of the netname2user subroutine.
Parameters
Item | Description |
---|---|
name | Points to the network name (or netname) of the server process owner. |
uid | Points to the caller's effective user ID (UID). |
domain | Points to the domain name. |
Return Values
Upon successful completion, this subroutine returns a value of 1. If unsuccessful, it returns a value of 0.
Purpose
Converts a domain-specific user name to an operating-system-independent network name.
Library
Network Services Library (libnsl.a)
Syntax
#include <rpc/rpc.h>
int user2netname( name, uid, domain)
char *name;
const uid_t uid;
const char *domain;
Description
The user2netname subroutine, which belongs to the secure remote procedure call (RPC) category, is used in applications which use the AUTH_DES authentication flavor. This subroutine is used on client side to generate a network name (or a netname) of the user.
This subroutine is the inverse of the netname2user subroutine.
Parameters
Item | Description |
---|---|
name | Represents the network name of the user after successful completion. |
uid | Specifies a domain-specific user name. |
domain | Specifies the domain. |
Return Values
Item | Description |
---|---|
1 | successful |
0 | unsuccessful |
Examples
#include <rpc/rpc.h>
int main()
{
char name[255]; /* contains netname of owner of server process */
char rhost[255]; /* Remote host name on which server resides */
char domain[255];
rpcprog_t PROGNUM = 0x3fffffffL;
rpcvers_t PROGVER = 0x1L;
/* obtain the domainname of the host */
if (getdomainname(domain, 255)) {
fprintf(stderr, "\ngetdomainname() failed\n");
exit(2);
}
/* Obtain network name of remote host */
if (!user2netname(name, getuid() , domain))
{
fprintf(stderr, "\nhost2netname() failed\n");
exit(EXIT_FAILURE);
}
/* Create a client handle for remote host rhost for PROGNUM & PROGVER on tcp transport */
clnt = clnt_create(rhost, PROGNUM, PROGVER, "tcp");
if (clnt == (CLIENT *) NULL) {
fprintf(stderr,"client_create() error\n");
exit(1);
}
clnt->cl_auth = auhdes_seccreate(name, 80, rhost, (des_block *)NULL);
/*
* Make a call to clnt_call() subroutine
*/
/* Destroy the authentication handle */
auth_destroy(clnt->cl_auth);
/* Destroy the client handle in the end */
clnt_destroy(clnt);
return 0;
}