summaryrefslogtreecommitdiffstats
path: root/lib/librpc/secure_rpc/rpc/netname.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/librpc/secure_rpc/rpc/netname.c')
-rw-r--r--lib/librpc/secure_rpc/rpc/netname.c239
1 files changed, 0 insertions, 239 deletions
diff --git a/lib/librpc/secure_rpc/rpc/netname.c b/lib/librpc/secure_rpc/rpc/netname.c
deleted file mode 100644
index 21e2491..0000000
--- a/lib/librpc/secure_rpc/rpc/netname.c
+++ /dev/null
@@ -1,239 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)netname.c 2.2 88/08/10 4.0 RPCSRC; from 1.9 88/02/08 SMI";
-#endif
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * Copyright (c) 1988 by Sun Microsystems, Inc.
- */
-
-/*
- * netname utility routines
- * convert from unix names to network names and vice-versa
- * This module is operating system dependent!
- * What we define here will work with any unix system that has adopted
- * the sun yp domain architecture.
- */
-#include <sys/param.h>
-#include <rpc/rpc.h>
-#include <ctype.h>
-
-extern char *sprintf();
-extern char *strncpy();
-
-static char OPSYS[] = "unix";
-static char NETID[] = "netid.byname";
-
-/*
- * Convert network-name into unix credential
- */
-netname2user(netname, uidp, gidp, gidlenp, gidlist)
- char netname[MAXNETNAMELEN+1];
- int *uidp;
- int *gidp;
- int *gidlenp;
- int *gidlist;
-{
- int stat;
- char *val;
- char *p;
- int vallen;
- char *domain;
- int gidlen;
-
- stat = yp_get_default_domain(&domain);
- if (stat != 0) {
- return (0);
- }
- stat = yp_match(domain, NETID, netname, strlen(netname), &val, &vallen);
- if (stat != 0) {
- return (0);
- }
- val[vallen] = 0;
- p = val;
- *uidp = atois(&p);
- if (p == NULL || *p++ != ':') {
- free(val);
- return (0);
- }
- *gidp = atois(&p);
- if (p == NULL) {
- free(val);
- return (0);
- }
- gidlen = 0;
- for (gidlen = 0; gidlen < NGROUPS; gidlen++) {
- if (*p++ != ',') {
- break;
- }
- gidlist[gidlen] = atois(&p);
- if (p == NULL) {
- free(val);
- return (0);
- }
- }
- *gidlenp = gidlen;
- free(val);
- return (1);
-}
-
-/*
- * Convert network-name to hostname
- */
-netname2host(netname, hostname, hostlen)
- char netname[MAXNETNAMELEN+1];
- char *hostname;
- int hostlen;
-{
- int stat;
- char *val;
- int vallen;
- char *domain;
-
- stat = yp_get_default_domain(&domain);
- if (stat != 0) {
- return (0);
- }
- stat = yp_match(domain, NETID, netname, strlen(netname), &val, &vallen);
- if (stat != 0) {
- return (0);
- }
- val[vallen] = 0;
- if (*val != '0') {
- free(val);
- return (0);
- }
- if (val[1] != ':') {
- free(val);
- return (0);
- }
- (void) strncpy(hostname, val + 2, hostlen);
- free(val);
- return (1);
-}
-
-
-/*
- * Figure out my fully qualified network name
- */
-getnetname(name)
- char name[MAXNETNAMELEN+1];
-{
- int uid;
-
- uid = geteuid();
- if (uid == 0) {
- return (host2netname(name, (char *) NULL, (char *) NULL));
- } else {
- return (user2netname(name, uid, (char *) NULL));
- }
-}
-
-
-/*
- * Convert unix cred to network-name
- */
-user2netname(netname, uid, domain)
- char netname[MAXNETNAMELEN + 1];
- int uid;
- char *domain;
-{
- char *dfltdom;
-
-#define MAXIPRINT (11) /* max length of printed integer */
-
- if (domain == NULL) {
- if (yp_get_default_domain(&dfltdom) != 0) {
- return (0);
- }
- domain = dfltdom;
- }
- if (strlen(domain) + 1 + MAXIPRINT > MAXNETNAMELEN) {
- return (0);
- }
- (void) sprintf(netname, "%s.%d@%s", OPSYS, uid, domain);
- return (1);
-}
-
-
-/*
- * Convert host to network-name
- */
-host2netname(netname, host, domain)
- char netname[MAXNETNAMELEN + 1];
- char *host;
- char *domain;
-{
- char *dfltdom;
- char hostname[MAXHOSTNAMELEN+1];
-
- if (domain == NULL) {
- if (yp_get_default_domain(&dfltdom) != 0) {
- return (0);
- }
- domain = dfltdom;
- }
- if (host == NULL) {
- (void) gethostname(hostname, sizeof(hostname));
- host = hostname;
- }
- if (strlen(domain) + 1 + strlen(host) > MAXNETNAMELEN) {
- return (0);
- }
- (void) sprintf(netname, "%s.%s@%s", OPSYS, host, domain);
- return (1);
-}
-
-
-static
-atois(str)
- char **str;
-{
- char *p;
- int n;
- int sign;
-
- if (**str == '-') {
- sign = -1;
- (*str)++;
- } else {
- sign = 1;
- }
- n = 0;
- for (p = *str; isdigit(*p); p++) {
- n = (10 * n) + (*p - '0');
- }
- if (p == *str) {
- *str = NULL;
- return (0);
- }
- *str = p;
- return (n * sign);
-}
OpenPOWER on IntegriCloud