diff options
author | robinson <none@none> | 2005-07-01 13:10:39 -0700 |
---|---|---|
committer | robinson <none@none> | 2005-07-01 13:10:39 -0700 |
commit | 61961e0f20c7637a3846bb39786bb9dffa91dfb9 (patch) | |
tree | a205cd61b8055bd820ff84bd5412bcea48fc08ee | |
parent | 6550f384c4c0d912ed90ff04d9da05ce4b4501e6 (diff) | |
download | illumos-gate-61961e0f20c7637a3846bb39786bb9dffa91dfb9.tar.gz |
PSARC/2005/362 Removal of <rpc/trace.h>
4426428 libnsl needs some tidying up
6256192 Remaining ulonglong_t needs to be exorcised
6267468 rpcgen generates code gcc doesn't like
6271220 rpc/trace.h is obsolete and dead code
6271232 rpcgen fails to cast memset correctly
--HG--
rename : usr/src/lib/libnsl/dial/dk.h => deleted_files/usr/src/lib/libnsl/dial/dk.h
rename : usr/src/lib/libnsl/dial/dkbreak.c => deleted_files/usr/src/lib/libnsl/dial/dkbreak.c
rename : usr/src/lib/libnsl/dial/dkdial.c => deleted_files/usr/src/lib/libnsl/dial/dkdial.c
rename : usr/src/lib/libnsl/dial/dkerr.c => deleted_files/usr/src/lib/libnsl/dial/dkerr.c
rename : usr/src/lib/libnsl/dial/dkminor.c => deleted_files/usr/src/lib/libnsl/dial/dkminor.c
rename : usr/src/lib/libnsl/dial/dtnamer.c => deleted_files/usr/src/lib/libnsl/dial/dtnamer.c
rename : usr/src/lib/libnsl/rpc/rpc_trace.c => deleted_files/usr/src/lib/libnsl/rpc/rpc_trace.c
rename : usr/src/uts/common/rpc/trace.h => deleted_files/usr/src/uts/common/rpc/trace.h
220 files changed, 7934 insertions, 14851 deletions
diff --git a/usr/src/lib/libnsl/dial/dk.h b/deleted_files/usr/src/lib/libnsl/dial/dk.h index a740146758..a740146758 100644 --- a/usr/src/lib/libnsl/dial/dk.h +++ b/deleted_files/usr/src/lib/libnsl/dial/dk.h diff --git a/usr/src/lib/libnsl/dial/dkbreak.c b/deleted_files/usr/src/lib/libnsl/dial/dkbreak.c index 84d005e0ea..84d005e0ea 100644 --- a/usr/src/lib/libnsl/dial/dkbreak.c +++ b/deleted_files/usr/src/lib/libnsl/dial/dkbreak.c diff --git a/usr/src/lib/libnsl/dial/dkdial.c b/deleted_files/usr/src/lib/libnsl/dial/dkdial.c index c2fff86427..c2fff86427 100644 --- a/usr/src/lib/libnsl/dial/dkdial.c +++ b/deleted_files/usr/src/lib/libnsl/dial/dkdial.c diff --git a/usr/src/lib/libnsl/dial/dkerr.c b/deleted_files/usr/src/lib/libnsl/dial/dkerr.c index 771e01f3d3..771e01f3d3 100644 --- a/usr/src/lib/libnsl/dial/dkerr.c +++ b/deleted_files/usr/src/lib/libnsl/dial/dkerr.c diff --git a/usr/src/lib/libnsl/dial/dkminor.c b/deleted_files/usr/src/lib/libnsl/dial/dkminor.c index d5c79437ae..d5c79437ae 100644 --- a/usr/src/lib/libnsl/dial/dkminor.c +++ b/deleted_files/usr/src/lib/libnsl/dial/dkminor.c diff --git a/usr/src/lib/libnsl/dial/dtnamer.c b/deleted_files/usr/src/lib/libnsl/dial/dtnamer.c index df61620ace..df61620ace 100644 --- a/usr/src/lib/libnsl/dial/dtnamer.c +++ b/deleted_files/usr/src/lib/libnsl/dial/dtnamer.c diff --git a/usr/src/lib/libnsl/rpc/rpc_trace.c b/deleted_files/usr/src/lib/libnsl/rpc/rpc_trace.c index 0ad1c95d3c..0ad1c95d3c 100644 --- a/usr/src/lib/libnsl/rpc/rpc_trace.c +++ b/deleted_files/usr/src/lib/libnsl/rpc/rpc_trace.c diff --git a/usr/src/uts/common/rpc/trace.h b/deleted_files/usr/src/uts/common/rpc/trace.h index 1d7fd8e235..1d7fd8e235 100644 --- a/usr/src/uts/common/rpc/trace.h +++ b/deleted_files/usr/src/uts/common/rpc/trace.h diff --git a/usr/src/Makefile.lint b/usr/src/Makefile.lint index e2466805c8..18d3f1a70a 100644 --- a/usr/src/Makefile.lint +++ b/usr/src/Makefile.lint @@ -19,6 +19,7 @@ # # CDDL HEADER END # + # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. @@ -217,6 +218,7 @@ COMMON_SUBDIRS = \ cmd/rmformat \ cmd/rmt \ cmd/roles \ + cmd/rpcgen \ cmd/rpcsvc/rpc.bootparamd \ cmd/runat \ cmd/sed_xpg4 \ @@ -303,6 +305,7 @@ COMMON_SUBDIRS = \ lib/libmalloc \ lib/libmd5 \ lib/libmp \ + lib/libnsl \ lib/libnvpair \ lib/libpam \ lib/libpctx \ diff --git a/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop.h b/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop.h index f70873b910..189bef7a5a 100644 --- a/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop.h +++ b/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop.h @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -145,8 +146,8 @@ extern ulong_t getxdr_u_long(void); extern ulong_t showxdr_u_long(char *); extern longlong_t getxdr_longlong(void); extern longlong_t showxdr_longlong(char *); -extern ulonglong_t getxdr_u_longlong(void); -extern ulonglong_t showxdr_u_longlong(char *); +extern u_longlong_t getxdr_u_longlong(void); +extern u_longlong_t showxdr_u_longlong(char *); extern char *getxdr_opaque(char *, int); extern char *getxdr_string(char *, int); extern char *showxdr_string(int, char *); diff --git a/usr/src/cmd/lvm/rpc.metamedd/med_local.h b/usr/src/cmd/lvm/rpc.metamedd/med_local.h index 8e0cf696c8..fca533c101 100644 --- a/usr/src/cmd/lvm/rpc.metamedd/med_local.h +++ b/usr/src/cmd/lvm/rpc.metamedd/med_local.h @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1994, 2000 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #ifndef _MED_LOCAL_H @@ -56,7 +57,7 @@ extern "C" { /* * millisecond time */ -typedef ulonglong_t med_msec_t; +typedef u_longlong_t med_msec_t; #endif /* _REENTRANT */ /* diff --git a/usr/src/cmd/lvm/rpc.metamhd/mhd_local.h b/usr/src/cmd/lvm/rpc.metamhd/mhd_local.h index a467f3b334..41cdd66a86 100644 --- a/usr/src/cmd/lvm/rpc.metamhd/mhd_local.h +++ b/usr/src/cmd/lvm/rpc.metamhd/mhd_local.h @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1994, 2000, 2001 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #ifndef _MHD_LOCAL_H @@ -56,7 +57,7 @@ extern "C" { /* * millisecond time */ -typedef ulonglong_t mhd_msec_t; +typedef u_longlong_t mhd_msec_t; /* * drive record diff --git a/usr/src/cmd/rpcgen/Makefile b/usr/src/cmd/rpcgen/Makefile index b3ea1b241c..422beabda0 100644 --- a/usr/src/cmd/rpcgen/Makefile +++ b/usr/src/cmd/rpcgen/Makefile @@ -19,10 +19,12 @@ # # CDDL HEADER END # + # -#ident "%Z%%M% %I% %E% SMI" +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. # -# Copyright (c) 1989 by Sun Microsystems, Inc. +# ident "%Z%%M% %I% %E% SMI" # # cmd/rpcgen/Makefile @@ -36,6 +38,7 @@ SRCS= $(OBJS:%.o=%.c) include ../Makefile.cmd LDLIBS += +CFLAGS += -v .KEEP_STATE: diff --git a/usr/src/cmd/rpcgen/rpc_clntout.c b/usr/src/cmd/rpcgen/rpc_clntout.c index 875d60f028..465cd3c2b1 100644 --- a/usr/src/cmd/rpcgen/rpc_clntout.c +++ b/usr/src/cmd/rpcgen/rpc_clntout.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -45,24 +47,24 @@ #include "rpc_parse.h" #include "rpc_util.h" -extern pdeclaration(); -void printarglist(); +extern void pdeclaration(char *, declaration *, int, char *); +extern void printarglist(proc_list *, char *, char *, char *); +static void write_program(definition *); +static void printbody(proc_list *); static char RESULT[] = "clnt_res"; - -#define DEFAULT_TIMEOUT 25 /* in seconds */ - +#define DEFAULT_TIMEOUT 25 /* in seconds */ void -write_stubs() +write_stubs(void) { list *l; definition *def; f_print(fout, - "\n/* Default timeout can be changed using clnt_control() */\n"); + "\n/* Default timeout can be changed using clnt_control() */\n"); f_print(fout, "static struct timeval TIMEOUT = { %d, 0 };\n", DEFAULT_TIMEOUT); for (l = defined; l != NULL; l = l->next) { @@ -73,9 +75,8 @@ write_stubs() } } -static -write_program(def) - definition *def; +static void +write_program(definition *def) { version_list *vp; proc_list *proc; @@ -110,10 +111,8 @@ write_program(def) /* sample addargname = "clnt"; sample addargtype = "CLIENT * " */ -void printarglist(proc, result, addargname, addargtype) - proc_list *proc; - char *result; - char* addargname, * addargtype; +void +printarglist(proc_list *proc, char *result, char *addargname, char *addargtype) { bool_t oneway = streq(proc->res_type, "oneway"); decl_list *l; @@ -123,9 +122,9 @@ void printarglist(proc, result, addargname, addargtype) if (Cflag) { /* C++ style heading */ f_print(fout, "("); ptype(proc->args.decls->decl.prefix, - proc->args.decls->decl.type, 1); + proc->args.decls->decl.type, 1); - if (mtflag) {/* Generate result field */ + if (mtflag) { /* Generate result field */ f_print(fout, "*argp, "); if (!oneway) { ptype(proc->res_prefix, @@ -135,7 +134,8 @@ void printarglist(proc, result, addargname, addargtype) f_print(fout, "%s%s)\n", addargtype, addargname); } else - f_print(fout, "*argp, %s%s)\n", addargtype, addargname); + f_print(fout, "*argp, %s%s)\n", + addargtype, addargname); } else { if (!mtflag) f_print(fout, "(argp, %s)\n", addargname); @@ -162,7 +162,7 @@ void printarglist(proc, result, addargname, addargtype) /* newstyle, 0 argument */ if (mtflag) { f_print(fout, "("); - + if (Cflag) { if (!oneway) { ptype(proc->res_prefix, @@ -172,7 +172,7 @@ void printarglist(proc, result, addargname, addargtype) f_print(fout, "%s%s)\n", addargtype, addargname); } else - f_print(fout, "(%s)\n", addargname); + f_print(fout, "(%s)\n", addargname); } else if (Cflag) @@ -186,12 +186,12 @@ void printarglist(proc, result, addargname, addargtype) for (l = proc->args.decls; l != NULL; l = l->next) f_print(fout, "%s, ", l->decl.name); if (mtflag && !oneway) - f_print(fout, "%s, ", result); + f_print(fout, "%s, ", result); f_print(fout, "%s)\n", addargname); for (l = proc->args.decls; l != NULL; l = l->next) { pdeclaration(proc->args.argname, - &l->decl, 1, ";\n"); + &l->decl, 1, ";\n"); } if (mtflag && !oneway) { f_print(fout, "\t"); @@ -203,7 +203,7 @@ void printarglist(proc, result, addargname, addargtype) f_print(fout, "("); for (l = proc->args.decls; l != NULL; l = l->next) { pdeclaration(proc->args.argname, &l->decl, 0, - ", "); + ", "); } if (mtflag && !oneway) { ptype(proc->res_prefix, proc->res_type, 1); @@ -221,8 +221,7 @@ void printarglist(proc, result, addargname, addargtype) static char * -ampr(type) - char *type; +ampr(char *type) { if (isvectordef(type, REL_ALIAS)) { return (""); @@ -231,21 +230,17 @@ ampr(type) } } -static -printbody(proc) - proc_list *proc; +static void +printbody(proc_list *proc) { decl_list *l; bool_t args2 = (proc->arg_num > 1); - int i; bool_t oneway = streq(proc->res_type, "oneway"); /* * For new style with multiple arguments, need a structure in which * to stuff the arguments. */ - - if (newstyle && args2) { f_print(fout, "\t%s", proc->args.argname); f_print(fout, " arg;\n"); @@ -261,7 +256,7 @@ printbody(proc) f_print(fout, "%s;\n", RESULT); f_print(fout, "\n"); f_print(fout, - "\tmemset((char *)%s%s, 0, sizeof (%s));\n", + "\t(void) memset(%s%s, 0, sizeof (%s));\n", ampr(proc->res_type), RESULT, RESULT); } @@ -275,11 +270,11 @@ printbody(proc) f_print(fout, "\t if "); f_print(fout, - "(clnt_call(clnt, %s,\n\t\t(xdrproc_t) xdr_void, ", + "(clnt_call(clnt, %s,\n\t\t(xdrproc_t)xdr_void, ", proc->proc_name); f_print(fout, - "(caddr_t) NULL,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s,", + "NULL,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s,", stringfix(proc->res_type), (mtflag)?"":ampr(proc->res_type), RESULT); @@ -304,11 +299,11 @@ printbody(proc) else f_print(fout, "\tif "); f_print(fout, - "(clnt_call(clnt, %s,\n\t\t(xdrproc_t) xdr_%s", + "(clnt_call(clnt, %s,\n\t\t(xdrproc_t)xdr_%s", proc->proc_name, proc->args.argname); f_print(fout, - ", (caddr_t) &arg,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s,", + ", (caddr_t)&arg,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s,", stringfix(proc->res_type), (mtflag)?"":ampr(proc->res_type), RESULT); @@ -321,9 +316,9 @@ printbody(proc) if (!mtflag) f_print(fout, "\tif (clnt_call(clnt, " - "%s,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s,\n\t\tTIMEOUT) != " + "%s,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s,\n\t\tTIMEOUT) != " "RPC_SUCCESS) {\n", proc->proc_name, stringfix(proc->args.decls->decl.type), @@ -337,9 +332,9 @@ printbody(proc) else f_print(fout, "\treturn (clnt_call(clnt, " - "%s,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s,\n\t\tTIMEOUT));\n", + "%s,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s,\n\t\tTIMEOUT));\n", proc->proc_name, stringfix(proc->args.decls->decl.type), (newstyle ? "&" : ""), @@ -368,7 +363,7 @@ printbody(proc) f_print(fout, "%s;\n", RESULT); f_print(fout, "\n"); f_print(fout, - "\tmemset((char *)&%s, 0, sizeof (%s));\n", + "\t(void) memset(&%s, 0, sizeof (%s));\n", RESULT, RESULT); } @@ -382,10 +377,9 @@ printbody(proc) f_print(fout, "\t if ((%s = ", RESULT); f_print(fout, - "clnt_send(clnt, %s,\n\t\t(xdrproc_t) xdr_void, ", + "clnt_send(clnt, %s,\n\t\t(xdrproc_t)xdr_void, ", proc->proc_name); - f_print(fout, - "(caddr_t) NULL)"); + f_print(fout, "NULL)"); if (mtflag) f_print(fout, ");\n"); @@ -406,10 +400,10 @@ printbody(proc) else f_print(fout, "\tif ((%s =", RESULT); f_print(fout, - "clnt_send(clnt, %s,\n\t\t(xdrproc_t) xdr_%s", + "clnt_send(clnt, %s,\n\t\t(xdrproc_t)xdr_%s", proc->proc_name, proc->args.argname); f_print(fout, - ", (caddr_t) &arg)"); + ", (caddr_t)&arg)"); if (mtflag) f_print(fout, ");\n"); else @@ -418,8 +412,8 @@ printbody(proc) if (!mtflag) f_print(fout, "\tif ((%s = clnt_send(clnt, " - "%s,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s)) != RPC_SUCCESS) {\n", + "%s,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s)) != RPC_SUCCESS) {\n", RESULT, proc->proc_name, stringfix(proc->args.decls->decl.type), @@ -431,8 +425,8 @@ printbody(proc) f_print(fout, "\treturn (clnt_send(clnt, " - "%s,\n\t\t(xdrproc_t) xdr_%s, " - "(caddr_t) %s%s));\n", + "%s,\n\t\t(xdrproc_t)xdr_%s, " + "(caddr_t)%s%s));\n", proc->proc_name, stringfix(proc->args.decls->decl.type), (newstyle ? "&" : ""), diff --git a/usr/src/cmd/rpcgen/rpc_cout.c b/usr/src/cmd/rpcgen/rpc_cout.c index e5e1364327..cd05e56f9d 100644 --- a/usr/src/cmd/rpcgen/rpc_cout.c +++ b/usr/src/cmd/rpcgen/rpc_cout.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -41,20 +42,36 @@ * rpc_cout.c, XDR routine outputter for the RPC protocol compiler */ #include <stdio.h> +#include <stdlib.h> #include <string.h> +#include <ctype.h> #include "rpc_parse.h" #include "rpc_util.h" +extern void crash(void); + +static void print_header(definition *); +static void print_trailer(void); +static void emit_enum(definition *); +static void emit_program(definition *); +static void emit_union(definition *); +static void emit_struct(definition *); +static void emit_typedef(definition *); +static void print_stat(int, declaration *); +static void emit_inline(int, declaration *, int); +static void emit_inline64(int, declaration *, int); +static void emit_single_in_line(int, declaration *, int, relation); +static void emit_single_in_line64(int, declaration *, int, relation); +static char *upcase(char *); + /* * Emit the C-routine for the given definition */ void -emit(def) - definition *def; +emit(definition *def) { - if (def->def_kind == DEF_CONST) { + if (def->def_kind == DEF_CONST) return; - } if (def->def_kind == DEF_PROGRAM) { emit_program(def); return; @@ -88,63 +105,50 @@ emit(def) print_trailer(); } -static -findtype(def, type) - definition *def; - char *type; +static int +findtype(definition *def, char *type) { - if (def->def_kind == DEF_PROGRAM || def->def_kind == DEF_CONST) { + if (def->def_kind == DEF_PROGRAM || def->def_kind == DEF_CONST) return (0); - } else { - return (streq(def->def_name, type)); - } + return (streq(def->def_name, type)); } -static -undefined(type) - char *type; +static int +undefined(char *type) { definition *def; - def = (definition *) FINDVAL(defined, type, findtype); + def = (definition *)FINDVAL(defined, type, findtype); return (def == NULL); } -static -print_generic_header(procname, pointerp) - char *procname; - int pointerp; +static void +print_generic_header(char *procname, int pointerp) { f_print(fout, "\n"); f_print(fout, "bool_t\n"); if (Cflag) { - f_print(fout, "xdr_%s(", procname); - f_print(fout, "register XDR *xdrs, "); - f_print(fout, "%s ", procname); - if (pointerp) - f_print(fout, "*"); - f_print(fout, "objp)\n{\n\n"); + f_print(fout, "xdr_%s(", procname); + f_print(fout, "XDR *xdrs, "); + f_print(fout, "%s ", procname); + if (pointerp) + f_print(fout, "*"); + f_print(fout, "objp)\n{\n\n"); } else { - f_print(fout, "xdr_%s(xdrs, objp)\n", procname); - f_print(fout, "\tregister XDR *xdrs;\n"); - f_print(fout, "\t%s ", procname); - if (pointerp) - f_print(fout, "*"); - f_print(fout, "objp;\n{\n\n"); + f_print(fout, "xdr_%s(xdrs, objp)\n", procname); + f_print(fout, "\tXDR *xdrs;\n"); + f_print(fout, "\t%s ", procname); + if (pointerp) + f_print(fout, "*"); + f_print(fout, "objp;\n{\n\n"); } } -static -print_header(def) - definition *def; +static void +print_header(definition *def) { - - decl_list *dl; - bas_type *ptr; - int i; - print_generic_header(def->def_name, def->def_kind != DEF_TYPEDEF || !isvectordef(def->def.ty.old_type, @@ -154,91 +158,73 @@ print_header(def) if (inlinelen == 0) return; /* May cause lint to complain. but ... */ - f_print(fout, "#if defined(_LP64) || defined(_KERNEL)\n"); - f_print(fout, "\tregister int *buf;\n"); - f_print(fout, "#else\n"); - f_print(fout, "\tregister long *buf;\n"); - f_print(fout, "#endif\n\n"); + f_print(fout, "\trpc_inline_t *buf;\n\n"); } -static -print_prog_header(plist) - proc_list *plist; +static void +print_prog_header(proc_list *plist) { print_generic_header(plist->args.argname, 1); } -static -print_trailer() +static void +print_trailer(void) { f_print(fout, "\treturn (TRUE);\n"); f_print(fout, "}\n"); } -static -print_ifopen(indent, name) - int indent; - char *name; +static void +print_ifopen(int indent, char *name) { tabify(fout, indent); if (streq(name, "rpcprog_t") || - streq(name, "rpcvers_t") || - streq(name, "rpcproc_t") || - streq(name, "rpcprot_t") || - streq(name, "rpcport_t")) - strtok(name, "_"); + streq(name, "rpcvers_t") || + streq(name, "rpcproc_t") || + streq(name, "rpcprot_t") || + streq(name, "rpcport_t")) + (void) strtok(name, "_"); f_print(fout, "if (!xdr_%s(xdrs", name); } -static -print_ifarg(arg) - char *arg; +static void +print_ifarg(char *arg) { f_print(fout, ", %s", arg); } -static -print_ifsizeof(indent, prefix, type) - int indent; - char *prefix; - char *type; +static void +print_ifsizeof(int indent, char *prefix, char *type) { if (indent) { f_print(fout, ",\n"); tabify(fout, indent); - } else { + } else { f_print(fout, ", "); } if (streq(type, "bool")) { - f_print(fout, "sizeof (bool_t), (xdrproc_t) xdr_bool"); + f_print(fout, "sizeof (bool_t), (xdrproc_t)xdr_bool"); } else { f_print(fout, "sizeof ("); if (undefined(type) && prefix) { f_print(fout, "%s ", prefix); } - f_print(fout, "%s), (xdrproc_t) xdr_%s", type, type); + f_print(fout, "%s), (xdrproc_t)xdr_%s", type, type); } } -static -print_ifclose(indent) - int indent; +static void +print_ifclose(int indent) { f_print(fout, "))\n"); tabify(fout, indent); f_print(fout, "\treturn (FALSE);\n"); } -static -print_ifstat(indent, prefix, type, rel, amax, objname, name) - int indent; - char *prefix; - char *type; - relation rel; - char *amax; - char *objname; - char *name; +static void +print_ifstat(int indent, char *prefix, char *type, relation rel, + char *amax, char *objname, char *name) { char *alt = NULL; @@ -250,11 +236,10 @@ print_ifstat(indent, prefix, type, rel, amax, objname, name) print_ifsizeof(0, prefix, type); break; case REL_VECTOR: - if (streq(type, "string")) { + if (streq(type, "string")) alt = "string"; - } else if (streq(type, "opaque")) { + else if (streq(type, "opaque")) alt = "opaque"; - } if (alt) { print_ifopen(indent, alt); print_ifarg(objname); @@ -264,39 +249,34 @@ print_ifstat(indent, prefix, type, rel, amax, objname, name) f_print(fout, "%s", objname); } print_ifarg(amax); - if (!alt) { + if (!alt) print_ifsizeof(indent + 1, prefix, type); - } break; case REL_ARRAY: - if (streq(type, "string")) { + if (streq(type, "string")) alt = "string"; - } else if (streq(type, "opaque")) { + else if (streq(type, "opaque")) alt = "bytes"; - } if (streq(type, "string")) { print_ifopen(indent, alt); print_ifarg(objname); } else { - if (alt) { + if (alt) print_ifopen(indent, alt); - } else { + else print_ifopen(indent, "array"); - } print_ifarg("(char **)"); - if (*objname == '&') { + if (*objname == '&') f_print(fout, "%s.%s_val, (u_int *) %s.%s_len", objname, name, objname, name); - } else { + else f_print(fout, "&%s->%s_val, (u_int *) &%s->%s_len", objname, name, objname, name); - } } print_ifarg(amax); - if (!alt) { + if (!alt) print_ifsizeof(indent + 1, prefix, type); - } break; case REL_ALIAS: print_ifopen(indent, type); @@ -307,18 +287,16 @@ print_ifstat(indent, prefix, type, rel, amax, objname, name) } /* ARGSUSED */ -static -emit_enum(def) - definition *def; +static void +emit_enum(definition *def) { print_ifopen(1, "enum"); print_ifarg("(enum_t *)objp"); print_ifclose(1); } -static -emit_program(def) - definition *def; +static void +emit_program(definition *def) { decl_list *dl; version_list *vlist; @@ -337,16 +315,13 @@ emit_program(def) } -static -emit_union(def) - definition *def; +static void +emit_union(definition *def) { declaration *dflt; case_list *cl; declaration *cs; char *object; - char *vecformat = "objp->%s_u.%s"; - char *format = "&objp->%s_u.%s"; print_stat(1, &def->def.un.enum_decl); f_print(fout, "\tswitch (objp->%s) {\n", def->def.un.enum_decl.name); @@ -357,15 +332,16 @@ emit_union(def) continue; cs = &cl->case_decl; if (!streq(cs->type, "void")) { - object = alloc(strlen(def->def_name) + strlen(format) + - strlen(cs->name) + 1); - if (isvectordef(cs->type, cs->rel)) { - s_print(object, vecformat, def->def_name, - cs->name); - } else { - s_print(object, format, def->def_name, - cs->name); - } + size_t len = strlen(def->def_name) + + strlen("&objp->%s_u.%s") + + strlen(cs->name) + 1; + object = malloc(len); + if (isvectordef(cs->type, cs->rel)) + (void) snprintf(object, len, "objp->%s_u.%s", + def->def_name, cs->name); + else + (void) snprintf(object, len, "&objp->%s_u.%s", + def->def_name, cs->name); print_ifstat(2, cs->prefix, cs->type, cs->rel, cs->array_max, object, cs->name); free(object); @@ -375,16 +351,17 @@ emit_union(def) dflt = def->def.un.default_decl; if (dflt != NULL) { if (!streq(dflt->type, "void")) { + size_t len = strlen(def->def_name) + + strlen("&objp->%s_u.%s") + + strlen(dflt->name) + 1; f_print(fout, "\tdefault:\n"); - object = alloc(strlen(def->def_name) + strlen(format) + -strlen(dflt->name) + 1); - if (isvectordef(dflt->type, dflt->rel)) { - s_print(object, vecformat, def->def_name, - dflt->name); - } else { - s_print(object, format, def->def_name, - dflt->name); - } + object = malloc(len); + if (isvectordef(dflt->type, dflt->rel)) + (void) snprintf(object, len, "objp->%s_u.%s", + def->def_name, dflt->name); + else + (void) snprintf(object, len, "&objp->%s_u.%s", + def->def_name, dflt->name); print_ifstat(2, dflt->prefix, dflt->type, dflt->rel, dflt->array_max, object, dflt->name); @@ -485,6 +462,7 @@ arraysize(char *sz, declaration *dc, int elsize) int slen = 0; char *plus = ""; char *tmp; + size_t tlen; /* * Calculate the size of a string to hold the size of all arrays @@ -511,16 +489,19 @@ arraysize(char *sz, declaration *dc, int elsize) * for the trailing NULL */ len = strlen(dc->array_max) + (elsize == 1 ? 0 : digits + 5) + 1; - tmp = realloc(sz, slen + len + strlen(plus)); + tlen = slen + len + strlen(plus); + tmp = realloc(sz, tlen); if (tmp == NULL) { f_print(stderr, "Fatal error : no memory\n"); crash(); } if (elsize == 1) - s_print(tmp + slen, "%s%s", plus, dc->array_max); + (void) snprintf(tmp + slen, tlen - slen, "%s%s", + plus, dc->array_max); else - s_print(tmp + slen, "%s(%s) * %d", plus, dc->array_max, elsize); + (void) snprintf(tmp + slen, tlen - slen, "%s(%s) * %d", + plus, dc->array_max, elsize); return (tmp); } @@ -529,9 +510,8 @@ static void inline_struct(decl_list *dl, decl_list *last, int flag, int indent) { int size, tsize; - decl_list *cur, *psav; - char *sizestr, *plus; - char ptemp[256]; + decl_list *cur; + char *sizestr; cur = NULL; tsize = 0; @@ -570,16 +550,17 @@ inline_struct(decl_list *dl, decl_list *last, int flag, int indent) } } - if (cur != NULL) - if (sizestr == NULL && tsize < inlinelen) { - /* don't expand into inline code if tsize < inlinelen */ - while (cur != dl) { - print_stat(indent + 1, &cur->decl); - cur = cur->next; - } - } else { - expand_inline(indent, sizestr, tsize, flag, dl, cur); + if (cur == NULL) + return; + if (sizestr == NULL && tsize < inlinelen) { + /* don't expand into inline code if tsize < inlinelen */ + while (cur != dl) { + print_stat(indent + 1, &cur->decl); + cur = cur->next; } + } else { + expand_inline(indent, sizestr, tsize, flag, dl, cur); + } } /* @@ -598,19 +579,17 @@ check_inline(decl_list *dl, int inlinelen, int *have_vector) return (0); for (; dl != NULL; dl = dl->next) { - if (inline_type(&dl->decl, &size)) { - if (dl->decl.rel == REL_VECTOR) { - *have_vector = 1; - doinline = 1; - break; - } else { - tsize += size; - if (tsize >= inlinelen) - doinline = 1; - } - } else { + if (!inline_type(&dl->decl, &size)) { tsize = 0; + continue; + } + if (dl->decl.rel == REL_VECTOR) { + *have_vector = 1; + return (1); } + tsize += size; + if (tsize >= inlinelen) + doinline = 1; } return (doinline); @@ -703,9 +682,8 @@ emit_struct_tail_recursion(definition *defp, int can_inline) f_print(fout, "\n\t}\n"); } -static -emit_struct(def) - definition *def; +static void +emit_struct(definition *def) { decl_list *dl = def->def.st.decls; int can_inline, have_vector; @@ -741,9 +719,8 @@ emit_struct(def) } -static -emit_typedef(def) - definition *def; +static void +emit_typedef(definition *def) { char *prefix = def->def.ty.old_prefix; char *type = def->def.ty.old_type; @@ -753,10 +730,8 @@ emit_typedef(def) print_ifstat(1, prefix, type, rel, amax, "objp", def->def_name); } -static -print_stat(indent, dec) - int indent; - declaration *dec; +static void +print_stat(int indent, declaration *dec) { char *prefix = dec->prefix; char *type = dec->type; @@ -764,21 +739,16 @@ print_stat(indent, dec) relation rel = dec->rel; char name[256]; - if (isvectordef(type, rel)) { - s_print(name, "objp->%s", dec->name); - } else { - s_print(name, "&objp->%s", dec->name); - } + if (isvectordef(type, rel)) + (void) snprintf(name, sizeof (name), "objp->%s", dec->name); + else + (void) snprintf(name, sizeof (name), "&objp->%s", dec->name); print_ifstat(indent, prefix, type, rel, amax, name, dec->name); } -char *upcase(); - -emit_inline(indent, decl, flag) -int indent; -declaration *decl; -int flag; +static void +emit_inline(int indent, declaration *decl, int flag) { switch (decl->rel) { case REL_ALIAS : @@ -788,7 +758,7 @@ int flag; tabify(fout, indent); f_print(fout, "{\n"); tabify(fout, indent + 1); - f_print(fout, "register %s *genp;\n\n", decl->type); + f_print(fout, "%s *genp;\n\n", decl->type); tabify(fout, indent + 1); f_print(fout, "for (i = 0, genp = objp->%s;\n", decl->name); @@ -802,10 +772,8 @@ int flag; } } -emit_inline64(indent, decl, flag) -int indent; -declaration *decl; -int flag; +static void +emit_inline64(int indent, declaration *decl, int flag) { switch (decl->rel) { case REL_ALIAS : @@ -815,7 +783,7 @@ int flag; tabify(fout, indent); f_print(fout, "{\n"); tabify(fout, indent + 1); - f_print(fout, "register %s *genp;\n\n", decl->type); + f_print(fout, "%s *genp;\n\n", decl->type); tabify(fout, indent + 1); f_print(fout, "for (i = 0, genp = objp->%s;\n", decl->name); @@ -829,11 +797,8 @@ int flag; } } -emit_single_in_line(indent, decl, flag, rel) -int indent; -declaration *decl; -int flag; -relation rel; +static void +emit_single_in_line(int indent, declaration *decl, int flag, relation rel) { char *upp_case; int freed = 0; @@ -850,19 +815,17 @@ relation rel; upp_case = upcase(decl->type); /* hack - XX */ - if (strcmp(upp_case, "INT") == 0) - { + if (strcmp(upp_case, "INT") == 0) { free(upp_case); freed = 1; upp_case = "LONG"; } if ((strcmp(upp_case, "U_INT") == 0) || - (strcmp(upp_case, "RPCPROG") == 0) || - (strcmp(upp_case, "RPCVERS") == 0) || - (strcmp(upp_case, "RPCPROC") == 0) || - (strcmp(upp_case, "RPCPROT") == 0) || - (strcmp(upp_case, "RPCPORT") == 0)) - { + (strcmp(upp_case, "RPCPROG") == 0) || + (strcmp(upp_case, "RPCVERS") == 0) || + (strcmp(upp_case, "RPCPROC") == 0) || + (strcmp(upp_case, "RPCPROT") == 0) || + (strcmp(upp_case, "RPCPORT") == 0)) { free(upp_case); freed = 1; upp_case = "U_LONG"; @@ -881,11 +844,8 @@ relation rel; free(upp_case); } -emit_single_in_line64(indent, decl, flag, rel) -int indent; -declaration *decl; -int flag; -relation rel; +static void +emit_single_in_line64(int indent, declaration *decl, int flag, relation rel) { char *upp_case; int freed = 0; @@ -902,20 +862,18 @@ relation rel; upp_case = upcase(decl->type); /* hack - XX */ - if ((strcmp(upp_case, "INT") == 0)||(strcmp(upp_case, "LONG") == 0)) - { + if ((strcmp(upp_case, "INT") == 0)||(strcmp(upp_case, "LONG") == 0)) { free(upp_case); freed = 1; upp_case = "INT32"; } if ((strcmp(upp_case, "U_INT") == 0) || - (strcmp(upp_case, "U_LONG") == 0) || - (strcmp(upp_case, "RPCPROG") == 0) || - (strcmp(upp_case, "RPCVERS") == 0) || - (strcmp(upp_case, "RPCPROC") == 0) || - (strcmp(upp_case, "RPCPROT") == 0) || - (strcmp(upp_case, "RPCPORT") == 0)) - { + (strcmp(upp_case, "U_LONG") == 0) || + (strcmp(upp_case, "RPCPROG") == 0) || + (strcmp(upp_case, "RPCVERS") == 0) || + (strcmp(upp_case, "RPCPROC") == 0) || + (strcmp(upp_case, "RPCPROT") == 0) || + (strcmp(upp_case, "RPCPORT") == 0)) { free(upp_case); freed = 1; upp_case = "U_INT32"; @@ -934,15 +892,13 @@ relation rel; free(upp_case); } -char * -upcase(str) -char *str; +static char * +upcase(char *str) { char *ptr, *hptr; - ptr = (char *)malloc(strlen(str)+1); - if (ptr == (char *)NULL) - { + ptr = malloc(strlen(str)+1); + if (ptr == NULL) { f_print(stderr, "malloc failed\n"); exit(1); }; diff --git a/usr/src/cmd/rpcgen/rpc_hout.c b/usr/src/cmd/rpcgen/rpc_hout.c index 5a3447fe83..36de8adf9c 100644 --- a/usr/src/cmd/rpcgen/rpc_hout.c +++ b/usr/src/cmd/rpcgen/rpc_hout.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,15 +42,26 @@ * rpc_hout.c, Header file outputter for the RPC protocol compiler */ #include <stdio.h> +#include <stdlib.h> #include <ctype.h> #include "rpc_parse.h" #include "rpc_util.h" -void storexdrfuncdecl(); - -static char RESULT[] = "clnt_res"; - -static enum rpc_gvc { +extern void pprocdef(proc_list *, version_list *, char *, int, int); +extern void pdeclaration(char *, declaration *, int, char *); + +static void storexdrfuncdecl(char *, int); +static void pconstdef(definition *); +static void pstructdef(definition *); +static void puniondef(definition *); +static void pdefine(char *, char *); +static void pprogramdef(definition *); +static void parglist(proc_list *, char *); +static void penumdef(definition *); +static void ptypedef(definition *); +static uint_t undefined2(char *, char *); + +enum rpc_gvc { PROGRAM, VERSION, PROCEDURE @@ -58,16 +71,13 @@ static enum rpc_gvc { * Print the C-version of an xdr definition */ void -print_datadef(def) - definition *def; +print_datadef(definition *def) { - if (def->def_kind == DEF_PROGRAM) /* handle data only */ return; - if (def->def_kind != DEF_CONST) { + if (def->def_kind != DEF_CONST) f_print(fout, "\n"); - } switch (def->def_kind) { case DEF_STRUCT: pstructdef(def); @@ -88,10 +98,9 @@ print_datadef(def) pconstdef(def); break; } - if (def->def_kind != DEF_PROGRAM && def->def_kind != DEF_CONST) { + if (def->def_kind != DEF_PROGRAM && def->def_kind != DEF_CONST) storexdrfuncdecl(def->def_name, def->def_kind != DEF_TYPEDEF || !isvectordef(def->def.ty.old_type, def->def.ty.rel)); - } } @@ -110,12 +119,12 @@ print_funcdef(definition *def) * store away enough information to allow the XDR functions to be spat * out at the end of the file */ -void +static void storexdrfuncdecl(char *name, int pointerp) { xdrfunc *xdrptr; - xdrptr = (xdrfunc *) malloc(sizeof (struct xdrfunc)); + xdrptr = malloc(sizeof (struct xdrfunc)); xdrptr->name = name; xdrptr->pointerp = pointerp; @@ -143,7 +152,7 @@ print_xdr_func_def(char *name, int pointerp, int i) } -static +static void pconstdef(definition *def) { pdefine(def->def_name, def->def.co); @@ -153,7 +162,7 @@ pconstdef(definition *def) * print out the definitions for the arguments of functions in the * header file */ -static +static void pargdef(definition *def) { decl_list *l; @@ -162,46 +171,37 @@ pargdef(definition *def) proc_list *plist; for (vers = def->def.pr.versions; vers != NULL; vers = vers->next) { - for (plist = vers->procs; plist != NULL; - plist = plist->next) { - - if (!newstyle || plist->arg_num < 2) { - continue; /* old style or single args */ - } - name = plist->args.argname; - f_print(fout, "struct %s {\n", name); - for (l = plist->args.decls; - l != NULL; l = l->next) { - pdeclaration(name, &l->decl, 1, ";\n"); - } - f_print(fout, "};\n"); - f_print(fout, "typedef struct %s %s;\n", - name, name); - storexdrfuncdecl(name, 1); - f_print(fout, "\n"); - } + for (plist = vers->procs; plist != NULL; plist = plist->next) { + if (!newstyle || plist->arg_num < 2) + continue; /* old style or single args */ + name = plist->args.argname; + f_print(fout, "struct %s {\n", name); + for (l = plist->args.decls; l != NULL; l = l->next) + pdeclaration(name, &l->decl, 1, ";\n"); + f_print(fout, "};\n"); + f_print(fout, "typedef struct %s %s;\n", name, name); + storexdrfuncdecl(name, 1); + f_print(fout, "\n"); } + } } -static -pstructdef(def) - definition *def; +static void +pstructdef(definition *def) { decl_list *l; char *name = def->def_name; f_print(fout, "struct %s {\n", name); - for (l = def->def.st.decls; l != NULL; l = l->next) { + for (l = def->def.st.decls; l != NULL; l = l->next) pdeclaration(name, &l->decl, 1, ";\n"); - } f_print(fout, "};\n"); f_print(fout, "typedef struct %s %s;\n", name, name); } -static -puniondef(def) - definition *def; +static void +puniondef(definition *def) { case_list *l; char *name = def->def_name; @@ -209,34 +209,30 @@ puniondef(def) f_print(fout, "struct %s {\n", name); decl = &def->def.un.enum_decl; - if (streq(decl->type, "bool")) { + if (streq(decl->type, "bool")) f_print(fout, "\tbool_t %s;\n", decl->name); - } else { + else f_print(fout, "\t%s %s;\n", decl->type, decl->name); - } f_print(fout, "\tunion {\n"); for (l = def->def.un.cases; l != NULL; l = l->next) { if (l->contflag == 0) pdeclaration(name, &l->case_decl, 2, ";\n"); } decl = def->def.un.default_decl; - if (decl && !streq(decl->type, "void")) { + if (decl && !streq(decl->type, "void")) pdeclaration(name, decl, 2, ";\n"); - } f_print(fout, "\t} %s_u;\n", name); f_print(fout, "};\n"); f_print(fout, "typedef struct %s %s;\n", name, name); } -static -pdefine(name, num) - char *name; - char *num; +static void +pdefine(char *name, char *num) { f_print(fout, "#define\t%s %s\n", name, num); } -static +static void puldefine(char *name, char *num, enum rpc_gvc which) { switch (which) { @@ -250,7 +246,7 @@ puldefine(char *name, char *num, enum rpc_gvc which) } } -static +static uint_t define_printed(proc_list *stop, version_list *start) { version_list *vers; @@ -258,19 +254,18 @@ define_printed(proc_list *stop, version_list *start) for (vers = start; vers != NULL; vers = vers->next) { for (proc = vers->procs; proc != NULL; proc = proc->next) { - if (proc == stop) { + if (proc == stop) return (0); - } else if (streq(proc->proc_name, stop->proc_name)) { + if (streq(proc->proc_name, stop->proc_name)) return (1); - } } } abort(); /* NOTREACHED */ } -static -pfreeprocdef(char * name, char *vers, int mode) +static void +pfreeprocdef(char *name, char *vers, int mode) { f_print(fout, "extern int "); pvname(name, vers); @@ -278,13 +273,10 @@ pfreeprocdef(char * name, char *vers, int mode) f_print(fout, "_freeresult(SVCXPRT *, xdrproc_t, caddr_t);\n"); else f_print(fout, "_freeresult();\n"); - - } -static -pprogramdef(def) - definition *def; +static void +pprogramdef(definition *def) { version_list *vers; proc_list *proc; @@ -300,7 +292,7 @@ pprogramdef(def) "extern struct rpcgen_table %s_%s_table[];\n", locase(def->def_name), vers->vers_num); f_print(fout, - "extern %s_%s_nproc;\n", + "extern int %s_%s_nproc;\n", locase(def->def_name), vers->vers_num); } puldefine(vers->vers_name, vers->vers_num, VERSION); @@ -313,12 +305,10 @@ pprogramdef(def) if (!Cflag) { ext = "extern "; for (proc = vers->procs; proc != NULL; - proc = proc->next) { - if (!define_printed(proc, - def->def.pr.versions)) { + proc = proc->next) { + if (!define_printed(proc, def->def.pr.versions)) puldefine(proc->proc_name, - proc->proc_num, PROCEDURE); - } + proc->proc_num, PROCEDURE); f_print(fout, "%s", ext); pprocdef(proc, vers, NULL, 0, 2); @@ -352,19 +342,16 @@ pprogramdef(def) pprocdef(proc, vers, "struct svc_req *", 1, i); } - pfreeprocdef(def->def_name, vers->vers_num, i); + pfreeprocdef(def->def_name, vers->vers_num, i); } f_print(fout, "#endif /* K&R C */\n"); } } } -pprocdef(proc, vp, addargtype, server_p, mode) - proc_list *proc; - version_list *vp; - char *addargtype; - int server_p; - int mode; +void +pprocdef(proc_list *proc, version_list *vp, char *addargtype, int server_p, + int mode) { if (mtflag) { /* Print MT style stubs */ @@ -385,22 +372,14 @@ pprocdef(proc, vp, addargtype, server_p, mode) * mode 1 = ANSI-C, mode 2 = K&R C */ if (mode == 1) - parglist(proc, addargtype, server_p); + parglist(proc, addargtype); else f_print(fout, "();\n"); - - - } - - /* print out argument list of procedure */ -static -parglist(proc, addargtype, server_p) - proc_list *proc; - char *addargtype; - int server_p; +static void +parglist(proc_list *proc, char *addargtype) { decl_list *dl; int oneway = streq(proc->res_type, "oneway"); @@ -409,6 +388,7 @@ parglist(proc, addargtype, server_p) if (proc->arg_num < 2 && newstyle && streq(proc->args.decls->decl.type, "void")) { /* 0 argument in new style: do nothing */ + /* EMPTY */ } else { for (dl = proc->args.decls; dl != NULL; dl = dl->next) { ptype(dl->decl.prefix, dl->decl.type, 1); @@ -425,12 +405,10 @@ parglist(proc, addargtype, server_p) } f_print(fout, "%s);\n", addargtype); - } -static -penumdef(def) - definition *def; +static void +penumdef(definition *def) { char *name = def->def_name; enumval_list *l; @@ -445,11 +423,10 @@ penumdef(def) last = l->assignment; count = 1; } else { - if (last == NULL) { + if (last == NULL) f_print(fout, " = %d", count++); - } else { + else f_print(fout, " = %s + %d", last, count++); - } } if (l->next) f_print(fout, ",\n"); @@ -460,9 +437,8 @@ penumdef(def) f_print(fout, "typedef enum %s %s;\n", name, name); } -static -ptypedef(def) - definition *def; +static void +ptypedef(definition *def) { char *name = def->def_name; char *old = def->def.ty.old_type; @@ -479,11 +455,11 @@ ptypedef(def) } else if (streq(old, "bool")) { old = "bool_t"; } - if (undefined2(old, name) && def->def.ty.old_prefix) { - s_print(prefix, "%s ", def->def.ty.old_prefix); - } else { + if (undefined2(old, name) && def->def.ty.old_prefix) + (void) snprintf(prefix, sizeof (prefix), "%s ", + def->def.ty.old_prefix); + else prefix[0] = 0; - } f_print(fout, "typedef "); switch (rel) { case REL_ARRAY: @@ -507,23 +483,18 @@ ptypedef(def) } } -pdeclaration(name, dec, tab, separator) - char *name; - declaration *dec; - int tab; - char *separator; +void +pdeclaration(char *name, declaration *dec, int tab, char *separator) { char buf[8]; /* enough to hold "struct ", include NUL */ char *prefix; char *type; - if (streq(dec->type, "void")) { + if (streq(dec->type, "void")) return; - } tabify(fout, tab); - if (streq(dec->type, name) && !dec->prefix) { + if (streq(dec->type, name) && !dec->prefix) f_print(fout, "struct "); - } if (streq(dec->type, "string")) { f_print(fout, "char *%s", dec->name); } else { @@ -534,7 +505,8 @@ pdeclaration(name, dec, tab, separator) type = "char"; } else { if (dec->prefix) { - s_print(buf, "%s ", dec->prefix); + (void) snprintf(buf, sizeof (buf), + "%s ", dec->prefix); prefix = buf; } type = dec->type; @@ -562,13 +534,12 @@ pdeclaration(name, dec, tab, separator) break; } } + /* LINTED variable format */ f_print(fout, separator); } -static -undefined2(type, stop) - char *type; - char *stop; +static uint_t +undefined2(char *type, char *stop) { list *l; definition *def; @@ -576,11 +547,10 @@ undefined2(type, stop) for (l = defined; l != NULL; l = l->next) { def = (definition *) l->val; if (def->def_kind != DEF_PROGRAM) { - if (streq(def->def_name, stop)) { + if (streq(def->def_name, stop)) return (1); - } else if (streq(def->def_name, type)) { + if (streq(def->def_name, type)) return (0); - } } } return (1); diff --git a/usr/src/cmd/rpcgen/rpc_main.c b/usr/src/cmd/rpcgen/rpc_main.c index 25dc0a300f..de677886a0 100644 --- a/usr/src/cmd/rpcgen/rpc_main.c +++ b/usr/src/cmd/rpcgen/rpc_main.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -42,8 +43,11 @@ */ #include <stdio.h> +#include <stdlib.h> #include <string.h> +#include <strings.h> #include <unistd.h> +#include <ctype.h> #include <sys/types.h> #include <sys/param.h> #include <sys/file.h> @@ -53,15 +57,30 @@ #include "rpc_scan.h" -extern void write_sample_svc(); -int write_sample_clnt(); -void write_sample_clnt_main(); -char *rindex(); - -static int svc_output(); -static void mkfile_output(); - -#define EXTEND 1 /* alias for TRUE */ +extern void write_sample_svc(definition *); +extern int write_sample_clnt(definition *); +extern void write_sample_clnt_main(void); +extern void reinitialize(void); +extern void crash(void); +extern void add_type(int, char *); +extern void add_sample_msg(void); + +static void svc_output(char *, char *, int, char *); +static void clnt_output(char *, char *, int, char *); +static void c_output(char *, char *, int, char *); +static void mkfile_output(struct commandline *); +static void c_initialize(void); +static void h_output(char *, char *, int, char *); +static void s_output(int, char *[], char *, char *, int, char *, int, int); +static void l_output(char *, char *, int, char *); +static void t_output(char *, char *, int, char *); +static int do_registers(int, char *[]); +static uint_t parseargs(int, char *[], struct commandline *); +static void usage(void); +static void version_info(void); +static void options_usage(void); + +#define EXTEND 1 /* alias for TRUE */ #define DONT_EXTEND 0 /* alias for FALSE */ #define SUNOS_CPP "/usr/lib/cpp" @@ -86,11 +105,10 @@ static int allnc = sizeof (allnv)/sizeof (allnv[0]); /* * machinations for handling expanding argument list */ -static void addarg(); /* add another argument to the list */ -static void putarg(); /* put argument at specified location */ -static void clear_args(); /* clear argument list */ -static void checkfiles(); /* check if out file already exists */ - +static void addarg(char *); /* add another argument to the list */ +static void putarg(int, char *); /* put argument at specified location */ +static void clear_args(void); /* clear argument list */ +static void checkfiles(char *, char *); /* check if out file already exists */ #define ARGLISTLEN 20 @@ -130,13 +148,12 @@ xdrfunc *xdrfunc_tail = NULL; /* xdr function list */ pid_t childpid; -main(argc, argv) - int argc; - char *argv[]; +int +main(int argc, char *argv[]) { struct commandline cmd; - (void) memset((char *)&cmd, 0, sizeof (struct commandline)); + (void) memset(&cmd, 0, sizeof (struct commandline)); clear_args(); if (!parseargs(argc, argv, &cmd)) usage(); @@ -145,9 +162,8 @@ main(argc, argv) * so in that case only, check if the outfile exists, and if so, * print an error message and exit. */ - if (cmd.Ssflag || cmd.Scflag || cmd.makefileflag) { + if (cmd.Ssflag || cmd.Scflag || cmd.makefileflag) checkfiles(cmd.infile, cmd.outfile); - } else checkfiles(cmd.infile, NULL); @@ -186,7 +202,7 @@ main(argc, argv) EXTEND, "_svc.c", cmd.mflag, cmd.nflag); if (tblflag) { reinitialize(); - t_output(cmd.infile, "-DRPC_TBL", EXTEND, "_tbl.i"); + t_output(cmd.infile, "-DRPC_TBL", EXTEND, "_tbl.i"); } if (allfiles) { @@ -204,8 +220,7 @@ main(argc, argv) } } - exit(nonfatalerrors); - /* NOTREACHED */ + return (nonfatalerrors); } @@ -213,21 +228,17 @@ main(argc, argv) * add extension to filename */ static char * -extendfile(file, ext) - char *file; - char *ext; +extendfile(char *file, char *ext) { char *res; char *p; - res = alloc(strlen(file) + strlen(ext) + 1); - if (res == NULL) { + res = malloc(strlen(file) + strlen(ext) + 1); + if (res == NULL) abort(); - } p = strrchr(file, '.'); - if (p == NULL) { + if (p == NULL) p = file + strlen(file); - } (void) strcpy(res, file); (void) strcpy(res + (p - file), ext); return (res); @@ -236,10 +247,8 @@ extendfile(file, ext) /* * Open output file with given extension */ -static -open_output(infile, outfile) - char *infile; - char *outfile; +static void +open_output(char *infile, char *outfile) { if (outfile == NULL) { @@ -262,8 +271,8 @@ open_output(infile, outfile) } -static -add_warning() +static void +add_warning(void) { f_print(fout, "/*\n"); f_print(fout, " * Please do not edit this file.\n"); @@ -272,28 +281,31 @@ add_warning() } /* clear list of arguments */ -static void clear_args() +static void +clear_args(void) { int i; + for (i = FIXEDARGS; i < ARGLISTLEN; i++) arglist[i] = NULL; argcount = FIXEDARGS; } /* make sure that a CPP exists */ -static void find_cpp() +static void +find_cpp(void) { struct stat buf; if (stat(CPP, &buf) < 0) { /* SVR4 or explicit cpp does not exist */ if (cppDefined) { - fprintf(stderr, + (void) fprintf(stderr, "cannot find C preprocessor: %s \n", CPP); crash(); } else { /* try the other one */ CPP = SUNOS_CPP; if (stat(CPP, &buf) < 0) { /* can't find any cpp */ - fprintf(stderr, + (void) fprintf(stderr, "cannot find any C preprocessor (cpp)\n"); crash(); } @@ -304,10 +316,8 @@ static void find_cpp() /* * Open input file with given define for C-preprocessor */ -static -open_input(infile, define) - char *infile; - char *define; +static void +open_input(char *infile, char *define) { int pd[2]; @@ -325,9 +335,10 @@ open_input(infile, define) (void) close(1); (void) dup2(pd[1], 1); (void) close(pd[0]); - execv(arglist[0], arglist); + (void) execv(arglist[0], arglist); perror("execv"); exit(1); + /* NOTREACHED */ case -1: perror("fork"); exit(1); @@ -342,8 +353,7 @@ open_input(infile, define) } /* valid tirpc nettypes */ -static char *valid_ti_nettypes[] = -{ +static char *valid_ti_nettypes[] = { "netpath", "visible", "circuit_v", @@ -354,19 +364,17 @@ static char *valid_ti_nettypes[] = "tcp", "raw", NULL - }; +}; /* valid inetd nettypes */ -static char *valid_i_nettypes[] = -{ +static char *valid_i_nettypes[] = { "udp", "tcp", NULL - }; +}; -static int check_nettype(name, list_to_check) -char *name; -char *list_to_check[]; +static int +check_nettype(char *name, char *list_to_check[]) { int i; for (i = 0; list_to_check[i] != NULL; i++) { @@ -379,9 +387,7 @@ char *list_to_check[]; } static char * -file_name(file, ext) -char *file; -char *ext; +file_name(char *file, char *ext) { char *temp; temp = extendfile(file, ext); @@ -390,16 +396,11 @@ char *ext; return (temp); else return ((char *)" "); - } -static -c_output(infile, define, extend, outfile) - char *infile; - char *define; - int extend; - char *outfile; +static void +c_output(char *infile, char *define, int extend, char *outfile) { definition *def; char *include; @@ -418,10 +419,10 @@ c_output(infile, define, extend, outfile) } else f_print(fout, "#include <rpc/rpc.h>\n"); /* - * Include malloc.h to support mem_alloc calls. + * Include stdlib.h to support mem_alloc calls. */ f_print(fout, "\n#ifndef _KERNEL\n"); - f_print(fout, "#include <malloc.h>\n"); + f_print(fout, "#include <stdlib.h>\n"); f_print(fout, "#endif /* !_KERNEL */\n\n"); tell = ftell(fout); while (def = get_definition()) { @@ -433,9 +434,9 @@ c_output(infile, define, extend, outfile) } -c_initialize() +static void +c_initialize(void) { - /* * add all the starting basic types. * We may need to add some derived types @@ -454,7 +455,6 @@ c_initialize() add_type(1, "rpcproc_t"); add_type(1, "rpcprot_t"); add_type(1, "rpcport_t"); - } char rpcgen_table_dcl1[] = "struct rpcgen_table {\n"; @@ -471,8 +471,7 @@ char rpcgen_table_proc_b[] = "\tchar\t*(*proc)();\n"; char * -generate_guard(pathname) - char *pathname; +generate_guard(char *pathname) { char *filename, *guard, *tmp; @@ -509,12 +508,8 @@ generate_guard(pathname) */ -static -h_output(infile, define, extend, outfile) - char *infile; - char *define; - int extend; - char *outfile; +static void +h_output(char *infile, char *define, int extend, char *outfile) { definition *def; char *outfilename; @@ -528,13 +523,12 @@ h_output(infile, define, extend, outfile) outfilename = extend ? extendfile(infile, outfile) : outfile; open_output(infile, outfilename); add_warning(); - if (outfilename || infile) { + if (outfilename || infile) guard = generate_guard(outfilename ? outfilename: infile); - } else + else guard = "STDIN_"; - f_print(fout, "#ifndef _%s\n#define _%s\n\n", guard, - guard); + f_print(fout, "#ifndef _%s\n#define _%s\n\n", guard, guard); f_print(fout, "#include <rpc/rpc.h>\n"); @@ -557,54 +551,49 @@ h_output(infile, define, extend, outfile) tell = ftell(fout); /* print data definitions */ - while (def = get_definition()) { + while (def = get_definition()) print_datadef(def); - } /* * print function declarations. * Do this after data definitions because they might be used as * arguments for functions */ - for (l = defined; l != NULL; l = l->next) { + for (l = defined; l != NULL; l = l->next) print_funcdef(l->val); - } /* Now print all xdr func declarations */ if (xdrfunc_head != NULL) { - - f_print(fout, - "\n/* the xdr functions */\n"); + f_print(fout, "\n/* the xdr functions */\n"); if (CCflag) { - f_print(fout, "\n#ifdef __cplusplus\n"); - f_print(fout, "extern \"C\" {\n"); - f_print(fout, "#endif\n"); - } + f_print(fout, "\n#ifdef __cplusplus\n"); + f_print(fout, "extern \"C\" {\n"); + f_print(fout, "#endif\n"); + } if (!Cflag) { xdrfuncp = xdrfunc_head; while (xdrfuncp != NULL) { print_xdr_func_def(xdrfuncp->name, - xdrfuncp->pointerp, 2); + xdrfuncp->pointerp, 2); xdrfuncp = xdrfuncp->next; } } else { - for (i = 1; i < 3; i++) { if (i == 1) - f_print(fout, "\n#if defined(__STDC__) || defined(__cplusplus)\n"); - + f_print(fout, +"\n#if defined(__STDC__) || defined(__cplusplus)\n"); else f_print(fout, "\n#else /* K&R C */\n"); xdrfuncp = xdrfunc_head; while (xdrfuncp != NULL) { print_xdr_func_def(xdrfuncp->name, - xdrfuncp->pointerp, i); + xdrfuncp->pointerp, i); xdrfuncp = xdrfuncp->next; } } - f_print(fout, "\n#endif /* K&R C */\n"); + f_print(fout, "\n#endif /* K&R C */\n"); } } @@ -631,16 +620,9 @@ h_output(infile, define, extend, outfile) /* * Compile into an RPC service */ -static -s_output(argc, argv, infile, define, extend, outfile, nomain, netflag) - int argc; - char *argv[]; - char *infile; - char *define; - int extend; - char *outfile; - int nomain; - int netflag; +static void +s_output(int argc, char *argv[], char *infile, char *define, int extend, + char *outfile, int nomain, int netflag) { char *include; definition *def; @@ -670,16 +652,14 @@ s_output(argc, argv, infile, define, extend, outfile, nomain, netflag) indefinitewait = 1; else if (strcmp(svcclosetime, "0") == 0) exitnow = 1; - else if (inetdflag || pmflag) { + else if (inetdflag || pmflag) timerflag = 1; - } if (!tirpcflag && inetdflag) f_print(fout, "#include <sys/termios.h> /* TIOCNOTTY */\n"); - if (Cflag && (inetdflag || pmflag)) { + if (Cflag && (inetdflag || pmflag)) if (tirpcflag) f_print(fout, "#include <unistd.h> /* setsid */\n"); - } if (tirpcflag) f_print(fout, "#include <sys/types.h>\n"); @@ -691,9 +671,8 @@ s_output(argc, argv, infile, define, extend, outfile, nomain, netflag) f_print(fout, "#include <rpc/svc_soc.h>\n"); } - if ((netflag || pmflag) && tirpcflag && !nomain) { + if ((netflag || pmflag) && tirpcflag && !nomain) f_print(fout, "#include <netconfig.h>\n"); - } if (tirpcflag) f_print(fout, "#include <sys/resource.h> /* rlimit */\n"); if (logflag || inetdflag || pmflag) @@ -709,9 +688,8 @@ s_output(argc, argv, infile, define, extend, outfile, nomain, netflag) if (timerflag) f_print(fout, "\n#define _RPCSVC_CLOSEDOWN %s\n", svcclosetime); - while (def = get_definition()) { + while (def = get_definition()) foundprogram |= (def->def_kind == DEF_PROGRAM); - } if (extend && !foundprogram) { (void) unlink(outfilename); return; @@ -730,12 +708,8 @@ s_output(argc, argv, infile, define, extend, outfile, nomain, netflag) /* * generate client side stubs */ -static -l_output(infile, define, extend, outfile) - char *infile; - char *define; - int extend; - char *outfile; +static void +l_output(char *infile, char *define, int extend, char *outfile) { char *include; definition *def; @@ -759,9 +733,8 @@ l_output(infile, define, extend, outfile) f_print(fout, "#include <stdlib.h> /* getenv, exit */\n"); f_print(fout, "#endif /* !_KERNEL */\n"); - while (def = get_definition()) { + while (def = get_definition()) foundprogram |= (def->def_kind == DEF_PROGRAM); - } if (extend && !foundprogram) { (void) unlink(outfilename); return; @@ -772,12 +745,8 @@ l_output(infile, define, extend, outfile) /* * generate the dispatch table */ -static -t_output(infile, define, extend, outfile) - char *infile; - char *define; - int extend; - char *outfile; +static void +t_output(char *infile, char *define, int extend, char *outfile) { definition *def; int foundprogram = 0; @@ -798,12 +767,8 @@ t_output(infile, define, extend, outfile) } /* sample routine for the server template */ -static -svc_output(infile, define, extend, outfile) - char *infile; - char *define; - int extend; - char *outfile; +static void +svc_output(char *infile, char *define, int extend, char *outfile) { definition *def; char *include; @@ -831,21 +796,15 @@ svc_output(infile, define, extend, outfile) f_print(fout, "#include <signal.h>\n"); tell = ftell(fout); - while (def = get_definition()) { + while (def = get_definition()) write_sample_svc(def); - } - if (extend && tell == ftell(fout)) { + if (extend && tell == ftell(fout)) (void) unlink(outfilename); - } } /* sample main routine for client */ -static -clnt_output(infile, define, extend, outfile) - char *infile; - char *define; - int extend; - char *outfile; +static void +clnt_output(char *infile, char *define, int extend, char *outfile) { definition *def; char *include; @@ -873,21 +832,19 @@ clnt_output(infile, define, extend, outfile) f_print(fout, "#include <stdlib.h> /* getenv, exit */\n"); tell = ftell(fout); - while (def = get_definition()) { + while (def = get_definition()) has_program += write_sample_clnt(def); - } if (has_program) write_sample_clnt_main(); - if (extend && tell == ftell(fout)) { + if (extend && tell == ftell(fout)) (void) unlink(outfilename); - } } -static void mkfile_output(cmd) -struct commandline *cmd; +static void +mkfile_output(struct commandline *cmd) { char *mkfilename, *clientname, *clntname, *xdrname, *hdrname; char *servername, *svcname, *servprogname, *clntprogname; @@ -910,14 +867,14 @@ struct commandline *cmd; clntprogname = extendfile(cmd->infile, "_client"); if (allfiles) { - mkfilename = alloc(strlen("makefile.") + + mkfilename = malloc(strlen("makefile.") + strlen(cmd->infile) + 1); if (mkfilename == NULL) { f_print(stderr, "Out of memory!\n"); return; } temp = (char *)rindex(cmd->infile, '.'); - strcpy(mkfilename, "makefile."); + (void) strcpy(mkfilename, "makefile."); (void) strncat(mkfilename, cmd->infile, (temp - cmd->infile)); } else @@ -980,15 +937,12 @@ $(OBJECTS_SVC) $(CLIENT) $(SERVER)\n\n"); } - /* * Perform registrations for service output * Return 0 if failed; 1 otherwise. */ static int -do_registers(argc, argv) - int argc; - char *argv[]; +do_registers(int argc, char *argv[]) { int i; @@ -1022,8 +976,7 @@ do_registers(argc, argv) * Add another argument to the arg list */ static void -addarg(cp) - char *cp; +addarg(char *cp) { if (argcount >= ARGLISTLEN) { f_print(stderr, "rpcgen: too many defines\n"); @@ -1031,13 +984,10 @@ addarg(cp) /*NOTREACHED*/ } arglist[argcount++] = cp; - } static void -putarg(where, cp) - char *cp; - int where; +putarg(int where, char *cp) { if (where >= ARGLISTLEN) { f_print(stderr, "rpcgen: arglist coding error\n"); @@ -1052,41 +1002,32 @@ putarg(where, cp) * if the file already exists. Otherwise the file may get overwritten * If input file does not exist, exit with an error */ - static void -checkfiles(infile, outfile) -char *infile; -char *outfile; +checkfiles(char *infile, char *outfile) { - struct stat buf; - if (infile) /* infile ! = NULL */ - if (stat(infile, &buf) < 0) - { + if (infile) { /* infile ! = NULL */ + if (stat(infile, &buf) < 0) { perror(infile); crash(); - }; + } + } if (outfile) { if (stat(outfile, &buf) < 0) return; /* file does not exist */ - else { - f_print(stderr, - "file '%s' already exists and may be overwritten\n", - outfile); - crash(); - } + f_print(stderr, + "file '%s' already exists and may be overwritten\n", + outfile); + crash(); } } /* * Parse command line arguments */ -static -parseargs(argc, argv, cmd) - int argc; - char *argv[]; - struct commandline *cmd; +static uint_t +parseargs(int argc, char *argv[], struct commandline *cmd) { int i; int j; @@ -1096,9 +1037,8 @@ parseargs(argc, argv, cmd) cmdname = argv[0]; cmd->infile = cmd->outfile = NULL; - if (argc < 2) { + if (argc < 2) return (0); - } allfiles = 0; flag['c'] = 0; flag['h'] = 0; @@ -1133,9 +1073,8 @@ parseargs(argc, argv, cmd) case 'l': case 'm': case 't': - if (flag[c]) { + if (flag[c]) return (0); - } flag[c] = 1; break; case 'S': @@ -1155,9 +1094,8 @@ parseargs(argc, argv, cmd) else return (0); - if (flag[ch]) { + if (flag[ch]) return (0); - } flag[ch] = 1; break; case 'C': /* ANSI C syntax */ @@ -1187,9 +1125,8 @@ parseargs(argc, argv, cmd) logflag = 1; break; case 'K': - if (++i == argc) { + if (++i == argc) return (0); - } svcclosetime = argv[i]; goto nextarg; case 'T': @@ -1197,47 +1134,41 @@ parseargs(argc, argv, cmd) break; case 'A': mtauto = 1; - /* fall through */ + /* FALLTHRU */ case 'M': mtflag = 1; break; case 'i' : - if (++i == argc) { + if (++i == argc) return (0); - } inlinelen = atoi(argv[i]); goto nextarg; case 'n': case 'o': case 's': if (argv[i][j - 1] != '-' || - argv[i][j + 1] != 0) { + argv[i][j + 1] != 0) return (0); - } flag[c] = 1; - if (++i == argc) { + if (++i == argc) return (0); - } if (c == 'o') { - if (cmd->outfile) { + if (cmd->outfile) return (0); - } cmd->outfile = argv[i]; } goto nextarg; case 'D': - if (argv[i][j - 1] != '-') { + if (argv[i][j - 1] != '-') return (0); - } (void) addarg(argv[i]); goto nextarg; case 'v': version_info(); return (0); case 'Y': - if (++i == argc) { + if (++i == argc) return (0); - } (void) strcpy(pathbuf, argv[i]); (void) strcat(pathbuf, "/cpp"); CPP = pathbuf; @@ -1277,7 +1208,8 @@ parseargs(argc, argv, cmd) pmflag = 0; /* set pmflag only in tirpcmode */ inetdflag = 1; /* inetdflag is TRUE by default */ if (cmd->nflag) { /* netid needs TIRPC */ - f_print(stderr, "Cannot use netid flag without TIRPC.\n"); + f_print(stderr, + "Cannot use netid flag without TIRPC.\n"); return (0); } } @@ -1293,15 +1225,15 @@ parseargs(argc, argv, cmd) cmd->Scflag + cmd->makefileflag; if (nflags == 0) { - if (cmd->outfile != NULL || cmd->infile == NULL) { + if (cmd->outfile != NULL || cmd->infile == NULL) return (0); - } } else if (cmd->infile == NULL && (cmd->Ssflag || cmd->Scflag || cmd->makefileflag)) { f_print(stderr, "\"infile\" is required for template" " generation flags.\n"); return (0); - } if (nflags > 1) { + } + if (nflags > 1) { f_print(stderr, "Cannot have more than one file generation flag.\n"); return (0); @@ -1309,8 +1241,8 @@ parseargs(argc, argv, cmd) return (1); } -static -usage() +static void +usage(void) { f_print(stderr, "%s (%d.%d)\n", cmdname, RPCGEN_MAJOR, RPCGEN_MINOR); f_print(stderr, "usage: %s infile\n", cmdname); @@ -1324,15 +1256,15 @@ usage() exit(1); } -static -version_info() +static void +version_info(void) { f_print(stderr, "%s %d.%d\n", cmdname, RPCGEN_MAJOR, RPCGEN_MINOR); exit(1); } -static -options_usage() +static void +options_usage(void) { f_print(stderr, "options:\n"); f_print(stderr, "-a\t\tgenerate all files, including samples\n"); @@ -1372,18 +1304,3 @@ options_usage() f_print(stderr, "-Y path\t\tpath where cpp is found\n"); exit(1); } - - -char * -rindex(sp, c) - register char *sp, c; -{ - register char *r; - - r = NULL; - do { - if (*sp == c) - r = sp; - } while (*sp++); - return (r); -} diff --git a/usr/src/cmd/rpcgen/rpc_parse.c b/usr/src/cmd/rpcgen/rpc_parse.c index bf7af51813..40d92b6e2c 100644 --- a/usr/src/cmd/rpcgen/rpc_parse.c +++ b/usr/src/cmd/rpcgen/rpc_parse.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -41,6 +42,7 @@ * rpc_parse.c, Parser for the RPC protocol compiler */ #include <stdio.h> +#include <stdlib.h> #include <string.h> #include "rpc/types.h" #include "rpc_scan.h" @@ -49,19 +51,30 @@ #define ARGNAME "arg" -extern char *make_argname(); -extern char *strdup(); +extern char *make_argname(char *, char *); + +static void isdefined(definition *); +static void def_struct(definition *); +static void def_program(definition *); +static void def_enum(definition *); +static void def_const(definition *); +static void def_union(definition *); +static void def_typedef(definition *); +static void get_declaration(declaration *, defkind); +static void get_prog_declaration(declaration *, defkind, int); +static void get_type(char **, char **, defkind); +static void unsigned_dec(char **); /* * return the next definition you see */ definition * -get_definition() +get_definition(void) { definition *defp; token tok; - defp = ALLOC(definition); + defp = calloc(1, sizeof (definition)); get_token(&tok); switch (tok.kind) { case TOK_STRUCT: @@ -92,9 +105,8 @@ get_definition() return (defp); } -static -isdefined(defp) - definition *defp; +static void +isdefined(definition *defp) { STOREVAL(&defined, defp); } @@ -102,6 +114,7 @@ isdefined(defp) /* * We treat s == NULL the same as *s == '\0' */ +static int streqn(const char *s1, const char *s2) { if (s1 == NULL) @@ -120,7 +133,6 @@ cmptype(definition *defp, char *type) /* We only want typedef definitions */ if (streq(defp->def_name, type) && defp->def_kind == DEF_TYPEDEF) return (1); - return (0); } @@ -212,11 +224,11 @@ is_self_reference(definition *defp, declaration *decp) */ if (decp->rel == REL_POINTER && dp->def.ty.rel != REL_ALIAS) return (0); - else if (decp->rel == REL_ALIAS && + if (decp->rel == REL_ALIAS && (dp->def.ty.rel != REL_ALIAS && dp->def.ty.rel != REL_POINTER)) return (0); - else if (decp->rel != REL_ALIAS && decp->rel != REL_POINTER) + if (decp->rel != REL_ALIAS && decp->rel != REL_POINTER) /* Should never get here */ return (0); @@ -232,9 +244,8 @@ is_self_reference(definition *defp, declaration *decp) return (1); } -static -def_struct(defp) - definition *defp; +static void +def_struct(definition *defp) { token tok; declaration dec; @@ -250,7 +261,7 @@ def_struct(defp) defp->def.st.tail = NULL; do { get_declaration(&dec, DEF_STRUCT); - decls = ALLOC(decl_list); + decls = calloc(1, sizeof (decl_list)); decls->decl = dec; /* * Keep a referenct to the last declaration to check for @@ -272,9 +283,8 @@ def_struct(defp) defp->def.st.tail = endp; } -static -def_program(defp) - definition *defp; +static void +def_program(definition *defp) { token tok; declaration dec; @@ -295,13 +305,13 @@ def_program(defp) scan(TOK_VERSION, &tok); do { scan(TOK_IDENT, &tok); - vlist = ALLOC(version_list); + vlist = calloc(1, sizeof (version_list)); vlist->vers_name = tok.str; scan(TOK_LBRACE, &tok); ptailp = &vlist->procs; do { /* get result type */ - plist = ALLOC(proc_list); + plist = calloc(1, sizeof (proc_list)); get_type(&plist->res_prefix, &plist->res_type, DEF_RESULT); if (streq(plist->res_type, "opaque")) { @@ -321,7 +331,7 @@ def_program(defp) get_prog_declaration(&dec, DEF_PROGRAM, num_args); if (streq(dec.type, "void")) isvoid = TRUE; - decls = ALLOC(decl_list); + decls = calloc(1, sizeof (decl_list)); plist->args.decls = decls; decls->decl = dec; tailp = &decls->next; @@ -330,7 +340,7 @@ def_program(defp) num_args++; get_prog_declaration(&dec, DEF_STRUCT, num_args); - decls = ALLOC(decl_list); + decls = calloc(1, sizeof (decl_list)); decls->decl = dec; *tailp = decls; if (streq(dec.type, "void")) @@ -364,8 +374,7 @@ def_program(defp) scan_num(&tok); vlist->vers_num = tok.str; /* make the argument structure name for each arg */ - for (plist = vlist->procs; plist != NULL; - plist = plist->next) { + for (plist = vlist->procs; plist != NULL; plist = plist->next) { plist->args.argname = make_argname(plist->proc_name, vlist->vers_num); /* free the memory ?? */ @@ -379,10 +388,8 @@ def_program(defp) *vtailp = NULL; } - -static -def_enum(defp) - definition *defp; +static void +def_enum(definition *defp) { token tok; enumval_list *elist; @@ -395,7 +402,7 @@ def_enum(defp) tailp = &defp->def.en.vals; do { scan(TOK_IDENT, &tok); - elist = ALLOC(enumval_list); + elist = calloc(1, sizeof (enumval_list)); elist->name = tok.str; elist->assignment = NULL; scan3(TOK_COMMA, TOK_RBRACE, TOK_EQUAL, &tok); @@ -410,9 +417,8 @@ def_enum(defp) *tailp = NULL; } -static -def_const(defp) - definition *defp; +static void +def_const(definition *defp) { token tok; @@ -424,13 +430,12 @@ def_const(defp) defp->def.co = tok.str; } -static -def_union(defp) - definition *defp; +static void +def_union(definition *defp) { token tok; declaration dec; - case_list *cases, *tcase; + case_list *cases; case_list **tailp; int flag; @@ -447,7 +452,7 @@ def_union(defp) scan(TOK_CASE, &tok); while (tok.kind == TOK_CASE) { scan2(TOK_IDENT, TOK_CHARCONST, &tok); - cases = ALLOC(case_list); + cases = calloc(1, sizeof (case_list)); cases->case_name = tok.str; scan(TOK_COLON, &tok); /* now peek at next token */ @@ -459,19 +464,15 @@ def_union(defp) /* continued case statement */ *tailp = cases; tailp = &cases->next; - cases = ALLOC(case_list); + cases = calloc(1, sizeof (case_list)); cases->case_name = tok.str; scan(TOK_COLON, &tok); } while (peekscan(TOK_CASE, &tok)); + } else if (flag) { + *tailp = cases; + tailp = &cases->next; + cases = calloc(1, sizeof (case_list)); } - else - if (flag) - { - - *tailp = cases; - tailp = &cases->next; - cases = ALLOC(case_list); - }; get_declaration(&dec, DEF_UNION); cases->case_decl = dec; @@ -486,7 +487,7 @@ def_union(defp) if (tok.kind == TOK_DEFAULT) { scan(TOK_COLON, &tok); get_declaration(&dec, DEF_UNION); - defp->def.un.default_decl = ALLOC(declaration); + defp->def.un.default_decl = calloc(1, sizeof (declaration)); *defp->def.un.default_decl = dec; scan(TOK_SEMICOLON, &tok); scan(TOK_RBRACE, &tok); @@ -495,8 +496,7 @@ def_union(defp) } } -static char *reserved_words[] = -{ +static char *reserved_words[] = { "array", "bytes", "destroy", @@ -510,29 +510,27 @@ static char *reserved_words[] = "union", "vector", NULL - }; +}; -static char *reserved_types[] = -{ +static char *reserved_types[] = { "opaque", "string", NULL - }; +}; /* * check that the given name is not one that would eventually result in * xdr routines that would conflict with internal XDR routines. */ -static check_type_name(name, new_type) -int new_type; -char *name; +static void +check_type_name(char *name, int new_type) { int i; char tmp[100]; for (i = 0; reserved_words[i] != NULL; i++) { if (strcmp(name, reserved_words[i]) == 0) { - snprintf(tmp, sizeof (tmp), + (void) snprintf(tmp, sizeof (tmp), "illegal (reserved) name :\'%s\' " "in type definition", name); @@ -542,7 +540,7 @@ char *name; if (new_type) { for (i = 0; reserved_types[i] != NULL; i++) { if (strcmp(name, reserved_types[i]) == 0) { - snprintf(tmp, sizeof (tmp), + (void) snprintf(tmp, sizeof (tmp), "illegal (reserved) name :\'%s\' " "in type definition", name); @@ -552,11 +550,8 @@ char *name; } } - - -static -def_typedef(defp) - definition *defp; +static void +def_typedef(definition *defp) { declaration dec; @@ -570,18 +565,15 @@ def_typedef(defp) defp->def.ty.array_max = dec.array_max; } -static -get_declaration(dec, dkind) - declaration *dec; - defkind dkind; +static void +get_declaration(declaration *dec, defkind dkind) { token tok; get_type(&dec->prefix, &dec->type, dkind); dec->rel = REL_ALIAS; - if (streq(dec->type, "void")) { + if (streq(dec->type, "void")) return; - } check_type_name(dec->type, 0); scan2(TOK_STAR, TOK_IDENT, &tok); @@ -591,19 +583,17 @@ get_declaration(dec, dkind) } dec->name = tok.str; if (peekscan(TOK_LBRACKET, &tok)) { - if (dec->rel == REL_POINTER) { + if (dec->rel == REL_POINTER) error("no array-of-pointer declarations " "-- use typedef"); - } dec->rel = REL_VECTOR; scan_num(&tok); dec->array_max = tok.str; scan(TOK_RBRACKET, &tok); } else if (peekscan(TOK_LANGLE, &tok)) { - if (dec->rel == REL_POINTER) { + if (dec->rel == REL_POINTER) error("no array-of-pointer declarations " "-- use typedef"); - } dec->rel = REL_ARRAY; if (peekscan(TOK_RANGLE, &tok)) { dec->array_max = "~0"; /* unspecified size, use max */ @@ -624,12 +614,8 @@ get_declaration(dec, dkind) } } - -static -get_prog_declaration(dec, dkind, num) - declaration *dec; - defkind dkind; - int num; /* arg number */ +static void +get_prog_declaration(declaration *dec, defkind dkind, int num) { token tok; char name[sizeof (ARGNAME) + 10]; @@ -650,19 +636,17 @@ get_prog_declaration(dec, dkind, num) dec->name = strdup(tok.str); else { /* default name of argument */ - snprintf(name, sizeof (name), "%s%d", ARGNAME, num); + (void) snprintf(name, sizeof (name), "%s%d", ARGNAME, num); dec->name = strdup(name); } if (dec->name == NULL) error("internal error -- out of memory"); - if (streq(dec->type, "void")) { + if (streq(dec->type, "void")) return; - } - if (streq(dec->type, "opaque")) { + if (streq(dec->type, "opaque")) error("opaque -- illegal argument type"); - } if (peekscan(TOK_STAR, &tok)) { if (streq(dec->type, "string")) { error("pointer to string not allowed " @@ -701,13 +685,8 @@ get_prog_declaration(dec, dkind, num) } } - - -static -get_type(prefixp, typep, dkind) - char **prefixp; - char **typep; - defkind dkind; +static void +get_type(char **prefixp, char **typep, defkind dkind) { token tok; @@ -769,9 +748,8 @@ get_type(prefixp, typep, dkind) } } -static -unsigned_dec(typep) - char **typep; +static void +unsigned_dec(char **typep) { token tok; diff --git a/usr/src/cmd/rpcgen/rpc_parse.h b/usr/src/cmd/rpcgen/rpc_parse.h index 1f74251055..0bb4170824 100644 --- a/usr/src/cmd/rpcgen/rpc_parse.h +++ b/usr/src/cmd/rpcgen/rpc_parse.h @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -65,7 +66,7 @@ enum relation { REL_VECTOR, /* fixed length array */ REL_ARRAY, /* variable length array */ REL_POINTER, /* pointer */ - REL_ALIAS, /* simple */ + REL_ALIAS /* simple */ }; typedef enum relation relation; diff --git a/usr/src/cmd/rpcgen/rpc_sample.c b/usr/src/cmd/rpcgen/rpc_sample.c index 92cc3d6aa9..846e3d8e7d 100644 --- a/usr/src/cmd/rpcgen/rpc_sample.c +++ b/usr/src/cmd/rpcgen/rpc_sample.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -49,22 +51,22 @@ static char RQSTP[] = "rqstp"; -void printarglist(); +extern void printarglist(proc_list *, char *, char *, char *); + +static void write_sample_client(char *, version_list *); +static void write_sample_server(definition *); +static void return_type(proc_list *); void -write_sample_svc(def) - definition *def; +write_sample_svc(definition *def) { - if (def->def_kind != DEF_PROGRAM) return; write_sample_server(def); } - int -write_sample_clnt(def) - definition *def; +write_sample_clnt(definition *def) { version_list *vp; int count = 0; @@ -79,11 +81,8 @@ write_sample_clnt(def) return (count); } - -static -write_sample_client(program_name, vp) - char *program_name; - version_list *vp; +static void +write_sample_client(char *program_name, version_list *vp) { proc_list *proc; int i; @@ -164,23 +163,21 @@ write_sample_client(program_name, vp) f_print(fout, "&"); pvname(proc->proc_name, vp->vers_num); if (mtflag) { - if (streq(proc->res_type, "oneway")) { + if (streq(proc->res_type, "oneway")) f_print(fout, "_arg, clnt);\n"); - } else { + else f_print(fout, "_arg, &result_%d, clnt);\n", i); - } } else f_print(fout, "_arg, clnt);\n"); } else if (streq(proc->args.decls->decl.type, "void")) { if (mtflag) { - if (streq(proc->res_type, "oneway")) { + if (streq(proc->res_type, "oneway")) f_print(fout, "(clnt);\n"); - } else { + else f_print(fout, "(&result_%d, clnt);\n", i); - } } else f_print(fout, "(clnt);\n"); } else { @@ -190,16 +187,14 @@ write_sample_client(program_name, vp) f_print(fout, "_%s, ", l->decl.name); } if (mtflag) { - if (!streq(proc->res_type, "oneway")) { + if (!streq(proc->res_type, "oneway")) f_print(fout, "&result_%d, ", i); - } } f_print(fout, "clnt);\n"); } if (mtflag) { f_print(fout, "\tif (retval_%d != RPC_SUCCESS) {\n", i); - } else { f_print(fout, "\tif (result_%d == (", i); ptype(proc->res_prefix, proc->res_type, 1); @@ -215,9 +210,8 @@ write_sample_client(program_name, vp) f_print(fout, "}\n"); } -static -write_sample_server(def) - definition *def; +static void +write_sample_server(definition *def) { version_list *vp; proc_list *proc; @@ -247,8 +241,7 @@ write_sample_server(def) else f_print(fout, "char *"); /* cannot have void type */ - f_print(fout, " result;\n", - proc->res_type); + f_print(fout, " result;\n"); } f_print(fout, "\n\t/*\n\t * insert server code " @@ -288,16 +281,14 @@ write_sample_server(def) } } - - -static -return_type(plist) - proc_list *plist; +static void +return_type(proc_list *plist) { ptype(plist->res_prefix, plist->res_type, 1); } -add_sample_msg() +void +add_sample_msg(void) { f_print(fout, "/*\n"); f_print(fout, " * This is sample code generated by rpcgen.\n"); @@ -307,7 +298,7 @@ add_sample_msg() } void -write_sample_clnt_main() +write_sample_clnt_main(void) { list *l; definition *def; @@ -315,9 +306,9 @@ write_sample_clnt_main() f_print(fout, "\n\n"); if (Cflag) - f_print(fout, "main(int argc, char *argv[])\n{\n"); + f_print(fout, "int\nmain(int argc, char *argv[])\n{\n"); else - f_print(fout, "main(argc, argv)\n\tint argc;\n" + f_print(fout, "int\nmain(argc, argv)\n\tint argc;\n" "\tchar *argv[];\n{\n"); f_print(fout, "\tchar *host;"); @@ -329,9 +320,8 @@ write_sample_clnt_main() for (l = defined; l != NULL; l = l->next) { def = l->val; - if (def->def_kind != DEF_PROGRAM) { + if (def->def_kind != DEF_PROGRAM) continue; - } for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { f_print(fout, "\t"); pvname(def->def_name, vp->vers_num); diff --git a/usr/src/cmd/rpcgen/rpc_scan.c b/usr/src/cmd/rpcgen/rpc_scan.c index 88b68f978c..bba380eff8 100644 --- a/usr/src/cmd/rpcgen/rpc_scan.c +++ b/usr/src/cmd/rpcgen/rpc_scan.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -37,75 +39,73 @@ #pragma ident "%Z%%M% %I% %E% SMI" /* - * rpc_scan.c, Scanner for the RPC protocol compiler + * rpc_scan.c, Scanner for the RPC protocol compiler */ #include <sys/wait.h> #include <stdio.h> #include <ctype.h> #include <string.h> +#include <strings.h> #include "rpc_scan.h" #include "rpc_parse.h" #include "rpc_util.h" -#define startcomment(where) (where[0] == '/' && where[1] == '*') -#define endcomment(where) (where[-1] == '*' && where[0] == '/') +#define startcomment(where) (where[0] == '/' && where[1] == '*') +#define endcomment(where) (where[-1] == '*' && where[0] == '/') static int pushed = 0; /* is a token pushed */ static token lasttok; /* last token, if pushed */ +static void unget_token(token *); +static void findstrconst(char **, char **); +static void findchrconst(char **, char **); +static void findconst(char **, char **); +static void findkind(char **, token *); +static int cppline(char *); +static int directive(char *); +static void printdirective(char *); +static void docppline(char *, int *, char **); + /* - * scan expecting 1 given token + * scan expecting 1 given token */ void -scan(expect, tokp) - tok_kind expect; - token *tokp; +scan(tok_kind expect, token *tokp) { get_token(tokp); - if (tokp->kind != expect) { + if (tokp->kind != expect) expected1(expect); - } } /* - * scan expecting any of the 2 given tokens + * scan expecting any of the 2 given tokens */ void -scan2(expect1, expect2, tokp) - tok_kind expect1; - tok_kind expect2; - token *tokp; +scan2(tok_kind expect1, tok_kind expect2, token *tokp) { get_token(tokp); - if (tokp->kind != expect1 && tokp->kind != expect2) { + if (tokp->kind != expect1 && tokp->kind != expect2) expected2(expect1, expect2); - } } /* - * scan expecting any of the 3 given token + * scan expecting any of the 3 given token */ void -scan3(expect1, expect2, expect3, tokp) - tok_kind expect1; - tok_kind expect2; - tok_kind expect3; - token *tokp; +scan3(tok_kind expect1, tok_kind expect2, tok_kind expect3, token *tokp) { get_token(tokp); - if (tokp->kind != expect1 && tokp->kind != expect2 - && tokp->kind != expect3) { + if (tokp->kind != expect1 && tokp->kind != expect2 && + tokp->kind != expect3) expected3(expect1, expect2, expect3); - } } /* - * scan expecting a constant, possibly symbolic + * scan expecting a constant, possibly symbolic */ void -scan_num(tokp) - token *tokp; +scan_num(token *tokp) { get_token(tokp); switch (tokp->kind) { @@ -117,23 +117,20 @@ scan_num(tokp) } /* - * Peek at the next token + * Peek at the next token */ void -peek(tokp) - token *tokp; +peek(token *tokp) { get_token(tokp); unget_token(tokp); } /* - * Peek at the next token and scan it if it matches what you expect + * Peek at the next token and scan it if it matches what you expect */ int -peekscan(expect, tokp) - tok_kind expect; - token *tokp; +peekscan(tok_kind expect, token *tokp) { peek(tokp); if (tokp->kind == expect) { @@ -144,16 +141,14 @@ peekscan(expect, tokp) } /* - * Get the next token, printing out any directive that are encountered. + * Get the next token, printing out any directive that are encountered. */ void -get_token(tokp) - token *tokp; +get_token(token *tokp) { int commenting; int stat = 0; - - + if (pushed) { pushed = 0; *tokp = lasttok; @@ -165,8 +160,12 @@ get_token(tokp) for (;;) { if (!fgets(curline, MAXLINESIZE, fin)) { tokp->kind = TOK_EOF; - /* now check if cpp returned non NULL value */ - waitpid(childpid, &stat, WUNTRACED); + /* + * now check if cpp returned + * non NULL value + */ + (void) waitpid(childpid, &stat, + WUNTRACED); if (stat > 0) { /* Set return value from rpcgen */ nonfatalerrors = stat >> 8; @@ -178,8 +177,8 @@ get_token(tokp) if (commenting) { break; } else if (cppline(curline)) { - docppline(curline, &linenum, - &infilename); + docppline(curline, &linenum, + &infilename); } else if (directive(curline)) { printdirective(curline); } else { @@ -208,7 +207,7 @@ get_token(tokp) } /* - * 'where' is not whitespace, comment or directive Must be a token! + * 'where' is not whitespace, comment or directive Must be a token! */ switch (*where) { case ':': @@ -292,13 +291,18 @@ get_token(tokp) if (!(isalpha(*where) || *where == '_')) { char buf[100]; char *p; + size_t blen; - s_print(buf, "illegal character in file: "); - p = buf + strlen(buf); + (void) snprintf(buf, sizeof (buf), + "illegal character in file: "); + blen = strlen(buf); + p = buf + blen; if (isprint(*where)) { - s_print(p, "%c", *where); + (void) snprintf(p, sizeof (buf) - blen, + "%c", *where); } else { - s_print(p, "%d", *where); + (void) snprintf(p, sizeof (buf) - blen, + "%d", *where); } error(buf); } @@ -307,67 +311,58 @@ get_token(tokp) } } -static -unget_token(tokp) - token *tokp; +static void +unget_token(token *tokp) { lasttok = *tokp; pushed = 1; } -static -findstrconst(str, val) - char **str; - char **val; +static void +findstrconst(char **str, char **val) { char *p; int size; p = *str; do { - *p++; + p++; } while (*p && *p != '"'); if (*p == 0) { error("unterminated string constant"); } p++; size = p - *str; - *val = alloc(size + 1); + *val = malloc(size + 1); (void) strncpy(*val, *str, size); (*val)[size] = 0; *str = p; } -static -findchrconst(str, val) - char **str; - char **val; +static void +findchrconst(char **str, char **val) { char *p; int size; p = *str; do { - *p++; + p++; } while (*p && *p != '\''); - if (*p == 0) { + if (*p == 0) error("unterminated string constant"); - } p++; size = p - *str; - if (size != 3) { + if (size != 3) error("empty char string"); - } - *val = alloc(size + 1); + *val = malloc(size + 1); (void) strncpy(*val, *str, size); (*val)[size] = 0; *str = p; } -static -findconst(str, val) - char **str; - char **val; +static void +findconst(char **str, char **val) { char *p; int size; @@ -384,44 +379,42 @@ findconst(str, val) } while (isdigit(*p)); } size = p - *str; - *val = alloc(size + 1); + *val = malloc(size + 1); (void) strncpy(*val, *str, size); (*val)[size] = 0; *str = p; } static token symbols[] = { - {TOK_CONST, "const"}, - {TOK_UNION, "union"}, - {TOK_SWITCH, "switch"}, - {TOK_CASE, "case"}, - {TOK_DEFAULT, "default"}, - {TOK_STRUCT, "struct"}, - {TOK_TYPEDEF, "typedef"}, - {TOK_ENUM, "enum"}, - {TOK_OPAQUE, "opaque"}, - {TOK_BOOL, "bool"}, - {TOK_VOID, "void"}, - {TOK_ONEWAY, "oneway"}, - {TOK_CHAR, "char"}, - {TOK_INT, "int"}, - {TOK_UNSIGNED, "unsigned"}, - {TOK_SHORT, "short"}, - {TOK_LONG, "long"}, - {TOK_HYPER, "hyper"}, - {TOK_FLOAT, "float"}, - {TOK_DOUBLE, "double"}, - {TOK_QUAD, "quadruple"}, - {TOK_STRING, "string"}, - {TOK_PROGRAM, "program"}, - {TOK_VERSION, "version"}, - {TOK_EOF, "??????"}, + {TOK_CONST, "const"}, + {TOK_UNION, "union"}, + {TOK_SWITCH, "switch"}, + {TOK_CASE, "case"}, + {TOK_DEFAULT, "default"}, + {TOK_STRUCT, "struct"}, + {TOK_TYPEDEF, "typedef"}, + {TOK_ENUM, "enum"}, + {TOK_OPAQUE, "opaque"}, + {TOK_BOOL, "bool"}, + {TOK_VOID, "void"}, + {TOK_ONEWAY, "oneway"}, + {TOK_CHAR, "char"}, + {TOK_INT, "int"}, + {TOK_UNSIGNED, "unsigned"}, + {TOK_SHORT, "short"}, + {TOK_LONG, "long"}, + {TOK_HYPER, "hyper"}, + {TOK_FLOAT, "float"}, + {TOK_DOUBLE, "double"}, + {TOK_QUAD, "quadruple"}, + {TOK_STRING, "string"}, + {TOK_PROGRAM, "program"}, + {TOK_VERSION, "version"}, + {TOK_EOF, "??????"}, }; -static -findkind(mark, tokp) - char **mark; - token *tokp; +static void +findkind(char **mark, token *tokp) { int len; token *s; @@ -441,70 +434,57 @@ findkind(mark, tokp) } tokp->kind = TOK_IDENT; for (len = 0; isalnum(str[len]) || str[len] == '_'; len++); - tokp->str = alloc(len + 1); + tokp->str = malloc(len + 1); (void) strncpy(tokp->str, str, len); tokp->str[len] = 0; *mark = str + len; } -static -cppline(line) - char *line; +static int +cppline(char *line) { return (line == curline && *line == '#'); } -static -directive(line) - char *line; +static int +directive(char *line) { return (line == curline && *line == '%'); } -static -printdirective(line) - char *line; +static void +printdirective(char *line) { f_print(fout, "%s", line + 1); } -static -docppline(line, lineno, fname) - char *line; - int *lineno; - char **fname; +static void +docppline(char *line, int *lineno, char **fname) { char *file; int num; char *p; line++; - while (isspace(*line)) { + while (isspace(*line)) line++; - } num = atoi(line); - while (isdigit(*line)) { + while (isdigit(*line)) line++; - } - while (isspace(*line)) { + while (isspace(*line)) line++; - } - if (*line != '"') { + if (*line != '"') error("preprocessor error"); - } line++; - p = file = alloc(strlen(line) + 1); - while (*line && *line != '"') { + p = file = malloc(strlen(line) + 1); + while (*line && *line != '"') *p++ = *line++; - } - if (*line == 0) { + if (*line == 0) error("preprocessor error"); - } *p = 0; - if (*file == 0) { + if (*file == 0) *fname = NULL; - } else { + else *fname = file; - } *lineno = num - 1; } diff --git a/usr/src/cmd/rpcgen/rpc_scan.h b/usr/src/cmd/rpcgen/rpc_scan.h index 2a712dd755..84630b2b26 100644 --- a/usr/src/cmd/rpcgen/rpc_scan.h +++ b/usr/src/cmd/rpcgen/rpc_scan.h @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -34,12 +36,19 @@ * contributors. */ +#ifndef _RPC_SCAN_H +#define _RPC_SCAN_H + #pragma ident "%Z%%M% %I% %E% SMI" /* * rpc_scan.h, Definitions for the RPCL scanner */ +#ifdef __cplusplus +extern "C" { +#endif + /* * kinds of tokens */ @@ -89,7 +98,7 @@ enum tok_kind { typedef enum tok_kind tok_kind; /* - * a token + * a token */ struct token { tok_kind kind; @@ -97,14 +106,19 @@ struct token { }; typedef struct token token; - /* - * routine interface + * routine interface */ -void scan(); -void scan2(); -void scan3(); -void scan_num(); -void peek(); -int peekscan(); -void get_token(); +extern void scan(tok_kind, token *); +extern void scan2(tok_kind, tok_kind, token *); +extern void scan3(tok_kind, tok_kind, tok_kind, token *); +extern void scan_num(token *); +extern void peek(token *); +extern int peekscan(tok_kind, token *); +extern void get_token(token *); + +#ifdef __cplusplus +} +#endif + +#endif /* _RPC_SCAN_H */ diff --git a/usr/src/cmd/rpcgen/rpc_svcout.c b/usr/src/cmd/rpcgen/rpc_svcout.c index 26dd9a6793..490a8f25c5 100644 --- a/usr/src/cmd/rpcgen/rpc_svcout.c +++ b/usr/src/cmd/rpcgen/rpc_svcout.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -44,34 +46,48 @@ #include "rpc_parse.h" #include "rpc_util.h" +extern int nullproc(proc_list *); + static char RQSTP[] = "rqstp"; static char TRANSP[] = "transp"; static char ARG[] = "argument"; static char RESULT[] = "result"; static char ROUTINE[] = "local"; -static char ONEWAY_ROUTINE[] = "oneway_local"; static char RETVAL[] = "retval"; -char _errbuf[256]; /* For all messages */ - -void internal_proctype(); +#define ERRBUFLEN 256 +char _errbuf[ERRBUFLEN]; /* For all messages */ + +static void internal_proctype(proc_list *); +static void write_real_program(definition *); +static void write_programs(char *); +static void write_program(definition *, char *); +static void printerr(char *, char *); +static void write_svc_aux(int); +static void printif(char *, char *, char *, char *); +static void write_inetmost(char *); +static void print_return(char *); +static void print_pmapunset(char *); +static void print_err_message(char *); +static void write_msg_out(void); +static void write_timeout_func(void); +static void write_pm_most(char *, int); +static void write_rpc_svc_fg(char *, char *); +static void open_log_file(char *, char *); -static -p_xdrfunc(rname, typename) -char *rname; -char *typename; +static void +p_xdrfunc(char *rname, char *typename) { if (Cflag) - f_print(fout, "\t\t_xdr_%s = (xdrproc_t) xdr_%s;\n", + f_print(fout, "\t\t_xdr_%s = (xdrproc_t)xdr_%s;\n", rname, stringfix(typename)); else f_print(fout, "\t\t_xdr_%s = xdr_%s;\n", rname, stringfix(typename)); } -void -internal_proctype(plist) - proc_list *plist; +static void +internal_proctype(proc_list *plist) { f_print(fout, "static "); ptype(plist->res_prefix, plist->res_type, 1); @@ -80,7 +96,7 @@ internal_proctype(plist) static void -write_mtauto() +write_mtauto(void) { f_print(fout, "\tif (!rpc_control(RPC_SVC_MTMODE_SET, &mode)) {\n"); f_print(fout, "\t\t_msgout(\"%s\");\n", @@ -92,10 +108,7 @@ write_mtauto() * write most of the service, that is, everything but the registrations. */ void -write_most(infile, netflag, nomain) - char *infile; /* our name */ - int netflag; - int nomain; +write_most(char *infile, int netflag, int nomain) { if (inetdflag || pmflag) { char *var_type; @@ -131,12 +144,12 @@ write_most(infile, netflag, nomain) write_svc_aux(nomain); } /* write out dispatcher and stubs */ - write_programs(nomain? (char *)NULL : "static"); + write_programs(nomain ? NULL : "static"); if (nomain) return; - f_print(fout, "\nmain()\n"); + f_print(fout, "\nint\nmain()\n"); f_print(fout, "{\n"); if (inetdflag) { write_inetmost(infile); @@ -182,8 +195,7 @@ write_most(infile, netflag, nomain) * write a registration for the given transport */ void -write_netid_register(transp) - char *transp; +write_netid_register(char *transp) { list *l; definition *def; @@ -195,15 +207,16 @@ write_netid_register(transp) f_print(fout, "\n"); f_print(fout, "%s\tnconf = getnetconfigent(\"%s\");\n", sp, transp); f_print(fout, "%s\tif (nconf == NULL) {\n", sp); - (void) sprintf(_errbuf, "cannot find %s netid.", transp); - sprintf(tmpbuf, "%s\t\t", sp); + (void) snprintf(_errbuf, ERRBUFLEN, "cannot find %s netid.", transp); + (void) snprintf(tmpbuf, sizeof (tmpbuf), "%s\t\t", sp); print_err_message(tmpbuf); f_print(fout, "%s\t\texit(1);\n", sp); f_print(fout, "%s\t}\n", sp); f_print(fout, "%s\t%s = svc_tli_create(RPC_ANYFD, nconf, 0, 0, 0);\n", - sp, TRANSP, transp); + sp, TRANSP); f_print(fout, "%s\tif (%s == NULL) {\n", sp, TRANSP); - (void) sprintf(_errbuf, "cannot create %s service.", transp); + (void) snprintf(_errbuf, ERRBUFLEN, "cannot create %s service.", + transp); print_err_message(tmpbuf); f_print(fout, "%s\t\texit(1);\n", sp); f_print(fout, "%s\t}\n", sp); @@ -222,7 +235,7 @@ write_netid_register(transp) sp, TRANSP, def->def_name, vp->vers_name); pvname(def->def_name, vp->vers_num); f_print(fout, ", nconf)) {\n"); - (void) sprintf(_errbuf, + (void) snprintf(_errbuf, ERRBUFLEN, "unable to register (%s, %s, %s).", def->def_name, vp->vers_name, transp); print_err_message(tmpbuf); @@ -237,8 +250,7 @@ write_netid_register(transp) * write a registration for the given transport for TLI */ void -write_nettype_register(transp) - char *transp; +write_nettype_register(char *transp) { list *l; definition *def; @@ -254,7 +266,7 @@ write_nettype_register(transp) pvname(def->def_name, vp->vers_num); f_print(fout, ", %s, %s, \"%s\")) {\n", def->def_name, vp->vers_name, transp); - (void) sprintf(_errbuf, + (void) snprintf(_errbuf, ERRBUFLEN, "unable to create (%s, %s) for %s.", def->def_name, vp->vers_name, transp); print_err_message("\t\t"); @@ -268,12 +280,13 @@ write_nettype_register(transp) * write the rest of the service */ void -write_rest() +write_rest(void) { f_print(fout, "\n"); if (inetdflag) { f_print(fout, "\tif (%s == (SVCXPRT *)NULL) {\n", TRANSP); - (void) sprintf(_errbuf, "could not create a handle"); + (void) snprintf(_errbuf, ERRBUFLEN, + "could not create a handle"); print_err_message("\t\t"); f_print(fout, "\t\texit(1);\n"); f_print(fout, "\t}\n"); @@ -298,16 +311,15 @@ write_rest() } } f_print(fout, "\tsvc_run();\n"); - (void) sprintf(_errbuf, "svc_run returned"); + (void) snprintf(_errbuf, ERRBUFLEN, "svc_run returned"); print_err_message("\t"); f_print(fout, "\texit(1);\n"); f_print(fout, "\t/* NOTREACHED */\n"); f_print(fout, "}\n"); } -void -write_programs(storage) - char *storage; +static void +write_programs(char *storage) { list *l; definition *def; @@ -315,17 +327,15 @@ write_programs(storage) /* write out stubs for procedure definitions */ for (l = defined; l != NULL; l = l->next) { def = (definition *) l->val; - if (def->def_kind == DEF_PROGRAM) { + if (def->def_kind == DEF_PROGRAM) write_real_program(def); - } } /* write out dispatcher for each program */ for (l = defined; l != NULL; l = l->next) { def = (definition *) l->val; - if (def->def_kind == DEF_PROGRAM) { + if (def->def_kind == DEF_PROGRAM) write_program(def, storage); - } } @@ -337,9 +347,8 @@ write_programs(storage) * Unpacks single user argument of printmsg_1 to call-by-value format * expected by printmsg_1. */ -static -write_real_program(def) - definition *def; +static void +write_real_program(definition *def) { version_list *vp; proc_list *proc; @@ -362,6 +371,7 @@ write_real_program(def) f_print(fout, "("); /* arg name */ if (proc->arg_num > 1) + /* LINTED variable format */ f_print(fout, proc->args.argname); else ptype(proc->args.decls->decl.prefix, @@ -424,10 +434,8 @@ write_real_program(def) } } -static -write_program(def, storage) - definition *def; - char *storage; +static void +write_program(definition *def, char *storage) { version_list *vp; proc_list *proc; @@ -540,8 +548,8 @@ write_program(def, storage) f_print(fout, "\tcase NULLPROC:\n"); f_print(fout, Cflag ? -"\t\t(void) svc_sendreply(%s,\n\t\t\t(xdrproc_t) xdr_void, (char *)NULL);\n" : -"\t\t(void) svc_sendreply(%s, xdr_void,\n\t\t\t(char *)NULL);\n", +"\t\t(void) svc_sendreply(%s,\n\t\t\t(xdrproc_t)xdr_void, NULL);\n" : +"\t\t(void) svc_sendreply(%s, xdr_void,\n\t\t\tNULL);\n", TRANSP); print_return("\t\t"); f_print(fout, "\n"); @@ -601,7 +609,7 @@ write_program(def, storage) f_print(fout, "\t(void) memset((char *)&%s, 0, sizeof (%s));\n", ARG, ARG); - printif("getargs", TRANSP, "(caddr_t) &", ARG); + printif("getargs", TRANSP, "(caddr_t)&", ARG); printerr("decode", TRANSP); print_return("\t\t"); f_print(fout, "\t}\n"); @@ -617,11 +625,11 @@ write_program(def, storage) else if (Cflag) f_print(fout, -"\t%s = (bool_t) (*%s)((char *)&%s, (void *)&%s, %s);\n", +"\t%s = (bool_t)(*%s)((char *)&%s, (void *)&%s, %s);\n", RETVAL, ROUTINE, ARG, RESULT, RQSTP); else f_print(fout, -"\t%s = (bool_t) (*%s)(&%s, &%s, %s);\n", +"\t%s = (bool_t)(*%s)(&%s, &%s, %s);\n", RETVAL, ROUTINE, ARG, RESULT, RQSTP); @@ -639,8 +647,8 @@ write_program(def, storage) printerr("systemerr", TRANSP); f_print(fout, "\t}\n"); - printif("freeargs", TRANSP, "(caddr_t) &", ARG); - (void) sprintf(_errbuf, "unable to free arguments"); + printif("freeargs", TRANSP, "(caddr_t)&", ARG); + (void) snprintf(_errbuf, ERRBUFLEN, "unable to free arguments"); print_err_message("\t\t"); f_print(fout, "\t\texit(1);\n"); f_print(fout, "\t}\n"); @@ -651,9 +659,10 @@ write_program(def, storage) pvname(def->def_name, vp->vers_num); f_print(fout, -"_freeresult(%s, _xdr_%s, (caddr_t) &%s))\n", +"_freeresult(%s, _xdr_%s, (caddr_t)&%s))\n", TRANSP, RESULT, RESULT); - (void) sprintf(_errbuf, "unable to free results"); + (void) snprintf(_errbuf, ERRBUFLEN, + "unable to free results"); print_err_message("\t\t\t"); f_print(fout, "\n"); f_print(fout, "\t}\n"); @@ -663,39 +672,31 @@ write_program(def, storage) } } -static -printerr(err, transp) - char *err; - char *transp; +static void +printerr(char *err, char *transp) { f_print(fout, "\t\tsvcerr_%s(%s);\n", err, transp); } -static -printif(proc, transp, prefix, arg) - char *proc; - char *transp; - char *prefix; - char *arg; +static void +printif(char *proc, char *transp, char *prefix, char *arg) { f_print(fout, "\tif (!svc_%s(%s, _xdr_%s, %s%s)) {\n", proc, transp, arg, prefix, arg); } -nullproc(proc) - proc_list *proc; +int +nullproc(proc_list *proc) { for (; proc != NULL; proc = proc->next) { - if (streq(proc->proc_num, "0")) { + if (streq(proc->proc_num, "0")) return (1); - } } return (0); } -static -write_inetmost(infile) - char *infile; +static void +write_inetmost(char *infile) { f_print(fout, "\tregister SVCXPRT *%s;\n", TRANSP); f_print(fout, "\tint sock;\n"); @@ -722,39 +723,35 @@ write_inetmost(infile) f_print(fout, "\t}\n"); } -static -print_return(space) - char *space; +static void +print_return(char *space) { - if (exitnow) + if (exitnow) { f_print(fout, "%sexit(0);\n", space); - else { - if (timerflag) { - if (mtflag) - f_print(fout, - "%smutex_lock(&_svcstate_lock);\n", + return; + } + if (timerflag) { + if (mtflag) + f_print(fout, "%smutex_lock(&_svcstate_lock);\n", space); - f_print(fout, "%s_rpcsvccount--;\n", space); - f_print(fout, "%s_rpcsvcstate = _SERVED;\n", space); - if (mtflag) - f_print(fout, - "%smutex_unlock(&_svcstate_lock);\n", + f_print(fout, "%s_rpcsvccount--;\n", space); + f_print(fout, "%s_rpcsvcstate = _SERVED;\n", space); + if (mtflag) + f_print(fout, "%smutex_unlock(&_svcstate_lock);\n", space); - } - f_print(fout, "%sreturn;\n", space); } + f_print(fout, "%sreturn;\n", space); } -static -print_pmapunset(space) - char *space; +static void +print_pmapunset(char *space) { list *l; definition *def; version_list *vp; for (l = defined; l != NULL; l = l->next) { - def = (definition *) l->val; + def = (definition *)l->val; if (def->def_kind == DEF_PROGRAM) { for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { @@ -765,9 +762,8 @@ print_pmapunset(space) } } -static -print_err_message(space) - char *space; +static void +print_err_message(char *space) { if (logflag) f_print(fout, "%ssyslog(LOG_ERR, \"%%s\", \"%s\");\n", space, @@ -782,9 +778,8 @@ print_err_message(space) /* * Write the server auxiliary function (_msgout, timeout) */ -void -write_svc_aux(nomain) - int nomain; +static void +write_svc_aux(int nomain) { if (!logflag) write_msg_out(); @@ -795,16 +790,16 @@ write_svc_aux(nomain) /* * Write the _msgout function */ - -write_msg_out() +static void +write_msg_out(void) { f_print(fout, "\n"); - f_print(fout, "static\n"); + f_print(fout, "static "); if (!Cflag) { - f_print(fout, "void _msgout(msg)\n"); + f_print(fout, "void\n_msgout(msg)\n"); f_print(fout, "\tchar *msg;\n"); } else { - f_print(fout, "void _msgout(char* msg)\n"); + f_print(fout, "void\n_msgout(char *msg)\n"); } f_print(fout, "{\n"); f_print(fout, "#ifdef RPC_SVC_FG\n"); @@ -823,8 +818,8 @@ write_msg_out() /* * Write the timeout function */ -static -write_timeout_func() +static void +write_timeout_func(void) { if (!timerflag) return; @@ -923,10 +918,8 @@ write_timeout_func() /* * Write the most of port monitor support */ -static -write_pm_most(infile, netflag) - char *infile; - int netflag; +static void +write_pm_most(char *infile, int netflag) { list *l; definition *def; @@ -961,10 +954,9 @@ write_pm_most(infile, netflag) f_print(fout, "\t\t/* started from inetd */\n"); f_print(fout, "\t\t\tpmclose = 1;\n"); } - f_print(fout, - "\t\t} else {\n"); + f_print(fout, "\t\t} else {\n"); f_print(fout, "\t\t\tif ((nconf = getnetconfigent(netid)) == NULL)\n"); - sprintf(_errbuf, "cannot get transport info"); + (void) snprintf(_errbuf, ERRBUFLEN, "cannot get transport info"); print_err_message("\t\t\t\t"); if (timerflag) f_print(fout, @@ -973,7 +965,7 @@ write_pm_most(infile, netflag) f_print(fout, "\t\tif ((%s = svc_tli_create(0, nconf, NULL, 0, 0)) == NULL) {\n", TRANSP); - sprintf(_errbuf, "cannot create server handle"); + (void) snprintf(_errbuf, ERRBUFLEN, "cannot create server handle"); print_err_message("\t\t\t"); f_print(fout, "\t\t\texit(1);\n"); f_print(fout, "\t\t}\n"); @@ -990,7 +982,8 @@ write_pm_most(infile, netflag) TRANSP, def->def_name, vp->vers_name); pvname(def->def_name, vp->vers_num); f_print(fout, ", 0)) {\n"); - (void) sprintf(_errbuf, "unable to register (%s, %s).", + (void) snprintf(_errbuf, ERRBUFLEN, + "unable to register (%s, %s).", def->def_name, vp->vers_name); print_err_message("\t\t\t"); f_print(fout, "\t\t\texit(1);\n"); @@ -1024,10 +1017,8 @@ write_pm_most(infile, netflag) /* * Support for backgrounding the server if self started. */ -static -write_rpc_svc_fg(infile, sp) - char *infile; - char *sp; +static void +write_rpc_svc_fg(char *infile, char *sp) { f_print(fout, "#ifndef RPC_SVC_FG\n"); f_print(fout, "#pragma weak closefrom\n"); @@ -1083,10 +1074,8 @@ write_rpc_svc_fg(infile, sp) open_log_file(infile, sp); } -static -open_log_file(infile, sp) - char *infile; - char *sp; +static void +open_log_file(char *infile, char *sp) { char *s; @@ -1098,15 +1087,11 @@ open_log_file(infile, sp) *s = '.'; } - - - /* * write a registration for the given transport for Inetd */ void -write_inetd_register(transp) - char *transp; +write_inetd_register(char *transp) { list *l; definition *def; @@ -1135,8 +1120,9 @@ write_inetd_register(transp) f_print(fout, ", 0, 0"); f_print(fout, ");\n"); f_print(fout, "%s\tif (%s == NULL) {\n", sp, TRANSP); - (void) sprintf(_errbuf, "cannot create %s service.", transp); - (void) sprintf(tmpbuf, "%s\t\t", sp); + (void) snprintf(_errbuf, ERRBUFLEN, "cannot create %s service.", + transp); + (void) snprintf(tmpbuf, sizeof (tmpbuf), "%s\t\t", sp); print_err_message(tmpbuf); f_print(fout, "%s\t\texit(1);\n", sp); f_print(fout, "%s\t}\n", sp); @@ -1148,9 +1134,8 @@ write_inetd_register(transp) } for (l = defined; l != NULL; l = l->next) { def = (definition *) l->val; - if (def->def_kind != DEF_PROGRAM) { + if (def->def_kind != DEF_PROGRAM) continue; - } for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { f_print(fout, "%s\tif (!svc_register(%s, %s, %s, ", sp, TRANSP, def->def_name, vp->vers_name); @@ -1160,7 +1145,7 @@ write_inetd_register(transp) else f_print(fout, ", IPPROTO_%s)) {\n", isudp ? "UDP": "TCP"); - (void) sprintf(_errbuf, + (void) snprintf(_errbuf, ERRBUFLEN, "unable to register (%s, %s, %s).", def->def_name, vp->vers_name, transp); print_err_message(tmpbuf); diff --git a/usr/src/cmd/rpcgen/rpc_tblout.c b/usr/src/cmd/rpcgen/rpc_tblout.c index b9ab843722..66c7ce8840 100644 --- a/usr/src/cmd/rpcgen/rpc_tblout.c +++ b/usr/src/cmd/rpcgen/rpc_tblout.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -44,6 +46,11 @@ #include "rpc_parse.h" #include "rpc_util.h" +extern int nullproc(proc_list *); + +static void write_table(definition *); +static void printit(char *, char *); + #define TABSIZE 8 #define TABCOUNT 5 #define TABSTOP (TABSIZE*TABCOUNT) @@ -54,35 +61,34 @@ static char tbl_hdr[] = "struct rpcgen_table %s_table[] = {\n"; static char tbl_end[] = "};\n"; static char null_entry_b[] = "\n\t(char *(*)())0,\n" - " \t(xdrproc_t) xdr_void,\t\t\t0,\n" - " \t(xdrproc_t) xdr_void,\t\t\t0,\n"; + " \t(xdrproc_t)xdr_void,\t\t\t0,\n" + " \t(xdrproc_t)xdr_void,\t\t\t0,\n"; static char null_entry[] = "\n\t(void *(*)())0,\n" - " \t(xdrproc_t) xdr_void,\t\t\t0,\n" - " \t(xdrproc_t) xdr_void,\t\t\t0,\n"; + " \t(xdrproc_t)xdr_void,\t\t\t0,\n" + " \t(xdrproc_t)xdr_void,\t\t\t0,\n"; static char tbl_nproc[] = "int %s_nproc =\n\tsizeof(%s_table)" "/sizeof(%s_table[0]);\n\n"; void -write_tables() +write_tables(void) { list *l; definition *def; f_print(fout, "\n"); for (l = defined; l != NULL; l = l->next) { - def = (definition *) l->val; + def = (definition *)l->val; if (def->def_kind == DEF_PROGRAM) { write_table(def); } } } -static -write_table(def) - definition *def; +static void +write_table(definition *def) { version_list *vp; proc_list *proc; @@ -93,7 +99,7 @@ write_table(def) for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { warning = 0; - s_print(progvers, "%s_%s", + (void) snprintf(progvers, sizeof (progvers), "%s_%s", locase(def->def_name), vp->vers_num); /* print the table header */ f_print(fout, tbl_hdr, progvers); @@ -140,7 +146,7 @@ write_table(def) /* argument info */ if (proc->arg_num > 1) - printit((char *) NULL, proc->args.argname); + printit(NULL, proc->args.argname); else /* do we have to do something special for newstyle */ printit(proc->args.decls->decl.prefix, @@ -155,20 +161,17 @@ write_table(def) } } -static -printit(prefix, type) - char *prefix; - char *type; +static void +printit(char *prefix, char *type) { int len; int tabs; - if (streq(type, "oneway")) { - len = fprintf(fout, "\t(xdrproc_t) xdr_void,"); - } else { - len = fprintf(fout, "\t(xdrproc_t) xdr_%s,", stringfix(type)); - } + if (streq(type, "oneway")) + len = fprintf(fout, "\t(xdrproc_t)xdr_void,"); + else + len = fprintf(fout, "\t(xdrproc_t)xdr_%s,", stringfix(type)); /* account for leading tab expansion */ len += TABSIZE - 1; if (len >= TABSTOP) { diff --git a/usr/src/cmd/rpcgen/rpc_util.c b/usr/src/cmd/rpcgen/rpc_util.c index 8e37e89dc0..0b4f368909 100644 --- a/usr/src/cmd/rpcgen/rpc_util.c +++ b/usr/src/cmd/rpcgen/rpc_util.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,11 +42,18 @@ * rpc_util.c, Utility routines for the RPC protocol compiler */ #include <stdio.h> +#include <stdlib.h> +#include <unistd.h> #include <ctype.h> +#include <string.h> #include "rpc_scan.h" #include "rpc_parse.h" #include "rpc_util.h" +extern void crash(void); + +static void printwhere(void); + #define ARGEXT "argument" char curline[MAXLINESIZE]; /* current read line */ @@ -65,9 +74,10 @@ list *defined; /* list of defined things */ /* * Reinitialize the world */ -reinitialize() +void +reinitialize(void) { - memset(curline, 0, MAXLINESIZE); + (void) memset(curline, 0, MAXLINESIZE); where = curline; linenum = 0; defined = NULL; @@ -76,9 +86,8 @@ reinitialize() /* * string equality */ -streq(a, b) - char *a; - char *b; +int +streq(char *a, char *b) { return (strcmp(a, b) == 0); } @@ -87,16 +96,11 @@ streq(a, b) * find a value in a list */ definition * -findval(lst, val, cmp) - list *lst; - char *val; - int (*cmp) (); - +findval(list *lst, char *val, int (*cmp)()) { for (; lst != NULL; lst = lst->next) { - if ((*cmp) (lst->val, val)) { + if ((*cmp) (lst->val, val)) return (lst->val); - } } return (NULL); } @@ -105,45 +109,37 @@ findval(lst, val, cmp) * store a value in a list */ void -storeval(lstp, val) - list **lstp; - definition *val; +storeval(list **lstp, definition *val) { list **l; list *lst; - for (l = lstp; *l != NULL; l = (list **) & (*l)->next); - lst = ALLOC(list); + for (l = lstp; *l != NULL; l = (list **)&(*l)->next); + lst = calloc(1, sizeof (list)); lst->val = val; lst->next = NULL; *l = lst; } -static -findit(def, type) - definition *def; - char *type; +static int +findit(definition *def, char *type) { return (streq(def->def_name, type)); } static char * -fixit(type, orig) - char *type; - char *orig; +fixit(char *type, char *orig) { definition *def; - def = (definition *) FINDVAL(defined, type, findit); - if (def == NULL || def->def_kind != DEF_TYPEDEF) { + def = (definition *)FINDVAL(defined, type, findit); + if (def == NULL || def->def_kind != DEF_TYPEDEF) return (orig); - } switch (def->def.ty.rel) { case REL_VECTOR: if (streq(def->def.ty.old_type, "opaque")) return ("char"); - else - return (def->def.ty.old_type); + return (def->def.ty.old_type); case REL_ALIAS: return (fixit(def->def.ty.old_type, orig)); @@ -153,28 +149,21 @@ fixit(type, orig) } char * -fixtype(type) - char *type; +fixtype(char *type) { return (fixit(type, type)); } char * -stringfix(type) - char *type; +stringfix(char *type) { - if (streq(type, "string")) { + if (streq(type, "string")) return ("wrapstring"); - } else { - return (type); - } + return (type); } void -ptype(prefix, type, follow) - char *prefix; - char *type; - int follow; +ptype(char *prefix, char *type, int follow) { if (prefix != NULL) { if (streq(prefix, "enum")) { @@ -194,21 +183,16 @@ ptype(prefix, type, follow) } } -static -typedefed(def, type) - definition *def; - char *type; +static int +typedefed(definition *def, char *type) { - if (def->def_kind != DEF_TYPEDEF || def->def.ty.old_prefix != NULL) { + if (def->def_kind != DEF_TYPEDEF || def->def.ty.old_prefix != NULL) return (0); - } else { - return (streq(def->def_name, type)); - } + return (streq(def->def_name, type)); } -isvectordef(type, rel) - char *type; - relation rel; +int +isvectordef(char *type, relation rel) { definition *def; @@ -221,7 +205,7 @@ isvectordef(type, rel) case REL_POINTER: return (0); case REL_ALIAS: - def = (definition *) FINDVAL(defined, type, typedefed); + def = (definition *)FINDVAL(defined, type, typedefed); if (def == NULL) return (0); type = def->def.ty.old_type; @@ -231,32 +215,26 @@ isvectordef(type, rel) } char * -locase(str) - char *str; +locase(char *str) { char c; static char buf[100]; char *p = buf; - while (c = *str++) { + while (c = *str++) *p++ = (c >= 'A' && c <= 'Z') ? (c - 'A' + 'a') : c; - } *p = 0; return (buf); } void -pvname_svc(pname, vnum) - char *pname; - char *vnum; +pvname_svc(char *pname, char *vnum) { f_print(fout, "%s_%s_svc", locase(pname), vnum); } void -pvname(pname, vnum) - char *pname; - char *vnum; +pvname(char *pname, char *vnum) { f_print(fout, "%s_%s", locase(pname), vnum); } @@ -265,8 +243,7 @@ pvname(pname, vnum) * print a useful (?) error message, and then die */ void -error(msg) - char *msg; +error(char *msg) { printwhere(); f_print(stderr, "%s, line %d: ", infilename, linenum); @@ -278,26 +255,25 @@ error(msg) * Something went wrong, unlink any files that we may have created and then * die. */ -crash() +void +crash(void) { int i; - for (i = 0; i < nfiles; i++) { + for (i = 0; i < nfiles; i++) (void) unlink(outfiles[i]); - } exit(1); } void -record_open(file) - char *file; +record_open(char *file) { if (nfiles < NFILES) { outfiles[nfiles++] = file; - } else { - f_print(stderr, "too many files!\n"); - crash(); + return; } + f_print(stderr, "too many files!\n"); + crash(); } static char expectbuf[100]; @@ -307,11 +283,10 @@ static char *toktostr(); * error, token encountered was not the expected one */ void -expected1(exp1) - tok_kind exp1; +expected1(tok_kind exp1) { - s_print(expectbuf, "expected '%s'", - toktostr(exp1)); + (void) snprintf(expectbuf, + sizeof (expectbuf), "expected '%s'", toktostr(exp1)); error(expectbuf); } @@ -319,11 +294,10 @@ expected1(exp1) * error, token encountered was not one of two expected ones */ void -expected2(exp1, exp2) - tok_kind exp1, exp2; +expected2(tok_kind exp1, tok_kind exp2) { - s_print(expectbuf, "expected '%s' or '%s'", - toktostr(exp1), + (void) snprintf(expectbuf, + sizeof (expectbuf), "expected '%s' or '%s'", toktostr(exp1), toktostr(exp2)); error(expectbuf); } @@ -332,27 +306,21 @@ expected2(exp1, exp2) * error, token encountered was not one of 3 expected ones */ void -expected3(exp1, exp2, exp3) - tok_kind exp1, exp2, exp3; +expected3(tok_kind exp1, tok_kind exp2, tok_kind exp3) { - s_print(expectbuf, "expected '%s', '%s' or '%s'", - toktostr(exp1), - toktostr(exp2), - toktostr(exp3)); + (void) snprintf(expectbuf, + sizeof (expectbuf), "expected '%s', '%s' or '%s'", + toktostr(exp1), toktostr(exp2), toktostr(exp3)); error(expectbuf); } void -tabify(f, tab) - FILE *f; - int tab; +tabify(FILE *f, int tab) { - while (tab--) { + while (tab--) (void) fputc('\t', f); - } } - static token tokstrings[] = { {TOK_IDENT, "identifier"}, {TOK_CONST, "const"}, @@ -391,8 +359,7 @@ static token tokstrings[] = { }; static char * -toktostr(kind) - tok_kind kind; +toktostr(tok_kind kind) { token *sp; @@ -400,30 +367,29 @@ toktostr(kind) return (sp->str); } -static -printbuf() +static void +printbuf(void) { char c; int i; int cnt; -# define TABSIZE 4 +#define TABSIZE 4 - for (i = 0; c = curline[i]; i++) { + for (i = 0; (c = curline[i]) != '\0'; i++) { if (c == '\t') { cnt = 8 - (i % TABSIZE); c = ' '; } else { cnt = 1; } - while (cnt--) { + while (cnt--) (void) fputc(c, stderr); - } } } -static -printwhere() +static void +printwhere(void) { int i; char c; @@ -437,73 +403,64 @@ printwhere() } else { cnt = 1; } - while (cnt--) { + while (cnt--) (void) fputc('^', stderr); - } } (void) fputc('\n', stderr); } char * -make_argname(pname, vname) - char *pname; - char *vname; +make_argname(char *pname, char *vname) { char *name; + size_t nlen; - name = malloc(strlen(pname) + strlen(vname) + strlen(ARGEXT) + 3); - if (!name) { - fprintf(stderr, "failed in malloc"); + nlen = strlen(pname) + strlen(vname) + strlen(ARGEXT) + 3; + name = malloc(nlen); + if (name == NULL) { + (void) fprintf(stderr, "failed in malloc"); exit(1); } - sprintf(name, "%s_%s_%s", locase(pname), vname, ARGEXT); + (void) snprintf(name, nlen, "%s_%s_%s", locase(pname), vname, ARGEXT); return (name); } bas_type *typ_list_h; bas_type *typ_list_t; -add_type(len, type) -int len; -char *type; +void +add_type(int len, char *type) { bas_type *ptr; - if ((ptr = (bas_type *) malloc(sizeof (bas_type))) == - (bas_type *)NULL) { - fprintf(stderr, "failed in malloc"); + if ((ptr = malloc(sizeof (bas_type))) == NULL) { + (void) fprintf(stderr, "failed in malloc"); exit(1); } ptr->name = type; ptr->length = len; ptr->next = NULL; - if (typ_list_t == NULL) - { - + if (typ_list_t == NULL) { typ_list_t = ptr; typ_list_h = ptr; - } - else - { + } else { typ_list_t->next = ptr; typ_list_t = ptr; - }; + } } -bas_type *find_type(type) -char *type; +bas_type * +find_type(char *type) { - bas_type * ptr; + bas_type *ptr; ptr = typ_list_h; - while (ptr != NULL) - { + while (ptr != NULL) { if (strcmp(ptr->name, type) == 0) return (ptr); - else - ptr = ptr->next; - }; + ptr = ptr->next; + } return (NULL); } diff --git a/usr/src/cmd/rpcgen/rpc_util.h b/usr/src/cmd/rpcgen/rpc_util.h index 499701af84..b58e6ccf71 100644 --- a/usr/src/cmd/rpcgen/rpc_util.h +++ b/usr/src/cmd/rpcgen/rpc_util.h @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -42,6 +43,7 @@ #include <sys/types.h> #include <stdlib.h> +#include "rpc_scan.h" #ifdef __cplusplus extern "C" { @@ -56,10 +58,6 @@ extern "C" { #define RPCGEN_MAJOR 1 #define RPCGEN_MINOR 1 -#define alloc(size) malloc((unsigned)(size)) -#define ALLOC(object) (object *) calloc(1, sizeof (object)) - -#define s_print (void) sprintf #define f_print (void) fprintf struct list { @@ -107,7 +105,6 @@ extern FILE *fin; extern list *defined; - extern bas_type *typ_list_h; extern bas_type *typ_list_t; extern xdrfunc *xdrfunc_head, *xdrfunc_tail; @@ -142,64 +139,62 @@ extern pid_t childpid; /* * rpc_util routines */ -void storeval(); +extern void storeval(list **, definition *); #define STOREVAL(list, item) \ storeval(list, item) -definition *findval(); +extern definition *findval(list *, char *, int (*)()); #define FINDVAL(list, item, finder) \ findval(list, item, finder) -char *fixtype(); -char *stringfix(); -char *locase(); -void pvname_svc(); -void pvname(); -void ptype(); -int isvectordef(); -int streq(); -void error(); -void expected1(); -void expected2(); -void expected3(); -void tabify(); -void record_open(); -bas_type *find_type(); +extern char *fixtype(char *); +extern char *stringfix(char *); +extern char *locase(char *); +extern void pvname_svc(char *, char *); +extern void pvname(char *, char *); +extern void ptype(char *, char *, int); +extern int isvectordef(char *, relation); +extern int streq(char *, char *); +extern void error(char *); +extern void expected1(tok_kind); +extern void expected2(tok_kind, tok_kind); +extern void expected3(tok_kind, tok_kind, tok_kind); +extern void tabify(FILE *, int); +extern void record_open(char *); +extern bas_type *find_type(char *); + /* * rpc_cout routines */ -void cprint(); -void emit(); +extern void emit(definition *); /* * rpc_hout routines */ -void print_datadef(); -void print_funcdef(); -void print_xdr_func_def(); +extern void print_datadef(definition *); +extern void print_funcdef(definition *); +extern void print_xdr_func_def(char *, int, int); /* * rpc_svcout routines */ -void write_most(); -void write_register(); -void write_rest(); -void write_programs(); -void write_svc_aux(); -void write_inetd_register(); -void write_netid_register(); -void write_nettype_register(); +extern void write_most(char *, int, int); +extern void write_rest(void); +extern void write_inetd_register(char *); +extern void write_netid_register(char *); +extern void write_nettype_register(char *); + /* * rpc_clntout routines */ -void write_stubs(); +extern void write_stubs(void); /* * rpc_tblout routines */ -void write_tables(); +extern void write_tables(void); #ifdef __cplusplus } diff --git a/usr/src/cmd/volmgt/vold/hsfs_partition.c b/usr/src/cmd/volmgt/vold/hsfs_partition.c index 19e6840fd1..03dbf37c32 100644 --- a/usr/src/cmd/volmgt/vold/hsfs_partition.c +++ b/usr/src/cmd/volmgt/vold/hsfs_partition.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -89,7 +90,7 @@ static partition_result_t create_hsfs_vnodes(partition_private_t *); static partition_result_t find_cdi_volume(partition_private_t *); static partition_result_t find_hsfs_volume(partition_private_t *); static partition_result_t find_iso9660_volume(partition_private_t *); -static partition_result_t get_sector(int, int, uchar_t *, ulonglong_t); +static partition_result_t get_sector(int, int, uchar_t *, u_longlong_t); static boolean_t has_audio(partition_private_t *); static boolean_t has_data(partition_private_t *); static partition_result_t read_label(partition_private_t *); @@ -520,7 +521,7 @@ static partition_result_t get_sector(int file_descriptor, int sector_number, uchar_t *sector_bufferp, - ulonglong_t medium_capacity) + u_longlong_t medium_capacity) { off_t offset; partition_result_t partition_result; diff --git a/usr/src/cmd/volmgt/vold/medium_private.h b/usr/src/cmd/volmgt/vold/medium_private.h index c94bd6057e..be7da1ae01 100644 --- a/usr/src/cmd/volmgt/vold/medium_private.h +++ b/usr/src/cmd/volmgt/vold/medium_private.h @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -116,7 +117,7 @@ typedef struct medium_private { partition_handle_t top_partitionp; uid_t uid; vol_t *volumep; - ulonglong_t medium_capacity; + u_longlong_t medium_capacity; } medium_private_t; #define ALIAS_DIRECTORY_NAME "/dev/aliases" diff --git a/usr/src/lib/libnsl/Makefile b/usr/src/lib/libnsl/Makefile index 86c8be8657..7701ff15bf 100644 --- a/usr/src/lib/libnsl/Makefile +++ b/usr/src/lib/libnsl/Makefile @@ -19,6 +19,7 @@ # # CDDL HEADER END # + # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. @@ -36,14 +37,11 @@ SUBDIRS = spec .WAIT $(MACH) $(BUILD64) .WAIT $(MACH64) # objects are listed by source directory # common utility code used in more than one directory -RPC_DERIVED_FILES= \ - rpc/key_prot.c +RPC_DERIVED_FILES= GEN_DERIVED_FILES= \ nis/gen/nis_clnt.h \ - nis/gen/nis_clnt.c \ - nis/gen/nis_xdr.c \ - nis/gen/nis_cback_xdr.c + nis/gen/nis_clnt.c CACHE_DERIVED_FILES= \ nis/cache/nis_clnt.h \ @@ -74,7 +72,7 @@ CLEANFILES += $(DERIVED_FILES) # include library definitions include ../Makefile.lib -TXTS += dial/dk.h dial/uucp.h dial/parms.h dial/sysfiles.h +TXTS += dial/uucp.h dial/parms.h dial/sysfiles.h SED= sed CP= cp @@ -168,16 +166,6 @@ nis/gen/nis_clnt.c: $(PROTOCOL_DIR)/nis.x $(PROTOCOL_DIR)/nis_object.x $(SED) -e 's/_3/_clnt/' > $@ $(RM) nis_clnt-tmp.c -nis/gen/nis_xdr.c: $(PROTOCOL_DIR)/nis.x $(PROTOCOL_DIR)/nis_object.x - $(RPCGEN) -C -c $(PROTOCOL_DIR)/nis.x > nis_xdr-tmp.c - $(SED) -e 's!\"$(PROTOCOL_DIR)/nis.h\"!\<rpcsvc/nis.h\>!' \ - < nis_xdr-tmp.c > $@ - $(RM) nis_xdr-tmp.c - -nis/gen/nis_cback_xdr.c: $(PROTOCOL_DIR)/nis_callback.x - $(RPCGEN) -C -c $(PROTOCOL_DIR)/nis_callback.x |\ - $(SED) -e 's!\"$(PROTOCOL_DIR)/nis_callback.h\"!\<rpcsvc/nis_callback.h\>!' > $@ - nis/cache/nis_cache_xdr.cc: $(PROTOCOL_DIR)/nis_cache.x $(RPCGEN) -C -c $(PROTOCOL_DIR)/nis_cache.x |\ $(SED) -e 's!\"$(PROTOCOL_DIR)/nis_cache.h\"!"nis_cache.h"!' > $@ @@ -190,10 +178,6 @@ nis/cache/nis_cache.h: $(PROTOCOL_DIR)/nis_cache.x $(RPCGEN) -C -h $(PROTOCOL_DIR)/nis_cache.x |\ $(SED) -e 's!\"$(PROTOCOL_DIR)/nis_cache.h\"!"nis_cache.h"!' > $@ -rpc/key_prot.c: $(PROTOCOL_DIR)/key_prot.x - $(RPCGEN) -C -c $(PROTOCOL_DIR)/key_prot.x |\ - $(SED) -e 's!"$(PROTOCOL_DIR)/key_prot.h"!<rpc/key_prot.h>!' > $@ - # include library targets include ../Makefile.targ diff --git a/usr/src/lib/libnsl/Makefile.com b/usr/src/lib/libnsl/Makefile.com index 89e029b246..053ccada40 100644 --- a/usr/src/lib/libnsl/Makefile.com +++ b/usr/src/lib/libnsl/Makefile.com @@ -19,6 +19,7 @@ # # CDDL HEADER END # + # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. @@ -58,7 +59,10 @@ t_rcv.o t_rcvconnect.o t_rcvdis.o t_rcvrel.o t_rcvudata.o \ t_rcvuderr.o t_snd.o t_snddis.o t_sndrel.o t_sndudata.o \ t_sndv.o t_sndreldata.o t_rcvv.o t_rcvreldata.o t_sysconf.o \ t_sndvudata.o t_rcvvudata.o t_sync.o t_unbind.o t_strerror.o \ -tli_wrappers.o xti_wrappers.o +xti_wrappers.o + +WRAPPERS= \ +tli_wrappers.o RPC= \ auth_des.o auth_none.o auth_sys.o auth_time.o authdes_prot.o \ @@ -69,7 +73,7 @@ inet_ntoa.o key_call.o key_prot.o mt_misc.o \ netname.o netnamer.o openchild.o pmap_clnt.o pmap_prot.o \ rpc_callmsg.o rpc_comdata.o rpc_comdata1.o rpc_generic.o rpc_prot.o \ rpc_sel2poll.o \ -rpc_soc.o rpc_td.o rpc_trace.o rpcb_clnt.o rpcb_prot.o \ +rpc_soc.o rpc_td.o rpcb_clnt.o rpcb_prot.o \ rpcb_st_xdr.o rpcdname.o rpcsec_gss_if.o rtime_tli.o svc.o \ svc_auth.o svc_auth_loopb.o svc_auth_sys.o svc_dg.o \ svc_door.o svc_generic.o svc_raw.o svc_run.o svc_simple.o \ @@ -101,7 +105,7 @@ NIS= $(NIS_GEN) $(NIS_CACHE) KEY= publickey.o xcrypt.o gen_dhkeys.o OBJECTS= $(COMMON) $(DES) $(DIAL) $(IPSEC) $(NETDIR) $(NSS) $(NETSELECT) \ - $(NSL) $(RPC) $(SAF) $(YP) $(NIS) $(KEY) + $(NSL) $(WRAPPERS) $(RPC) $(SAF) $(YP) $(NIS) $(KEY) # libnsl build rules pics/%.o: ../common/%.c @@ -198,9 +202,12 @@ CCFLAGS += $(NOEXCEPTIONS) CCFLAGS64 += $(NOEXCEPTIONS) CPPFLAGS += -I$(SRC)/lib/common/inc -I$(SRC)/lib/libnsl/include -D_REENTRANT +CPPFLAGS += -I$(SRC)/lib/libnsl/dial + +CFLAGS += -v LAZYLIBS = $(ZLAZYLOAD) -lmp -lmd5 -lscf $(ZNOLAZYLOAD) -lint := LAZYLIBS = -lmp -lmd5 +lint := LAZYLIBS = -lmd5 LDLIBS += $(LAZYLIBS) -lc DYNFLAGS += $(MAPOPTS) @@ -213,6 +220,7 @@ LINTFLAGS64 += -m -DPORTMAP $(DYNLIB): $(MAPFILES) +# Don't lint WRAPPERS as they are explicitly unclean SRCS= $(DES:%.o=../des/%.c) \ $(DIAL:%.o=../dial/%.c) \ $(IPSEC:%.o=../ipsec/%.c) \ diff --git a/usr/src/lib/libnsl/common/common.c b/usr/src/lib/libnsl/common/common.c index 220b440f00..5442fe1ad9 100644 --- a/usr/src/lib/libnsl/common/common.c +++ b/usr/src/lib/libnsl/common/common.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -37,15 +38,15 @@ thr_get_storage(pthread_key_t *keyp, size_t size, void (*destructor)(void *)) void *addr; if ((key = *keyp) == 0) { - mutex_lock(&tsd_lock); + (void) mutex_lock(&tsd_lock); if ((key = *keyp) == 0) { if (pthread_key_create(keyp, destructor) != 0) { - mutex_unlock(&tsd_lock); + (void) mutex_unlock(&tsd_lock); return (NULL); } key = *keyp; } - mutex_unlock(&tsd_lock); + (void) mutex_unlock(&tsd_lock); } addr = pthread_getspecific(key); diff --git a/usr/src/lib/libnsl/common/daemon_utils.c b/usr/src/lib/libnsl/common/daemon_utils.c index 7e13db531e..a36305c549 100644 --- a/usr/src/lib/libnsl/common/daemon_utils.c +++ b/usr/src/lib/libnsl/common/daemon_utils.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -26,7 +27,6 @@ #pragma ident "%Z%%M% %I% %E% SMI" - #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -124,7 +124,7 @@ open_daemon_lock(const char *name, int mode) * /etc/svc/volatile/nfs-status.lock * i.e., we want the last two path components in the name. */ - strncpy(buf, name, MAXPATHLEN); + (void) strncpy(buf, name, MAXPATHLEN); /* First, strip off ":<instance>", if present. */ p = strrchr(buf, ':'); @@ -167,9 +167,7 @@ _enter_daemon_lock(const char *name) int fd; pid_t pid; char line[BUFSIZ]; - time_t cur_time; struct flock lock; - struct stat f_stat; pid = getpid(); (void) snprintf(line, sizeof (line), "%ld\n", pid); diff --git a/usr/src/lib/libnsl/common/llib-lnsl b/usr/src/lib/libnsl/common/llib-lnsl index 3cc0069a27..87f0091ba8 100644 --- a/usr/src/lib/libnsl/common/llib-lnsl +++ b/usr/src/lib/libnsl/common/llib-lnsl @@ -19,11 +19,12 @@ * * CDDL HEADER END */ + /* LINTLIBRARY */ /* PROTOLIB1 */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -39,7 +40,6 @@ #include <rpc/rpc.h> #include <rpc/key_prot.h> #include <rpc/des_crypt.h> -#include <rpc/trace.h> #include <rpc/pmap_prot.h> #include <sys/ioctl.h> #include <netdir.h> @@ -107,16 +107,6 @@ int _des_crypt(char *buf, unsigned len, struct desparams *desp); /* dial.c */ void undial(int fd); -/* dkbreak.c */ - -/* dkdial.c */ - -/* dkerr.c */ - -/* dkminor.c */ - -/* dtnamer.c */ - /* getargs.c */ /* interface.c */ @@ -822,9 +812,9 @@ in_addr_t inet_netof(struct in_addr in); /* key_call.c */ int key_setsecret(const char *secretkey); int key_secretkey_is_set(void); -int key_encryptsession_pk(char *remotename, netobj *remotekey, +int key_encryptsession_pk(const char *remotename, netobj *remotekey, des_block *deskey); -int key_decryptsession_pk(char *remotename, netobj *remotekey, +int key_decryptsession_pk(const char *remotename, netobj *remotekey, des_block *deskey); int key_encryptsession(const char *remotename, des_block *deskey); @@ -836,16 +826,16 @@ int key_call(ulong_t proc, xdrproc_t xdr_arg, char *arg, xdrproc_t xdr_rslt, char *rslt); /* key_prot.c */ -bool_t xdr_keystatus(register XDR *xdrs, keystatus *objp); -bool_t xdr_keybuf(register XDR *xdrs, keybuf objp); -bool_t xdr_netnamestr(register XDR *xdrs, netnamestr *objp); -bool_t xdr_cryptkeyarg(register XDR *xdrs, cryptkeyarg *objp); -bool_t xdr_cryptkeyarg2(register XDR *xdrs, cryptkeyarg2 *objp); -bool_t xdr_cryptkeyres(register XDR *xdrs, cryptkeyres *objp); -bool_t xdr_unixcred(register XDR *xdrs, unixcred *objp); -bool_t xdr_getcredres(register XDR *xdrs, getcredres *objp); -bool_t xdr_key_netstarg(register XDR *xdrs, key_netstarg *objp); -bool_t xdr_key_netstres(register XDR *xdrs, key_netstres *objp); +bool_t xdr_keystatus(XDR *xdrs, keystatus *objp); +bool_t xdr_keybuf(XDR *xdrs, keybuf objp); +bool_t xdr_netnamestr(XDR *xdrs, netnamestr *objp); +bool_t xdr_cryptkeyarg(XDR *xdrs, cryptkeyarg *objp); +bool_t xdr_cryptkeyarg2(XDR *xdrs, cryptkeyarg2 *objp); +bool_t xdr_cryptkeyres(XDR *xdrs, cryptkeyres *objp); +bool_t xdr_unixcred(XDR *xdrs, unixcred *objp); +bool_t xdr_getcredres(XDR *xdrs, getcredres *objp); +bool_t xdr_key_netstarg(XDR *xdrs, key_netstarg *objp); +bool_t xdr_key_netstres(XDR *xdrs, key_netstres *objp); /* mt_misc.c */ #ifdef rpc_createerr @@ -943,8 +933,6 @@ AUTH *authdes_create(char *servername, uint_t window, /* rpc_td.c */ -/* rpc_trace.c */ - /* rpcb_clnt.c */ bool_t __rpc_control(int request, void *info); bool_t rpcb_set(rpcprog_t program, rpcvers_t version, diff --git a/usr/src/lib/libnsl/des/des_crypt.c b/usr/src/lib/libnsl/des/des_crypt.c index f7e8c24aba..c3ada74226 100644 --- a/usr/src/lib/libnsl/des/des_crypt.c +++ b/usr/src/lib/libnsl/des/des_crypt.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -41,22 +42,12 @@ #include <unistd.h> #include <fcntl.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/des_crypt.h> /* EXPORT DELETE START */ #ifdef sun #include <sys/ioctl.h> #include <sys/des.h> -#ifdef _KERNEL -#include <sys/conf.h> -#define getdesfd() (cdevsw[11].d_open(0, 0) ? -1 : 0) -#define ioctl(a, b, c) (cdevsw[11].d_ioctl(0, b, c, 0) ? -1 : 0) -#ifndef CRYPT -#define _des_crypt(a, b, c) 0 -#endif -#else #define getdesfd() (open("/dev/des", 0, 0)) -#endif #else #include <des/des.h> #endif @@ -64,9 +55,9 @@ #include <rpc/rpc.h> /* EXPORT DELETE START */ -extern int __des_crypt(); +extern int __des_crypt(char *, unsigned, struct desparams *); -static int common_crypt(); +static int common_crypt(char *, char *, unsigned, unsigned, struct desparams *); /* * To see if chip is installed @@ -79,8 +70,8 @@ static int g_desfd = UNOPENED; * Copy 8 bytes */ #define COPY8(src, dst) { \ - register char *a = (char *) dst; \ - register char *b = (char *) src; \ + char *a = (char *)dst; \ + char *b = (char *)src; \ *a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \ *a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \ } @@ -89,10 +80,10 @@ static int g_desfd = UNOPENED; * Copy multiple of 8 bytes */ #define DESCOPY(src, dst, len) { \ - register char *a = (char *) dst; \ - register char *b = (char *) src; \ - register int i; \ - for (i = (int) len; i > 0; i -= 8) { \ + char *a = (char *)dst; \ + char *b = (char *)src; \ + int i; \ + for (i = (int)len; i > 0; i -= 8) { \ *a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \ *a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \ } \ @@ -109,12 +100,10 @@ cbc_crypt(char *key, char *buf, size_t len, unsigned int mode, char *ivec) int err; struct desparams dp; - trace3(TR_cbc_crypt, 0, len, mode); dp.des_mode = CBC; COPY8(ivec, dp.des_ivec); err = common_crypt(key, buf, len, mode, &dp); COPY8(dp.des_ivec, ivec); - trace3(TR_cbc_crypt, 1, len, mode); return (err); #if 0 /* EXPORT DELETE END */ @@ -133,13 +122,9 @@ ecb_crypt(char *key, char *buf, size_t len, unsigned int mode) { /* EXPORT DELETE START */ struct desparams dp; - int dummy; - trace3(TR_ecb_crypt, 0, len, mode); dp.des_mode = ECB; - dummy = common_crypt(key, buf, len, mode, &dp); - trace3(TR_ecb_crypt, 1, len, mode); - return (dummy); + return (common_crypt(key, buf, len, mode, &dp)); #if 0 /* EXPORT DELETE END */ return (DESERR_HWERROR); @@ -155,21 +140,14 @@ ecb_crypt(char *key, char *buf, size_t len, unsigned int mode) * Common code to cbc_crypt() & ecb_crypt() */ static int -common_crypt(key, buf, len, mode, desp) - char *key; - char *buf; - register unsigned len; - unsigned mode; - register struct desparams *desp; +common_crypt(char *key, char *buf, unsigned len, unsigned mode, + struct desparams *desp) { - register int desdev; - register int res; + int desdev; + int res; - trace3(TR_common_crypt, 0, len, mode); - if ((len % 8) != 0 || len > DES_MAXDATA) { - trace3(TR_common_crypt, 1, len, mode); + if ((len % 8) != 0 || len > DES_MAXDATA) return (DESERR_BADPARAM); - } desp->des_dir = ((mode & DES_DIRMASK) == DES_ENCRYPT) ? ENCRYPT : DECRYPT; @@ -189,13 +167,12 @@ common_crypt(key, buf, len, mode, desp) desp->des_len = len; if (len <= DES_QUICKLEN) { DESCOPY(buf, desp->des_data, len); - res = ioctl(g_desfd, DESIOCQUICK, (char *) desp); + res = ioctl(g_desfd, DESIOCQUICK, (char *)desp); DESCOPY(desp->des_data, buf, len); } else { - desp->des_buf = (u_char *) buf; - res = ioctl(g_desfd, DESIOCBLOCK, (char *) desp); + desp->des_buf = (uchar_t *)buf; + res = ioctl(g_desfd, DESIOCBLOCK, (char *)desp); } - trace3(TR_common_crypt, 1, len, mode); return (res == 0 ? DESERR_NONE : DESERR_HWERROR); } software: @@ -203,11 +180,8 @@ software: /* * software */ - if (!__des_crypt(buf, len, desp)) { - trace3(TR_common_crypt, 1, len, mode); + if (!__des_crypt(buf, len, desp)) return (DESERR_HWERROR); - } - trace3(TR_common_crypt, 1, len, mode); return (desdev == DES_SW ? DESERR_NONE : DESERR_NOHWDEVICE); } /* EXPORT DELETE END */ @@ -253,11 +227,10 @@ desN_crypt(des_block keys[], int keynum, char *buf, unsigned int len, int -__cbc_triple_crypt(des_block keys[], char *buf, u_int len, - u_int mode, char *ivec) +__cbc_triple_crypt(des_block keys[], char *buf, uint_t len, + uint_t mode, char *ivec) { /* EXPORT DELETE START */ - trace3(T___cbc_triple_crypt, 0, len, mode); return (desN_crypt(keys, 3, buf, len, mode, ivec)); #if 0 /* EXPORT DELETE END */ diff --git a/usr/src/lib/libnsl/des/des_soft.c b/usr/src/lib/libnsl/des/des_soft.c index c3bbce6f1a..9ace43a671 100644 --- a/usr/src/lib/libnsl/des/des_soft.c +++ b/usr/src/lib/libnsl/des/des_soft.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -45,7 +46,6 @@ */ #include <sys/types.h> -#include <rpc/trace.h> #include <des/softdes.h> #include <des/desdata.h> #ifdef sun @@ -66,8 +66,8 @@ #define btst(k, b) (k[b >> 3] & (0x80 >> (b & 07))) #define BIT28 (1<<28) -static int __des_encrypt(u_char *, struct deskeydata *); -static int __des_setkey(u_char[8], struct deskeydata *, unsigned); +static int __des_encrypt(uchar_t *, struct deskeydata *); +static int __des_setkey(uchar_t[8], struct deskeydata *, unsigned); /* @@ -96,17 +96,14 @@ const char partab[128] = { * Add odd parity to low bit of 8 byte key */ void -des_setparity(p) - char *p; +des_setparity(char *p) { int i; - trace1(TR_des_setparity, 0); for (i = 0; i < 8; i++) { *p = partab[*p & 0x7f]; p++; } - trace1(TR_des_setparity, 1); } static const unsigned char partab_g[256] = { @@ -152,11 +149,9 @@ des_setparity_g(des_block *p) { int i; - trace1(TR_des_setparity_g, 0); for (i = 0; i < 8; i++) { (*p).c[i] = partab_g[(*p).c[i]]; } - trace1(TR_des_setparity_g, 1); } /* @@ -164,22 +159,18 @@ des_setparity_g(des_block *p) * Do the CBC ourselves if needed. */ int -__des_crypt(buf, len, desp) - register char *buf; - register unsigned len; - struct desparams *desp; +__des_crypt(char *buf, unsigned len, struct desparams *desp) { /* EXPORT DELETE START */ - register short i; - register unsigned mode; - register unsigned dir; + short i; + unsigned mode; + unsigned dir; char nextiv[8]; struct deskeydata softkey; - trace2(TR___des_crypt, 0, len); - mode = (unsigned) desp->des_mode; - dir = (unsigned) desp->des_dir; - __des_setkey(desp->des_key, &softkey, dir); + mode = (unsigned)desp->des_mode; + dir = (unsigned)desp->des_dir; + (void) __des_setkey(desp->des_key, &softkey, dir); while (len != 0) { switch (mode) { case CBC: @@ -187,14 +178,14 @@ __des_crypt(buf, len, desp) case ENCRYPT: for (i = 0; i < 8; i++) buf[i] ^= desp->des_ivec[i]; - __des_encrypt((u_char *)buf, &softkey); + (void) __des_encrypt((uchar_t *)buf, &softkey); for (i = 0; i < 8; i++) desp->des_ivec[i] = buf[i]; break; case DECRYPT: for (i = 0; i < 8; i++) nextiv[i] = buf[i]; - __des_encrypt((u_char *)buf, &softkey); + (void) __des_encrypt((uchar_t *)buf, &softkey); for (i = 0; i < 8; i++) { buf[i] ^= desp->des_ivec[i]; desp->des_ivec[i] = nextiv[i]; @@ -203,14 +194,13 @@ __des_crypt(buf, len, desp) } break; case ECB: - __des_encrypt((u_char *)buf, &softkey); + (void) __des_encrypt((uchar_t *)buf, &softkey); break; } buf += 8; len -= 8; } - trace2(TR___des_crypt, 1, len); -/* EXPORT DELETE END */ +/* EXPORT DELETE END */ return (1); } @@ -220,16 +210,12 @@ __des_crypt(buf, len, desp) * We build the 16 key entries here */ static int -__des_setkey(userkey, kd, dir) - u_char userkey[8]; - register struct deskeydata *kd; - unsigned dir; +__des_setkey(uchar_t userkey[8], struct deskeydata *kd, unsigned dir) { /* EXPORT DELETE START */ int32_t C, D; - register short i; + short i; - trace2(TR___des_setkey, 0, dir); /* * First, generate C and D by permuting * the key. The low order bit of each @@ -237,8 +223,8 @@ __des_setkey(userkey, kd, dir) * bits apiece. */ { - register short bit; - register const short *pcc = PC1_C, *pcd = PC1_D; + short bit; + const short *pcc = PC1_C, *pcd = PC1_D; C = D = 0; for (i = 0; i < 28; i++) { @@ -258,8 +244,8 @@ __des_setkey(userkey, kd, dir) * using PC2. */ for (i = 0; i < 16; i++) { - register chunk_t *c; - register short j, k, bit; + chunk_t *c; + short j, k, bit; uint32_t bbit; /* @@ -306,7 +292,6 @@ __des_setkey(userkey, kd, dir) } } - trace2(TR___des_setkey, 1, dir); /* EXPORT DELETE END */ return (1); } @@ -321,14 +306,11 @@ __des_setkey(userkey, kd, dir) * processor byte-order independence. */ static int -__des_encrypt(data, kd) - register u_char *data; - register struct deskeydata *kd; +__des_encrypt(uchar_t *data, struct deskeydata *kd) { /* EXPORT DELETE START */ chunk_t work1, work2; - trace1(TR___des_encrypt, 0); /* * Initial permutation * and byte to chunk conversion @@ -336,7 +318,7 @@ __des_encrypt(data, kd) { const uint32_t *lp; uint32_t l0, l1, w; - register short i, pbit; + short i, pbit; work1.byte0 = data[0]; work1.byte1 = data[1]; @@ -375,7 +357,7 @@ __des_encrypt(data, kd) * Expand 8 bits of 32 bit R to 48 bit R */ #define do_R_to_ER(op, b) { \ - register const struct R_to_ER *p = &R_to_ER_tab[b][R.byte##b]; \ + const struct R_to_ER *p = &R_to_ER_tab[b][R.byte##b]; \ e0 op p->l0; \ e1 op p->l1; \ } @@ -385,6 +367,7 @@ __des_encrypt(data, kd) * Expand R from 32 to 48 bits; xor key value; * apply S boxes; permute 32 bits of output */ +/* BEGIN CSTYLED */ #define do_F(iter, inR, outR) { \ chunk_t R, ER; \ uint32_t e0, e1; \ @@ -410,6 +393,7 @@ __des_encrypt(data, kd) P_tab[2][R.byte2] + \ P_tab[3][R.byte3]; \ } +/* END CSTYLED */ /* * Do a cipher step @@ -456,7 +440,7 @@ __des_encrypt(data, kd) { uint32_t *lp; uint32_t l0, l1, w; - register short i, pbit; + short i, pbit; l0 = l1 = 0; w = work1.long0; @@ -491,7 +475,6 @@ __des_encrypt(data, kd) data[6] = work2.byte6; data[7] = work2.byte7; - trace1(TR___des_encrypt, 1); /* EXPORT DELETE END */ return (1); } diff --git a/usr/src/lib/libnsl/dial/callers.c b/usr/src/lib/libnsl/dial/callers.c index 7ae35de544..c8d7a7a45f 100644 --- a/usr/src/lib/libnsl/dial/callers.c +++ b/usr/src/lib/libnsl/dial/callers.c @@ -19,42 +19,35 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> -#ifdef BSD4_2 -#include <netdb.h> -#include <netinet/in.h> -#include <sys/socket.h> +static void alarmtr(int); +static jmp_buf Sjbuf; +static char *fdig(char *); +#ifndef SMALL +static char *strecpy(char *, char *, char *); #endif -#ifdef UNET -#include "UNET/unetio.h" -#include "UNET/tcp.h" -#endif - - -EXTERN void alarmtr(); -EXTERN jmp_buf Sjbuf; -EXTERN char *fdig(), *strecpy(); -EXTERN int interface(); -EXTERN int fd_mklock(), fd_cklock(), chat(), getdialline(); -EXTERN void fixline(), fd_rmlock(); -static void translate(); -static int gdial(); -EXTERN int Modemctrl; -EXTERN unsigned connecttime; -EXTERN int (*Setup)(); +static int interface(const char *); +static int fd_mklock(int); +static int getdialline(char *, int); +static int chat(int, char *[], int, char *, char *); +static void fixline(), fd_rmlock(); +static void translate(char *, char *); +static int gdial(char *, char *[], int); +static int Modemctrl; +static unsigned connecttime; +static int (*Setup)(); extern int _fcntl(int, int, ...); @@ -66,62 +59,12 @@ extern int _fcntl(int, int, ...); * add the function to the end of this file */ -#ifdef DIAL801 -EXTERN int dial801(); -EXTERN int open801(); -#endif - -#ifdef DATAKIT -EXTERN int dkcall(); -#endif /* DATAKIT */ - -#ifdef V8 -int Dialout(); -#endif - -#ifdef TCP -GLOBAL int unetcall(); -GLOBAL int tcpcall(); -#endif /* TCP */ - -#ifdef SYTEK -int sytcall(); -#endif /* SYTEK */ - #ifdef TLI -EXTERN int tlicall(); +static int tlicall(char *[], char *[]); #endif /* TLI */ static struct caller Caller[] = { -#ifdef DIAL801 - {"801", dial801}, - {"212", dial801}, -#endif /* DIAL801 */ - -#ifdef V8 - {"Dialout", Dialout}, /* ditto but using dialout(III) */ -#endif - -#ifdef TCP -#ifdef BSD4_2 - {"TCP", tcpcall}, /* 4.2BSD sockets */ -#else /* !BSD4_2 */ -#ifdef UNET - {"TCP", unetcall}, /* 3com implementation of tcp */ - {"Unetserver", unetcall}, -#endif /* UNET */ -#endif /* BSD4_2 */ -#endif /* TCP */ - -#ifdef DATAKIT - {"DK", dkcall}, /* standard AT&T DATAKIT VCS caller */ -#endif /* DATAKIT */ - -#ifdef SYTEK - {"Sytek", sytcall}, /* untested but should work */ -#endif /* SYTEK */ - #ifdef TLI {"TLI", tlicall}, /* AT&T Transport Layer Interface */ #ifdef TLIS @@ -129,7 +72,7 @@ static struct caller Caller[] = { #endif /* TLIS */ #endif /* TLI */ - {NULL, NULL} /* this line must be last */ + {NULL, NULL} /* this line must be last */ }; /* @@ -139,22 +82,19 @@ static struct caller Caller[] = { */ static void -exphone(in, out) -char *in, *out; +exphone(char *in, char *out) { FILE *fn; char pre[MAXPH], npart[MAXPH], tpre[MAXPH], p[MAXPH]; char buf[BUFSIZ]; char *s1; - trace1(TR_exphone, 0); if (!isalpha(*in)) { (void) strcpy(out, in); - trace1(TR_exphone, 1); return; } - s1=pre; + s1 = pre; while (isalpha(*in)) *s1++ = *in++; *s1 = NULLCHAR; @@ -167,19 +107,17 @@ char *in, *out; fn = fopen(DIALCODES, "r"); if (fn != NULL) { while (fgets(buf, BUFSIZ, fn)) { - if (sscanf(buf, "%s%s", p, tpre) < 1) + if (sscanf(buf, "%60s%60s", p, tpre) < 1) continue; if (EQUALS(p, pre)) break; tpre[0] = NULLCHAR; } - fclose(fn); + (void) fclose(fn); } (void) strcpy(out, tpre); (void) strcat(out, npart); - trace1(TR_exphone, 1); - return; } /* @@ -187,19 +125,17 @@ char *in, *out; * expanding and translating as appropriate. */ static char * -repphone(arg, phone, trstr) -register char *arg, *phone, *trstr; +repphone(char *arg, char *phone, char *trstr) { static char *pbuf; /* dynamically allocated below */ - register char *fp, *tp; + char *fp, *tp; - trace1(TR_repphone, 0); if (pbuf == NULL) { - pbuf = (char *)malloc(2*(MAXPH+2)); + pbuf = malloc(2*(MAXPH+2)); if (pbuf == NULL) return (arg); } - for (tp=pbuf; *arg; arg++) { + for (tp = pbuf; *arg; arg++) { if (*arg != '\\') { *tp++ = *arg; continue; @@ -209,12 +145,12 @@ register char *arg, *phone, *trstr; exphone(phone, tp); translate(trstr, tp); for (; *tp; tp++) - ; + ; arg++; break; case 'D': - for (fp=phone; *tp = *fp++; tp++) - ; + for (fp = phone; *tp = *fp++; tp++) + ; arg++; break; default: @@ -224,11 +160,10 @@ register char *arg, *phone, *trstr; } } *tp = '\0'; - trace1(TR_repphone, 1); return (pbuf); } -static u_int saved_mode; +static uint_t saved_mode; static char saved_dcname[20]; /* @@ -238,24 +173,22 @@ static char saved_dcname[20]; * file descriptor - succeeded * FAIL - failed */ -GLOBAL int -processdev(flds, dev) -register char *flds[], *dev[]; +static int +processdev(char *flds[], char *dev[]) { int dcf = -1; - register struct caller *ca; + struct caller *ca; char *args[D_MAX+1], dcname[20]; - register char **sdev; - EXTERN int pop_push(); - EXTERN void setdevcfg(); + char **sdev; + static int pop_push(int); + static void setdevcfg(char *, char *); int nullfd; char *phonecl; /* clear phone string */ char phoneex[2*(MAXPH+2)]; /* expanded phone string */ - EXTERN void ttygenbrk(); + static void ttygenbrk(int); struct termio tty_orig; int ret_orig = -1; - trace1(TR_processdev, 0); sdev = dev; /* set up default "break" routine */ genbrk = ttygenbrk; @@ -271,20 +204,18 @@ register char *flds[], *dev[]; DEBUG(5, "Internal caller type %s\n", dev[D_CALLER]); if (dev[D_ARG] == NULL) { /* if NULL - assume translate */ - dev[D_ARG+1] = NULL; /* needed for for loop later to mark the end */ + /* needed for for loop later to mark the end */ + dev[D_ARG+1] = NULL; dev[D_ARG] = "\\T"; } dev[D_ARG] = repphone(dev[D_ARG], flds[F_PHONE], ""); - if ((dcf = (*(ca->CA_caller))(flds, dev)) < 0) { - trace1(TR_processdev, 1); - return (dcf) ; - } + if ((dcf = (*(ca->CA_caller))(flds, dev)) < 0) + return (dcf); if (interface(ca->CA_type)) { DEBUG(5, "interface(%s) failed", ca->CA_type); Uerror = SS_DEVICE_FAILED; /* restore vanilla unix interface */ - (void)interface("UNIX"); - trace1(TR_processdev, 1); + (void) interface("UNIX"); return (FAIL); } dev += 2; /* Skip to next CALLER and ARG */ @@ -300,7 +231,8 @@ register char *flds[], *dev[]; * Open the line */ if (*dev[D_LINE] != '/') { - (void) sprintf(dcname, "/dev/%s", dev[D_LINE]); + (void) snprintf(dcname, sizeof (dcname), + "/dev/%s", dev[D_LINE]); } else { (void) strcpy(dcname, dev[D_LINE]); } @@ -317,13 +249,13 @@ register char *flds[], *dev[]; (void) alarm(10); if (Modemctrl) { DEBUG(7, "opening with O_NDELAY set\n%s", ""); - dcf = open(dcname, (O_RDWR | O_NDELAY) ); + dcf = open(dcname, (O_RDWR | O_NDELAY)); saved_mode = O_RDWR | O_NDELAY; } else { - dcf = open(dcname, O_RDWR ); + dcf = open(dcname, O_RDWR); saved_mode = O_RDWR; } - strcpy(saved_dcname, dcname); + (void) strcpy(saved_dcname, dcname); (void) alarm(0); if (dcf < 0) { DEBUG(1, "generic open failed, errno = %d\n", errno); @@ -345,7 +277,8 @@ register char *flds[], *dev[]; DEBUG(7, "clear O_NDELAY\n%s", ""); if (_fcntl(dcf, F_SETFL, (_fcntl(dcf, F_GETFL, 0) & ~O_NDELAY)) < 0) { - DEBUG(7, "clear O_NDELAY failed, errno %d\n", errno); + DEBUG(7, "clear O_NDELAY failed, errno %d\n", + errno); Uerror = SS_DEVICE_FAILED; goto bad; } @@ -361,7 +294,7 @@ register char *flds[], *dev[]; /* configure any requested streams modules */ if (!pop_push(dcf)) { - DEBUG(5, "STREAMS module configuration failed%s\n",""); + DEBUG(5, "STREAMS module configuration failed%s\n", ""); Uerror = SS_DEVICE_FAILED; goto bad; } @@ -377,7 +310,7 @@ register char *flds[], *dev[]; * according to scripts in dialers file. */ for (; dev[D_CALLER] != NULL; dev += 2) { - register int w; + int w; /* * Scan Dialers file to find an entry */ @@ -393,10 +326,11 @@ register char *flds[], *dev[]; */ if (dev[D_ARG] == NULL) { /* if NULL - assume no translation */ - dev[D_ARG+1] = NULL; /* needed for for loop to mark the end */ + /* needed for for loop to mark the end */ + dev[D_ARG+1] = NULL; dev[D_ARG] = "\\D"; } - + phonecl = repphone(dev[D_ARG], flds[F_PHONE], args[1]); exphone(phonecl, phoneex); translate(args[1], phoneex); @@ -412,8 +346,7 @@ register char *flds[], *dev[]; /* * Success at last! */ - strcpy(Dc, sdev[D_LINE]); - trace1(TR_processdev, 1); + (void) strcpy(Dc, sdev[D_LINE]); return (dcf); bad: if (dcf >= 0) { @@ -421,27 +354,25 @@ bad: if (ret_orig == 0) (void) ioctl(dcf, TCSETAW, &tty_orig); fd_rmlock(dcf); - (void)close(dcf); + (void) close(dcf); } /* restore vanilla unix interface */ - (void)interface("UNIX"); - trace1(TR_processdev, 1); + (void) interface("UNIX"); return (FAIL); } /* * clear_hup() clear the hangup state of the given device */ -GLOBAL int -clear_hup(dcf) -int dcf; +static int +clear_hup(int dcf) { int ndcf; if ((ndcf = open(saved_dcname, saved_mode)) < 0) { return (FAIL); } if (ndcf != dcf) { - close(ndcf); + (void) close(ndcf); } return (SUCCESS); } @@ -453,21 +384,17 @@ int dcf; * string. */ static void -translate(ttab, str) -register char *ttab, *str; +translate(char *ttab, char *str) { - register char *s; - trace1(TR_translate, 0); + char *s; - for (;*ttab && *(ttab+1); ttab += 2) - for (s=str;*s;s++) + for (; *ttab && *(ttab+1); ttab += 2) + for (s = str; *s; s++) if (*ttab == *s) *s = *(ttab+1); - trace1(TR_translate, 1); - return; } -#define MAXLINE 512 +#define MAXLINE 512 /* * Get the information about the dialer. * gdial(type, arps, narps) @@ -480,19 +407,18 @@ register char *ttab, *str; * >0 -> success - number of fields filled in */ static int -gdial(type, arps, narps) -register char *type, *arps[]; -register int narps; +gdial(char *type, char *arps[], int narps) { static char *info; /* dynamically allocated MAXLINE */ int na; - EXTERN void dialreset(); - EXTERN char * currdial(); + static void dialreset(void); +#ifndef SMALL + static char *currdial(void); +#endif - trace2(TR_gdial, 0, narps); DEBUG(2, "gdial(%s) called\n", type); if (info == NULL) { - info = (char *)malloc(MAXLINE); + info = malloc(MAXLINE); if (info == NULL) { DEBUG(1, "malloc failed for info in gdial\n", 0); return (0); @@ -509,581 +435,21 @@ register int narps; DEBUG(5, " from '%s'.\n", currdial()); dialreset(); bsfix(arps); - trace2(TR_gdial, 1, narps); return (na); } } DEBUG(1, "%s not found in Dialers file\n", type); dialreset(); - trace2(TR_gdial, 1, narps); return (0); } - -#ifdef DATAKIT - -/* - * dkcall(flds, dev) make a DATAKIT VCS connection - * DATAKIT VCS is a trademark of AT&T - * - * return codes: - * >0 - file number - ok - * FAIL - failed - */ - -#include "dk.h" -EXTERN int dkdial(); - -/*ARGSUSED*/ -GLOBAL int -dkcall(flds, dev) -char *flds[], *dev[]; -{ - register fd; -#ifdef V8 - extern int cdkp_ld; -#endif - - char dialstring[64]; - EXTERN void dkbreak(); - - trace1(TR_dkcall, 0); - strcpy(dialstring, dev[D_ARG]); - DEBUG(4, "dkcall(%s)\n", dialstring); - - -#ifdef V8 - if (setjmp(Sjbuf)) { - Uerror = SS_DIAL_FAILED; - trace1(TR_dkcall, 1); - return (FAIL); - } - - (void) signal(SIGALRM, alarmtr); - (void) alarm(connecttime); - DEBUG(4, "tdkdial(%s", flds[F_PHONE]); - DEBUG(4, ", %d)\n", atoi(dev[D_CLASS])); - if ((fd = tdkdial(flds[F_PHONE], atoi(dev[D_CLASS]))) >= 0) - if (dkproto(fd, cdkp_ld) < 0) - { - close(fd); - fd = -1; - } - (void) alarm(0); -#else - fd = dkdial(dialstring); -#endif - - (void) strcpy(Dc, "DK"); - if (fd < 0) { - Uerror = SS_DIAL_FAILED; - trace1(TR_dkcall, 1); - return (FAIL); - } - else { - genbrk = dkbreak; - trace1(TR_dkcall, 1); - return (fd); - } -} - -#endif /* DATAKIT */ - -#ifdef TCP - -/* - * tcpcall(flds, dev) make ethernet/socket connection - * - * return codes: - * >0 - file number - ok - * FAIL - failed - */ - -#ifndef BSD4_2 -/*ARGSUSED*/ -GLOBAL int -tcpcall(flds, dev) -char *flds[], *dev[]; -{ - trace1(TR_tcpcall, 0); - Uerror = SS_NO_DEVICE; - trace1(TR_tcpcall, 1); - return (FAIL); -} -#else /* BSD4_2 */ -GLOBAL int -tcpcall(flds, dev) -char *flds[], *dev[]; -{ - int ret; - short port; - struct servent *sp; - struct hostent *hp; - struct sockaddr_in sin; - - trace1(TR_tcpcall, 0); - port = atoi(dev[D_ARG]); - if (port == 0) { - sp = getservbyname("uucp", "tcp"); - ASSERT(sp != NULL, "No uucp server", 0, 0); - port = sp->s_port; - } - else port = htons(port); - hp = gethostbyname(flds[F_NAME]); - if (hp == NULL) { - logent("tcpopen", "no such host"); - Uerror = SS_NO_DEVICE; - trace1(TR_tcpcall, 1); - return (FAIL); - } - DEBUG(4, "tcpdial host %s, ", flds[F_NAME]); - DEBUG(4, "port %d\n", ntohs(port)); - - ret = socket(AF_INET, SOCK_STREAM, 0); - if (ret < 0) { - char *errstr; - - if ((errstr = strerror(errno)) != (char *) NULL) { - DEBUG(5, "no socket: %s\n", errstr); - logent("no socket", errstr); - } - else { - DEBUG(5, "no socket, errno %d\n", errno); - logent("tcpopen", "NO SOCKET"); - } - Uerror = SS_NO_DEVICE; - trace1(TR_tcpcall, 1); - return (FAIL); - } - sin.sin_family = hp->h_addrtype; - bcopy(hp->h_addr, (caddr_t)&sin.sin_addr, hp->h_length); - sin.sin_port = port; - if (setjmp(Sjbuf)) { - DEBUG(4, "timeout tcpopen\n%s", ""); - logent("tcpopen", "TIMEOUT"); - Uerror = SS_NO_DEVICE; - trace1(TR_tcpcall, 1); - return (FAIL); - } - (void) signal(SIGALRM, alarmtr); - (void) alarm(connecttime); - DEBUG(7, "family: %d\n", sin.sin_family); - DEBUG(7, "port: %d\n", sin.sin_port); - DEBUG(7, "addr: %08x\n",*((int *) &sin.sin_addr)); - if (connect(ret, (caddr_t)&sin, sizeof (sin)) < 0) { - char *errstr; - - (void) alarm(0); - (void) close(ret); - if ((errstr = strerror(errno)) != (char *) NULL) { - DEBUG(5, "connect failed: %s\n", errstr); - logent("connect failed", errstr); - } - else { - DEBUG(5, "connect failed, errno %d\n", errno); - logent("tcpopen", "CONNECT FAILED"); - } - Uerror = SS_NO_DEVICE; - trace1(TR_tcpcall, 1); - return (FAIL); - } - (void) signal(SIGPIPE, SIG_IGN); /* watch out for broken ipc link...*/ - (void) alarm(0); - (void) strcpy(Dc, "IPC"); - trace1(TR_tcpcall, 1); - return (ret); -} - -#endif /* BSD4_2 */ - -/* - * unetcall(flds, dev) make ethernet connection - * - * return codes: - * >0 - file number - ok - * FAIL - failed - */ - -#ifndef UNET -GLOBAL int -unetcall(flds, dev) -char *flds[], *dev[]; -{ - trace1(TR_unetcall, 0); - Uerror = SS_NO_DEVICE; - trace1(TR_unetcall, 1); - return (FAIL); -} -#else /* UNET */ -GLOBAL int -unetcall(flds, dev) -char *flds[], *dev[]; -{ - int ret; - int port; - - trace1(TR_unetcall, 0); - port = atoi(dev[D_ARG]); - DEBUG(4, "unetdial host %s, ", flds[F_NAME]); - DEBUG(4, "port %d\n", port); - (void) alarm(connecttime); - ret = tcpopen(flds[F_NAME], port, 0, TO_ACTIVE, "rw"); - (void) alarm(0); - endhnent(); - if (ret < 0) { - DEBUG(5, "tcpopen failed: errno %d\n", errno); - Uerror = SS_DIAL_FAILED; - trace1(TR_unetcall, 1); - return (FAIL); - } - (void) strcpy(Dc, "UNET"); - trace1(TR_unetcall, 1); - return (ret); -} -#endif /* UNET */ - -#endif /* TCP */ - -#ifdef SYTEK - -/* - * sytcall(flds, dev) make a sytek connection - * - * return codes: - * >0 - file number - ok - * FAIL - failed - */ - -/*ARGSUSED*/ -GLOBAL int -sytcall(flds, dev) -char *flds[], *dev[]; -{ - int dcr, dcr2, nullfd, ret; - char dcname[20], command[BUFSIZ]; - - - trace1(TR_sytcall, 0); - (void) sprintf(dcname, "/dev/%s", dev[D_LINE]); - DEBUG(4, "dc - %s, ", dcname); - dcr = open(dcname, O_WRONLY|O_NDELAY); - if (dcr < 0) { - Uerror = SS_DIAL_FAILED; - DEBUG(4, "OPEN FAILED %s\n", dcname); - trace1(TR_sytcall, 1); - return (FAIL); - } - if (fd_mklock(dcr) != SUCCESS) { - (void)close(dcr); - DEBUG(1, "failed to lock device %s\n", dcname); - Uerror = SS_LOCKED_DEVICE; - trace1(TR_sytcall, 1); - return (FAIL); - } - - sytfixline(dcr, atoi(fdig(dev[D_CLASS])), D_DIRECT); - (void) sleep(2); - DEBUG(4, "Calling Sytek unit %s\n", dev[D_ARG]); - (void) sprintf(command,"\r\rcall %s\r", dev[D_ARG]); - ret = (*Write)(dcr, command, strlen(command)); - (void) sleep(1); - DEBUG(4, "COM1 return = %d\n", ret); - sytfix2line(dcr); - (void) close(nullfd = open("/", O_RDONLY)); - (void) signal(SIGALRM, alarmtr); - if (setjmp(Sjbuf)) { - DEBUG(4, "timeout sytek open\n%s", ""); - (void) close(nullfd); - (void) close(dcr2); - fd_rmlock(dcr); - (void) close(dcr); - Uerror = SS_DIAL_FAILED; - trace1(TR_sytcall, 1); - return (FAIL); - } - (void) alarm(10); - dcr2 = open(dcname,O_RDWR); - (void) alarm(0); - fd_rmlock(dcr); - (void) close(dcr); - if (dcr2 < 0) { - DEBUG(4, "OPEN 2 FAILED %s\n", dcname); - Uerror = SS_DIAL_FAILED; - (void) close(nullfd); /* kernel might think dc2 is open */ - trace1(TR_sytcall, 1); - return (FAIL); - } - if (fd_mklock(dcr2) != SUCCESS) { - (void)close(dcr2); - DEBUG(1, "failed to lock device %s\n", dcname); - Uerror = SS_LOCKED_DEVICE; - trace1(TR_sytcall, 1); - return (FAIL); - } - trace1(TR_sytcall, 1); - return (dcr2); -} - -#endif /* SYTEK */ - -#ifdef DIAL801 - -/* - * dial801(flds, dev) dial remote machine on 801/801 - * char *flds[], *dev[]; - * - * return codes: - * file descriptor - succeeded - * FAIL - failed - * - * unfortunately, open801() is different for usg and non-usg - */ - -/*ARGSUSED*/ -GLOBAL int -dial801(flds, dev) -char *flds[], *dev[]; -{ - char dcname[20], dnname[20], phone[MAXPH+2]; - int dcf = -1, speed; - - trace1(TR_dial801, 0); - (void) sprintf(dnname, "/dev/%s", dev[D_CALLDEV]); - (void) sprintf(phone, "%s%s", dev[D_ARG] , ACULAST); - (void) sprintf(dcname, "/dev/%s", dev[D_LINE]); - CDEBUG(1, "Use Port %s, ", dcname); - DEBUG(4, "acu - %s, ", dnname); - VERBOSE("Trying modem - %s, ", dcname); /* for cu */ - VERBOSE("acu - %s, ", dnname); /* for cu */ - if (getuid()==0 || GRPCHK(getgid())) { - CDEBUG(1, "Phone Number %s\n", phone); - /* In cu, only give out the phone number to trusted people. */ - VERBOSE("calling %s: ", phone); /* for cu */ - } - speed = atoi(fdig(dev[D_CLASS])); - dcf = open801(dcname, dnname, phone, speed); - if (dcf >= 0) { - if (fd_mklock(dcf) != SUCCESS) { - (void) close(dcf); - DEBUG(5, "fd_mklock line %s failed\n", dev[D_LINE]); - Uerror = SS_LOCKED_DEVICE; - trace1(TR_dial801, 1); - return (FAIL); - } - fixline(dcf, speed, D_ACU); - (void) strcpy(Dc, dev[D_LINE]); /* for later unlock() */ - VERBOSE("SUCCEEDED\n%s", ""); - } else { - VERBOSE("FAILED\n%s", ""); - } - trace1(TR_dial801, 1); - return (dcf); -} - - -#ifndef ATTSV -/*ARGSUSED*/ -GLOBAL int -open801(dcname, dnname, phone, speed) -char *dcname, *dnname, *phone; -{ - int nw, lt, dcf = -1, nullfd, dnf = -1; - pid_t w_ret, pid = -1; - unsigned timelim; - - trace1(TR_open801, 0); - if ((dnf = open(dnname, O_WRONLY)) < 0) { - DEBUG(5, "can't open %s\n", dnname); - Uerror = SS_CANT_ACCESS_DEVICE; - trace1(TR_open801, 1); - return (FAIL); - } - DEBUG(5, "%s is open\n", dnname); - - (void) close(nullfd = open("/dev/null", O_RDONLY));/* partial open hack */ - if (setjmp(Sjbuf)) { - DEBUG(4, "timeout modem open\n%s", ""); - (void) close(nullfd); - (void) close(dcf); - (void) close(dnf); - logent("801 open", "TIMEOUT"); - if (pid > 0) { - kill(pid, 9); - wait((int *) 0); - } - Uerror = SS_DIAL_FAILED; - trace1(TR_open801, 1); - return (FAIL); - } - (void) signal(SIGALRM, alarmtr); - timelim = 5 * strlen(phone); - (void) alarm(timelim < connecttime ? connecttime : timelim); - if ((pid = fork()) == 0) { - sleep(2); - nw = (*Write)(dnf, phone, lt = strlen(phone)); - if (nw != lt) { - DEBUG(4, "ACU write error %d\n", errno); - logent("ACU write", "FAILED"); - trace1(TR_open801, 1); - exit(1); - } - DEBUG(4, "ACU write ok\n%s", ""); - trace1(TR_open801, 1); - exit(0); - } - /* open line - will return on carrier */ - dcf = open(dcname, O_RDWR); - - DEBUG(4, "dcf is %d\n", dcf); - if (dcf < 0) { /* handle like a timeout */ - (void) alarm(0); - longjmp(Sjbuf, 1); - } - - /* modem is open */ - while ((w_ret = wait(<)) != pid) - if (w_ret == -1 && errno != EINTR) { - DEBUG(4, "Wait failed errno=%d\n", errno); - (void) close(dcf); - (void) close(dnf); - Uerror = SS_DIAL_FAILED; - trace1(TR_open801, 1); - return (FAIL); - } - (void) alarm(0); - - (void) close(dnf); /* no reason to keep the 801 open */ - if (lt != 0) { - DEBUG(4, "Fork Stat %o\n", lt); - (void) close(dcf); - Uerror = SS_DIAL_FAILED; - trace1(TR_open801, 1); - return (FAIL); - } - trace1(TR_open801, 1); - return (dcf); -} - -#else /* ATTSV */ - -GLOBAL int -open801(dcname, dnname, phone, speed) -char *dcname, *dnname, *phone; -{ - int nw, lt, dcf = -1, nullfd, dnf = -1, ret; - unsigned timelim; - - trace1(TR_open801, 0); - (void) close(nullfd = open("/", O_RDONLY)); /* partial open hack */ - if (setjmp(Sjbuf)) { - DEBUG(4, "DN write %s\n", "timeout"); - (void) close(dnf); - (void) close(dcf); - (void) close(nullfd); - Uerror = SS_DIAL_FAILED; - trace1(TR_open801, 1); - return (FAIL); - } - (void) signal(SIGALRM, alarmtr); - timelim = 5 * strlen(phone); - (void) alarm(timelim < connecttime ? connecttime : timelim); - - if ((dnf = open(dnname, O_WRONLY)) < 0) { - DEBUG(5, "can't open %s\n", dnname); - Uerror = SS_CANT_ACCESS_DEVICE; - trace1(TR_open801, 1); - return (FAIL); - } - DEBUG(5, "%s is open\n", dnname); - if (fd_mklock(dnf) != SUCCESS) { - (void)close(dnf); - DEBUG(1, "failed to lock device %s\n", dnname); - Uerror = SS_LOCKED_DEVICE; - } - if ((dcf = open(dcname, O_RDWR | O_NDELAY)) < 0) { - DEBUG(5, "can't open %s\n", dcname); - Uerror = SS_CANT_ACCESS_DEVICE; - trace1(TR_open801, 1); - return (FAIL); - } - if (fd_mklock(dcf) != SUCCESS) { - (void)close(dcf); - DEBUG(1, "failed to lock device %s\n", dcname); - Uerror = SS_LOCKED_DEVICE; - trace1(TR_open801, 1); - return (FAIL); - } - - DEBUG(4, "dcf is %d\n", dcf); - fixline(dcf, speed, D_ACU); - nw = (*Write)(dnf, phone, lt = strlen(phone)); - if (nw != lt) { - (void) alarm(0); - DEBUG(4, "ACU write error %d\n", errno); - (void) close(dnf); - (void) close(dcf); - Uerror = SS_DIAL_FAILED; - trace1(TR_open801, 1); - return (FAIL); - } else - DEBUG(4, "ACU write ok\n%s", ""); - - (void) close(dnf); - (void) close(nullfd = open("/", O_RDONLY)); /* partial open hack */ - ret = open(dcname, O_RDWR); /* wait for carrier */ - (void) alarm(0); - (void) close(ret); /* close 2nd modem open() */ - if (ret < 0) { /* open() interrupted by alarm */ - DEBUG(4, "Line open %s\n", "failed"); - Uerror = SS_DIAL_FAILED; - (void) close(nullfd); /* close partially opened modem */ - trace1(TR_open801, 1); - return (FAIL); - } - (void) _fcntl(dcf,F_SETFL, _fcntl(dcf, F_GETFL, 0) & ~O_NDELAY); - trace1(TR_open801, 1); - return (dcf); -} -#endif /* ATTSV */ - -#endif /* DIAL801 */ - -#ifdef V8 -GLOBAL int -Dialout(flds) -char *flds[]; -{ - int fd; - char phone[MAXPH+2]; - - - trace1(TR_Dialout, 0); - exphone(flds[F_PHONE], phone); - - DEBUG(4, "call dialout(%s", phone); - DEBUG(4, ", %s)\n", dev[D_CLASS]); - fd = dialout(phone, dev[D_CLASS]); - if (fd == -1) - Uerror = SS_NO_DEVICE; - if (fd == -3) - Uerror = SS_DIAL_FAILED; - if (fd == -9) - Uerror = SS_DEVICE_FAILED; - - (void) strcpy(Dc, "Dialout"); - - trace1(TR_Dialout, 1); - return (fd); -} -#endif /* V8 */ - #ifdef TLI /* * * AT&T Transport Layer Interface * * expected in Devices - * TLI line1 - - TLI + * TLI line1 - - TLI * or * TLIS line1 - - TLIS * @@ -1091,44 +457,35 @@ char *flds[]; #include <tiuser.h> -#if defined(__STDC__) -EXTERN void tfaillog(int fd, const char *s); -#else -EXTERN void tfaillog(); -#endif - -char *t_alloc(); -int t_bind(), t_close(), t_connect(), t_free(), t_look(), t_open(), t_rcvdis(); +static void tfaillog(int fd, const char *s); #define CONNECT_ATTEMPTS 3 -#define TFREE(p, type) if ((p)) t_free((char *)(p), (type)) +#define TFREE(p, type) if ((p)) (void) t_free((char *)(p), (type)) /* * returns fd to remote uucp daemon */ /*ARGSUSED*/ -GLOBAL int -tlicall(flds, dev) -char *flds[]; -char *dev[]; +static int +tlicall(char *flds[], char *dev[]) { char addrbuf[ BUFSIZ ]; char devname[MAXNAMESIZE]; int fd; - register int i, j; + int i, j; struct t_bind *bind_ret = 0; struct t_info tinfo; struct t_call *sndcall = 0, *rcvcall = 0; - EXTERN struct netbuf *stoa(); + static struct netbuf *stoa(char *, struct netbuf *); - trace1(TR_tlicall, 0); if (dev[D_LINE][0] != '/') { /* dev holds device name relative to /dev */ - sprintf(devname, "/dev/%s", dev[D_LINE]); + (void) snprintf(devname, sizeof (devname), + "/dev/%s", dev[D_LINE]); } else { /* dev holds full path name of device */ - strcpy(devname, dev[D_LINE]); + (void) strcpy(devname, dev[D_LINE]); } /* gimme local transport endpoint */ errno = t_errno = 0; @@ -1136,7 +493,6 @@ char *dev[]; DEBUG(1, "t_open timeout\n%s", ""); logent("t_open", "TIMEOUT"); Uerror = SS_NO_DEVICE; - trace1(TR_tlicall, 1); return (FAIL); } (void) signal(SIGALRM, alarmtr); @@ -1146,43 +502,41 @@ char *dev[]; if (fd < 0) { tfaillog(fd, "t_open"); Uerror = SS_NO_DEVICE; - trace1(TR_tlicall, 1); return (FAIL); } if (fd_mklock(fd) != SUCCESS) { - (void)t_close(fd); + (void) t_close(fd); DEBUG(1, "tlicall: failed to lock device %s\n", devname); Uerror = SS_LOCKED_DEVICE; - trace1(TR_tlicall, 1); return (FAIL); } /* allocate tli structures */ errno = t_errno = 0; - if ((bind_ret = (struct t_bind *)t_alloc(fd, T_BIND, T_ALL)) == - (struct t_bind *)NULL - || (sndcall = (struct t_call *)t_alloc(fd, T_CALL, T_ALL)) == - (struct t_call *)NULL - || (rcvcall = (struct t_call *)t_alloc(fd, T_CALL, T_ALL)) == - (struct t_call *)NULL) { + /* LINTED pointer cast */ + if ((bind_ret = (struct t_bind *)t_alloc(fd, T_BIND, T_ALL)) == NULL || + /* LINTED pointer cast */ + (sndcall = (struct t_call *)t_alloc(fd, T_CALL, T_ALL)) == NULL || + /* LINTED pointer cast */ + (rcvcall = (struct t_call *)t_alloc(fd, T_CALL, T_ALL)) == NULL) { tfaillog(fd, "t_alloc"); - TFREE(bind_ret, T_BIND);TFREE(sndcall, T_CALL); + TFREE(bind_ret, T_BIND); + TFREE(sndcall, T_CALL); TFREE(rcvcall, T_CALL); Uerror = SS_NO_DEVICE; - trace1(TR_tlicall, 1); return (FAIL); } /* bind */ errno = t_errno = 0; - if (t_bind(fd, (struct t_bind *) 0, bind_ret) < 0) { + if (t_bind(fd, (struct t_bind *)0, bind_ret) < 0) { tfaillog(fd, "t_bind"); - TFREE(bind_ret, T_BIND);TFREE(sndcall, T_CALL); + TFREE(bind_ret, T_BIND); + TFREE(sndcall, T_CALL); TFREE(rcvcall, T_CALL); Uerror = SS_NO_DEVICE; fd_rmlock(fd); (void) t_close(fd); - trace1(TR_tlicall, 1); return (FAIL); } DEBUG(5, "tlicall: bound to %s\n", bind_ret->addr.buf); @@ -1210,28 +564,27 @@ char *dev[]; DEBUG(5, "t_connect to addr \"%s\"\n", strecpy(addrbuf, dev[D_ARG], "\\")); - if (dev[D_ARG][0] == '\\' && - (dev[D_ARG][1] == 'x' || dev[D_ARG][1] == 'X' - || dev[D_ARG][1] == 'o' || dev[D_ARG][1] == 'O')) { - if (stoa(dev[D_ARG], &(sndcall->addr)) == (struct netbuf *)NULL) { + if (dev[D_ARG][0] == '\\' && (dev[D_ARG][1] == 'x' || + dev[D_ARG][1] == 'X' || dev[D_ARG][1] == 'o' || + dev[D_ARG][1] == 'O')) { + if (stoa(dev[D_ARG], &(sndcall->addr)) == NULL) { DEBUG(5, "tlicall: stoa failed\n%s", ""); logent("tlicall", "string-to-address failed"); - TFREE(bind_ret, T_BIND);TFREE(sndcall, T_CALL); + TFREE(bind_ret, T_BIND); + TFREE(sndcall, T_CALL); TFREE(rcvcall, T_CALL); Uerror = SS_NO_DEVICE; fd_rmlock(fd); (void) t_close(fd); - trace1(TR_tlicall, 1); return (FAIL); } } else { for (i = j = 0; i < BUFSIZ && dev[D_ARG][i] != NULLCHAR; - ++i, ++j) { - if (dev[D_ARG][i] == '\\' && dev[D_ARG][i+1] == 'N') { + ++i, ++j) { + if (dev[D_ARG][i] == '\\' && dev[D_ARG][i+1] == 'N') { addrbuf[j] = NULLCHAR; ++i; - } - else { + } else { addrbuf[j] = dev[D_ARG][i]; } } @@ -1242,12 +595,12 @@ char *dev[]; if (setjmp(Sjbuf)) { DEBUG(4, "timeout tlicall\n%s", ""); logent("tlicall", "TIMEOUT"); - TFREE(bind_ret, T_BIND);TFREE(sndcall, T_CALL); + TFREE(bind_ret, T_BIND); + TFREE(sndcall, T_CALL); TFREE(rcvcall, T_CALL); Uerror = SS_NO_DEVICE; fd_rmlock(fd); (void) t_close(fd); - trace1(TR_tlicall, 1); return (FAIL); } (void) signal(SIGALRM, alarmtr); @@ -1260,34 +613,33 @@ char *dev[]; if (t_connect(fd, sndcall, rcvcall) == 0) break; if ((t_errno == TLOOK) && (t_look(fd) == T_DISCONNECT)) { - t_rcvdis(fd,NULL); + (void) t_rcvdis(fd, NULL); (void) alarm(0); } else { (void) alarm(0); tfaillog(fd, "t_connect"); - TFREE(bind_ret, T_BIND);TFREE(sndcall, T_CALL); + TFREE(bind_ret, T_BIND); + TFREE(sndcall, T_CALL); TFREE(rcvcall, T_CALL); Uerror = SS_DIAL_FAILED; fd_rmlock(fd); (void) t_close(fd); - trace1(TR_tlicall, 1); return (FAIL); } } (void) alarm(0); - TFREE(bind_ret, T_BIND);TFREE(sndcall, T_CALL); + TFREE(bind_ret, T_BIND); + TFREE(sndcall, T_CALL); TFREE(rcvcall, T_CALL); if (i == CONNECT_ATTEMPTS) { tfaillog(fd, "t_connect"); Uerror = SS_DIAL_FAILED; fd_rmlock(fd); (void) t_close(fd); - trace1(TR_tlicall, 1); return (FAIL); } errno = t_errno = 0; (void) strcpy(Dc, dev[D_CALLER]); - trace1(TR_tlicall, 1); return (fd); } #endif /* TLI */ diff --git a/usr/src/lib/libnsl/dial/conn.c b/usr/src/lib/libnsl/dial/conn.c index 61b31d4bc1..4c9834ba98 100644 --- a/usr/src/lib/libnsl/dial/conn.c +++ b/usr/src/lib/libnsl/dial/conn.c @@ -19,48 +19,56 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> -GLOBAL char _Protocol[40]; /* working protocol string */ static char _ProtoSys[40]; /* protocol string from Systems file entry */ static char _ProtoDev[40]; /* protocol string from Devices file entry */ -EXTERN char _ProtoCfg[]; /* protocol string from Config file entry */ - -EXTERN jmp_buf Sjbuf; -EXTERN unsigned expecttime; - -GLOBAL int Modemctrl; - -EXTERN void alarmtr(); -static void addProto(), mergeProto(), removeProto(); -static char *nextProto(); -EXTERN char *findProto(); -static void getProto(); -static int finds(); -EXTERN int getto(); /* make this static when ct uses altconn() */ -EXTERN int chat(), rddev(), expect(), wrstr(), wrchr(); -EXTERN int processdev(), getdevline(), getsysline(), sysaccess(); -EXTERN int clear_hup(); -EXTERN char *currsys(), *currdev(); -static int finds(); -static int wait_for_hangup(), expect_str(); - -EXTERN void sendthem(), nap(); -static int notin(), ifdate(), classmatch(); - -GLOBAL char *Myline = CNULL; /* to force which line will be used */ -GLOBAL char *Mytype = CNULL; /* to force selection of specific device type */ +static char _ProtoCfg[]; /* protocol string from Config file entry */ + +static jmp_buf Sjbuf; +static unsigned expecttime; + +static int Modemctrl; + +static void alarmtr(int); +static void getProto(char *, char *); +static int finds(char *, char *[], int); +static int getto(char *[]); /* make this static when ct uses altconn() */ +static int chat(int, char *[], int, char *, char *); +static int rddev(char *, char *[], char *, int); +static int expect(char *, int); +static int wrstr(int, char *, int, int); +static int wrchr(int, char *, int); +static int processdev(char *[], char *[]); +static int getdevline(char *, int); +static int getsysline(char *, int); +static int sysaccess(int); +static int clear_hup(int); +#ifndef SMALL +static char *currsys(void); +static char *currdev(void); +#endif +static int wait_for_hangup(int); +static int expect_str(char *, int); + +static void sendthem(char *, int, char *, char *); +static void nap(unsigned int); +static int notin(char *, char *); +static int ifdate(char *); +static int classmatch(char *[], char *[]); + +static char *Myline = CNULL; /* to force which line will be used */ +static char *Mytype = CNULL; /* to force selection of specific device type */ /* * conn - place a telephone call to system and login, etc. @@ -71,16 +79,13 @@ GLOBAL char *Mytype = CNULL; /* to force selection of specific device type */ * When a failure occurs, Uerror is set. */ -GLOBAL int -conn(system) -char *system; +static int +conn(char *system) { int nf, fn = FAIL; char *flds[F_MAX+1]; - EXTERN void sysreset(); + static void sysreset(void); - - trace1(TR_conn, 0); CDEBUG(4, "conn(%s)\n", system); Uerror = 0; while ((nf = finds(system, flds, F_MAX)) > 0) { @@ -89,23 +94,22 @@ char *system; if (fn < 0) continue; if (EQUALS(Progname, "uucico")) { - if (chat(nf - F_LOGIN, flds + F_LOGIN, fn,"","") == SUCCESS) { + if (chat(nf - F_LOGIN, flds + F_LOGIN, fn, "", "") == + SUCCESS) { sysreset(); - trace1(TR_conn, 1); return (fn); /* successful return */ } /* login failed */ DEBUG(6, "close caller (%d)\n", fn); fd_rmlock(fn); - close(fn); + (void) close(fn); if (Dc[0] != NULLCHAR) { - /*EMPTY*/ - DEBUG(6, "delock line (%s)\n", Dc); + /*EMPTY*/ + DEBUG(6, "delock line (%s)\n", Dc); } } else { sysreset(); - trace1(TR_conn, 1); return (fn); } } @@ -113,7 +117,6 @@ char *system; /* finds or getto failed */ sysreset(); CDEBUG(1, "Call Failed: %s\n", UERRORTEXT); - trace1(TR_conn, 1); return (FAIL); } @@ -125,23 +128,21 @@ char *system; * FAIL - failed */ -GLOBAL int -getto(flds) -char *flds[]; +static int +getto(char *flds[]) { char *dev[D_MAX+2], devbuf[BUFSIZ]; - register int status; - register int dcf = -1; + int status; + int dcf = -1; int reread = 0; int tries = 0; /* count of call attempts - for limit purposes */ - EXTERN void devreset(); - + static void devreset(void); - trace1(TR_getto, 0); CDEBUG(1, "Device Type %s wanted\n", flds[F_TYPE]); Uerror = 0; while (tries < TRYCALLS) { - if ((status=rddev(flds[F_TYPE], dev, devbuf, D_MAX)) == FAIL) { + if ((status = rddev(flds[F_TYPE], dev, devbuf, D_MAX)) == + FAIL) { if (tries == 0 || ++reread >= TRYCALLS) break; devreset(); @@ -157,7 +158,7 @@ char *flds[]; if ((dcf = processdev(flds, dev)) >= 0) break; - switch(Uerror) { + switch (Uerror) { case SS_CANT_ACCESS_DEVICE: case SS_DEVICE_FAILED: case SS_LOCKED_DEVICE: @@ -172,45 +173,34 @@ char *flds[]; CDEBUG(1, "Requested Device Type Not Found\n%s", ""); Uerror = SS_NO_DEVICE; } - trace1(TR_getto, 1); return (dcf); } /* * classmatch - process 'Any' in Devices and Systems and - * determine the correct speed, or match for == + * determine the correct speed, or match for == */ static int -classmatch(flds, dev) -char *flds[]; -char *dev[]; +classmatch(char *flds[], char *dev[]) { /* check class, check (and possibly set) speed */ - trace1(TR_classmatch, 0); - if (EQUALS(flds[F_CLASS], "Any") - && EQUALS(dev[D_CLASS], "Any")) { + if (EQUALS(flds[F_CLASS], "Any") && EQUALS(dev[D_CLASS], "Any")) { dev[D_CLASS] = DEFAULT_BAUDRATE; - trace1(TR_classmatch, 1); return (SUCCESS); } else if (EQUALS(dev[D_CLASS], "Any")) { dev[D_CLASS] = flds[F_CLASS]; - trace1(TR_classmatch, 1); return (SUCCESS); } else if (EQUALS(flds[F_CLASS], "Any") || - EQUALS(flds[F_CLASS], dev[D_CLASS])) { - trace1(TR_classmatch, 1); + EQUALS(flds[F_CLASS], dev[D_CLASS])) return (SUCCESS); - } - else { - trace1(TR_classmatch, 1); + else return (FAIL); - } } /* - * rddev - find and unpack a line from device file for this caller type + * rddev - find and unpack a line from device file for this caller type * lines starting with whitespace of '#' are comments * * return codes: @@ -218,30 +208,28 @@ char *dev[]; * FAIL - EOF */ -GLOBAL int +static int rddev(char *type, char *dev[], char *buf, int devcount) { char *commap, d_type[BUFSIZ]; int na; - - trace1(TR_rddev, 0); while (getdevline(buf, BUFSIZ)) { - if (buf[0] == ' ' || buf[0] == '\t' - || buf[0] == '\n' || buf[0] == '\0' || buf[0] == '#') + if (buf[0] == ' ' || buf[0] == '\t' || buf[0] == '\n' || + buf[0] == '\0' || buf[0] == '#') continue; na = getargs(buf, dev, devcount); ASSERT(na >= D_CALLER, "BAD LINE", buf, na); - if (strncmp(dev[D_LINE],"/dev/",5) == 0) { + if (strncmp(dev[D_LINE], "/dev/", 5) == 0) { /* since cu (altconn()) strips off leading */ /* "/dev/", do the same here. */ - strcpy(dev[D_LINE], &(dev[D_LINE][5])); + (void) strcpy(dev[D_LINE], &(dev[D_LINE][5])); } /* may have ",M" subfield in D_LINE */ Modemctrl = FALSE; - if ((commap = strchr(dev[D_LINE], ',')) != (char *)NULL) { + if ((commap = strchr(dev[D_LINE], ',')) != NULL) { if (strcmp(commap, ",M") == SAME) Modemctrl = TRUE; *commap = '\0'; @@ -251,8 +239,8 @@ rddev(char *type, char *dev[], char *buf, int devcount) * D_TYPE field may have protocol subfield, which * must be pulled off before comparing to desired type. */ - (void)strcpy(d_type, dev[D_TYPE]); - if ((commap = strchr(d_type, ',')) != (char *)NULL) + (void) strcpy(d_type, dev[D_TYPE]); + if ((commap = strchr(d_type, ',')) != NULL) *commap = '\0'; /* to force the requested device type to be used. */ @@ -266,11 +254,9 @@ rddev(char *type, char *dev[], char *buf, int devcount) if (EQUALS(d_type, type)) { getProto(_ProtoDev, dev[D_TYPE]); - trace1(TR_rddev, 1); return (na); } } - trace1(TR_rddev, 1); return (FAIL); } @@ -299,7 +285,8 @@ finds(char *sysnam, char *flds[], int fldcount) static char *info; /* dynamically allocated BUFSIZ */ int na; - /* format of fields + /* + * format of fields * 0 name; * 1 time * 2 acu/hardwired @@ -307,15 +294,13 @@ finds(char *sysnam, char *flds[], int fldcount) * etc */ - trace1(TR_finds, 0); if (sysnam == 0 || *sysnam == 0) { Uerror = SS_BADSYSTEM; - trace1(TR_finds, 1); return (FAIL); } if (info == NULL) { - info = (char *)malloc(BUFSIZ); + info = malloc(BUFSIZ); if (info == NULL) { DEBUG(1, "malloc failed for info in finds\n", 0); return (0); @@ -327,8 +312,8 @@ finds(char *sysnam, char *flds[], int fldcount) if (!EQUALSN(sysnam, flds[F_NAME], MAXBASENAME)) continue; /* check if requested Mytype device type */ - if ((Mytype != CNULL) - && (!EQUALSN(flds[F_TYPE], Mytype, strlen(Mytype)))) { + if ((Mytype != CNULL) && + (!EQUALSN(flds[F_TYPE], Mytype, strlen(Mytype)))) { DEBUG(7, "Skipping entry in '%s'", currsys()); DEBUG(7, " - type (%s) not wanted.\n", flds[F_TYPE]); continue; @@ -342,7 +327,6 @@ finds(char *sysnam, char *flds[], int fldcount) /* found a good entry */ getProto(_ProtoSys, flds[F_TYPE]); Uerror = 0; - trace1(TR_finds, 1); return (na); /* FOUND OK LINE */ } CDEBUG(1, "Wrong Time To Call: %s\n", flds[F_TIME]); @@ -350,7 +334,6 @@ finds(char *sysnam, char *flds[], int fldcount) } if (!Uerror) Uerror = SS_BADSYSTEM; - trace1(TR_finds, 1); return (FAIL); } @@ -367,210 +350,16 @@ finds(char *sysnam, char *flds[], int fldcount) */ static void -getProto(save, str) -char *save; -char *str; +getProto(char *save, char *str) { - register char *p; - + char *p; - trace1(TR_getProto, 0); *save = NULLCHAR; - if ((p=strchr(str, ',')) != NULL) { + if ((p = strchr(str, ',')) != NULL) { *p = NULLCHAR; (void) strcpy(save, p+1); DEBUG(7, "Protocol = %s\n", save); } - trace1(TR_getProto, 1); - return; -} - -/* - * check for a specified protocol selection string - * return: - * protocol string pointer - * NULL if none specified for LOGNAME - */ -GLOBAL char * -protoString(valid) -char *valid; -{ - char *save; - - - trace1(TR_protoString, 0); - save =strdup(valid); - _Protocol[0] = '\0'; - - if (_ProtoSys[0] != '\0') - addProto(_ProtoSys, valid); - if (_ProtoDev[0] != '\0') - addProto(_ProtoDev, valid); - if (_ProtoCfg[0] != '\0') - addProto(_ProtoCfg, valid); - - if (_Protocol[0] == '\0') { - (void) strcpy(valid, save); - (void) strcpy(_Protocol, save); - } - - trace1(TR_protoString, 1); - return (_Protocol[0] == NULLCHAR ? NULL : _Protocol); -} - -/* - * addProto - * - * Verify that the desired protocols from the Systems and Devices file - * have been compiled into this application. - * - * desired - list of desired protocols - * valid - list of protocols that are compiled in. - */ - -static void -addProto (desired, valid) -char *desired; -char *valid; -{ - register char * protoPtr; - register char * wantPtr; - - trace1(TR_addProto, 0); - if (*desired == '\0') { - trace1(TR_addProto, 1); - return; - } - - if (*(protoPtr = _Protocol) != NULLCHAR) { - while (*(protoPtr = nextProto(protoPtr)) != NULLCHAR) { - if (*(wantPtr = findProto(desired, *protoPtr)) == NULLCHAR) { - removeProto(valid, *protoPtr); - removeProto(protoPtr, *protoPtr); - } else { - mergeProto(protoPtr, wantPtr); - protoPtr++; - } - } - } else { - wantPtr = desired; - while (*(wantPtr = nextProto(wantPtr)) != NULLCHAR) { - if (*(findProto(valid, *wantPtr)) != NULLCHAR) { - mergeProto(protoPtr, wantPtr); - } - wantPtr++; - } - } - if (*(protoPtr = _Protocol) != NULLCHAR) { - while (*(protoPtr = nextProto(protoPtr)) != NULLCHAR) - *(valid++) = *(protoPtr++); - *valid = NULLCHAR; - } - trace1(TR_addProto, 1); - return; -} - -/* - * mergeProto - * - * input - * char *tostring, *fromstring; - */ -static void -mergeProto(tostring, fromstring) -char *tostring, *fromstring; -{ - char buffer[BUFSIZ]; - int length; - - trace1(TR_mergeProto, 0); - while (*(tostring = nextProto(tostring)) != NULLCHAR) { - if (*tostring == *fromstring) - break; - else - tostring++; - } - - if (*tostring == NULLCHAR) { - length = nextProto(fromstring + 1) - fromstring; - (void) strncpy(tostring, fromstring, length); - *(tostring + length) = NULLCHAR; - } else { - tostring++; - fromstring++; - if ((*tostring != '(') && (*fromstring == '(')) { - (void) strcpy(buffer, tostring); - length = nextProto(fromstring) - fromstring; - (void) strncpy(tostring, fromstring, length); - (void) strcpy(tostring+length, buffer); - } - } - trace1(TR_mergeProto, 1); - return; -} - -/* - * removeProto - * - * char *old - * char letter - * - * return - * none - */ -static void -removeProto(string, letter) -char *string, letter; -{ - trace1(TR_removeProto, 0); - while (*(string = nextProto(string)) != NULLCHAR) { - if (*string == letter) - (void) strcpy(string, nextProto(string+1)); - else - string++; - } - trace1(TR_removeProto, 1); -} - -/* - * nextProto - * char *string; - * return - * char * to next non-parameter letter - */ -static char * -nextProto(string) -char *string; -{ - trace1(TR_nextProto, 0); - if (*string == '(') - while (*string != NULLCHAR) - if (*(string++) == ')') - break; - trace1(TR_nextProto, 1); - return (string); -} - -/* - * findProto - * char *desired, - * char protoPtr; - * return - * char *pointer to found or string terminating NULLCHAR - */ -GLOBAL char * -findProto(string, letter) -char *string; -char letter; -{ - trace1(TR_findProto, 0); - while (*(string = nextProto(string)) != NULLCHAR) - if (*string == letter) - break; - else - string++; - trace1(TR_findProto, 1); - return (string); } /* @@ -585,15 +374,12 @@ char letter; * return codes: 0 | FAIL */ -GLOBAL int -chat(nf, flds, fn, phstr1, phstr2) -char *flds[], *phstr1, *phstr2; -int nf, fn; +static int +chat(int nf, char *flds[], int fn, char *phstr1, char *phstr2) { char *want, *altern; int k, ok; - trace3(TR_chat, 0, nf, fn); for (k = 0; k < nf; k += 2) { want = flds[k]; ok = FAIL; @@ -607,7 +393,6 @@ int nf, fn; if (altern == NULL) { Uerror = SS_LOGIN_FAILED; logent(UERRORTEXT, "FAILED"); - trace1(TR_chat, 1); return (FAIL); } want = index(altern, '-'); @@ -615,15 +400,14 @@ int nf, fn; *want++ = NULLCHAR; sendthem(altern, fn, phstr1, phstr2); } - sleep(2); + (void) sleep(2); if (flds[k+1]) sendthem(flds[k+1], fn, phstr1, phstr2); } - trace1(TR_chat, 1); return (0); } -#define MR 1000 +#define MR 1000 /* * expect(str, fn) look for expected string w/ possible special chars @@ -635,12 +419,10 @@ int nf, fn; * some character - timed out */ -GLOBAL int -expect(str, fn) -char *str; -int fn; +static int +expect(char *str, int fn) { - register char *bptr, *sptr; + char *bptr, *sptr; char buf[BUFSIZ]; bptr = buf; @@ -685,21 +467,18 @@ int fn; * some character - timed out */ -GLOBAL int -expect_str(str, fn) -char *str; -int fn; +static int +expect_str(char *str, int fn) { static char rdvec[MR]; char *rp = rdvec; - register int kr, c; + int kr, c; char nextch; - trace2(TR_expect, 0, fn); *rp = 0; CDEBUG(4, "expect: (%s", ""); - for (c=0; (kr=str[c]) != 0 ; c++) + for (c = 0; (kr = str[c]) != 0; c++) if (kr < 040) { /*EMPTY*/ CDEBUG(4, "^%c", kr | 0100); @@ -711,26 +490,21 @@ int fn; if (EQUALS(str, "\"\"")) { CDEBUG(4, "got it\n%s", ""); - trace1(TR_expect, 1); return (0); } - if (*str== '\0') { - return(0); - } - if (setjmp(Sjbuf)) { - trace1(TR_expect, 1); + if (*str == '\0') + return (0); + if (setjmp(Sjbuf)) return (FAIL); - } (void) signal(SIGALRM, alarmtr); - alarm(expecttime); + (void) alarm(expecttime); while (notin(str, rdvec)) { errno = 0; kr = (*Read)(fn, &nextch, 1); if (kr <= 0) { - alarm(0); + (void) alarm(0); CDEBUG(4, "lost line errno - %d\n", errno); logent("LOGIN", "LOST LINE"); - trace1(TR_expect, 1); return (FAIL); } c = nextch & 0177; @@ -740,15 +514,13 @@ int fn; rp++; if (rp >= rdvec + MR) { CDEBUG(4, "enough already\n%s", ""); - alarm(0); - trace1(TR_expect, 1); + (void) alarm(0); return (FAIL); } *rp = NULLCHAR; } - alarm(0); + (void) alarm(0); CDEBUG(4, "got it\n%s", ""); - trace1(TR_expect, 1); return (0); } @@ -757,32 +529,28 @@ int fn; * alarmtr() - catch alarm routine for "expect". */ /*ARGSUSED*/ -GLOBAL void -alarmtr(sig) -int sig; +static void +alarmtr(int sig) { - trace2(TR_alarmtr, 0, sig); CDEBUG(6, "timed out\n%s", ""); longjmp(Sjbuf, 1); - trace2(TR_alarmtr, 1, sig); } /* * wait_for_hangup() - wait for a hangup to occur on the given device */ int -wait_for_hangup(dcf) - int dcf; +wait_for_hangup(int dcf) { int rval; char buff[BUFSIZ]; CDEBUG(4, "Waiting for hangup\n%s", ""); - while((rval = read(dcf, buff, BUFSIZ)) > 0); + while ((rval = read(dcf, buff, BUFSIZ)) > 0) + ; - if (rval < 0) { + if (rval < 0) return (FAIL); - } CDEBUG(4, "Received hangup\n%s", ""); if (clear_hup(dcf) != SUCCESS) { @@ -791,7 +559,7 @@ wait_for_hangup(dcf) } return (SUCCESS); } - + /* * sendthem(str, fn, phstr1, phstr2) send line of chat sequence * char *str, *phstr; @@ -799,38 +567,33 @@ wait_for_hangup(dcf) * return codes: none */ -#define FLUSH() {\ - if ((bptr - buf) > 0)\ - if (wrstr(fn, buf, bptr - buf, echocheck) != SUCCESS)\ - goto err;\ - bptr = buf;\ +#define FLUSH() { \ + if ((bptr - buf) > 0) \ + if (wrstr(fn, buf, bptr - buf, echocheck) != SUCCESS) \ + goto err; \ + bptr = buf; \ } -GLOBAL void -sendthem(str, fn, phstr1, phstr2) -char *str, *phstr1, *phstr2; -int fn; +static void +sendthem(char *str, int fn, char *phstr1, char *phstr2) { int sendcr = 1, echocheck = 0; - register char *sptr, *bptr; + char *sptr, *bptr; char buf[BUFSIZ]; struct termio ttybuf; /* should be EQUALS, but previous versions had BREAK n for integer n */ - trace2(TR_sendthem, 0, fn); if (PREFIX("BREAK", str)) { /* send break */ CDEBUG(5, "BREAK\n%s", ""); (*genbrk)(fn); - trace1(TR_sendthem, 1); return; } if (EQUALS(str, "EOT")) { CDEBUG(5, "EOT\n%s", ""); (void) (*Write)(fn, EOTMSG, strlen(EOTMSG)); - trace1(TR_sendthem, 1); return; } @@ -843,7 +606,7 @@ int fn; CDEBUG(5, "sendthem (%s", ""); for (sptr = str; *sptr; sptr++) { if (*sptr == '\\') { - switch(*++sptr) { + switch (*++sptr) { /* adjust switches */ case 'c': /* no CR after string */ @@ -859,13 +622,13 @@ int fn; } /* stash in buf and continue */ - switch(*sptr) { + switch (*sptr) { case 'D': /* raw phnum */ - strcpy(bptr, phstr1); + (void) strcpy(bptr, phstr1); bptr += strlen(bptr); continue; case 'T': /* translated phnum */ - strcpy(bptr, phstr2); + (void) strcpy(bptr, phstr2); bptr += strlen(bptr); continue; case 'N': /* null */ @@ -879,7 +642,7 @@ int fn; continue; default: /* send the backslash */ *bptr++ = '\\'; - *bptr++ = *sptr; + *bptr++ = *sptr; continue; /* flush buf, perform action, and continue */ @@ -896,7 +659,7 @@ int fn; case 'd': /* sleep briefly */ FLUSH(); CDEBUG(5, "DELAY\n%s", ""); - sleep(2); + (void) sleep(2); continue; case 'p': /* pause momentarily */ FLUSH(); @@ -913,17 +676,21 @@ int fn; FLUSH(); CDEBUG(5, ")\n%s CLOCAL ", (*sptr == 'M' ? "set" : "clear")); - if ((*Ioctl)(fn, TCGETA, &ttybuf) != 0 ) { + if ((*Ioctl)(fn, TCGETA, &ttybuf) != 0) { /*EMPTY*/ - CDEBUG(5, "ignored. TCGETA failed, errno %d", errno); + CDEBUG(5, + "ignored. TCGETA failed, errno %d", + errno); } else { if (*sptr == 'M') ttybuf.c_cflag |= CLOCAL; else ttybuf.c_cflag &= ~CLOCAL; if ((*Ioctl)(fn, TCSETAW, &ttybuf) != 0) - /*EMPTY*/ - CDEBUG(5, "failed. TCSETAW failed, errno %d", errno); + /*EMPTY*/ + CDEBUG(5, + "failed. TCSETAW failed, errno %d", + errno); } CDEBUG(5, "\n%s", ""); continue; @@ -938,30 +705,24 @@ int fn; err: CDEBUG(5, ")\n%s", ""); - trace1(TR_sendthem, 1); - return; } #undef FLUSH -GLOBAL int +static int wrstr(int fn, char *buf, int len, int echocheck) { - int i; - int dummy; + int i; char dbuf[BUFSIZ], *dbptr = dbuf; - trace1(TR_wrstr, 0); buf[len] = 0; - if (echocheck) { - dummy = wrchr(fn, buf, len); - trace1(TR_wrstr, 1); - return (dummy); - } + if (echocheck) + return (wrchr(fn, buf, len)); if (Debug >= 5) { - if (sysaccess(ACCESS_SYSTEMS) == 0) { /* Systems file access ok */ + if (sysaccess(ACCESS_SYSTEMS) == 0) { + /* Systems file access ok */ for (i = 0; i < len; i++) { *dbptr = buf[i]; if (*dbptr < 040) { @@ -972,29 +733,23 @@ wrstr(int fn, char *buf, int len, int echocheck) } *dbptr = 0; } else - strcpy(dbuf, "????????"); + (void) strcpy(dbuf, "????????"); CDEBUG(5, "%s", dbuf); } - if ((*Write)(fn, buf, len) != len) { - trace1(TR_wrstr, 1); + if ((*Write)(fn, buf, len) != len) return (FAIL); - } - trace1(TR_wrstr, 1); return (SUCCESS); } -GLOBAL int +static int wrchr(int fn, char *buf, int len) { - int i, saccess; + int i, saccess; char cin, cout; - trace2(TR_wrchr, 0, fn); saccess = (sysaccess(ACCESS_SYSTEMS) == 0); /* protect Systems file */ - if (setjmp(Sjbuf)) { - trace1(TR_wrchr, 1); + if (setjmp(Sjbuf)) return (FAIL); - } (void) signal(SIGALRM, alarmtr); for (i = 0; i < len; i++) { @@ -1007,16 +762,12 @@ wrchr(int fn, char *buf, int len) /*EMPTY*/ CDEBUG(5, "?%s", ""); } - if (((*Write)(fn, &cout, 1)) != 1) { - trace1(TR_wrchr, 1); + if (((*Write)(fn, &cout, 1)) != 1) return (FAIL); - } do { (void) alarm(expecttime); - if ((*Read)(fn, &cin, 1) != 1) { - trace1(TR_wrchr, 1); + if ((*Read)(fn, &cin, 1) != 1) return (FAIL); - } (void) alarm(0); cin &= 0177; if (saccess) { @@ -1029,7 +780,6 @@ wrchr(int fn, char *buf, int len) } } while (cout != (cin & 0177)); } - trace1(TR_wrchr, 1); return (SUCCESS); } @@ -1044,19 +794,14 @@ wrchr(int fn, char *buf, int len) */ static int -notin(sh, lg) -char *sh, *lg; +notin(char *sh, char *lg) { - trace1(TR_notin, 0); while (*lg != NULLCHAR) { - if (PREFIX(sh, lg)) { - trace1(TR_notin, 1); + if (PREFIX(sh, lg)) return (0); - } else lg++; } - trace1(TR_notin, 1); return (1); } @@ -1081,8 +826,7 @@ char *sh, *lg; */ static int -ifdate(s) -char *s; +ifdate(char *s) { static char *days[] = { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", 0 @@ -1092,8 +836,7 @@ char *s; char *p; struct tm *tp; - trace1(TR_ifdate, 0); - time(&clock); + (void) time(&clock); tp = localtime(&clock); t__now = tp->tm_hour * 100 + tp->tm_min; /* "navy" time */ @@ -1131,22 +874,16 @@ char *s; while (isalpha(*s)) /* flush remaining day stuff */ s++; - if ((sscanf(s, "%d-%d", &t__low, &t__high) < 2) - || (t__low == t__high)) { - trace1(TR_ifdate, 1); + if ((sscanf(s, "%d-%d", &t__low, &t__high) < 2) || + (t__low == t__high)) return (1); - } /* 0000 crossover? */ if (t__low < t__high) { - if (t__low <= t__now && t__now <= t__high) { - trace1(TR_ifdate, 1); + if (t__low <= t__now && t__now <= t__high) return (1); - } - } else if (t__low <= t__now || t__now <= t__high) { - trace1(TR_ifdate, 1); + } else if (t__low <= t__now || t__now <= t__high) return (1); - } /* aim at next time slot */ if ((s = index(s, ',')) == NULL) @@ -1155,7 +892,6 @@ char *s; if (*s) s++; } - trace1(TR_ifdate, 1); return (0); } @@ -1166,170 +902,29 @@ char *s; * return - pointer to first digit in string or end of string */ -GLOBAL char * -fdig(cp) -char *cp; +static char * +fdig(char *cp) { char *c; - trace1(TR_fdig, 0); for (c = cp; *c; c++) if (*c >= '0' && *c <= '9') break; - trace1(TR_fdig, 1); return (c); } - -#ifdef FASTTIMER -/* Sleep in increments of 60ths of second. */ -GLOBAL void -nap (time) -register int time; -{ - static int fd; - - trace2(TR_nap, 0, time); - if (fd == 0) - fd = open (FASTTIMER, 0); - - (void) (*Read)(fd, 0, time); - trace1(TR_nap, 1); - return; -} - -#endif /* FASTTIMER */ - -#if defined(BSD4_2) || defined(ATTSVR4) - /* nap(n) -- sleep for 'n' ticks of 1/60th sec each. */ /* This version uses the select system call */ -GLOBAL void -nap(n) -unsigned n; +static void +nap(unsigned int n) { struct timeval tv; - int rc; - trace2(TR_nap, 0, n); - if (n==0) { - trace1(TR_nap, 1); + if (n == 0) return; - } tv.tv_sec = n/60; tv.tv_usec = ((n%60)*1000000L)/60; - rc = select(32, 0, 0, 0, &tv); - trace1(TR_nap, 1); - return; -} - -#endif /* BSD4_2 || ATTSVR4 */ - -#ifdef NONAP - -/* nap(n) where n is ticks - * - * loop using n/HZ part of a second - * if n represents more than 1 second, then - * use sleep(time) where time is the equivalent - * seconds rounded off to full seconds - * NOTE - this is a rough approximation and chews up - * processor resource! - */ - -GLOBAL void -nap(n) -unsigned n; -{ - struct tms tbuf; - long endtime; - int i; - - trace2(TR_nap, 0, n); - if (n > HZ) { - /* > second, use sleep, rounding time */ - sleep((int) (((n)+HZ/2)/HZ)); - trace1(TR_nap, 1); - return; - } - - /* use timing loop for < 1 second */ - endtime = times(&tbuf) + 3*n/4; /* use 3/4 because of scheduler! */ - while (times(&tbuf) < endtime) { - for (i=0; i<1000; i++, (void) (i*i)) - ; - } - trace1(TR_nap, 1); - return; -} - -#endif /* NONAP */ - -/* - - * altconn - place a telephone call to system - * from cu when telephone number or direct line used - * - * return codes: - * FAIL - connection failed - * >0 - file no. - connect ok - * When a failure occurs, Uerror is set. - */ -GLOBAL int -altconn(call) -struct call *call; -{ - int fn = FAIL; - char *alt[7]; - EXTERN char *Myline; - - /* - * replace the Systems file fields - * needed for getto(); [F_TYPE] and - * [F_PHONE] assignment below. - */ - alt[F_NAME] = "dummy"; - alt[F_TIME] = "Any"; - alt[F_TYPE] = ""; - alt[F_CLASS] = call->speed; - alt[F_PHONE] = ""; - alt[F_LOGIN] = ""; - alt[6] = NULL; - - trace1(TR_altconn, 0); - CDEBUG(4,"altconn called\r\n%s", ""); - - /* cu -l dev ... */ - /* if is "/dev/device", strip off "/dev/" because must */ - /* exactly match entries in Devices file, which usually */ - /* omit the "/dev/". if doesn't begin with "/dev/", */ - /* either they've omitted the "/dev/" or it's a non- */ - /* standard path name. in either case, leave it as is */ - - if (call->line != NULL) { - if (strncmp(call->line, "/dev/", 5) == 0) { - Myline = (call->line + 5); - } else { - Myline = call->line; - } - } - - /* cu ... telno */ - if (call->telno != NULL) { - alt[F_PHONE] = call->telno; - alt[F_TYPE] = "ACU"; - } else { - /* cu direct line */ - alt[F_TYPE] = "Direct"; - } - if (call->type != NULL) - alt[F_TYPE] = call->type; - fn = getto(alt); - CDEBUG(4, "getto ret %d\n", fn); - - trace1(TR_altconn, 1); - return (fn); - + (void) select(32, 0, 0, 0, &tv); } diff --git a/usr/src/lib/libnsl/dial/dial.c b/usr/src/lib/libnsl/dial/dial.c index 725feb7522..9aa5a2c75a 100644 --- a/usr/src/lib/libnsl/dial/dial.c +++ b/usr/src/lib/libnsl/dial/dial.c @@ -19,13 +19,19 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* All Rights Reserved */ +#pragma ident "%Z%%M% %I% %E% SMI" -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ -/*LINTLIBRARY*/ -/*************************************************************** +/* + * ************************************************************* * dial() returns an fd for an open tty-line connected to the * specified remote. The caller should trap all ways to * terminate, and call undial(). This will release the `lock' @@ -59,7 +65,7 @@ * char *telno; ptr to tel-no digit string * int modem no longer used -- * left in for backwards compatibility - * char *device no longer used -- + * char *device no longer used -- * left in for backwards compatibility * int dev_len no longer used -- * left in for backwards compatibility @@ -77,7 +83,7 @@ * NO_Ldv -7: can't open Devices file * DV_NT_A -8: specified device not available * DV_NT_K -9: specified device not known - * NO_BD_A -10: no device available at requested baud-rate + * NO_BD_A -10: no dev available at requested baud-rate * NO_BD_K -11: no device known at requested baud-rate * DV_NT_E -12: requested speed does not match * BAD_SYS -13: system not in Systems file @@ -90,7 +96,8 @@ * * With an error return (negative value), there will not be * any `lock-file' entry, so no need to call undial(). - ***************************************************************/ + * ************************************************************* + */ #include <stdio.h> #include <stdlib.h> @@ -100,7 +107,6 @@ #include <setjmp.h> #include <sys/stat.h> #include <sys/times.h> -#include <rpc/trace.h> #include "dial.h" @@ -118,82 +124,49 @@ #include "sysfiles.c" #include "ulockf.c" -#ifdef DATAKIT -#include "dkbreak.c" -#include "dkerr.c" -#include "dkdial.c" -#include "dkminor.c" -#include "dtnamer.c" -#endif - static int rlfd; /* fd for remote comm line */ -GLOBAL jmp_buf Sjbuf; /* needed by connection routines */ +static jmp_buf Sjbuf; /* needed by connection routines */ /* VARARGS */ /* ARGSUSED */ static void -assert(s1, s2, i1, s3, i2) -#if defined(__STDC__) -const char *s1, *s2, *s3; -#else -char *s1, *s2, *s3; -#endif -int i1, i2; +assert(const char *s1, const char *s2, int i1, const char *s3, int i2) { /* for ASSERT in conn() */ - trace3(TR_assert, 0, i1, i2); - trace3(TR_assert, 1, i1, i2); } /* ARGSUSED */ static void -logent(s1, s2) -#if defined(__STDC__) -const char *s1, *s2; -#else -char *s1, *s2; -#endif +logent(const char *s1, const char *s2) { /* so we can load unlockf() */ - trace1(TR_logent, 0); - trace1(TR_logent, 1); } static void -cleanup(Cn) /* this is executed only in the parent process */ -int Cn; /* fd for remote comm line */ +cleanup(int Cn) /* this is executed only in the parent process */ { - - trace2(TR_cleanup, 0, Cn); (void) restline(); (void) setuid(Euid); if (Cn > 0) (void) close(Cn); - - rmlock((char*) NULL); /* uucp routine in ulockf.c */ - trace1(TR_cleanup, 1); - return; /* code=negative for signal causing disconnect */ + rmlock(NULL); /* uucp routine in ulockf.c */ } int -dial(call) -CALL call; +dial(CALL call) { -char *alt[7]; -char speed[10]; /* character value of speed passed to dial */ + char *alt[7]; + char speed[10]; /* character value of speed passed to dial */ /* set service so we know which Sysfiles entries to use, then */ /* be sure can access Devices file(s). use "cu" entries ... */ /* dial is more like cu than like uucico. */ - trace1(TR_dial, 0); (void) strcpy(Progname, "cu"); setservice(Progname); - if (sysaccess(EACCESS_DEVICES) != 0) { + if (sysaccess(EACCESS_DEVICES) != 0) /* can't read Devices file(s) */ - trace1(TR_dial, 1); return (NO_Ldv); - } if (call.attr != NULL) { if (call.attr->c_cflag & PARENB) { @@ -204,9 +177,9 @@ char speed[10]; /* character value of speed passed to dial */ } if (call.speed <= 0) - strcpy(speed, "Any"); + (void) strcpy(speed, "Any"); else - sprintf(speed, "%d", call.speed); + (void) sprintf(speed, "%d", call.speed); /* Determine whether contents of "telno" is a system name. */ if ((call.telno != NULL) && @@ -249,50 +222,38 @@ char speed[10]; /* character value of speed passed to dial */ if (rlfd < 0) switch (Uerror) { case SS_NO_DEVICE: - trace1(TR_dial, 1); - return (NO_BD_A); + return (NO_BD_A); case SS_DIAL_FAILED: - trace1(TR_dial, 1); - return (D_HUNG); + return (D_HUNG); case SS_LOCKED_DEVICE: - trace1(TR_dial, 1); - return (DV_NT_A); + return (DV_NT_A); case SS_BADSYSTEM: - trace1(TR_dial, 1); - return (BAD_SYS); + return (BAD_SYS); case SS_CANT_ACCESS_DEVICE: - trace1(TR_dial, 1); - return (L_PROB); + return (L_PROB); case SS_CHAT_FAILED: - trace1(TR_dial, 1); - return (NO_ANS); + return (NO_ANS); default: - trace1(TR_dial, 1); - return (-Uerror); + return (-Uerror); } (void) savline(); if ((call.attr) && ioctl(rlfd, TCSETA, call.attr) < 0) { perror("stty for remote"); - trace1(TR_dial, 1); return (L_PROB); } Euid = geteuid(); if (setuid(getuid()) && setgid(getgid()) < 0) undial(rlfd); - trace1(TR_dial, 1); return (rlfd); } /* -* undial(fd) -*/ + * undial(fd) + */ void -undial(fd) -int fd; +undial(int fd) { - trace2(TR_undial, 0, fd); sethup(fd); - sleep(2); + (void) sleep(2); cleanup(fd); - trace1(TR_undial, 1); } diff --git a/usr/src/lib/libnsl/dial/getargs.c b/usr/src/lib/libnsl/dial/getargs.c index b469b60d11..416fb36c3e 100644 --- a/usr/src/lib/libnsl/dial/getargs.c +++ b/usr/src/lib/libnsl/dial/getargs.c @@ -19,14 +19,18 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> /* * generate a vector of pointers (arps) to the @@ -40,14 +44,11 @@ * arps[i] = NULL */ -GLOBAL int -getargs(s, arps, count) -register char *s, *arps[]; -register int count; +static int +getargs(char *s, char *arps[], int count) { - register int i; + int i; - trace2(TR_getargs, 0, count); for (i = 0; i < count; i++) { while (*s == ' ' || *s == '\t') *s++ = '\0'; @@ -56,12 +57,10 @@ register int count; if (*s == '\0') break; arps[i] = s++; - while (*s != '\0' && *s != ' ' - && *s != '\t' && *s != '\n') - s++; + while (*s != '\0' && *s != ' ' && *s != '\t' && *s != '\n') + s++; } arps[i] = NULL; - trace1(TR_getargs, 1); return (i); } @@ -75,19 +74,17 @@ register int count; * \n gets replaced by a newline * \r gets replaced by a carriage return * \b gets replaced by a backspace - * \s gets replaced by a blank + * \s gets replaced by a blank * any other unknown \ sequence is left intact for further processing * downline. */ -GLOBAL void -bsfix (args) -char **args; +static void +bsfix(char **args) { - register char *str, *to, *cp; - register int num; + char *str, *to, *cp; + int num; - trace1(TR_bsfix, 0); for (; *args; args++) { str = *args; for (to = str; *str; str++) { @@ -103,22 +100,19 @@ char **args; case '5': case '6': case '7': - for ( num = 0, cp = str - ; cp - str < 3 - ; cp++ - ) { + for (num = 0, cp = str; + cp - str < 3; cp++) { if ('0' <= *cp && *cp <= '7') { num <<= 3; num += *cp - '0'; - } - else + } else break; } if (num == 0) { *to++ = '\\'; *to++ = 'N'; } else - *to++ = (char) num; + *to++ = (char)num; str = cp-1; break; @@ -126,7 +120,7 @@ char **args; *to++ = '\t'; break; - case 's': + case 's': *to++ = ' '; break; @@ -153,6 +147,4 @@ char **args; } *to = '\0'; } - trace1(TR_bsfix, 1); - return; } diff --git a/usr/src/lib/libnsl/dial/interface.c b/usr/src/lib/libnsl/dial/interface.c index bd69864ba7..3c789c1b0a 100644 --- a/usr/src/lib/libnsl/dial/interface.c +++ b/usr/src/lib/libnsl/dial/interface.c @@ -19,90 +19,67 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" -/* interface( label ) - provide alternate definitions for the I/O functions through global - interfaces. -*/ +/* + * interface( label ) + * provide alternate definitions for the I/O functions through global + * interfaces. + */ #include "uucp.h" -#include <rpc/trace.h> - +#include <unistd.h> #ifdef TLI #include <tiuser.h> -char *t_alloc(); -int t_bind(), t_close(), t_connect(), t_free(), t_look(), t_open(), t_rcvdis(); -int t_getinfo(), t_getstate(), t_look(), t_rcv(), t_snd(), t_sync(), t_unbind(); #endif /* TLI */ -#ifdef DATAKIT -#include "dk.h" - -static int dksetup(); -static int dkteardown(); -#endif /* DATAKIT */ - -EXTERN void sethup(); -EXTERN int restline(); -extern ssize_t read(), write(); -static int usetup(), uteardown(); +static void sethup(int); +static int restline(void); +static int usetup(int, int *, int *); +static int uteardown(int, int, int); -GLOBAL ssize_t (*Read)() = read, +static ssize_t (*Read)() = read, (*Write)() = write; -GLOBAL int (*Ioctl)(int,int,...) = ioctl, - (*Setup)() = usetup, - (*Teardown)() = uteardown; +static int (*Ioctl)(int, int, ...) = ioctl, + (*Setup)() = usetup; #ifdef TLI -EXTERN void tfaillog(int fd, const char *s); -EXTERN void show_tlook(); -static ssize_t tread(), twrite(); /* TLI i/o */ -static int tioctl(int, int, ...), - tsetup(), /* TLI setup without streams module */ - tssetup(), /* TLI setup with streams module */ - tteardown(); /* TLI teardown, works with either setup - */ +static void tfaillog(int fd, const char *s); +static void show_tlook(int); +static ssize_t tread(int, char *, unsigned); +static ssize_t twrite(int, char *, unsigned); +static int tioctl(int, int, ...); +static int tsetup(int, int *, int *); /* TLI setup without streams module */ +static int tssetup(int, int *, int *); /* TLI setup with streams module */ +static int tteardown(int, int, int); /* TLI teardown, works with either setup */ #endif /* TLI */ -/* The IN_label in Interface[] imply different caller routines: - e.g. tlicall(). - If so, the names here and the names in callers.c must match. -*/ -static - struct Interface { - const char *IN_label; /* interface name */ +/* + * The IN_label in Interface[] imply different caller routines: + * e.g. tlicall(). + * If so, the names here and the names in callers.c must match. + */ +static struct Interface { + const char *IN_label; /* interface name */ ssize_t (*IN_read)(); /* read function */ ssize_t (*IN_write)(); /* write function */ - int (*IN_ioctl)(int,int,...); - int (*IN_setup)(); /* setup function, called before first - i/o operation */ - int (*IN_teardown)(); /* teardown function, called after last - i/o operation */ + int (*IN_ioctl)(int, int, ...); + int (*IN_setup)(); /* setup function, called before */ + /* first i/o operation */ + int (*IN_teardown)(); /* teardown function, called after */ + /* last i/o operation */ } Interface[] = { /* vanilla UNIX */ { "UNIX", read, write, ioctl, usetup, uteardown }, -#ifdef SYTEK - /* Sytek network */ - { "Sytek", read, write, ioctl, usetup, uteardown }, -#endif /* Sytek network */ -#ifdef DIAL801 - /* 801 auto dialers */ - { "801", read, write, ioctl, usetup, uteardown }, -#endif /* DIAL801 */ -#ifdef DIAL801 - /* 212 auto dialers */ - { "212", read, write, ioctl, usetup, uteardown }, -#endif /* DIAL801 */ #ifdef TLI /* AT&T Transport Interface Library WITHOUT streams */ { "TLI", tread, twrite, tioctl, tsetup, tteardown }, @@ -111,39 +88,25 @@ static { "TLIS", read, write, tioctl, tssetup, uteardown }, #endif /* TLIS */ #endif /* TLI */ -#ifdef DATAKIT - { "DK", read, write, ioctl, dksetup, dkteardown }, -#endif /* DATAKIT */ -#ifdef UNET /* this should work for 4.2BSD and 3com */ - { "TCP", read, write, ioctl, usetup, uteardown }, -#endif -#ifdef UNET - { "Unetserver", read, write, ioctl, usetup, uteardown }, -#endif { 0, 0, 0, 0, 0, 0 } }; -GLOBAL int -interface(label) -char *label; +static int +interface(const char *label) { - register int i; + int i; - trace1(TR_interface, 0); for (i = 0; Interface[i].IN_label; ++i) { - if (!strcmp(Interface[i].IN_label, label)) { + if (strcmp(Interface[i].IN_label, label) == 0) { Read = Interface[i].IN_read; Write = Interface[i].IN_write; Ioctl = Interface[i].IN_ioctl; Setup = Interface[i].IN_setup; - Teardown = Interface[i].IN_teardown; DEBUG(5, "set interface %s\n", label); - trace1(TR_interface, 1); return (0); } } - trace1(TR_interface, 1); return (FAIL); } @@ -153,13 +116,11 @@ char *label; static int usetup(int role, int *fdreadp, int *fdwritep) { - trace1(TR_usetup, 0); if (role == SLAVE) { *fdreadp = 0; *fdwritep = 1; /* 2 has been re-opened to RMTDEBUG in main() */ } - trace1(TR_usetup, 1); return (SUCCESS); } @@ -169,125 +130,49 @@ usetup(int role, int *fdreadp, int *fdwritep) static int uteardown(int role, int fdread, int fdwrite) { - int ret; char *ttyn; - trace1(TR_uteardown, 0); if (role == SLAVE) { - ret = restline(); - DEBUG(4, "ret restline - %d\n", ret); + (void) restline(); sethup(0); } if (fdread != -1) { ttyn = ttyname(fdread); if (ttyn != NULL) - chmod(ttyn, Dev_mode); /* can fail, but who cares? */ + /* can fail, but who cares? */ + (void) chmod(ttyn, Dev_mode); (void) close(fdread); (void) close(fdwrite); } - trace1(TR_uteardown, 1); - return (SUCCESS); -} - -#ifdef DATAKIT -/* - * dksetup - DATAKIT setup routine - * - * Put line in block mode. - */ - -static int -dksetup (role, fdreadp, fdwritep) -int role; -int * fdreadp; -int * fdwritep; -{ - static short dkrmode[3] = { DKR_BLOCK | DKR_TIME, 0, 0 }; - int ret; - - trace2(TR_dksetup, 0, role); - (void) usetup(role, fdreadp, fdwritep); - if ((ret = (*Ioctl)(*fdreadp, DIOCRMODE, dkrmode)) < 0) { - DEBUG(4, "dksetup: failed to set block mode. ret=%d,\n", ret); - DEBUG(4, "read fd=%d, ", *fdreadp); - DEBUG(4, "errno=%d\n", errno); - trace1(TR_dksetup, 1); - return (FAIL); - } - trace1(TR_dksetup, 1); return (SUCCESS); } -/* - * dkteardown - DATAKIT teardown routine - */ -static int -dkteardown(role, fdread, fdwrite) -int role, fdread, fdwrite; -{ - char *ttyn; - - trace4(TR_dkteardown, 0, role, fdread, fdwrite); - if (role == MASTER) { - ttyn = ttyname(fdread); - if (ttyn != NULL) - chmod(ttyn, Dev_mode); /* can fail, but who cares? */ - } - - /* must flush fd's for datakit */ - /* else close can hang */ - if (ioctl(fdread, DIOCFLUSH, NULL) != 0) - DEBUG(4, "dkteardown: DIOCFLUSH of input fd %d failed", fdread); - if (ioctl(fdwrite, DIOCFLUSH, NULL) != 0) - DEBUG(4, "dkteardown: DIOCFLUSH of output fd %d failed", fdwrite); - - (void) close(fdread); - (void) close(fdwrite); - trace1(TR_dkteardown, 1); - return (SUCCESS); -} -#endif /* DATAKIT */ - - #ifdef TLI /* * tread - tli read routine */ static ssize_t -tread(fd, buf, nbytes) -int fd; -char *buf; -unsigned nbytes; +tread(int fd, char *buf, unsigned nbytes) { int rcvflags; - int dummy; - trace2(TR_tread, 0, fd); - dummy = t_rcv(fd, buf, nbytes, &rcvflags); - trace1(TR_tread, 1); - return ((ssize_t)dummy); -} + return ((ssize_t)t_rcv(fd, buf, nbytes, &rcvflags)); +} /* * twrite - tli write routine */ #define N_CHECK 100 static ssize_t -twrite(fd, buf, nbytes) -int fd; -char *buf; -unsigned nbytes; +twrite(int fd, char *buf, unsigned nbytes) { - register int i, ret; + int i, ret; static int n_writ, got_info; static struct t_info info; - int dummy; - trace3(TR_twrite, 0, fd, nbytes); if (got_info == 0) { if (t_getinfo(fd, &info) != 0) { tfaillog(fd, "twrite: t_getinfo\n"); - trace1(TR_twrite, 1); return (FAIL); } got_info = 1; @@ -296,36 +181,26 @@ unsigned nbytes; /* on every N_CHECKth call, check that are still in DATAXFER state */ if (++n_writ == N_CHECK) { n_writ = 0; - if (t_getstate(fd) != T_DATAXFER) { - trace1(TR_twrite, 1); + if (t_getstate(fd) != T_DATAXFER) return (FAIL); - } - } - - if (info.tsdu <= 0 || nbytes <= info.tsdu) { - dummy = t_snd(fd, buf, nbytes, NULL); - trace1(TR_twrite, 1); - return ((ssize_t)dummy); } + + if (info.tsdu <= 0 || nbytes <= info.tsdu) + return ((ssize_t)t_snd(fd, buf, nbytes, NULL)); /* if get here, then there is a limit on transmit size */ /* (info.tsdu > 0) and buf exceeds it */ i = ret = 0; while (nbytes >= info.tsdu) { - if ((ret = t_snd(fd, &buf[i], info.tsdu, NULL)) != info.tsdu) { - trace1(TR_twrite, 1); + if ((ret = t_snd(fd, &buf[i], info.tsdu, NULL)) != info.tsdu) return ((ssize_t)(ret >= 0 ? (i + ret) : ret)); - } i += info.tsdu; nbytes -= info.tsdu; } if (nbytes != 0) { - if ((ret = t_snd(fd, &buf[i], nbytes, NULL)) != nbytes) { - trace1(TR_twrite, 1); + if ((ret = t_snd(fd, &buf[i], nbytes, NULL)) != nbytes) return ((ssize_t)(ret >= 0 ? (i + ret) : ret)); - } i += nbytes; } - trace1(TR_twrite, 1); return ((ssize_t)i); } @@ -334,15 +209,8 @@ unsigned nbytes; */ /* ARGSUSED */ static int -#ifdef __STDC__ tioctl(int fd, int request, ...) -#else -tioctl(fd, request, arg) -int fd, request; -#endif { - trace1(TR_tioctl, 0); - trace1(TR_tioctl, 1); return (SUCCESS); } @@ -353,7 +221,6 @@ int fd, request; static int tsetup(int role, int *fdreadp, int *fdwritep) { - trace1(TR_tsetup, 0); if (role == SLAVE) { *fdreadp = 0; *fdwritep = 1; @@ -361,11 +228,9 @@ tsetup(int role, int *fdreadp, int *fdwritep) errno = t_errno = 0; if (t_sync(*fdreadp) == -1 || t_sync(*fdwritep) == -1) { tfaillog(*fdreadp, "tsetup: t_sync\n"); - trace1(TR_tsetup, 1); return (FAIL); } } - trace1(TR_tsetup, 1); return (SUCCESS); } @@ -376,10 +241,8 @@ tsetup(int role, int *fdreadp, int *fdwritep) static int tteardown(int role, int fdread, int fdwrite) { - trace1(TR_tteardown, 0); (void) t_unbind(fdread); (void) t_close(fdread); - trace1(TR_tteardown, 1); return (SUCCESS); } @@ -389,72 +252,61 @@ tteardown(int role, int fdread, int fdwrite) * note blatant assumption that *fdreadp == *fdwritep */ static int -tssetup(role, fdreadp, fdwritep) -int role; -int *fdreadp; -int *fdwritep; +tssetup(int role, int *fdreadp, int *fdwritep) { - trace2(TR_tssetup, 0, role); if (role == SLAVE) { *fdreadp = 0; *fdwritep = 1; /* 2 has been re-opened to RMTDEBUG in main() */ DEBUG(5, "tssetup: SLAVE mode: leaving ok\n%s", ""); - trace1(TR_tssetup, 1); return (SUCCESS); } DEBUG(4, "tssetup: MASTER mode: leaving ok\n%s", ""); - trace1(TR_tssetup, 1); return (SUCCESS); } /* * Report why a TLI call failed. */ -GLOBAL void -tfaillog(fd, s) -int fd; -const char *s; +static void +tfaillog(int fd, const char *s) { char fmt[ BUFSIZ ]; - trace2(TR_tfaillog, 0, fd); if (0 < t_errno && t_errno < t_nerr) { - sprintf(fmt, "%s: %%s\n", s); + (void) snprintf(fmt, sizeof (fmt), "%s: %%s\n", s); DEBUG(5, fmt, t_errlist[t_errno]); logent(s, t_errlist[t_errno]); if (t_errno == TSYSERR) { - strcpy(fmt, "tlicall: system error: %s\n"); + (void) strcpy(fmt, "tlicall: system error: %s\n"); DEBUG(5, fmt, strerror(errno)); } else if (t_errno == TLOOK) { show_tlook(fd); } } else { - sprintf(fmt, "unknown tli error %d", t_errno); + (void) snprintf(fmt, sizeof (fmt), + "unknown tli error %d", t_errno); logent(s, fmt); - sprintf(fmt, "%s: unknown tli error %d", s, t_errno); + (void) snprintf(fmt, sizeof (fmt), + "%s: unknown tli error %d", s, t_errno); DEBUG(5, fmt, 0); - sprintf(fmt, "%s: %%s\n", s); + (void) snprintf(fmt, sizeof (fmt), "%s: %%s\n", s); DEBUG(5, fmt, strerror(errno)); } - trace1(TR_tfaillog, 1); - return; } -GLOBAL void -show_tlook(fd) -int fd; +static void +show_tlook(int fd) { - register int reason; - register const char *msg; + int reason; + const char *msg; /* * Find out the current state of the interface. */ - trace2(TR_show_tlook, 0, fd); errno = t_errno = 0; - switch(reason = t_getstate(fd)) { + switch (reason = t_getstate(fd)) { case T_UNBND: msg = (const char *)"T_UNBIND"; break; case T_IDLE: msg = (const char *)"T_IDLE"; break; case T_OUTCON: msg = (const char *)"T_OUTCON"; break; @@ -464,12 +316,10 @@ int fd; case T_INREL: msg = (const char *)"T_INREL"; break; default: msg = NULL; break; } - if (msg == NULL) { - trace1(TR_show_tlook, 1); + if (msg == NULL) return; - } DEBUG(5, "state is %s", msg); - switch(reason = t_look(fd)) { + switch (reason = t_look(fd)) { case -1: msg = (const char *)""; break; case 0: msg = (const char *)"NO ERROR"; break; case T_LISTEN: msg = (const char *)"T_LISTEN"; break; @@ -484,24 +334,19 @@ int fd; } DEBUG(4, " reason is %s\n", msg); - if (reason == T_DISCONNECT) - { + if (reason == T_DISCONNECT) { struct t_discon *dropped; - if (((dropped = - (struct t_discon *)t_alloc(fd, T_DIS, T_ALL)) == 0) - || (t_rcvdis(fd, dropped) == -1)) { + if (((dropped = + /* LINTED pointer cast */ + (struct t_discon *)t_alloc(fd, T_DIS, T_ALL)) == 0) || + (t_rcvdis(fd, dropped) == -1)) { if (dropped) - t_free((char *)dropped, T_DIS); - trace1(TR_show_tlook, 1); + (void) t_free((char *)dropped, T_DIS); return; } DEBUG(5, "disconnect reason #%d\n", dropped->reason); - t_free((char *)dropped, T_DIS); + (void) t_free((char *)dropped, T_DIS); } - trace1(TR_show_tlook, 1); - return; } - #endif /* TLIS */ - #endif /* TLI */ diff --git a/usr/src/lib/libnsl/dial/line.c b/usr/src/lib/libnsl/dial/line.c index c6c97cefaa..ce6c20c213 100644 --- a/usr/src/lib/libnsl/dial/line.c +++ b/usr/src/lib/libnsl/dial/line.c @@ -19,18 +19,23 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ +#pragma ident "%Z%%M% %I% %E% SMI" -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ - -/* This is a new line.c, which consists of line.c and culine.c +/* + * This is a new line.c, which consists of line.c and culine.c * merged together. */ #include "uucp.h" -#include <rpc/trace.h> static const struct sg_spds { int sp_val, @@ -68,32 +73,24 @@ static const struct sg_spds { {0, 0} }; -#define PACKSIZE 64 -#define HEADERSIZE 6 - -GLOBAL int - packsize = PACKSIZE, - xpacksize = PACKSIZE; +#define PACKSIZE 64 +#define HEADERSIZE 6 -#define SNDFILE 'S' -#define RCVFILE 'R' -#define RESET 'X' +#define SNDFILE 'S' +#define RCVFILE 'R' +#define RESET 'X' -GLOBAL int donap; /* for speedup hook in pk1.c */ static int Saved_line; /* was savline() successful? */ static int Saved_termios; /* was termios saved? */ -GLOBAL int +static int Oddflag, /* Default is no parity */ Evenflag, /* Default is no parity */ Duplex = 1, /* Default is full duplex */ Terminal, /* Default is no terminal */ - term_8bit = -1, /* Default to terminal setting or 8 bit */ line_8bit = -1; /* Default is same as terminal */ static const char P_PARITY[] = "Parity option error\r\n"; -#ifdef ATTSV - static struct termio Savettyb; static struct termios Savettybs; /* @@ -105,13 +102,12 @@ static struct termios Savettybs; * if spwant == 0, speed is untouched * type is unused, but needed for compatibility * - * return: + * return: * none */ /*ARGSUSED*/ -GLOBAL void -fixline(tty, spwant, type) -int tty, spwant, type; +static void +fixline(int tty, int spwant, int type) { register const struct sg_spds *ps; struct termio ttbuf; @@ -119,21 +115,17 @@ int tty, spwant, type; int speed = -1; int i, istermios, ospeed; - trace4(TR_fixline, 0, tty, spwant, type); DEBUG(6, "fixline(%d, ", tty); DEBUG(6, "%d)\n", spwant); if ((istermios = (*Ioctl)(tty, TCGETS, &ttbufs)) < 0) { - if ((*Ioctl)(tty, TCGETA, &ttbuf) != 0) { - trace1(TR_fixline, 1); - return; - } else { + if ((*Ioctl)(tty, TCGETA, &ttbuf) != 0) + return; ttbufs.c_lflag = ttbuf.c_lflag; ttbufs.c_oflag = ttbuf.c_oflag; ttbufs.c_iflag = ttbuf.c_iflag; ttbufs.c_cflag = ttbuf.c_cflag; - for(i = 0; i < NCC; i++) + for (i = 0; i < NCC; i++) ttbufs.c_cc[i] = ttbuf.c_cc[i]; - } } if (spwant > 0) { for (ps = spds; ps->sp_val; ps++) @@ -143,15 +135,15 @@ int tty, spwant, type; } if (speed < 0) { /*EMPTY*/ - DEBUG(5, "speed (%d) not supported\n", spwant); + DEBUG(5, "speed (%d) not supported\n", spwant); } ASSERT(speed >= 0, "BAD SPEED", "", spwant); ttbufs.c_cflag &= 0xffff0000; - cfsetospeed(&ttbufs, speed); + (void) cfsetospeed(&ttbufs, speed); } else { /* determine the current speed setting */ ospeed = cfgetospeed(&ttbufs); ttbufs.c_cflag &= 0xffff0000; - cfsetospeed(&ttbufs, ospeed); + (void) cfsetospeed(&ttbufs, ospeed); for (ps = spds; ps->sp_val; ps++) if (ps->sp_name == ospeed) { spwant = ps->sp_val; @@ -162,14 +154,7 @@ int tty, spwant, type; ttbufs.c_oflag &= 0xffff0000; ttbufs.c_lflag &= 0xffff0000; -#ifdef NO_MODEM_CTRL - /* CLOCAL may cause problems on pdp11s with DHs */ - if (type == D_DIRECT) { - DEBUG(4, "fixline - direct\n%s", ""); - ttbufs.c_cflag |= CLOCAL; - } else -#endif /* NO_MODEM_CTRL */ - ttbufs.c_cflag &= ~CLOCAL; + ttbufs.c_cflag &= ~CLOCAL; if (EQUALS(Progname, "cu")) { @@ -177,38 +162,35 @@ int tty, spwant, type; ttbufs.c_iflag = (IGNPAR | IGNBRK | IXON | IXOFF); if (line_8bit) { - ttbufs.c_cflag |= CS8; - ttbufs.c_iflag &= ~ISTRIP; + ttbufs.c_cflag |= CS8; + ttbufs.c_iflag &= ~ISTRIP; } else { - ttbufs.c_cflag |= CS7; - ttbufs.c_iflag |= ISTRIP; + ttbufs.c_cflag |= CS7; + ttbufs.c_iflag |= ISTRIP; } ttbufs.c_cc[VEOF] = '\1'; ttbufs.c_cflag |= (CREAD | (speed ? HUPCL : 0)); - if (Evenflag) { /*even parity -e */ - if (ttbufs.c_cflag & PARENB) { + if (Evenflag) { /* even parity -e */ + if (ttbufs.c_cflag & PARENB) { VERBOSE(P_PARITY, 0); - trace1(TR_fixline, 1); - exit (1); - } else - ttbufs.c_cflag |= PARENB; - } else if (Oddflag) { /*odd parity -o */ - if (ttbufs.c_cflag & PARENB) { + exit(1); + } + ttbufs.c_cflag |= PARENB; + } else if (Oddflag) { /* odd parity -o */ + if (ttbufs.c_cflag & PARENB) { VERBOSE(P_PARITY, 0); - trace1(TR_fixline, 1); - exit (1); - } else { - ttbufs.c_cflag |= PARODD; - ttbufs.c_cflag |= PARENB; - } + exit(1); + } + ttbufs.c_cflag |= PARODD; + ttbufs.c_cflag |= PARENB; } - if (!Duplex) /*half duplex -h */ - ttbufs.c_iflag &= ~(IXON | IXOFF); + if (!Duplex) /* half duplex -h */ + ttbufs.c_iflag &= ~(IXON | IXOFF); if (Terminal) /* -t */ - ttbufs.c_oflag |= (OPOST | ONLCR); + ttbufs.c_oflag |= (OPOST | ONLCR); } else { /* non-cu */ ttbufs.c_cflag |= (CS8 | CREAD | (speed ? HUPCL : 0)); @@ -216,14 +198,12 @@ int tty, spwant, type; ttbufs.c_cc[VTIME] = 1; } - donap = (spwant > 0 && spwant < 4800); - if (istermios < 0) { ttbuf.c_lflag = ttbufs.c_lflag; ttbuf.c_oflag = ttbufs.c_oflag; ttbuf.c_iflag = ttbufs.c_iflag; ttbuf.c_cflag = ttbufs.c_cflag; - for(i = 0; i < NCC; i++) + for (i = 0; i < NCC; i++) ttbuf.c_cc[i] = ttbufs.c_cc[i]; ASSERT((*Ioctl)(tty, TCSETAW, &ttbuf) >= 0, "RETURN FROM fixline ioctl", "", errno); @@ -231,377 +211,57 @@ int tty, spwant, type; ASSERT((*Ioctl)(tty, TCSETSW, &ttbufs) >= 0, "RETURN FROM fixline ioctl", "", errno); } - trace1(TR_fixline, 1); - return; } -GLOBAL void -sethup(dcf) -int dcf; +static void +sethup(int dcf) { struct termio ttbuf; - trace2(TR_sethup, 0, dcf); - if ((*Ioctl)(dcf, TCGETA, &ttbuf) != 0) { - trace1(TR_sethup, 1); + if ((*Ioctl)(dcf, TCGETA, &ttbuf) != 0) return; - } if (!(ttbuf.c_cflag & HUPCL)) { ttbuf.c_cflag |= HUPCL; (void) (*Ioctl)(dcf, TCSETAW, &ttbuf); } - trace1(TR_sethup, 1); - return; } -GLOBAL void -ttygenbrk(fn) -register int fn; +static void +ttygenbrk(int fn) { - trace2(TR_ttygenbrk, 0, fn); - if (isatty(fn)) + if (isatty(fn)) (void) (*Ioctl)(fn, TCSBRK, 0); - trace1(TR_ttygenbrk, 1); - return; } - -#ifndef DIAL -/* - * optimize line setting for sending or receiving files - * return: - * none - */ -GLOBAL void -setline(type) -register char type; +static int +savline(void) { - static struct termio tbuf; - static struct termios tbufs; - int i, vtime, istermios, ospeed; - - trace1(TR_setline, 0); - DEBUG(2, "setline - %c\n", type); - if ((istermios = (*Ioctl)(Ifn, TCGETS, &tbufs)) < 0) { - if ((*Ioctl)(Ifn, TCGETA, &tbuf) != 0) { - trace1(TR_setline, 1); - return; + if ((Saved_termios = (*Ioctl)(0, TCGETS, &Savettybs)) < 0) { + if ((*Ioctl)(0, TCGETA, &Savettyb) != 0) { + Saved_line = FALSE; } else { - tbufs.c_lflag = tbuf.c_lflag; - tbufs.c_oflag = tbuf.c_oflag; - tbufs.c_iflag = tbuf.c_iflag; - tbufs.c_cflag = tbuf.c_cflag; - for(i = 0; i < NCC; i++) - tbufs.c_cc[i] = tbuf.c_cc[i]; - } - } - switch (type) { - case RCVFILE: - ospeed = cfgetospeed(&tbufs); - switch (ospeed) { - case B9600: - vtime = 1; - break; - case B4800: - vtime = 4; - break; - default: - vtime = 8; - break; - } - if (tbufs.c_cc[VMIN] != packsize || - tbufs.c_cc[VTIME] != vtime) { - tbufs.c_cc[VMIN] = packsize; - tbufs.c_cc[VTIME] = vtime; - if (istermios < 0) { - tbuf.c_lflag = tbufs.c_lflag; - tbuf.c_oflag = tbufs.c_oflag; - tbuf.c_iflag = tbufs.c_iflag; - tbuf.c_cflag = tbufs.c_cflag; - for(i = 0; i < NCC; i++) - tbuf.c_cc[i] = tbufs.c_cc[i]; - if ((*Ioctl)(Ifn, TCSETAW, &tbuf) != 0) - DEBUG(4, "setline Ioctl failed errno=%d\n", errno); - } else { - if ((*Ioctl)(Ifn, TCSETSW, &tbufs) != 0) - DEBUG(4, "setline Ioctl failed errno=%d\n", errno); - } + Saved_line = TRUE; + Savettyb.c_cflag = (Savettyb.c_cflag & ~CS8) | CS7; + Savettyb.c_oflag |= OPOST; + Savettyb.c_lflag |= (ISIG|ICANON|ECHO); } - break; - - case SNDFILE: - case RESET: - if (tbufs.c_cc[VMIN] != HEADERSIZE) { - tbufs.c_cc[VMIN] = HEADERSIZE; - if (istermios < 0) { - tbuf.c_lflag = tbufs.c_lflag; - tbuf.c_oflag = tbufs.c_oflag; - tbuf.c_iflag = tbufs.c_iflag; - tbuf.c_cflag = tbufs.c_cflag; - for(i = 0; i < NCC; i++) - tbuf.c_cc[i] = tbufs.c_cc[i]; - if ((*Ioctl)(Ifn, TCSETAW, &tbuf) != 0) - DEBUG(4, "setline Ioctl failed errno=%d\n", errno); - } else { - if ((*Ioctl)(Ifn, TCSETSW, &tbufs) != 0) - DEBUG(4, "setline Ioctl failed errno=%d\n", errno); - } - } - break; - } - trace1(TR_setline, 1); - return; -} -#endif - -GLOBAL int -savline() -{ - trace1(TR_savline, 0); - if ((Saved_termios = (*Ioctl)(0, TCGETS, &Savettybs)) < 0) { - if ((*Ioctl)(0, TCGETA, &Savettyb) != 0) { - Saved_line = FALSE; - } else { - Saved_line = TRUE; - Savettyb.c_cflag = (Savettyb.c_cflag & ~CS8) | CS7; - Savettyb.c_oflag |= OPOST; - Savettyb.c_lflag |= (ISIG|ICANON|ECHO); - } } else { Saved_line = TRUE; Savettybs.c_cflag = (Savettybs.c_cflag & ~CS8) | CS7; Savettybs.c_oflag |= OPOST; Savettybs.c_lflag |= (ISIG|ICANON|ECHO); } - trace1(TR_savline, 1); return (0); } -#ifdef SYTEK - -/* - * sytfixline(tty, spwant) set speed/echo/mode... - * int tty, spwant; - * - * return codes: none - */ - -GLOBAL void -sytfixline(tty, spwant) -int tty, spwant; -{ - struct termio ttbuf; - struct termios ttbufs; - const struct sg_spds *ps; - int speed = -1; - int i, ret, istermios; - - trace3(TR_sytfixline, 0, tty, spwant); - if ((istermios = (*Ioctl)(tty, TCGETS, &ttbufs)) < 0) { - if ((*Ioctl)(tty, TCGETA, &ttbuf) != 0) { - trace1(TR_sytfixline, 1); - return; - } else { - ttbufs.c_lflag = ttbuf.c_lflag; - ttbufs.c_oflag = ttbuf.c_oflag; - ttbufs.c_iflag = ttbuf.c_iflag; - ttbufs.c_cflag = ttbuf.c_cflag; - for(i = 0; i < NCC; i++) - ttbufs.c_cc[i] = ttbuf.c_cc[i]; - } - } - for (ps = spds; ps->sp_val >= 0; ps++) - if (ps->sp_val == spwant) - speed = ps->sp_name; - DEBUG(4, "sytfixline - speed= %d\n", speed); - ASSERT(speed >= 0, "BAD SPEED", "", spwant); - ttbufs.c_iflag &= 0xffff0000; - ttbufs.c_oflag &= 0xffff0000; - ttbufs.c_lflag &= 0xffff0000; - ttbufs.c_cflag &= 0xffff0000; - cfsetospeed(&ttbufs, speed); - ttbufs.c_cflag |= (CS8|CLOCAL); - ttbufs.c_cc[VMIN] = 6; - ttbufs.c_cc[VTIME] = 1; - if (istermios < 0) { - ttbuf.c_lflag = ttbufs.c_lflag; - ttbuf.c_oflag = ttbufs.c_oflag; - ttbuf.c_iflag = ttbufs.c_iflag; - ttbuf.c_cflag = ttbufs.c_cflag; - for(i = 0; i < NCC; i++) - ttbuf.c_cc[i] = ttbufs.c_cc[i]; - ret = (*Ioctl)(tty, TCSETAW, &ttbuf); - } else - ret = (*Ioctl)(tty, TCSETSW, &ttbufs); - - ASSERT(ret >= 0, "RETURN FROM sytfixline", "", ret); - trace1(TR_sytfixline, 1); - return; -} - -GLOBAL void -sytfix2line(tty) -int tty; -{ - struct termio ttbuf; - int ret; - - trace2(TR_sytfix2line, 0, tty); - if ((*Ioctl)(tty, TCGETA, &ttbuf) != 0) { - trace1(TR_sytfix2line, 1); - return; - } - ttbuf.c_cflag &= ~CLOCAL; - ttbuf.c_cflag |= CREAD|HUPCL; - ret = (*Ioctl)(tty, TCSETAW, &ttbuf); - ASSERT(ret >= 0, "RETURN FROM sytfix2line", "", ret); - trace1(TR_sytfix2line, 1); - return; -} - -#endif /* SYTEK */ - -GLOBAL int -restline() +static int +restline(void) { - trace1(TR_restline, 0); if (Saved_line == TRUE) { - trace1(TR_restline, 1); if (Saved_termios < 0) return ((*Ioctl)(0, TCSETAW, &Savettyb)); else return ((*Ioctl)(0, TCSETSW, &Savettybs)); } - trace1(TR_restline, 1); return (0); } - -#else /* !ATTSV */ - -static struct sgttyb Savettyb; - -/* - * fixline(tty, spwant, type) set speed/echo/mode... - * int tty, spwant; - * - * if spwant == 0, speed is untouched - * type is unused, but needed for compatibility - * - * return codes: none - */ - -/*ARGSUSED*/ -GLOBAL void -fixline(tty, spwant, type) -int tty, spwant, type; -{ - struct sgttyb ttbuf; - struct sg_spds *ps; - int speed = -1; - - trace4(TR_fixline, 0, tty, spwant, type); - DEBUG(6, "fixline(%d, ", tty); - DEBUG(6, "%d)\n", spwant); - - if ((*Ioctl)(tty, TIOCGETP, &ttbuf) != 0) { - trace1(TR_fixline, 1); - return; - } - if (spwant > 0) { - for (ps = spds; ps->sp_val; ps++) - if (ps->sp_val == spwant) { - speed = ps->sp_name; - break; - } - ASSERT(speed >= 0, "BAD SPEED", "", spwant); - ttbuf.sg_ispeed = ttbuf.sg_ospeed = speed; - } else { - for (ps = spds; ps->sp_val; ps++) - if (ps->sp_name == ttbuf.sg_ispeed) { - spwant = ps->sp_val; - break; - } - ASSERT(spwant >= 0, "BAD SPEED", "", ttbuf.sg_ispeed); - } - ttbuf.sg_flags = (ANYP | RAW); - (void) (*Ioctl)(tty, TIOCSETP, &ttbuf); - (void) (*Ioctl)(tty, TIOCHPCL, STBNULL); - (void) (*Ioctl)(tty, TIOCEXCL, STBNULL); - donap = (spwant > 0 && spwant < 4800); - trace1(TR_fixline, 1); - return; -} - -GLOBAL void -sethup(dcf) -int dcf; -{ - trace2(TR_sethup, 0, dcf); - if (isatty(dcf)) - (void) (*Ioctl)(dcf, TIOCHPCL, STBNULL); - trace1(TR_sethup, 1); - return; -} - -/* - * genbrk send a break - * - * return codes; none - */ - -GLOBAL void -ttygenbrk(fn) -{ - trace1(TR_ttygenbrk, 0); - if (isatty(fn)) { - (void) (*Ioctl)(fn, TIOCSBRK, 0); -#ifndef V8 - nap(HZ/10); /* 0.1 second break */ - (void) (*Ioctl)(fn, TIOCCBRK, 0); -#endif - } - trace1(TR_ttygenbrk, 1); - return; -} - -#ifndef DIAL -/* - * V7 and RT aren't smart enough for this -- linebaudrate is the best - * they can do. - */ -/*ARGSUSED*/ -GLOBAL void -setline(dummy) -{ - trace1(TR_setline, 0); - trace1(TR_setline, 1); -} -#endif - -GLOBAL int -savline() -{ - trace1(TR_savline, 0); - if ((*Ioctl)(0, TIOCGETP, &Savettyb) != 0) { - Saved_line = FALSE; - else { - Saved_line = TRUE; - Savettyb.sg_flags |= ECHO; - Savettyb.sg_flags &= ~RAW; - } - trace1(TR_savline, 1); - return (0); -} - -GLOBAL int -restline() -{ - trace1(TR_restline, 0); - if (Saved_line == TRUE) { - trace1(TR_restline, 1); - return ((*Ioctl)(0, TIOCSETP, &Savettyb)); - } - trace1(TR_restline, 1); - return (0); -} -#endif diff --git a/usr/src/lib/libnsl/dial/parms.h b/usr/src/lib/libnsl/dial/parms.h index b2b90f61bb..289a2c2c9b 100644 --- a/usr/src/lib/libnsl/dial/parms.h +++ b/usr/src/lib/libnsl/dial/parms.h @@ -19,254 +19,79 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ -/* go through this carefully, configuring for your site */ +#ifndef _PARMS_H +#define _PARMS_H -/* If running SVR4, #define all of ATTSVR4, ATTSVR3, and ATTSV */ -#define ATTSVR4 /* System V Release 4 */ +#pragma ident "%Z%%M% %I% %E% SMI" -/* If running SVR3, #define both ATTSVR3 and ATTSV */ -#define ATTSVR3 /* System V Release 3 */ +#ifdef __cplusplus +extern "C" { +#endif -/* One of the following five lines should not be commented out. - * The other four should be unless you are running a unique hybrid. - * XXX - V7 and V8 are very unlikely to still work. +/* + * Solaris is a SVR4 based system and will never be anything else + * Removed all the dead and never to be resurrected options */ -#define ATTSV /* System III or System V */ -/* #define V7 */ /* Version 7 systems (32V, Berkeley 4BSD, 4.1BSD) */ -/* #define BSD4_3 */ /* Berkeley 4.3BSD */ -/* #define BSD4_2 */ /* Berkeley 4.2BSD */ -/* #define V8 */ /* Research Eighth Edition */ - -/* Owner of setud files running on behalf of uucp. Needed in case +/* + * Owner of setud files running on behalf of uucp. Needed in case * root runs uucp and euid is not honored by kernel. * GID is needed for some chown() calls. * Also used if guinfo() cannot find the current users ID in the * password file. */ -#define UUCPUID 5 /* */ -#define UUCPGID 5 /* */ - -/* define ATTSVKILL if your system has a kill(2) that accepts kill(0, pid) - * as a test for killability. If ATTSV or BSD4_2 is defined this will - * automatically be defined anyway. - */ -/* #define ATTSVKILL */ - -/* define ATTSVTTY if your system has a System V (or System III)-style tty - * driver ("termio"). If ATTSV is defined this will automatically be defined - * anyway. - */ -#define ATTSVTTY /* */ - -/* define BSDINETD if you are using /etc/inetd with 4.2bsd. If BSD4_3 is - * defined this will automatically be defined anyway. - */ -#define BSDINETD /**/ - -/* - * the next two lines control high resolution sleeps, called naps. - * - * many UNIX versions have no nap() system call; they want NONAP defined, - * in which case one is provided in the code. - * - * some sites use a fast timer that reads a number of clock ticks and naps - * for that interval; they want NONAP defined, and FASTTIMER defined as - * the name of the device, e.g., /dev/ft. - * - * some systems, including 4.2BSD and SVR4, can simulate the nap() function - * using the select() system call. - * - * repeating, NONAP should be disabled *only* if your standard library has a - * function called nap, or it can be simulated with select. - */ - - -/* #define NONAP */ /* nominal case -- no nap() in the standard library */ -/* #define FASTTIMER "/dev/ft" */ /* identify the device used for naps */ - -/* - * we use ustat to decide whether there's enough space to receive a - * file. if you're not ATTSV: - * - * 1) if you have the SunOS "statfs" system call (many systems with NFS - * that have NFS have it), you can use it instead of "ustat"; - * - * 2) otherwise, you can use a setgid program to read the number of free - * blocks and free inodes directly off the disk. - * - * if you choose either course, do not define NOUSTAT; rather: - * - * 1) if you choose 1) above, define STATFS; - * - * 2) if you choose 2) above, define V7USTAT to be the name of the - * program. be sure it accepts 2 args, major and minor device numbers, - * and returns two numbers, blocks and inodes, in "%d %d" format, or - * you'll never receive another file. - */ -/* #define V7USTAT "/usr/local/lib/ustat" */ -/* #define STATFS */ /* if you have "statfs" system call */ -/* #define NOUSTAT */ /* define NOUSTAT if you don't have ustat */ - -/* define GRPCHK if you want to restrict the ability to read */ -/* Systems file stuff by way of the DEBUG flags based on a group id range */ -/* ex: if (GRPCHK(getgid()) no_secrets(); */ -#define GRPMIN 5 /* */ -#define GRPMAX 5 /* */ -#define GRPCHK(gid) ( gid >= GRPMIN && gid <= GRPMAX ? 1 : 0 ) /* */ -/* #define GRPCHK(gid) 1 */ /* Systems info is not protected from DEBUG */ +#define UUCPUID 5 /* */ +#define UUCPGID 5 /* */ /* definitions for the types of networks and dialers that are available */ /* used to depend on STANDALONE, but now done at runtime via Sysfiles */ -/* #define DATAKIT */ /* define DATAKIT if datakit is available. */ -/* #define UNET */ /* define UNET if you have 3com ethernet software */ -#define TCP /* TCP (bsd systems) */ -/* #define SYTEK */ /* for sytek network */ +#define TCP /* TCP (bsd systems) */ -#if defined(ATTSVR3) || defined(ATTSVR4) -#define TLI /* for AT&T Transport Layer Interface networks */ -#define TLIS /* for AT&T Transport Layer Interface networks */ +#define TLI /* for AT&T Transport Layer Interface networks */ +#define TLIS /* for AT&T Transport Layer Interface networks */ /* with streams module "tirdwr" */ -#endif /* ATTSVR3 || ATTSVR4 */ -/* #define DIAL801 */ /* 801/212-103 auto dialers */ - -/* - * Define protocols that are to be linked into uucico: - * - * The following table shows which protocols and networks work well - * together. The g protocol works over noisy links. The e protocol - * assumes that the underlying network provides an error free communications - * channel that transfers the data in sequence without duplication. The - * d protocols makes the same assumptions as the e protocol, but in addition - * it does Datakit specific ioctl's. The g protocol is always included in - * uucico. To include the other protocols, 1) insure that the symbol from - * the Symbol column is defined in this file and 2) include the file from - * the File comlumn in the definition of PROTOCOLS in uucp.mk. - * - * Prot. - * Letter Symbol File Applicable Media - * - * g none - - - * e E_PROTOCOL eio.c TCP, UNET, TLI, and DATAKIT. - * d D_PROTOCOL dio.c DATAKIT - * x X_PROTOCOL xio.c - - * - * The next six lines conditionally define the protocol symbols for d - * and e protocols based on the networks that were chosen above. For the - * x protocol you must explicitly define X_PROTOCOL. - */ - -#ifdef DATAKIT /* Should include D protocol for Datakit. */ -#define D_PROTOCOL -#endif /* DATAKIT */ - -#if defined TCP || defined UNET || defined TLI || defined DATAKIT -#define E_PROTOCOL /* Include e protocol. */ -#endif /* TCP || UNET || TLI || DATAKIT */ - -/* #define X_PROTOCOL */ /* define X_PROTOCOL to use the xio protocol */ -#define X_PROTOCOL /* aeh - to check compilation */ - -/* #define F_PROTOCOL */ /* define F_PROTOCOL to use the fio protocol */ -#define F_PROTOCOL /* aeh - to check compilation */ - -#define MAXCALLTRIES 2 /* maximum call attempts per Systems file line */ +#define MAXCALLTRIES 2 /* maximum call attempts per Systems file line */ /* define DEFAULT_BAUDRATE to be the baud rate you want to use when both */ /* Systems file and Devices file allow Any */ -#define DEFAULT_BAUDRATE "9600" /* */ +#define DEFAULT_BAUDRATE "9600" /* */ -/*define permission modes for the device */ -#define M_DEVICEMODE (mode_t) 0600 /* MASTER device mode */ -#define S_DEVICEMODE (mode_t) 0600 /* SLAVE device mode */ -#define R_DEVICEMODE (mode_t) 0600 /* default mode to restore */ - -/* NO_MODEM_CTRL - define this if you have very old hardware - * that does not know how to correctly handle modem control - * Some old pdp/11 hardware such as dk, dl - * If you define this, and have DH devices for direct lines, - * the ports will often hang and be unusable. -*/ -/*#define NO_MODEM_CTRL */ /* */ - - -/* UUSTAT_TBL - this is the maximum number of machines that - * status may be needed at any instant. - * If you are not concerned with memory for a seldom used program, - * make it very large. - * This number is also used in uusched for its machine table -- it has - * the same properties as the one in uustat. - */ - -#define UUSTAT_TBL 1000 /* big machine with lots of traffic */ -/* #define UUSTAT_TBL 200 */ - -/* define UNAME if uname() should be used to get uucpname - * This will be defined automatically if ATTSV is defined - */ -/* #define UNAME */ +/* define permission modes for the device */ +#define M_DEVICEMODE (mode_t)0600 /* MASTER device mode */ +#define S_DEVICEMODE (mode_t)0600 /* SLAVE device mode */ +#define R_DEVICEMODE (mode_t)0600 /* default mode to restore */ /* initial wait time after failure before retry */ -#define RETRYTIME 300 /* 5 minutes */ -/* MAXRETRYTIME is for exponential backoff limit. +#define RETRYTIME 300 /* 5 minutes */ +/* + * MAXRETRYTIME is for exponential backoff limit. * NOTE - this should not be 24 hours so that * retry is not always at the same time each day */ -#define MAXRETRYTIME 82800 /* 23 hours */ -#define ASSERT_RETRYTIME 86400 /* retry time for ASSERT errors */ - -/* This is the path that will be used for uuxqt command executions */ -#define PATH "PATH=/usr/bin " /* */ - -/* This is the set of default commands that can be executed */ -/* if non is given for the system name in PERMISSIONS file */ -/* It is a colon separated list as in PERMISSIONS file */ -#define DEFAULTCMDS "rmail" /* standard default command list */ - -/* define HZ to be the number of clock ticks per second */ -/* #define HZ 60 */ /* not needed for ATTSV or above */ +#define MAXRETRYTIME 82800 /* 23 hours */ +#define ASSERT_RETRYTIME 86400 /* retry time for ASSERT errors */ /* - * put in local uucp name of this machine if there is no "/etc/whoami" - * and no uname() (this is a last resort) - */ -/* #define MYNAME "kilroy" */ /* */ - -/* define NOSTRANGERS if you want to reject calls from systems that - * are not in your Systems file. If defined, NOSTRANGERS should be the name - * of the program to execute when such a system dials in. The argument - * to said program will be the name of said system. Typically this is a shell - * procedure that sends mail to the uucp administrator informing them of an - * attempt to communicate by an unknown system. - * NOTE - if this is defined, it can be overridden by the administrator - * by making the command non-executable. (It can be turned on and off - * by changing the mode of the command.) - */ -#define NOSTRANGERS "/etc/uucp/remote.unknown" /* */ - -/* define LIMITS to be the name of a file which contains information - * about the number of simultaneous uucicos,uuxqts, and uuscheds - * that are allowed to run. If it is not defined, then there may be - * "many" uucicos, uuxqts, and uuscheds running. - */ -#define LIMITS "/etc/uucp/Limits" /* */ - -/* define USRSPOOLLOCKS if you like your lock files in /var/spool/locks + * define USRSPOOLLOCKS if you like your lock files in /var/spool/locks * be sure other programs such as 'cu' and 'ct' know about this * - * WARNING: if you do not define USRSPOOLLOCKS, then $LOCK in + * WARNING: if you do not define USRSPOOLLOCKS, then $LOCK in * uudemon.cleanup must be changed. */ -#define USRSPOOLLOCKS /* define to use /var/spool/locks for LCK files */ +#define USRSPOOLLOCKS /* define to use /var/spool/locks for LCK files */ -/* define PKSPEEDUP if you want to try the recommended speedup in pkcget. - * this entails sleeping between reads at low baud rates. - */ -#define PKSPEEDUP /* */ +#ifdef __cplusplus +} +#endif + +#endif /* _PARMS_H */ diff --git a/usr/src/lib/libnsl/dial/stoa.c b/usr/src/lib/libnsl/dial/stoa.c index 15e9920fb3..89b0b397e2 100644 --- a/usr/src/lib/libnsl/dial/stoa.c +++ b/usr/src/lib/libnsl/dial/stoa.c @@ -19,14 +19,18 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> #ifdef TLI @@ -36,67 +40,61 @@ #include <malloc.h> #include <sys/tiuser.h> #include <ctype.h> -#define OCT 0 -#define HEX 1 -/* #include <nsaddr.h> -*/ +#define OCT 0 +#define HEX 1 +/* + * #include <nsaddr.h> + */ #define toupper(c) (islower(c) ? _toupper(c) : (c)) #define todigit(c) ((int)((c) - '0')) /* char to digit */ #define toxdigit(c) ((isdigit(c))?todigit(c):(toupper(c)-(int)'A'+10)) #define isodigit(c) (isdigit(c) && ((c) != '9') && ((c) != '8')) -#define itoac(i) (((i) > 9) ? ((char)((i)-10) + 'A'):((char)(i) + '0')) +#define itoac(i) (((i) > 9) ? ((char)((i)-10) + 'A'):((char)(i) + '0')) #define MASK(n) ((1 << (n)) - 1) #define SBUFSIZE 128 -/* #define TRUE 1; - * #define FALSE 0; +/* + * #define TRUE 1 + * #define FALSE 0 */ /* local static functions */ -static int dobase(); -static void memcp(); -static char *xfer(); +static int dobase(char *, char *, int); +static void memcp(char *, char *, int); +static char *xfer(char *, char *, unsigned, unsigned); /* - stoa - convert string to address - - If a string begins in \o or \O, the following address is octal - " " " " " \x or \X, the following address is hex - - If ok, return pointer to netbuf structure. - A NULL is returned on any error(s). -*/ + * stoa - convert string to address + * + * If a string begins in \o or \O, the following address is octal + * " " " " " \x or \X, the following address is hex + * + * If ok, return pointer to netbuf structure. + * A NULL is returned on any error(s). + */ -GLOBAL struct netbuf * -stoa(str, addr) /* Return netbuf ptr if success */ -char *str; /* Return NULL if error */ -struct netbuf *addr; +/* Return netbuf ptr if success */ +static struct netbuf * +stoa(char *str, struct netbuf *addr) { int myadr; /* was netbuf struct allocated here ? */ static char *sbuf; - trace1(TR_stoa, 0); myadr = FALSE; - if (!str) { - trace1(TR_stoa, 1); + if (!str) return (NULL); - } while (*str && isspace(*str)) /* leading whites are OK */ ++str; - if (!str || !*str) { /* Nothing to convert */ - trace1(TR_stoa, 1); + if (!str || !*str) /* Nothing to convert */ return (NULL); - } if (!addr) { - if ((addr = (struct netbuf *)malloc(sizeof(struct netbuf))) == NULL) { - trace1(TR_stoa, 1); + if ((addr = malloc(sizeof (struct netbuf))) == NULL) return (NULL); - } - + myadr = TRUE; addr->buf = NULL; addr->maxlen = 0; @@ -104,7 +102,7 @@ struct netbuf *addr; } if (sbuf == NULL) { - sbuf = (char *)malloc(SBUFSIZE); + sbuf = malloc(SBUFSIZE); if (sbuf == NULL) return (NULL); } @@ -133,46 +131,41 @@ struct netbuf *addr; if (addr->len == 0) { /* Error in conversion */ if (myadr) free(addr); - trace1(TR_stoa, 1); return (NULL); } - if ((addr->buf = xfer(addr->buf, sbuf, addr->len, addr->maxlen)) == NULL) { - trace1(TR_stoa, 1); + if ((addr->buf = xfer(addr->buf, sbuf, addr->len, addr->maxlen)) == + NULL) return (NULL); - } else { - trace1(TR_stoa, 1); - return addr; - } + return (addr); } /* - dobase : converts a hex or octal ASCII string - to a binary address. Only HEX or OCT may be used - for type. - return length of binary string (in bytes), 0 if error. - The binary result is placed at buf. -*/ + * dobase : converts a hex or octal ASCII string + * to a binary address. Only HEX or OCT may be used + * for type. + * return length of binary string (in bytes), 0 if error. + * The binary result is placed at buf. + */ static int -dobase(s, buf, type) /* read in an address */ -char *s, *buf; /* source ASCII, result binary string */ -int type; +dobase(char *s, char *buf, int type) { int bp = SBUFSIZE - 1; int shift = 0; char *end; - trace2(TR_dobase, 0, type); for (end = s; *end && ((type == OCT) ? isodigit(*end) : - isxdigit(*end)); ++end) ; - - /* any non-white, non-digits cause address to be rejected, - other fields are ignored */ + isxdigit(*end)); ++end) + ; + /* + * any non-white, non-digits cause address to be rejected, + * other fields are ignored + */ if ((*s == 0) || (end == s) || (!isspace(*end) && *end)) { - fprintf(stderr, "dobase: Illegal trailer on address string\n"); + (void) fprintf(stderr, + "dobase: Illegal trailer on address string\n"); buf[0] = '\0'; - trace1(TR_dobase, 1); return (0); } --end; @@ -188,15 +181,13 @@ int type; } if ((shift = (shift + 3) % 8) == 0) buf[--bp] = 0; - } - else /* hex */ + } else /* hex */ if ((shift = (shift) ? 0 : 4) == 0) - buf[--bp] = 0;; + buf[--bp] = 0; --end; } if (bp == 0) { - fprintf(stderr, "stoa: dobase: number to long\n"); - trace1(TR_dobase, 1); + (void) fprintf(stderr, "stoa: dobase: number to long\n"); return (0); } @@ -204,48 +195,36 @@ int type; if (!shift) bp++; memcp(buf, &buf[bp], (SBUFSIZE - bp)); - trace1(TR_dobase, 1); return (SBUFSIZE - bp); } static void -memcp(d, s, n) /* safe memcpy for overlapping regions */ -char *d, *s; -int n; +memcp(char *d, char *s, int n) { - trace2(TR_memcp, 0, n); while (n--) *d++ = *s++; - trace1(TR_memcp, 1); - return; } -/* transfer block to a given destination or allocate one of the - right size - if max = 0 : ignore max -*/ +/* + * transfer block to a given destination or allocate one of the + * right size + * if max = 0 : ignore max + */ static char * -xfer(dest, src, len, max) -char *dest, *src; -unsigned len, max; +xfer(char *dest, char *src, unsigned len, unsigned max) { - trace3(TR_xfer, 0, len, max); if (max && dest && max < len) { /* No room */ - fprintf(stderr, "xfer: destination not long enough\n"); - trace1(TR_xfer, 1); + (void) fprintf(stderr, "xfer: destination not long enough\n"); return (NULL); } if (!dest) if ((dest = malloc(len)) == NULL) { - fprintf(stderr, "xfer: malloc failed\n"); - trace1(TR_xfer, 1); + (void) fprintf(stderr, "xfer: malloc failed\n"); return (NULL); } - memcpy(dest, src, (int)len); - trace1(TR_xfer, 1); + (void) memcpy(dest, src, (size_t)len); return (dest); } - #endif /* TLI */ diff --git a/usr/src/lib/libnsl/dial/strecpy.c b/usr/src/lib/libnsl/dial/strecpy.c index d98ea70edc..f7559b2f10 100644 --- a/usr/src/lib/libnsl/dial/strecpy.c +++ b/usr/src/lib/libnsl/dial/strecpy.c @@ -19,39 +19,40 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> +#ifndef SMALL /* - strecpy(output, input, except) - strccpy copys the input string to the output string expanding - any non-graphic character with the C escape sequence. - Esacpe sequences produced are those defined in "The C Programming - Language" pages 180-181. - Characters in the except string will not be expanded. -*/ + * strecpy(output, input, except) + * strccpy copys the input string to the output string expanding + * any non-graphic character with the C escape sequence. + * Escape sequences produced are those defined in "The C Programming + * Language" pages 180-181. + * Characters in the except string will not be expanded. + */ -GLOBAL char * -strecpy(pout, pin, except) -register char *pout; -register char *pin; -char *except; +static char * +strecpy(char *pout, char *pin, char *except) { - register unsigned c; - register char *output; + unsigned c; + char *output; - trace1(TR_strecpy, 0); output = pout; while ((c = *pin++) != 0) { - if (!isprint(c) && (!except || !strchr(except, c))) { + if (!isprint(c) && (!except || !strchr(except, c))) { *pout++ = '\\'; - switch(c) { + switch (c) { case '\n': *pout++ = 'n'; continue; @@ -78,11 +79,11 @@ char *except; continue; } } - if (c == '\\' && (!except || !strchr(except, c))) + if (c == '\\' && (!except || !strchr(except, c))) *pout++ = '\\'; - *pout++ = (char) c; + *pout++ = (char)c; } *pout = '\0'; - trace1(TR_strecpy, 1); - return (output); + return (output); } +#endif diff --git a/usr/src/lib/libnsl/dial/strsave.c b/usr/src/lib/libnsl/dial/strsave.c index 47a6b5359d..5af32721fa 100644 --- a/usr/src/lib/libnsl/dial/strsave.c +++ b/usr/src/lib/libnsl/dial/strsave.c @@ -19,88 +19,70 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> - -/* #include <errno.h> */ -/* #include <malloc.h> */ -/* #include <string.h> */ -/* #include <sys/types.h> */ -/* #include <sys/stat.h> */ #if defined(sparc) -#define _STAT _stat +#define _STAT _stat #else /* !sparc */ -#define _STAT stat +#define _STAT stat #endif /* sparc */ extern int _stat(const char *, struct stat *); /* copy str into data space -- caller should report errors. */ -GLOBAL char * -strsave(str) -#if defined(__STDC__) -register const char *str; -#else -register char *str; -#endif +static char * +strsave(const char *str) { - register char *rval; + char *rval; - trace1(TR_strsave, 0); rval = malloc(strlen(str) + 1); if (rval != 0) - strcpy(rval, str); - trace1(TR_strsave, 1); + (void) strcpy(rval, str); return (rval); } -/* Determine if the effective user id has the appropriate permission - on a file. Modeled after access(2). - amode: - 00 just checks for file existence. - 04 checks read permission. - 02 checks write permission. - 01 checks execute/search permission. - other bits are ignored quietly. -*/ +/* + * Determine if the effective user id has the appropriate permission + * on a file. Modeled after access(2). + * amode: + * 00 just checks for file existence. + * 04 checks read permission. + * 02 checks write permission. + * 01 checks execute/search permission. + * other bits are ignored quietly. + */ -GLOBAL int -eaccess(path, amode) -char *path; -register mode_t amode; +static int +eaccess(char *path, mode_t amode) { struct stat s; uid_t euid; - trace1(TR_eaccess, 0); - if (_STAT(path, &s) == -1) { - trace1(TR_eaccess, 1); + if (_STAT(path, &s) == -1) return (-1); /* can't stat file */ - } amode &= 07; - if ((euid = geteuid()) == 0) { /* root can do all */ - trace1(TR_eaccess, 1); - return (0); - } + if ((euid = geteuid()) == 0) /* root can do all */ + return (0); if (euid == s.st_uid) s.st_mode >>= 6; /* use owner bits */ else if (getegid() == s.st_gid) s.st_mode >>= 3; /* use group bits */ - if ((amode & s.st_mode) == amode) { - trace1(TR_eaccess, 1); + if ((amode & s.st_mode) == amode) return (0); /* access permitted */ - } errno = EACCES; - trace1(TR_eaccess, 1); return (-1); } diff --git a/usr/src/lib/libnsl/dial/sysfiles.c b/usr/src/lib/libnsl/dial/sysfiles.c index 7c07eef452..b28d266f2f 100644 --- a/usr/src/lib/libnsl/dial/sysfiles.c +++ b/usr/src/lib/libnsl/dial/sysfiles.c @@ -19,21 +19,21 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> #include <unistd.h> +#include <string.h> #include "sysfiles.h" #include <sys/stropts.h> @@ -50,18 +50,23 @@ * allow arbitrary classes of service. * need verifysys() for uucheck. * nameserver interface? - * pass sysname (or 0) to getsysline(). (might want reg. exp. or NS processing + * pass sysname (or 0) to getsysline(). (might want reg. exp. or + * NS processing) */ /* private variables */ -static void tokenize(), nameparse(), setfile(), setioctl(), - scansys(), scancfg(), setconfig(); -#if defined(__STDC__) -static int namematch(const char *label, char *line, char *name); -#else -static int namematch(); -#endif -static int nextdialers(), nextdevices(), nextsystems(), getline(); +static void tokenize(void); +static void nameparse(void); +static void setfile(char **, char *); +static void setioctl(char **, char *); +static void scansys(const char *); +static void scancfg(char *, char *); +static void setconfig(void); +static int namematch(const char *label, char *line, const char *name); +static int nextdialers(void); +static int nextdevices(void); +static int nextsystems(void); +static int getline(FILE *, char *); /* pointer arrays might be dynamically allocated */ static char *Systems[64]; /* list of Systems files */ @@ -74,104 +79,75 @@ static int nsystems; /* index into list of Systems files */ static int ndevices; /* index into list of Devices files */ static int ndialers; /* index into list of Dialers files */ static int npops; /* index into list of STREAMS modules */ - /*to be popped */ + /* to be popped */ static int npushes; /* index into list of STREAMS modules */ - /*to be pushed */ + /* to be pushed */ -GLOBAL unsigned connecttime, expecttime, msgtime; +static unsigned connecttime, expecttime; static FILE *fsystems; static FILE *fdevices; static FILE *fdialers; /* this might be dynamically allocated */ -#define NTOKENS 16 +#define NTOKENS 16 static char *tokens[NTOKENS], **tokptr; /* export these */ -#if defined(__STDC__) -EXTERN void setservice(const char *service); -#else -EXTERN void setservice(); -#endif -EXTERN void sysreset(), devreset(), dialreset(), setdevcfg(), setservice(); +static void setservice(const char *service); +static void sysreset(void); +static void devreset(void); +static void dialreset(void); +static void setdevcfg(char *, char *); +static void setservice(const char *); /* import these */ -extern char *strcpy(), *strtok(), *strchr(), *strsave(); -EXTERN int eaccess(); +extern char *strsave(const char *); +static int eaccess(char *, mode_t); /* * setservice init's Systems, Devices, Dialers lists from Sysfiles */ -GLOBAL void -setservice(service) -#if defined(__STDC__) -const char *service; -#else -char *service; -#endif +static void +setservice(const char *service) { - trace1(TR_setservice, 0); setconfig(); scansys(service); - trace1(TR_setservice, 1); - return; } /* * setdevcfg init's Pops, Pushes lists from Devconfig */ -GLOBAL void -setdevcfg(service, device) -char *service, *device; +static void +setdevcfg(char *service, char *device) { - trace1(TR_setdevcfg, 0); scancfg(service, device); - trace1(TR_setdevcfg, 1); - return; } /* administrative files access */ -GLOBAL int -sysaccess(type) -int type; +static int +sysaccess(int type) { - int dummy; + char errformat[BUFSIZ]; - trace2(TR_sysaccess, 0, type); switch (type) { - case ACCESS_SYSTEMS: - trace1(TR_sysaccess, 1); return (access(Systems[nsystems], R_OK)); case ACCESS_DEVICES: - trace1(TR_sysaccess, 1); return (access(Devices[ndevices], R_OK)); case ACCESS_DIALERS: - trace1(TR_sysaccess, 1); return (access(Dialers[ndialers], R_OK)); case EACCESS_SYSTEMS: - dummy = eaccess(Systems[nsystems], R_OK); - trace1(TR_sysaccess, 1); - return (dummy); + return (eaccess(Systems[nsystems], R_OK)); case EACCESS_DEVICES: - dummy = eaccess(Devices[ndevices], R_OK); - trace1(TR_sysaccess, 1); - return (dummy); + return (eaccess(Devices[ndevices], R_OK)); case EACCESS_DIALERS: - dummy = eaccess(Dialers[ndialers], R_OK); - trace1(TR_sysaccess, 1); - return (dummy); - default: { - char errformat[BUFSIZ]; - - (void) sprintf(errformat, "bad access type %d", type); - logent(errformat, "sysaccess"); - trace1(TR_sysaccess, 1); - return (FAIL); - } + return (eaccess(Dialers[ndialers], R_OK)); } + (void) sprintf(errformat, "bad access type %d", type); + logent(errformat, "sysaccess"); + return (FAIL); } @@ -181,15 +157,13 @@ int type; * type to describe resources more than once, e.g., systems=foo:baz systems=bar. */ static void -scansys(service) -char *service; +scansys(const char *service) { FILE *f; char *tok, buf[BUFSIZ]; - trace1(TR_scansys, 0); Systems[0] = Devices[0] = Dialers[0] = NULL; if ((f = fopen(SYSFILES, "r")) != 0) { - while (getline(f, buf) > 0) { + while (getline(f, buf) > 0) { /* got a (logical) line from Sysfiles */ /* strtok's of this buf continue in tokenize() */ tok = strtok(buf, " \t"); @@ -204,21 +178,22 @@ char *service; /* if didn't find entries in Sysfiles, use defaults */ if (Systems[0] == NULL) { Systems[0] = strsave(SYSTEMS); - ASSERT(Systems[0] != NULL, "Ct_ALLOCATE", "scansys: Systems", 0); + ASSERT(Systems[0] != NULL, "Ct_ALLOCATE", "scansys: Systems", + 0); Systems[1] = NULL; } if (Devices[0] == NULL) { Devices[0] = strsave(DEVICES); - ASSERT(Devices[0] != NULL, "Ct_ALLOCATE", "scansys: Devices", 0); + ASSERT(Devices[0] != NULL, "Ct_ALLOCATE", "scansys: Devices", + 0); Devices[1] = NULL; } if (Dialers[0] == NULL) { Dialers[0] = strsave(DIALERS); - ASSERT(Dialers[0] != NULL, "Ct_ALLOCATE", "scansys: Dialers", 0); + ASSERT(Dialers[0] != NULL, "Ct_ALLOCATE", "scansys: Dialers", + 0); Dialers[1] = NULL; } - trace1(TR_scansys, 1); - return; } @@ -227,18 +202,15 @@ char *service; * type to describe resources more than once, e.g., push=foo:baz push=bar. */ static void -scancfg(service, device) -char *service, *device; +scancfg(char *service, char *device) { FILE *f; char *tok, buf[BUFSIZ]; /* (re)initialize device-specific information */ - trace1(TR_scancfg, 0); npops = npushes = 0; Pops[0] = Pushes[0] = NULL; connecttime = CONNECTTIME; expecttime = EXPECTTIME; - msgtime = MSGTIME; if ((f = fopen(DEVCONFIG, "r")) != 0) { while (getline(f, buf) > 0) { @@ -255,7 +227,6 @@ char *service, *device; } (void) fclose(f); } - trace1(TR_scancfg, 1); return; } @@ -267,16 +238,13 @@ char *service, *device; */ static int -getline(f, line) -FILE *f; -char *line; +getline(FILE *f, char *line) { char *lptr, *lend; - trace1(TR_getline, 0); lptr = line; while (fgets(lptr, (line + BUFSIZ) - lptr, f) != NULL) { lend = lptr + strlen(lptr); - if (lend == lptr || lend[-1] != '\n') + if (lend == lptr || lend[-1] != '\n') /* empty buf or line too long! */ break; *--lend = '\0'; /* lop off ending '\n' */ @@ -288,7 +256,6 @@ char *line; /* continuation */ lend[-1] = ' '; } - trace1(TR_getline, 1); return (lptr - line); } @@ -298,26 +265,16 @@ char *line; * in a colon-separated list of names following the label, return true; * else return false */ -#if defined(__STDC__) static int -namematch(const char *label, char *line, char *name) -#else -static int -namematch(label, line, name) -char *label, *line, *name; -#endif -{ char *lend; +namematch(const char *label, char *line, const char *name) +{ + char *lend; - trace1(TR_namematch, 0); - if (strncmp(label, line, strlen(label)) != SAME) { - trace1(TR_namematch, 1); + if (strncmp(label, line, strlen(label)) != SAME) return (FALSE); /* probably a comment line */ - } line += strlen(label); - if (*line == '\0') { - trace1(TR_namematch, 1); + if (*line == '\0') return (FALSE); - } /* * can't use strtok() in the following because scansys(), * scancfg() do an initializing call to strtok() before @@ -326,13 +283,10 @@ char *label, *line, *name; */ while ((lend = strchr(line, ':')) != NULL) { *lend = '\0'; - if (strcmp(line, name) == SAME) { - trace1(TR_namematch, 1); + if (strcmp(line, name) == SAME) return (TRUE); - } line = lend+1; } - trace1(TR_namematch, 1); return (strcmp(line, name) == SAME); } @@ -342,35 +296,33 @@ char *label, *line, *name; * tokenize() -- and starts stuffing 'em into tokptr. */ static void -tokenize() -{ char *tok; +tokenize(void) +{ + char *tok; - trace1(TR_tokenize, 0); tokptr = tokens; - while ((tok = strtok((char *) NULL, " \t")) != NULL) { + while ((tok = strtok(NULL, " \t")) != NULL) { *tokptr++ = tok; if (tokptr - tokens >= NTOKENS) break; } *tokptr = NULL; - trace1(TR_tokenize, 1); - return; } /* * look at top token in array: should be line of the form * name=item1:item2:item3... - * if name is one we recognize, then call set[file|ioctl] to set up + * if name is one we recognize, then call set[file|ioctl] to set up * corresponding list. otherwise, log bad name. */ static void -nameparse() -{ char **line, *equals; +nameparse(void) +{ + char **line, *equals; int temp; -#define setuint(a,b,c) a = (((temp = atoi(b)) <= 0) ? (c) : temp) +#define setuint(a, b, c) a = (((temp = atoi(b)) <= 0) ? (c) : temp) - trace1(TR_nameparse, 0); for (line = tokens; (line - tokens) < NTOKENS && *line; line++) { equals = strchr(*line, '='); if (equals == NULL) @@ -394,16 +346,15 @@ nameparse() else if (strcmp(*line, "expecttime") == SAME) setuint(expecttime, equals, EXPECTTIME); else if (strcmp(*line, "msgtime") == SAME) - setuint(msgtime, equals, MSGTIME); + continue; else { char errformat[BUFSIZ]; - (void) sprintf(errformat,"unrecognized label %s",*line); + (void) snprintf(errformat, sizeof (errformat), + "unrecognized label %s", *line); logent(errformat, "Sysfiles|Devconfig"); } } - trace1(TR_nameparse, 1); - return; } /* @@ -412,27 +363,24 @@ nameparse() */ static void -setfile(type, line) -char **type, *line; -{ char **tptr, *tok; +setfile(char **type, char *line) +{ + char **tptr, *tok; char expandpath[BUFSIZ]; - trace1(TR_setfile, 0); - if (*line == 0) { - trace1(TR_setfile, 1); + if (*line == 0) return; - } tptr = type; - while (*tptr) /* skip over existing entries to*/ + while (*tptr) /* skip over existing entries to */ tptr++; /* concatenate multiple entries */ - for (tok = strtok(line, ":"); tok != NULL; - tok = strtok((char *) NULL, ":")) { + for (tok = strtok(line, ":"); tok != NULL; tok = strtok(NULL, ":")) { expandpath[0] = '\0'; if (*tok != '/') /* by default, file names are relative to SYSDIR */ - sprintf(expandpath, "%s/", SYSDIR); - strcat(expandpath, tok); + (void) snprintf(expandpath, sizeof (expandpath), + "%s/", SYSDIR); + (void) strcat(expandpath, tok); if (eaccess(expandpath, R_OK) != 0) /* if we can't read it, no point in adding to list */ continue; @@ -440,8 +388,6 @@ char **type, *line; ASSERT(*tptr != NULL, "Ct_ALLOCATE", "setfile: tptr", 0); tptr++; } - trace1(TR_setfile, 1); - return; } /* @@ -450,83 +396,67 @@ char **type, *line; */ static void -setioctl(type, line) -char **type, *line; -{ char **tptr, *tok; +setioctl(char **type, char *line) +{ + char **tptr, *tok; - trace1(TR_setioctl, 0); - if (*line == 0) { - trace1(TR_setioctl, 1); + if (*line == 0) return; - } tptr = type; - while (*tptr) /* skip over existing entries to*/ + while (*tptr) /* skip over existing entries to */ tptr++; /* concatenate multiple entries */ - for (tok = strtok(line, ":"); tok != NULL; - tok = strtok((char *) NULL, ":")) { + for (tok = strtok(line, ":"); tok != NULL; tok = strtok(NULL, ":")) { *tptr = strsave(tok); ASSERT(*tptr != NULL, "Ct_ALLOCATE", "setioctl: tptr", 0); tptr++; } - trace1(TR_setioctl, 1); - return; } /* * reset Systems files */ -GLOBAL void -sysreset() +static void +sysreset(void) { - trace1(TR_sysreset, 0); if (fsystems) - fclose(fsystems); + (void) fclose(fsystems); fsystems = NULL; nsystems = 0; devreset(); - trace1(TR_sysreset, 1); - return; } /* * reset Devices files */ -GLOBAL void -devreset() +static void +devreset(void) { - trace1(TR_devreset, 0); if (fdevices) - fclose(fdevices); + (void) fclose(fdevices); fdevices = NULL; ndevices = 0; dialreset(); - trace1(TR_devreset, 1); - return; } /* * reset Dialers files */ -GLOBAL void -dialreset() +static void +dialreset(void) { - trace1(TR_dialreset, 0); if (fdialers) - fclose(fdialers); + (void) fclose(fdialers); fdialers = NULL; ndialers = 0; - trace1(TR_dialreset, 1); - return; } /* * get next line from Systems file * return TRUE if successful, FALSE if not */ -GLOBAL int +static int getsysline(char *buf, int len) { - trace2(TR_getsysline, 0, len); if (Systems[0] == NULL) /* not initialized via setservice() - use default */ setservice("uucico"); @@ -535,22 +465,16 @@ getsysline(char *buf, int len) /* from systems */ devreset(); if (fsystems == NULL) - if (nextsystems() == FALSE) { - trace1(TR_getsysline, 1); + if (nextsystems() == FALSE) return (FALSE); - } for (;;) { while (fgets(buf, len, fsystems) != NULL) if ((*buf != '#') && (*buf != ' ') && - (*buf != '\t') && (*buf != '\n')) { - trace1(TR_getsysline, 1); + (*buf != '\t') && (*buf != '\n')) return (TRUE); - } - if (nextsystems() == FALSE) { - trace1(TR_getsysline, 1); + if (nextsystems() == FALSE) return (FALSE); - } } } @@ -558,9 +482,8 @@ getsysline(char *buf, int len) * move to next systems file. return TRUE if successful, FALSE if not */ static int -nextsystems() +nextsystems(void) { - trace1(TR_nextsystems, 0); devreset(); if (fsystems != NULL) { @@ -570,40 +493,30 @@ nextsystems() nsystems = 0; } for (; Systems[nsystems] != NULL; nsystems++) - if ((fsystems = fopen(Systems[nsystems], "r")) != NULL) { - trace1(TR_nextsystems, 1); + if ((fsystems = fopen(Systems[nsystems], "r")) != NULL) return (TRUE); - } - trace1(TR_nextsystems, 1); return (FALSE); } - + /* * get next line from Devices file * return TRUE if successful, FALSE if not */ -GLOBAL int +static int getdevline(char *buf, int len) { - trace2(TR_getdevline, 0, len); if (Devices[0] == NULL) /* not initialized via setservice() - use default */ setservice("uucico"); if (fdevices == NULL) - if (nextdevices() == FALSE) { - trace1(TR_getdevline, 1); + if (nextdevices() == FALSE) return (FALSE); - } for (;;) { - if (fgets(buf, len, fdevices) != NULL) { - trace1(TR_getdevline, 1); + if (fgets(buf, len, fdevices) != NULL) return (TRUE); - } - if (nextdevices() == FALSE) { - trace1(TR_getdevline, 1); + if (nextdevices() == FALSE) return (FALSE); - } } } @@ -611,9 +524,8 @@ getdevline(char *buf, int len) * move to next devices file. return TRUE if successful, FALSE if not */ static int -nextdevices() +nextdevices(void) { - trace1(TR_nextdevices, 0); if (fdevices != NULL) { (void) fclose(fdevices); ndevices++; @@ -621,42 +533,32 @@ nextdevices() ndevices = 0; } for (; Devices[ndevices] != NULL; ndevices++) - if ((fdevices = fopen(Devices[ndevices], "r")) != NULL) { - trace1(TR_nextdevices, 1); + if ((fdevices = fopen(Devices[ndevices], "r")) != NULL) return (TRUE); - } - trace1(TR_nextdevices, 1); return (FALSE); } - + /* * get next line from Dialers file * return TRUE if successful, FALSE if not */ -GLOBAL int +static int getdialline(char *buf, int len) { - trace2(TR_getdialline, 0, len); if (Dialers[0] == NULL) /* not initialized via setservice() - use default */ setservice("uucico"); if (fdialers == NULL) - if (nextdialers() == FALSE) { - trace1(TR_getdialline, 1); + if (nextdialers() == FALSE) return (FALSE); - } for (;;) { - if (fgets(buf, len, fdialers) != NULL) { - trace1(TR_getdialline, 1); + if (fgets(buf, len, fdialers) != NULL) return (TRUE); - } - if (nextdialers() == FALSE) { - trace1(TR_getdialline, 1); + if (nextdialers() == FALSE) return (FALSE); - } } } @@ -664,22 +566,18 @@ getdialline(char *buf, int len) * move to next dialers file. return TRUE if successful, FALSE if not */ static int -nextdialers() +nextdialers(void) { - trace1(TR_nextdialers, 0); if (fdialers) { (void) fclose(fdialers); ndialers++; } else { ndialers = 0; } - + for (; Dialers[ndialers] != NULL; ndialers++) - if ((fdialers = fopen(Dialers[ndialers], "r")) != NULL) { - trace1(TR_nextdialers, 1); + if ((fdialers = fopen(Dialers[ndialers], "r")) != NULL) return (TRUE); - } - trace1(TR_nextdialers, 1); return (FALSE); } @@ -688,32 +586,25 @@ nextdialers() * return TRUE if successful, FALSE if not */ static int -getpop(buf, len, optional) -char *buf; -size_t len; -int *optional; +getpop(char *buf, size_t len, int *optional) { int slen; - trace2(TR_getpop, 0, len); - if (Pops[0] == NULL || Pops[npops] == NULL) { - trace1(TR_getpop, 1); + if (Pops[0] == NULL || Pops[npops] == NULL) return (FALSE); - } /* if the module name is enclosed in parentheses, */ /* is optional. set flag & strip parens */ slen = strlen(Pops[npops]) - 1; - if (Pops[npops][0] == '(' && Pops[npops][slen] == ')') { + if (Pops[npops][0] == '(' && Pops[npops][slen] == ')') { *optional = 1; len = (slen < len ? slen : len); - strncpy(buf, &(Pops[npops++][1]), len); + (void) strncpy(buf, &(Pops[npops++][1]), len); } else { *optional = 0; - strncpy(buf, Pops[npops++], len); + (void) strncpy(buf, Pops[npops++], len); } buf[len-1] = '\0'; - trace1(TR_getpop, 1); return (TRUE); } @@ -722,17 +613,11 @@ int *optional; * return TRUE if successful, FALSE if not */ static int -getpush(buf, len) -char *buf; -size_t len; +getpush(char *buf, size_t len) { - trace2(TR_getpush, 0, len); - if (Pushes[0] == NULL || Pushes[npushes] == NULL) { - trace1(TR_getpush, 1); + if (Pushes[0] == NULL || Pushes[npushes] == NULL) return (FALSE); - } - strncpy(buf, Pushes[npushes++], len); - trace1(TR_getpush, 1); + (void) strncpy(buf, Pushes[npushes++], len); return (TRUE); } @@ -740,126 +625,117 @@ size_t len; * pop/push requested modules * return TRUE if successful, FALSE if not */ -GLOBAL int -pop_push(fd) -int fd; +static int +pop_push(int fd) { char strmod[FMNAMESZ], onstream[FMNAMESZ]; int optional; - trace2(TR_pop_push, 0, fd); /* check for streams modules to pop */ - while (getpop(strmod, sizeof(strmod), &optional)) { + while (getpop(strmod, sizeof (strmod), &optional)) { DEBUG(5, (optional ? - (const char *)"pop_push: optionally POPing %s\n" - : (const char *)"pop_push: POPing %s\n"), strmod); + (const char *)"pop_push: optionally POPing %s\n" : + (const char *)"pop_push: POPing %s\n"), strmod); if (ioctl(fd, I_LOOK, onstream) == -1) { DEBUG(5, "pop_push: I_LOOK on fd %d failed ", fd); DEBUG(5, "errno %d\n", errno); - trace1(TR_pop_push, 1); return (FALSE); } if (strcmp(strmod, onstream) != SAME) { if (optional) continue; DEBUG(5, "pop_push: I_POP: %s not there\n", strmod); - trace1(TR_pop_push, 1); return (FALSE); } if (ioctl(fd, I_POP, 0) == -1) { DEBUG(5, "pop_push: I_POP on fd %d failed ", fd); DEBUG(5, "errno %d\n", errno); - trace1(TR_pop_push, 1); return (FALSE); } } /* check for streams modules to push */ - while (getpush(strmod, sizeof(strmod))) { + while (getpush(strmod, sizeof (strmod))) { DEBUG(5, "pop_push: PUSHing %s\n", strmod); if (ioctl(fd, I_PUSH, strmod) == -1) { DEBUG(5, "pop_push: I_PUSH on fd %d failed ", fd); DEBUG(5, "errno %d\n", errno); - trace1(TR_pop_push, 1); return (FALSE); } } - trace1(TR_pop_push, 1); return (TRUE); } +#ifndef SMALL /* - * return name of currently open Systems file + * return name of currently open Systems file */ -GLOBAL char * -currsys() +static char * +currsys(void) { - trace1(TR_currsys, 0); - trace1(TR_currsys, 1); return (Systems[nsystems]); } /* - * return name of currently open Devices file + * return name of currently open Devices file */ -GLOBAL char * -currdev() +static char * +currdev(void) { - trace1(TR_currdev, 0); - trace1(TR_currdev, 1); return (Devices[ndevices]); } /* - * return name of currently open Dialers file + * return name of currently open Dialers file */ -GLOBAL char * -currdial() +static char * +currdial(void) { - trace1(TR_currdial, 0); - trace1(TR_currdial, 1); return (Dialers[ndialers]); } +#endif /* * set configuration parameters provided in Config file */ static void -setconfig() +setconfig(void) { FILE *f; char buf[BUFSIZ]; char *tok; extern char _ProtoCfg[]; - trace1(TR_setconfig, 0); if ((f = fopen(CONFIG, "r")) != 0) { - while (getline(f, buf) > 0) { + while (getline(f, buf) > 0) { /* got a (logical) line from Config file */ tok = strtok(buf, " \t"); if ((tok != NULL) && (*tok != '#')) { /* got a token */ - - /* this probably should be table driven when - * the list of configurable parameters grows. - */ - if (strncmp("Protocol=", tok, strlen("Protocol=")) == SAME) { + /* + * this probably should be table driven when + * the list of configurable parameters grows. + */ + if (strncmp("Protocol=", tok, strlen("Protocol=")) == + SAME) { tok += strlen("Protocol="); if (*tok != '\0') { if (_ProtoCfg[0] != '\0') { /*EMPTY*/ - DEBUG(7, "Protocol string %s ", tok); - DEBUG(7, "overrides %s\n", _ProtoCfg); + DEBUG(7, "Protocol string %s ", + tok); + DEBUG(7, "overrides %s\n", + _ProtoCfg); } - strcpy(_ProtoCfg, tok); + (void) strcpy(_ProtoCfg, tok); } } else { /*EMPTY*/ - DEBUG(7, "Unknown configuration parameter %s\n", tok); + DEBUG(7, "Unknown configuration parameter %s\n", + tok); } } } (void) fclose(f); } - trace1(TR_setconfig, 1); } diff --git a/usr/src/lib/libnsl/dial/sysfiles.h b/usr/src/lib/libnsl/dial/sysfiles.h index 8261b52844..78f493ecab 100644 --- a/usr/src/lib/libnsl/dial/sysfiles.h +++ b/usr/src/lib/libnsl/dial/sysfiles.h @@ -19,19 +19,31 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ +#ifndef _DIAL_SYSFILES_H +#define _DIAL_SYSFILES_H + +#pragma ident "%Z%%M% %I% %E% SMI" -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#ifdef __cplusplus +extern "C" { +#endif -#define SYSDIR (const char *)"/etc/uucp" -#define SYSFILES (const char *)"/etc/uucp/Sysfiles" -#define SYSTEMS (const char *)"/etc/uucp/Systems" -#define DEVICES (const char *)"/etc/uucp/Devices" -#define DIALERS (const char *)"/etc/uucp/Dialers" +#define SYSDIR (const char *)"/etc/uucp" +#define SYSFILES (const char *)"/etc/uucp/Sysfiles" +#define SYSTEMS (const char *)"/etc/uucp/Systems" +#define DEVICES (const char *)"/etc/uucp/Devices" +#define DIALERS (const char *)"/etc/uucp/Dialers" #define DEVCONFIG (const char *)"/etc/uucp/Devconfig" -#define CONFIG (const char *)"/etc/uucp/Config" +#define CONFIG (const char *)"/etc/uucp/Config" #define SAME 0 #define TRUE 1 @@ -48,3 +60,8 @@ #define EACCESS_DEVICES 5 #define EACCESS_DIALERS 6 +#ifdef __cplusplus +} +#endif + +#endif /* _DIAL_SYSFILES_H */ diff --git a/usr/src/lib/libnsl/dial/ulockf.c b/usr/src/lib/libnsl/dial/ulockf.c index bc92965209..73540f92ca 100644 --- a/usr/src/lib/libnsl/dial/ulockf.c +++ b/usr/src/lib/libnsl/dial/ulockf.c @@ -19,32 +19,28 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1996, by Sun Microsystems, Inc. - * All Rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#pragma ident "%Z%%M% %I% %E% SMI" #include "uucp.h" -#include <rpc/trace.h> #include <unistd.h> +#include <stdlib.h> /* #include <sys/types.h> */ /* #include <sys/stat.h> */ -#ifdef V7 -#define O_RDONLY 0 -#endif - #undef _STAT #undef _FSTAT -#define _STAT stat64 -#define _FSTAT fstat64 +#define _STAT stat64 +#define _FSTAT fstat64 static void stlock(); static int onelock(); @@ -62,113 +58,92 @@ static int onelock(); * FAIL -> failure */ -GLOBAL int -mklock(name) -register char *name; +static int +mklock(char *name) { static char pid[SIZEOFPID+2] = { '\0' }; /* +2 for '\n' and NULL */ static char *tempfile; -#ifdef V8 - char *cp; -#endif - trace1(TR_mklock, 0); if (pid[0] == '\0') { - tempfile = (char *)malloc(MAXNAMESIZE); + tempfile = malloc(MAXNAMESIZE); if (tempfile == NULL) return (FAIL); - (void) sprintf(pid, "%*ld\n", SIZEOFPID, (long) getpid()); - (void) sprintf(tempfile, "%s/LTMP.%ld", X_LOCKDIR, (long) getpid()); + (void) sprintf(pid, "%*ld\n", SIZEOFPID, (long)getpid()); + (void) snprintf(tempfile, MAXNAMESIZE, "%s/LTMP.%ld", X_LOCKDIR, + (long)getpid()); } -#ifdef V8 /* this wouldn't be a problem if we used lock directories */ - /* some day the truncation of system names will bite us */ - cp = rindex(name, '/'); - if (cp++ != CNULL) - if (strlen(cp) > MAXBASENAME) - *(cp+MAXBASENAME) = NULLCHAR; -#endif /* V8 */ if (onelock(pid, tempfile, name) == -1) { (void) unlink(tempfile); - if (cklock(name)) { - trace1(TR_mklock, 1); + if (cklock(name)) return (FAIL); - } else { if (onelock(pid, tempfile, name)) { (void) unlink(tempfile); - DEBUG(4,"ulockf failed in onelock()\n%s", ""); - trace1(TR_mklock, 1); + DEBUG(4, "ulockf failed in onelock()\n%s", ""); return (FAIL); } } } stlock(name); - trace1(TR_mklock, 1); return (0); } /* * check to see if the lock file exists and is still active - * - use kill(pid,0) + * - use kill(pid, 0) * * return: * 0 -> success (lock file removed - no longer active * FAIL -> lock file still active */ -GLOBAL int -cklock(name) -register char *name; +static int +cklock(char *name) { - register int ret; + int ret; pid_t lpid = -1; char alpid[SIZEOFPID+2]; /* +2 for '\n' and NULL */ int fd; - trace1(TR_cklock, 0); fd = open(name, O_RDONLY); DEBUG(4, "ulockf name %s\n", name); if (fd == -1) { if (errno == ENOENT) { /* file does not exist -- OK */ - trace1(TR_cklock, 1); - return (0); + return (0); } - DEBUG(4,"Lock File--can't read (errno %d) --remove it!\n", errno); + DEBUG(4, "Lock File--can't read (errno %d) --remove it!\n", + errno); goto unlk; } - ret = read(fd, (char *) alpid, SIZEOFPID+1); /* +1 for '\n' */ + ret = read(fd, (char *)alpid, SIZEOFPID + 1); /* +1 for '\n' */ (void) close(fd); if (ret != (SIZEOFPID+1)) { DEBUG(4, "Lock File--bad format--remove it!\n%s", ""); goto unlk; } - lpid = (pid_t) strtol(alpid, (char **) NULL, 10); - if ((ret=kill(lpid, 0)) == 0 || errno == EPERM) { - DEBUG(4, "Lock File--process still active--not removed\n%s", ""); - trace1(TR_cklock, 1); + lpid = (pid_t)strtol(alpid, NULL, 10); + if ((ret = kill(lpid, 0)) == 0 || errno == EPERM) { + DEBUG(4, "Lock File--process still active--not removed\n%s", + ""); return (FAIL); } - else { /* process no longer active */ - /*EMPTY*/ - DEBUG(4, "kill pid (%ld), ", (long) lpid); - DEBUG(4, "returned %d", ret); - DEBUG(4, "--ok to remove lock file (%s)\n", name); - } + /* process no longer active */ + DEBUG(4, "kill pid (%ld), ", (long)lpid); + DEBUG(4, "returned %d", ret); + DEBUG(4, "--ok to remove lock file (%s)\n", name); unlk: - + if (unlink(name) != 0) { - DEBUG(4,"ulockf failed in unlink()\n%s", ""); - trace1(TR_cklock, 1); + DEBUG(4, "ulockf failed in unlink()\n%s", ""); return (FAIL); } - trace1(TR_cklock, 1); return (0); } -#define MAXLOCKS 10 /* maximum number of lock files */ +#define MAXLOCKS 10 /* maximum number of lock files */ static char *Lockfile[MAXLOCKS]; -GLOBAL int Nlocks = 0; +static int Nlocks = 0; /* * put name in list of lock files @@ -176,13 +151,11 @@ GLOBAL int Nlocks = 0; * none */ static void -stlock(name) -char *name; +stlock(char *name) { - register int i; + int i; char *p; - trace1(TR_stlock, 0); for (i = 0; i < Nlocks; i++) { if (Lockfile[i] == NULL) break; @@ -190,12 +163,10 @@ char *name; ASSERT(i < MAXLOCKS, "TOO MANY LOCKS", "", i); if (i >= Nlocks) i = Nlocks++; - p = (char*) calloc((unsigned) strlen(name) + 1, sizeof (char)); + p = calloc((unsigned)strlen(name) + 1, sizeof (char)); ASSERT(p != NULL, "CAN NOT ALLOCATE FOR", name, 0); (void) strcpy(p, name); Lockfile[i] = p; - trace1(TR_stlock, 1); - return; } /* @@ -204,22 +175,10 @@ char *name; * return: * none */ -GLOBAL void -rmlock(name) -register char *name; +static void +rmlock(char *name) { - register int i; -#ifdef V8 - char *cp; -#endif /* V8 */ - - trace1(TR_rmlock, 0); -#ifdef V8 - cp = rindex(name, '/'); - if (cp++ != CNULL) - if (strlen(cp) > MAXBASENAME) - *(cp+MAXBASENAME) = NULLCHAR; -#endif /* V8 */ + int i; for (i = 0; i < Nlocks; i++) { if (Lockfile[i] == NULL) @@ -230,83 +189,6 @@ register char *name; Lockfile[i] = NULL; } } - trace1(TR_rmlock, 1); - return; -} - -/* - * remove a lock file - * - * Parameters: - * pre - Path and first part of file name of the lock file to be - * removed. - * s - The suffix part of the lock file. The name of the lock file - * will be derrived by concatenating pre, a period, and s. - * - * return: - * none - */ -GLOBAL void -delock(pre, s) -char * pre; -char *s; -{ - char ln[MAXNAMESIZE]; - - trace1(TR_delock, 0); - (void) sprintf(ln, "%s.%s", pre, s); - BASENAME(ln, '/')[MAXBASENAME] = '\0'; - rmlock(ln); - trace1(TR_delock, 1); - return; -} - -/* - * create lock file - * - * Parameters: - * pre - Path and first part of file name of the lock file to be - * created. - * name - The suffix part of the lock file. The name of the lock file - * will be derrived by concatenating pre, a period, and name. - * - * return: - * 0 -> success - * FAIL -> failure - */ -GLOBAL int -mlock(pre, name) -char * pre; -char *name; -{ - char lname[MAXNAMESIZE]; - int dummy; - - trace1(TR_mlock, 0); - /* - * if name has a '/' in it, then it's a device name and it's - * not in /dev (i.e., it's a remotely-mounted device or it's - * in a subdirectory of /dev). in either case, creating our normal - * lockfile (/var/spool/locks/LCK..<dev>) is going to bomb if - * <dev> is "/remote/dev/term/14" or "/dev/net/foo/clone", so never - * mind. since we're using advisory filelocks on the devices - * themselves, it'll be safe. - * - * of course, programs and people who are used to looking at the - * lockfiles to find out what's going on are going to be a trifle - * misled. we really need to re-consider the lockfile naming structure - * to accomodate devices in directories other than /dev ... maybe in - * the next release. - */ - if (strchr(name, '/') != NULL) { - trace1(TR_mlock, 1); - return (0); - } - (void) sprintf(lname, "%s.%s", pre, BASENAME(name, '/')); - BASENAME(lname, '/')[MAXBASENAME] = '\0'; - dummy = mklock(lname); - trace1(TR_mlock, 1); - return (dummy); } /* @@ -320,49 +202,46 @@ char *name; * 0 - lock made successfully */ static int -onelock(pid,tempfile,name) -char *pid; -char *tempfile, *name; -{ - register int fd; +onelock(char *pid, char *tempfile, char *name) +{ + int fd; char cb[100]; - trace1(TR_onelock, 0); - fd=creat(tempfile, (mode_t) 0444); - if (fd < 0){ - (void) sprintf(cb, "%s %s %d",tempfile, name, errno); + fd = creat(tempfile, (mode_t)0444); + if (fd < 0) { + (void) snprintf(cb, sizeof (cb), + "%s %s %d", tempfile, name, errno); logent("ULOCKC", cb); if ((errno == EMFILE) || (errno == ENFILE)) (void) unlink(tempfile); - trace1(TR_onelock, 1); return (-1); } /* +1 for '\n' */ if (write(fd, pid, SIZEOFPID+1) != (SIZEOFPID+1)) { - (void) sprintf(cb, "%s %s %d",tempfile, name, errno); + (void) snprintf(cb, sizeof (cb), + "%s %s %d", tempfile, name, errno); logent("ULOCKW", cb); (void) unlink(tempfile); return (-1); } - (void) chmod(tempfile, (mode_t) 0444); + (void) chmod(tempfile, (mode_t)0444); (void) chown(tempfile, UUCPUID, UUCPGID); (void) close(fd); - if (link(tempfile,name)<0){ + if (link(tempfile, name) < 0) { DEBUG(4, "%s: ", strerror(errno)); DEBUG(4, "link(%s, ", tempfile); DEBUG(4, "%s)\n", name); - if (unlink(tempfile)< 0){ - (void) sprintf(cb, "ULK err %s %d", tempfile, errno); + if (unlink(tempfile) < 0) { + (void) snprintf(cb, sizeof (cb), + "ULK err %s %d", tempfile, errno); logent("ULOCKLNK", cb); } - trace1(TR_onelock, 1); return (-1); } - if (unlink(tempfile)<0){ - (void) sprintf(cb, "%s %d",tempfile,errno); + if (unlink(tempfile) < 0) { + (void) snprintf(cb, sizeof (cb), "%s %d", tempfile, errno); logent("ULOCKF", cb); } - trace1(TR_onelock, 1); return (0); } @@ -374,139 +253,59 @@ char *tempfile, *name; * FAIL - this process was not able to lock the fd */ -GLOBAL int -fd_mklock(fd) -int fd; +static int +fd_mklock(int fd) { int tries = 0; struct stat64 _st_buf; char lockname[BUFSIZ]; - trace2(TR_fd_mklock, 0, fd); - if (_FSTAT(fd, &_st_buf) != 0) { - trace1(TR_fd_mklock, 1); + if (_FSTAT(fd, &_st_buf) != 0) return (FAIL); - } - (void) sprintf(lockname, "%s.%3.3lu.%3.3lu.%3.3lu", L_LOCK, - (unsigned long) major(_st_buf.st_dev), - (unsigned long) major(_st_buf.st_rdev), - (unsigned long) minor(_st_buf.st_rdev)); + (void) snprintf(lockname, sizeof (lockname), + "%s.%3.3lu.%3.3lu.%3.3lu", L_LOCK, + (unsigned long)major(_st_buf.st_dev), + (unsigned long)major(_st_buf.st_rdev), + (unsigned long)minor(_st_buf.st_rdev)); - if (mklock(lockname) == FAIL) { - trace1(TR_fd_mklock, 1); + if (mklock(lockname) == FAIL) return (FAIL); - } - - while (lockf(fd, F_TLOCK, 0L) != 0) { + + while (lockf(fd, F_TLOCK, 0L) != 0) { DEBUG(7, "fd_mklock: lockf returns %d\n", errno); if ((++tries >= MAX_LOCKTRY) || (errno != EAGAIN)) { rmlock(lockname); - logent("fd_mklock","lockf failed"); - trace1(TR_fd_mklock, 1); + logent("fd_mklock", "lockf failed"); return (FAIL); } - sleep(2); + (void) sleep(2); } DEBUG(7, "fd_mklock: ok\n%s", ""); - trace1(TR_fd_mklock, 1); return (SUCCESS); } /* - * fn_cklock(name) - determine if the device indicated by name is locked - * - * return - - * SUCCESS - the name is not locked - * FAIL - the name is locked by another process - */ - -GLOBAL int -fn_cklock(name) -char *name; -{ - int dummy; - struct stat64 _st_buf; - char lockname[BUFSIZ]; - - trace1(TR_fn_cklock, 0); - /* we temporarily use lockname to hold full path name */ - (void) sprintf(lockname, "%s%s", (*name == '/' ? "" : "/dev/"), name); - - if (_STAT(lockname, &_st_buf) != 0) { - trace1(TR_fn_cklock, 1); - return (FAIL); - } - - (void) sprintf(lockname, "%s.%3.3lu.%3.3lu.%3.3lu", L_LOCK, - (unsigned long) major(_st_buf.st_dev), - (unsigned long) major(_st_buf.st_rdev), - (unsigned long) minor(_st_buf.st_rdev)); - - dummy = cklock(lockname); - trace1(TR_fn_cklock, 1); - return (dummy); -} - -/* - * fd_cklock(fd) - determine if the device indicated by fd is locked - * - * return - - * SUCCESS - the fd is not locked - * FAIL - the fd is locked by another process - */ - -GLOBAL int -fd_cklock(fd) -int fd; -{ - struct stat64 _st_buf; - char lockname[BUFSIZ]; - - trace2(TR_fd_cklock, 0, fd); - if (_FSTAT(fd, &_st_buf) != 0) { - trace1(TR_fd_cklock, 1); - return (FAIL); - } - - (void) sprintf(lockname, "%s.%3.3lu.%3.3lu.%3.3lu", L_LOCK, - (unsigned long) major(_st_buf.st_dev), - (unsigned long) major(_st_buf.st_rdev), - (unsigned long) minor(_st_buf.st_rdev)); - - if (cklock(lockname) == FAIL) { - trace1(TR_fd_cklock, 1); - return (FAIL); - } else { - trace1(TR_fd_cklock, 1); - return (lockf(fd, F_TEST, 0L)); - } -} - -/* * remove the locks associated with the device file descriptor * * return - * SUCCESS - both BNU lock file and advisory locks removed - * FAIL - + * FAIL - */ -GLOBAL void -fd_rmlock(fd) -int fd; +static void +fd_rmlock(int fd) { struct stat64 _st_buf; char lockname[BUFSIZ]; - trace2(TR_fd_rmlock, 0, fd); if (_FSTAT(fd, &_st_buf) == 0) { - (void) sprintf(lockname, "%s.%3.3lu.%3.3lu.%3.3lu", L_LOCK, - (unsigned long) major(_st_buf.st_dev), - (unsigned long) major(_st_buf.st_rdev), - (unsigned long) minor(_st_buf.st_rdev)); + (void) snprintf(lockname, sizeof (lockname), + "%s.%3.3lu.%3.3lu.%3.3lu", L_LOCK, + (unsigned long)major(_st_buf.st_dev), + (unsigned long)major(_st_buf.st_rdev), + (unsigned long)minor(_st_buf.st_rdev)); rmlock(lockname); } (void) lockf(fd, F_ULOCK, 0L); - trace1(TR_fd_rmlock, 1); - return; } diff --git a/usr/src/lib/libnsl/dial/uucp.h b/usr/src/lib/libnsl/dial/uucp.h index 0ae1330951..669168d430 100644 --- a/usr/src/lib/libnsl/dial/uucp.h +++ b/usr/src/lib/libnsl/dial/uucp.h @@ -19,258 +19,213 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #ifndef _UUCP_H -#define _UUCP_H +#define _UUCP_H -#if !defined(__STDC__) -#define const /* XXX - what a hack */ -#endif +#pragma ident "%Z%%M% %I% %E% SMI" #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <string.h> -#include "parms.h" - -#ifdef DIAL -#define EXTERN static -#define GLOBAL static -#else -#define EXTERN extern -#define GLOBAL -#endif - -#ifdef BSD4_2 -#define V7 -#undef NONAP -#undef FASTTIMER -#endif /* BSD4_2 */ - -#ifdef FASTTIMER -#undef NONAP -#endif - -#ifdef V8 -#define V7 -#endif /* V8 */ +#include <parms.h> #include <stdio.h> #include <ctype.h> #include <setjmp.h> #include <sys/param.h> - -/* - * param.h includes types.h and signal.h in 4bsd - */ -#ifdef V7 -#include <sgtty.h> -#include <sys/timeb.h> -#else /* !V7 */ #include <termio.h> -#include <sys/types.h> #include <signal.h> #include <fcntl.h> -#endif - #include <sys/stat.h> #include <utime.h> #include <dirent.h> - -#ifdef BSD4_2 -#include <sys/time.h> -#else /* !BSD4_2 */ #include <time.h> -#endif - #include <sys/times.h> #include <errno.h> - -#ifdef ATTSV #include <sys/mkdev.h> -#endif /* ATTSV */ +#include <strings.h> +#include <ulimit.h> +#include <sys/utsname.h> +#include <ustat.h> -#ifdef RT -#include "rt/types.h" -#include "rt/unix/param.h" -#include "rt/stat.h" -#include <sys/ustat.h> -#endif /* RT */ +#ifdef __cplusplus +extern "C" { +#endif /* what mode should user files be allowed to have upon creation? */ /* NOTE: This does not allow setuid or execute bits on transfer. */ -#define LEGALMODE (mode_t) 0666 +#define LEGALMODE (mode_t)0666 /* what mode should public files have upon creation? */ -#define PUB_FILEMODE (mode_t) 0666 +#define PUB_FILEMODE (mode_t)0666 /* what mode should log files have upon creation? */ -#define LOGFILEMODE (mode_t) 0644 +#define LOGFILEMODE (mode_t)0644 /* what mode should C. files have upon creation? */ -#define CFILEMODE (mode_t) 0644 +#define CFILEMODE (mode_t)0644 /* what mode should D. files have upon creation? */ -#define DFILEMODE (mode_t) 0600 +#define DFILEMODE (mode_t)0600 /* define the value of PUBMASK, used for creating "public" directories */ -#define PUBMASK (mode_t) 0000 +#define PUBMASK (mode_t)0000 /* what mode should public directories have upon creation? */ -#define PUB_DIRMODE (mode_t) 0777 +#define PUB_DIRMODE (mode_t)0777 /* define the value of DIRMASK, used for creating "system" subdirectories */ -#define DIRMASK (mode_t) 0022 +#define DIRMASK (mode_t)0022 -#define MAXSTART 300 /* how long to wait on startup */ +#define MAXSTART 300 /* how long to wait on startup */ /* define the last characters for ACU (used for 801/212 dialers) */ -#define ACULAST "<" +#define ACULAST "<" -/* caution - the fillowing names are also in Makefile - * any changes here have to also be made there +/* + * caution - the fillowing names are also in Makefile + * any changes here have to also be made there * * it's a good idea to make directories .foo, since this ensures * that they'll be ignored by processes that search subdirectories in SPOOL * - * XQTDIR=/var/uucp/.Xqtdir - * CORRUPT=/var/uucp/.Corrupt - * LOGDIR=/var/uucp/.Log - * SEQDIR=/var/uucp/.Sequence - * STATDIR=/var/uucp/.Status - * + * XQTDIR = /var/uucp/.Xqtdir + * CORRUPT = /var/uucp/.Corrupt + * LOGDIR = /var/uucp/.Log + * SEQDIR = /var/uucp/.Sequence + * STATDIR = /var/uucp/.Status */ /* where to put the STST. files? */ -#define STATDIR (const char *)"/var/uucp/.Status" +#define STATDIR (const char *)"/var/uucp/.Status" /* where should logfiles be kept? */ -#define LOGUUX (const char *)"/var/uucp/.Log/uux" -#define LOGUUXQT (const char *)"/var/uucp/.Log/uuxqt" -#define LOGUUCP (const char *)"/var/uucp/.Log/uucp" -#define LOGCICO (const char *)"/var/uucp/.Log/uucico" -#define CORRUPTDIR (const char *)"/var/uucp/.Corrupt" +#define LOGUUX (const char *)"/var/uucp/.Log/uux" +#define LOGUUXQT (const char *)"/var/uucp/.Log/uuxqt" +#define LOGUUCP (const char *)"/var/uucp/.Log/uucp" +#define LOGCICO (const char *)"/var/uucp/.Log/uucico" +#define CORRUPTDIR (const char *)"/var/uucp/.Corrupt" /* some sites use /var/uucp/.XQTDIR here */ /* use caution since things are linked into there */ -#define XQTDIR (const char *)"/var/uucp/.Xqtdir" +#define XQTDIR (const char *)"/var/uucp/.Xqtdir" /* how much of a system name can we print in a [CX]. file? */ /* MAXBASENAME - 1 (pre) - 1 ('.') - 1 (grade) - 4 (sequence number) */ -#define SYSNSIZE (MAXBASENAME - 7) +#define SYSNSIZE (MAXBASENAME - 7) #ifdef USRSPOOLLOCKS -#define LOCKPRE (const char *)"/var/spool/locks/LCK." +#define LOCKPRE (const char *)"/var/spool/locks/LCK." #else -#define LOCKPRE (const char *)"/var/spool/uucp/LCK." +#define LOCKPRE (const char *)"/var/spool/uucp/LCK." #endif /* USRSPOOLLOCKS */ -#define SQFILE (const char *)"/etc/uucp/SQFILE" -#define SQTMP (const char *)"/etc/uucp/SQTMP" -#define SLCKTIME 5400 /* system/device timeout (LCK.. files) */ -#define DIALCODES (const char *)"/etc/uucp/Dialcodes" -#define PERMISSIONS (const char *)"/etc/uucp/Permissions" +#define SQFILE (const char *)"/etc/uucp/SQFILE" +#define SQTMP (const char *)"/etc/uucp/SQTMP" +#define SLCKTIME 5400 /* system/device timeout (LCK.. files) */ +#define DIALCODES (const char *)"/etc/uucp/Dialcodes" +#define PERMISSIONS (const char *)"/etc/uucp/Permissions" -#define SPOOL (const char *)"/var/spool/uucp" -#define SEQDIR (const char *)"/var/uucp/.Sequence" +#define SPOOL (const char *)"/var/spool/uucp" +#define SEQDIR (const char *)"/var/uucp/.Sequence" -#define X_LOCKTIME 3600 +#define X_LOCKTIME 3600 #ifdef USRSPOOLLOCKS -#define SEQLOCK (const char *)"/var/spool/locks/LCK.SQ." -#define SQLOCK (const char *)"/var/spool/locks/LCK.SQ" -#define X_LOCK (const char *)"/var/spool/locks/LCK.X" -#define S_LOCK (const char *)"/var/spool/locks/LCK.S" -#define L_LOCK (const char *)"/var/spool/locks/LK" -#define X_LOCKDIR (const char *)"/var/spool/locks" /* must be dir part of above */ +#define SEQLOCK (const char *)"/var/spool/locks/LCK.SQ." +#define SQLOCK (const char *)"/var/spool/locks/LCK.SQ" +#define X_LOCK (const char *)"/var/spool/locks/LCK.X" +#define S_LOCK (const char *)"/var/spool/locks/LCK.S" +#define L_LOCK (const char *)"/var/spool/locks/LK" +#define X_LOCKDIR (const char *)"/var/spool/locks" + /* must be dir part of above */ #else -#define SEQLOCK (const char *)"/var/spool/uucp/LCK.SQ." -#define SQLOCK (const char *)"/var/spool/uucp/LCK.SQ" -#define X_LOCK (const char *)"/var/spool/uucp/LCK.X" -#define S_LOCK (const char *)"/var/spool/uucp/LCK.S" -#define L_LOCK (const char *)"/var/spool/uucp/LK" -#define X_LOCKDIR (const char *)"/var/spool/uucp" /* must be dir part of above */ +#define SEQLOCK (const char *)"/var/spool/uucp/LCK.SQ." +#define SQLOCK (const char *)"/var/spool/uucp/LCK.SQ" +#define X_LOCK (const char *)"/var/spool/uucp/LCK.X" +#define S_LOCK (const char *)"/var/spool/uucp/LCK.S" +#define L_LOCK (const char *)"/var/spool/uucp/LK" +#define X_LOCKDIR (const char *)"/var/spool/uucp" + /* must be dir part of above */ #endif /* USRSPOOLLOCKS */ -#define X_LOCKPRE (const char *)"LCK.X" /* must be last part of above */ - -#define PUBDIR (const char *)"/var/spool/uucppublic" -#define ADMIN (const char *)"/var/uucp/.Admin" -#define ERRLOG (const char *)"/var/uucp/.Admin/errors" -#define SYSLOG (const char *)"/var/uucp/.Admin/xferstats" -#define RMTDEBUG (const char *)"/var/uucp/.Admin/audit" -#define CLEANUPLOGFILE (const char *)"/var/uucp/.Admin/uucleanup" -#define CMDLOG (const char *)"/var/uucp/.Admin/command" -#define PERFLOG (const char *)"/var/uucp/.Admin/perflog" -#define ACCOUNT (const char *)"/var/uucp/.Admin/account" -#define SECURITY (const char *)"/var/uucp/.Admin/security" +#define X_LOCKPRE (const char *)"LCK.X" /* must be last part of above */ + +#define PUBDIR (const char *)"/var/spool/uucppublic" +#define ADMIN (const char *)"/var/uucp/.Admin" +#define ERRLOG (const char *)"/var/uucp/.Admin/errors" +#define SYSLOG (const char *)"/var/uucp/.Admin/xferstats" +#define RMTDEBUG (const char *)"/var/uucp/.Admin/audit" +#define CLEANUPLOGFILE (const char *)"/var/uucp/.Admin/uucleanup" +#define CMDLOG (const char *)"/var/uucp/.Admin/command" +#define PERFLOG (const char *)"/var/uucp/.Admin/perflog" +#define ACCOUNT (const char *)"/var/uucp/.Admin/account" +#define SECURITY (const char *)"/var/uucp/.Admin/security" #define WORKSPACE (const char *)"/var/uucp/.Workspace" -#define SQTIME 60 -#define TRYCALLS 2 /* number of tries to dial call */ -#define MINULIMIT (1L<<11) /* minimum reasonable ulimit */ +#define SQTIME 60 +#define TRYCALLS 2 /* number of tries to dial call */ +#define MINULIMIT (1L<<11) /* minimum reasonable ulimit */ #define MAX_LOCKTRY 5 /* number of attempts to lock device */ /* - * CDEBUG is for communication line debugging - * DEBUG is for program debugging + * CDEBUG is for communication line debugging + * DEBUG is for program debugging * #define SMALL to compile without the DEBUG code */ -#ifndef DIAL -#define CDEBUG(l, f, s) if (Debug >= l) fprintf(stderr, f, s) -#else -#define CDEBUG(l, f, s) -#define SMALL -#endif +#define CDEBUG(l, f, s) +#define SMALL #ifndef SMALL -#define DEBUG(l, f, s) if (Debug >= l) fprintf(stderr, f, s) +#define DEBUG(l, f, s) if (Debug >= l) fprintf(stderr, f, s) #else -#define DEBUG(l, f, s) +#define DEBUG(l, f, s) #endif /* SMALL */ /* * VERBOSE is used by cu and ct to inform the user of progress * In other programs, the Value of Verbose is always 0. */ -#define VERBOSE(f, s) { if (Verbose > 0) fprintf(stderr, f, s); } - -#define PREFIX(pre, str) (strncmp((pre), (str), strlen(pre)) == SAME) -#define BASENAME(str, c) ((Bnptr = strrchr((str), c)) ? (Bnptr + 1) : (str)) -#define EQUALS(a,b) ((a != CNULL) && (b != CNULL) && (strcmp((a),(b))==SAME)) -#define EQUALSN(a,b,n) ((a != CNULL) && (b != CNULL) && (strncmp((a),(b),(n))==SAME)) -#define LASTCHAR(s) (s+strlen(s)-1) - -#define SAME 0 -#define ANYREAD 04 -#define ANYWRITE 02 -#define FAIL -1 -#define SUCCESS 0 -#define NULLCHAR '\0' -#define CNULL (char *) 0 -#define STBNULL (struct sgttyb *) 0 -#define MASTER 1 -#define SLAVE 0 -#define MAXBASENAME 14 /* should be DIRSIZ but that is now fs dependent */ -#define MAXFULLNAME BUFSIZ -#define MAXNAMESIZE 64 /* /var/spool/uucp/<14 chars>/<14 chars>+slop */ -#define CONNECTTIME 30 -#define EXPECTTIME 45 -#define MSGTIME 60 -#define NAMESIZE MAXBASENAME+1 +#define VERBOSE(f, s) { if (Verbose > 0) (void) fprintf(stderr, f, s); } + +#define PREFIX(pre, str) (strncmp((pre), (str), strlen(pre)) == SAME) +#define BASENAME(str, c) ((Bnptr = strrchr((str), c)) ? (Bnptr + 1) : (str)) +#define EQUALS(a, b) ((a != CNULL) && (b != CNULL) && \ + (strcmp((a), (b)) == SAME)) +#define EQUALSN(a, b, n) ((a != CNULL) && (b != CNULL) && \ + (strncmp((a), (b), (n)) == SAME)) +#define LASTCHAR(s) (s+strlen(s)-1) + +#define SAME 0 +#define ANYREAD 04 +#define ANYWRITE 02 +#define FAIL -1 +#define SUCCESS 0 +#define NULLCHAR '\0' +#define CNULL (char *)0 +#define STBNULL (struct sgttyb *)0 +#define MASTER 1 +#define SLAVE 0 +#define MAXBASENAME 14 /* should be DIRSIZ but that is now fs dependent */ +#define MAXFULLNAME BUFSIZ +#define MAXNAMESIZE 64 /* /var/spool/uucp/<14 chars>/<14 chars>+slop */ +#define CONNECTTIME 30 +#define EXPECTTIME 45 +#define MSGTIME 60 +#define NAMESIZE MAXBASENAME+1 #define SIZEOFPID 10 /* maximum number of digits in a pid */ -#define EOTMSG "\004\n\004\n" -#define CALLBACK 1 +#define EOTMSG "\004\n\004\n" +#define CALLBACK 1 /* manifests for sysfiles.c's sysaccess() */ /* check file access for REAL user id */ @@ -283,51 +238,51 @@ #define EACCESS_DIALERS 6 /* manifest for chkpth flag */ -#define CK_READ 0 -#define CK_WRITE 1 +#define CK_READ 0 +#define CK_WRITE 1 /* * commands */ -#define SHELL (const char *)"/usr/bin/sh" -#define MAIL (const char *)"mail" -#define UUCICO (const char *)"/usr/lib/uucp/uucico" -#define UUXQT (const char *)"/usr/lib/uucp/uuxqt" -#define UUX (const char *)"/usr/bin/uux" -#define UUCP (const char *)"/usr/bin/uucp" +#define SHELL (const char *)"/usr/bin/sh" +#define MAIL (const char *)"mail" +#define UUCICO (const char *)"/usr/lib/uucp/uucico" +#define UUXQT (const char *)"/usr/lib/uucp/uuxqt" +#define UUX (const char *)"/usr/bin/uux" +#define UUCP (const char *)"/usr/bin/uucp" /* system status stuff */ -#define SS_OK 0 -#define SS_NO_DEVICE 1 -#define SS_TIME_WRONG 2 -#define SS_INPROGRESS 3 -#define SS_CONVERSATION 4 -#define SS_SEQBAD 5 -#define SS_LOGIN_FAILED 6 -#define SS_DIAL_FAILED 7 -#define SS_BAD_LOG_MCH 8 -#define SS_LOCKED_DEVICE 9 -#define SS_ASSERT_ERROR 10 -#define SS_BADSYSTEM 11 -#define SS_CANT_ACCESS_DEVICE 12 -#define SS_DEVICE_FAILED 13 /* used for interface failure */ -#define SS_WRONG_MCH 14 -#define SS_CALLBACK 15 -#define SS_RLOCKED 16 -#define SS_RUNKNOWN 17 -#define SS_RLOGIN 18 -#define SS_UNKNOWN_RESPONSE 19 -#define SS_STARTUP 20 -#define SS_CHAT_FAILED 21 -#define SS_CALLBACK_LOOP 22 - -#define MAXPH 60 /* maximum phone string size */ +#define SS_OK 0 +#define SS_NO_DEVICE 1 +#define SS_TIME_WRONG 2 +#define SS_INPROGRESS 3 +#define SS_CONVERSATION 4 +#define SS_SEQBAD 5 +#define SS_LOGIN_FAILED 6 +#define SS_DIAL_FAILED 7 +#define SS_BAD_LOG_MCH 8 +#define SS_LOCKED_DEVICE 9 +#define SS_ASSERT_ERROR 10 +#define SS_BADSYSTEM 11 +#define SS_CANT_ACCESS_DEVICE 12 +#define SS_DEVICE_FAILED 13 /* used for interface failure */ +#define SS_WRONG_MCH 14 +#define SS_CALLBACK 15 +#define SS_RLOCKED 16 +#define SS_RUNKNOWN 17 +#define SS_RLOGIN 18 +#define SS_UNKNOWN_RESPONSE 19 +#define SS_STARTUP 20 +#define SS_CHAT_FAILED 21 +#define SS_CALLBACK_LOOP 22 + +#define MAXPH 60 /* maximum phone string size */ #define MAXC BUFSIZ #define TRUE 1 #define FALSE 0 -#define NAMEBUF 32 +#define NAMEBUF 32 /* The call structure is used by ct.c, cu.c, and dial.c. */ @@ -339,52 +294,52 @@ struct call { }; /* structure of an Systems file line */ -#define F_MAX 50 /* max number of fields in Systems file line */ -#define F_NAME 0 -#define F_TIME 1 -#define F_TYPE 2 -#define F_CLASS 3 /* an optional prefix and the speed */ -#define F_PHONE 4 -#define F_LOGIN 5 +#define F_MAX 50 /* max number of fields in Systems file line */ +#define F_NAME 0 +#define F_TIME 1 +#define F_TYPE 2 +#define F_CLASS 3 /* an optional prefix and the speed */ +#define F_PHONE 4 +#define F_LOGIN 5 /* structure of an Devices file line */ -#define D_TYPE 0 -#define D_LINE 1 -#define D_CALLDEV 2 -#define D_CLASS 3 -#define D_CALLER 4 -#define D_ARG 5 -#define D_MAX 50 /* max number of fields in Devices file line */ +#define D_TYPE 0 +#define D_LINE 1 +#define D_CALLDEV 2 +#define D_CLASS 3 +#define D_CALLER 4 +#define D_ARG 5 +#define D_MAX 50 /* max number of fields in Devices file line */ -#define D_ACU 1 -#define D_DIRECT 2 -#define D_PROT 4 +#define D_ACU 1 +#define D_DIRECT 2 +#define D_PROT 4 -#define GRADES "/etc/uucp/Grades" +#define GRADES "/etc/uucp/Grades" #define D_QUEUE 'Z' /* default queue */ /* past here, local changes are not recommended */ -#define CMDPRE 'C' -#define DATAPRE 'D' -#define XQTPRE 'X' +#define CMDPRE 'C' +#define DATAPRE 'D' +#define XQTPRE 'X' /* * stuff for command execution */ -#define X_RQDFILE 'F' -#define X_STDIN 'I' -#define X_STDOUT 'O' -#define X_STDERR 'E' -#define X_CMD 'C' -#define X_USER 'U' -#define X_BRINGBACK 'B' -#define X_MAILF 'M' -#define X_RETADDR 'R' -#define X_COMMENT '#' -#define X_NONZERO 'Z' -#define X_SENDNOTHING 'N' -#define X_SENDZERO 'n' +#define X_RQDFILE 'F' +#define X_STDIN 'I' +#define X_STDOUT 'O' +#define X_STDERR 'E' +#define X_CMD 'C' +#define X_USER 'U' +#define X_BRINGBACK 'B' +#define X_MAILF 'M' +#define X_RETADDR 'R' +#define X_COMMENT '#' +#define X_NONZERO 'Z' +#define X_SENDNOTHING 'N' +#define X_SENDZERO 'n' /* This structure describes call routines */ @@ -417,15 +372,15 @@ struct nstat { time_t t_tacu; /* acu time */ time_t t_tlog; /* login time */ time_t t_sftp; /* start file transfer protocol */ - time_t t_sxf; /* start xfer */ - time_t t_exf; /* end xfer */ + time_t t_sxf; /* start xfer */ + time_t t_exf; /* end xfer */ time_t t_eftp; /* end file transfer protocol */ time_t t_qtime; /* time file queued */ int t_ndial; /* # of dials */ int t_nlogs; /* # of login trys */ struct tms t_tbb; /* start execution times */ struct tms t_txfs; /* xfer start times */ - struct tms t_txfe; /* xfer end times */ + struct tms t_txfe; /* xfer end times */ struct tms t_tga; /* garbage execution times */ }; @@ -438,146 +393,54 @@ struct limits { /* external declarations */ -EXTERN ssize_t (*Read)(), (*Write)(); -#if defined(__STDC__) -EXTERN int (*Ioctl)(int,int,...); -#else -EXTERN int (*Ioctl)(); -#endif -#ifndef DIAL -EXTERN int Ifn, Ofn; -#endif -EXTERN int Debug, Verbose; -EXTERN uid_t Uid, Euid; /* user-id and effective-uid */ -#ifndef DIAL -EXTERN long Ulimit; -#endif -EXTERN mode_t Dev_mode; /* save device mode here */ -#ifndef DIAL -EXTERN char Wrkdir[]; -#endif -EXTERN long Retrytime; -#ifndef DIAL -EXTERN char **Env; -EXTERN char Uucp[]; -EXTERN char Pchar; -EXTERN struct nstat Nstat; -#endif -EXTERN char Dc[]; /* line name */ -#ifndef DIAL -EXTERN int Seqn; /* sequence # */ -EXTERN int Role; -EXTERN int Sgrades; /* flag for administrator defined service grades */ -EXTERN char Grade; -EXTERN char Logfile[]; -EXTERN char Rmtname[]; -EXTERN char JobGrade[]; -EXTERN char User[]; -EXTERN char Loginuser[]; -#endif -EXTERN const char *Spool; -EXTERN const char *Pubdir; -#ifndef DIAL -EXTERN char Myname[]; -#endif -EXTERN char Progname[]; -#ifndef DIAL -EXTERN char RemSpool[]; -#endif -EXTERN char *Bnptr; /* used when BASENAME macro is expanded */ +static ssize_t (*Read)(), (*Write)(); +static int (*Ioctl)(int, int, ...); +static int Debug, Verbose; +static uid_t Uid, Euid; /* user-id and effective-uid */ +static mode_t Dev_mode; /* save device mode here */ +static long Retrytime; +static char Dc[]; /* line name */ +static const char *Spool; +static const char *Pubdir; +static char Progname[]; +static char *Bnptr; /* used when BASENAME macro is expanded */ extern char *sys_errlist[]; -#ifndef DIAL -EXTERN int SizeCheck; /* ulimit check supported flag */ -EXTERN long RemUlimit; /* remote ulimit if supported */ -EXTERN int Restart; /* checkpoint restart supported flag */ -#endif -#ifndef DIAL -EXTERN char Jobid[]; /* Jobid of current C. file */ -#endif -EXTERN int Uerror; /* global error code */ -EXTERN char *UerrorText[]; /* text for error code */ +static int Uerror; /* global error code */ +static char *UerrorText[]; /* text for error code */ /* Some global I need for section 2 and section 3 routines */ extern char *optarg; /* for getopt() */ extern int optind; /* for getopt() */ -#define UERRORTEXT UerrorText[Uerror] -#define UTEXT(x) UerrorText[x] +#define UERRORTEXT UerrorText[Uerror] +#define UTEXT(x) UerrorText[x] /* things get kind of tricky beyond this point -- please stay out */ -#ifdef ATTSV -#define index strchr -#define rindex strrchr -#define vfork fork -#define ATTSVKILL -#define UNAME -#else -#define strchr index -#define strrchr rindex -#endif - -#ifndef DIAL - -#if defined(sparc) -#define _STAT _stat -#else /* !sparc */ -#define _STAT stat -#endif /* sparc */ - -EXTERN struct stat __s_; -#define READANY(f) ((_STAT((f),&__s_)==0) && ((__s_.st_mode&(0004))!=0) ) -#define READSOME(f) ((_STAT((f),&__s_)==0) && ((__s_.st_mode&(0444))!=0) ) - -#define WRITEANY(f) ((_STAT((f),&__s_)==0) && ((__s_.st_mode&(0002))!=0) ) -#define DIRECTORY(f) ((_STAT((f),&__s_)==0) && ((__s_.st_mode&(S_IFMT))==S_IFDIR) ) -#define NOTEMPTY(f) ((_STAT((f),&__s_)==0) && (__s_.st_size!=0) ) -#endif - -/* standard functions used */ - -extern char *strcat(), *strcpy(), *strncpy(), *strrchr(); -extern char *strchr(), *strpbrk(); -extern char *index(), *rindex(), *getlogin(), *ttyname(); /*, *malloc(); -extern char *calloc(); */ -extern time_t time(); -extern int pipe(), close(), getopt(); -extern struct tm *localtime(); -extern FILE *popen(); -#ifdef BSD4_2 -extern char *sprintf(); -#endif /* BSD4_2 */ - /* uucp functions and subroutine */ -EXTERN void (*genbrk)(); +static void (*genbrk)(); extern int iswrk(), gtwvec(); /* anlwrk.c */ extern void findgrade(); /* grades.c */ extern void chremdir(), mkremdir(); /* chremdir.c */ extern void toCorrupt(); /* cpmv.c */ extern int xmv(); /* cpmv.c */ -EXTERN int getargs(); /* getargs.c */ -EXTERN void bsfix(); /* getargs.c */ +static int getargs(); /* getargs.c */ +static void bsfix(); /* getargs.c */ extern char *getprm(); /* getprm.c */ extern char *next_token(); /* permission.c */ extern char *nextarg(); /* permission.c */ extern int getuline(); /* permission.c */ -#if defined(__STDC__) -EXTERN void logent(const char *, const char *); /* logent.c */ -EXTERN void syslog(), closelog(); /* logent.c */ -#else -EXTERN void logent(), syslog(), closelog(); /* logent.c */ -#endif +static void logent(const char *, const char *); /* logent.c */ extern void commandlog(); /* logent.c */ extern time_t millitick(); /* logent.c */ extern unsigned long getfilesize(); /* statlog.c */ -extern void putfilesize(); /* statlog.c */ +extern void putfilesize(); /* statlog.c */ -EXTERN char *protoString(); /* permission.c */ extern int logFind(), mchFind(); /* permission.c */ extern int chkperm(), chkpth(); /* permission.c */ extern int cmdOK(), switchRole(); /* permission.c */ @@ -588,72 +451,44 @@ extern void myName(); /* permission.c */ extern int mkdirs(); /* expfile.c */ extern int scanlimit(); /* limits.c */ extern void systat(); /* systat.c */ -EXTERN int fd_mklock(), fd_cklock(); /* ulockf.c */ -EXTERN int fn_cklock(); /* ulockf.c */ -EXTERN int mklock(), cklock(), mlock(); /* ulockf.c */ -EXTERN void fd_rmlock(), delock(), rmlock(); /* ulockf.c */ +static int fd_mklock(); /* ulockf.c */ +static int mklock(), cklock(); /* ulockf.c */ +static void fd_rmlock(), rmlock(); /* ulockf.c */ extern char *timeStamp(); /* utility.c */ -#if defined(__STDC__) -EXTERN void assert(const char *s1, const char *s2, +static void assert(const char *s1, const char *s2, int i1, const char *s3, int i2); /* utility.c */ -#else -EXTERN void assert(); /* utility.c */ -#endif -EXTERN void errent(); /* utility.c */ extern void uucpname(); /* uucpname.c */ extern int versys(); /* versys.c */ extern void xuuxqt(), xuucico(); /* xqt.c */ -EXTERN void cleanup(); /* misc main.c */ - -#define ASSERT(e, s1, s2, i1) if (!(e)) {\ - assert(s1, s2, i1, __FILE__, __LINE__);\ - cleanup(FAIL);}; - -#ifdef ATTSV -unsigned sleep(); -void exit(), setbuf(); -long ulimit(); -#else /* !ATTSV */ -int sleep(), exit(), setbuf(), ftime(); -#endif - -#ifdef UNAME -#include <sys/utsname.h> -#endif /* UNAME */ +static void cleanup(); /* misc main.c */ -#ifndef NOUSTAT -#ifdef V7USTAT -struct ustat { - daddr_t f_tfree; /* total free */ - ino_t f_tinode; /* total inodes free */ +#define ASSERT(e, s1, s2, i1) if (!(e)) { \ + assert(s1, s2, i1, __FILE__, __LINE__); \ + cleanup(FAIL); \ }; -#else /* !NOUSTAT && !V7USTAT */ -#include <ustat.h> -#endif /* V7USTAT */ -#endif /* NOUSTAT */ - -#ifdef BSD4_2 -char *gethostname(); -#endif /* BSD4_2 */ /* messages */ -EXTERN const char Ct_OPEN[]; -EXTERN const char Ct_WRITE[]; -EXTERN const char Ct_READ[]; -EXTERN const char Ct_CREATE[]; -EXTERN const char Ct_ALLOCATE[]; -EXTERN const char Ct_LOCK[]; -EXTERN const char Ct_STAT[]; -EXTERN const char Ct_CHOWN[]; -EXTERN const char Ct_CHMOD[]; -EXTERN const char Ct_LINK[]; -EXTERN const char Ct_CHDIR[]; -EXTERN const char Ct_UNLINK[]; -EXTERN const char Wr_ROLE[]; -EXTERN const char Ct_CORRUPT[]; -EXTERN const char Ct_FORK[]; -EXTERN const char Ct_CLOSE[]; -EXTERN const char Ct_BADOWN[]; -EXTERN const char Fl_EXISTS[]; - +static const char Ct_OPEN[]; +static const char Ct_WRITE[]; +static const char Ct_READ[]; +static const char Ct_CREATE[]; +static const char Ct_ALLOCATE[]; +static const char Ct_LOCK[]; +static const char Ct_STAT[]; +static const char Ct_CHOWN[]; +static const char Ct_CHMOD[]; +static const char Ct_LINK[]; +static const char Ct_CHDIR[]; +static const char Ct_UNLINK[]; +static const char Wr_ROLE[]; +static const char Ct_CORRUPT[]; +static const char Ct_FORK[]; +static const char Ct_CLOSE[]; +static const char Ct_BADOWN[]; +static const char Fl_EXISTS[]; + +#ifdef __cplusplus +} #endif + +#endif /* _UUCP_H */ diff --git a/usr/src/lib/libnsl/dial/uucpdefs.c b/usr/src/lib/libnsl/dial/uucpdefs.c index dd887e7237..a33043cdc9 100644 --- a/usr/src/lib/libnsl/dial/uucpdefs.c +++ b/usr/src/lib/libnsl/dial/uucpdefs.c @@ -19,78 +19,83 @@ * * CDDL HEADER END */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - -#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ +#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ #include "uucp.h" /* Configurable parameters */ -GLOBAL char _ProtoCfg[40]; /* protocol string from Config file */ +static char _ProtoCfg[40]; /* protocol string from Config file */ /* Non-configurable parameters */ -GLOBAL int Debug; -GLOBAL uid_t Uid, Euid; /* user-id and effective-uid */ -GLOBAL mode_t Dev_mode; /* save device mode here */ -GLOBAL char Progname[NAMESIZE]; -GLOBAL const char *Spool = SPOOL; -GLOBAL const char *Pubdir = PUBDIR; +static int Debug; +static uid_t Uid, Euid; /* user-id and effective-uid */ +static mode_t Dev_mode; /* save device mode here */ +static char Progname[NAMESIZE]; +static const char *Spool = SPOOL; +static const char *Pubdir = PUBDIR; -GLOBAL long Retrytime; -GLOBAL char Dc[50]; /* line name */ -GLOBAL char *Bnptr; /* used when BASENAME macro is expanded */ -GLOBAL int Uerror; /* global error code */ +static long Retrytime; +static char Dc[50]; /* line name */ +static char *Bnptr; /* used when BASENAME macro expanded */ +static int Uerror; /* global error code */ -GLOBAL void (*genbrk)(); +static void (*genbrk)(); -GLOBAL int Verbose; /* only for cu and ct to change */ +static int Verbose; /* only for cu and ct to change */ /* messages */ -GLOBAL const char Ct_OPEN[] = "CAN'T OPEN"; -GLOBAL const char Ct_WRITE[] = "CAN'T WRITE"; -GLOBAL const char Ct_READ[] = "CAN'T READ"; -GLOBAL const char Ct_CREATE[] = "CAN'T CREATE"; -GLOBAL const char Ct_ALLOCATE[] = "CAN'T ALLOCATE"; -GLOBAL const char Ct_LOCK[] = "CAN'T LOCK"; -GLOBAL const char Ct_STAT[] = "CAN'T STAT"; -GLOBAL const char Ct_CHOWN[] = "CAN'T CHOWN"; -GLOBAL const char Ct_CHMOD[] = "CAN'T CHMOD"; -GLOBAL const char Ct_LINK[] = "CAN'T LINK"; -GLOBAL const char Ct_CHDIR[] = "CAN'T CHDIR"; -GLOBAL const char Ct_UNLINK[] = "CAN'T UNLINK"; -GLOBAL const char Wr_ROLE[] = "WRONG ROLE"; -GLOBAL const char Ct_CORRUPT[] = "CAN'T MOVE TO CORRUPTDIR"; -GLOBAL const char Ct_CLOSE[] = "CAN'T CLOSE"; -GLOBAL const char Ct_FORK[] = "CAN'T FORK"; -GLOBAL const char Fl_EXISTS[] = "FILE EXISTS"; -GLOBAL const char Ct_BADOWN[] = "BAD OWNER/PERMS"; +static const char Ct_OPEN[] = "CAN'T OPEN"; +static const char Ct_WRITE[] = "CAN'T WRITE"; +static const char Ct_READ[] = "CAN'T READ"; +static const char Ct_CREATE[] = "CAN'T CREATE"; +static const char Ct_ALLOCATE[] = "CAN'T ALLOCATE"; +static const char Ct_LOCK[] = "CAN'T LOCK"; +static const char Ct_STAT[] = "CAN'T STAT"; +static const char Ct_CHOWN[] = "CAN'T CHOWN"; +static const char Ct_CHMOD[] = "CAN'T CHMOD"; +static const char Ct_LINK[] = "CAN'T LINK"; +static const char Ct_CHDIR[] = "CAN'T CHDIR"; +static const char Ct_UNLINK[] = "CAN'T UNLINK"; +static const char Wr_ROLE[] = "WRONG ROLE"; +static const char Ct_CORRUPT[] = "CAN'T MOVE TO CORRUPTDIR"; +static const char Ct_CLOSE[] = "CAN'T CLOSE"; +static const char Ct_FORK[] = "CAN'T FORK"; +static const char Fl_EXISTS[] = "FILE EXISTS"; +static const char Ct_BADOWN[] = "BAD OWNER/PERMS"; -GLOBAL char *UerrorText[] = { - /* SS_OK 0 */ "SUCCESSFUL", - /* SS_NO_DEVICE 1 */ "NO DEVICES AVAILABLE", - /* SS_TIME_WRONG 2 */ "WRONG TIME TO CALL", - /* SS_INPROGRESS 3 */ "TALKING", - /* SS_CONVERSATION 4 */ "CONVERSATION FAILED", - /* SS_SEQBAD 5 */ "BAD SEQUENCE CHECK", - /* SS_LOGIN_FAILED 6 */ "LOGIN FAILED", - /* SS_DIAL_FAILED 7 */ "DIAL FAILED", - /* SS_BAD_LOG_MCH 8 */ "BAD LOGIN/MACHINE COMBINATION", - /* SS_LOCKED_DEVICE 9 */ "DEVICE LOCKED", - /* SS_ASSERT_ERROR 10 */ "ASSERT ERROR", - /* SS_BADSYSTEM 11 */ "SYSTEM NOT IN Systems FILE", - /* SS_CANT_ACCESS_DEVICE 12 */ "CAN'T ACCESS DEVICE", - /* SS_DEVICE_FAILED 13 */ "DEVICE FAILED", - /* SS_WRONG_MCH 14 */ "WRONG MACHINE NAME", - /* SS_CALLBACK 15 */ "CALLBACK REQUIRED", - /* SS_RLOCKED 16 */ "REMOTE HAS A LCK FILE FOR ME", - /* SS_RUNKNOWN 17 */ "REMOTE DOES NOT KNOW ME", - /* SS_RLOGIN 18 */ "REMOTE REJECT AFTER LOGIN", - /* SS_UNKNOWN_RESPONSE 19 */ "REMOTE REJECT, UNKNOWN MESSAGE", - /* SS_STARTUP 20 */ "STARTUP FAILED", - /* SS_CHAT_FAILED 21 */ "CALLER SCRIPT FAILED", - /* SS_CALLBACK_LOOP 22 */ "CALLBACK REQUIRED - LOOP", +static char *UerrorText[] = { +/* SS_OK 0 */ "SUCCESSFUL", +/* SS_NO_DEVICE 1 */ "NO DEVICES AVAILABLE", +/* SS_TIME_WRONG 2 */ "WRONG TIME TO CALL", +/* SS_INPROGRESS 3 */ "TALKING", +/* SS_CONVERSATION 4 */ "CONVERSATION FAILED", +/* SS_SEQBAD 5 */ "BAD SEQUENCE CHECK", +/* SS_LOGIN_FAILED 6 */ "LOGIN FAILED", +/* SS_DIAL_FAILED 7 */ "DIAL FAILED", +/* SS_BAD_LOG_MCH 8 */ "BAD LOGIN/MACHINE COMBINATION", +/* SS_LOCKED_DEVICE 9 */ "DEVICE LOCKED", +/* SS_ASSERT_ERROR 10 */ "ASSERT ERROR", +/* SS_BADSYSTEM 11 */ "SYSTEM NOT IN Systems FILE", +/* SS_CANT_ACCESS_DEVICE 12 */ "CAN'T ACCESS DEVICE", +/* SS_DEVICE_FAILED 13 */ "DEVICE FAILED", +/* SS_WRONG_MCH 14 */ "WRONG MACHINE NAME", +/* SS_CALLBACK 15 */ "CALLBACK REQUIRED", +/* SS_RLOCKED 16 */ "REMOTE HAS A LCK FILE FOR ME", +/* SS_RUNKNOWN 17 */ "REMOTE DOES NOT KNOW ME", +/* SS_RLOGIN 18 */ "REMOTE REJECT AFTER LOGIN", +/* SS_UNKNOWN_RESPONSE 19 */ "REMOTE REJECT, UNKNOWN MESSAGE", +/* SS_STARTUP 20 */ "STARTUP FAILED", +/* SS_CHAT_FAILED 21 */ "CALLER SCRIPT FAILED", +/* SS_CALLBACK_LOOP 22 */ "CALLBACK REQUIRED - LOOP", }; diff --git a/usr/src/lib/libnsl/ipsec/algs.c b/usr/src/lib/libnsl/ipsec/algs.c index 0db1b08c31..436d675fcb 100644 --- a/usr/src/lib/libnsl/ipsec/algs.c +++ b/usr/src/lib/libnsl/ipsec/algs.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -216,7 +217,7 @@ build_list(FILE *f, int *num) token[0] == '#') { continue; } else { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "non-recognized start of line"); goto bail; } @@ -232,7 +233,7 @@ build_list(FILE *f, int *num) /* protocol number */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL || (new_num = atoi(token)) == 0) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "invalid protocol number"); goto bail; } @@ -240,7 +241,7 @@ build_list(FILE *f, int *num) /* protocol name */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read protocol name"); goto bail; } @@ -249,14 +250,14 @@ build_list(FILE *f, int *num) /* execution mode */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read execution mode"); goto bail; } /* remove trailing '\n' */ token[strlen(token) - 1] = '\0'; if (_str_to_ipsec_exec_mode(token, &exec_mode) != 0) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "invalid execution mode: \"%s\"", token); goto bail; } @@ -299,7 +300,7 @@ build_list(FILE *f, int *num) /* protocol number */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL || (new_num = atoi(token)) == 0) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "invalid algorithm number"); goto bail; } @@ -310,7 +311,7 @@ build_list(FILE *f, int *num) if (new_proto->proto_num == new_num) break; if (new_proto == (rc + new_num)) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "invalid protocol number %d for algorithm", new_num); goto bail; @@ -319,7 +320,7 @@ build_list(FILE *f, int *num) /* algorithm number */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read algorithm number"); goto bail; } @@ -329,7 +330,7 @@ build_list(FILE *f, int *num) /* algorithm names */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read algorithm number"); goto bail; } @@ -338,7 +339,7 @@ build_list(FILE *f, int *num) /* mechanism name */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read mechanism name for alg %d " "(proto %d)", alg_num, new_proto->proto_num); @@ -349,7 +350,7 @@ build_list(FILE *f, int *num) /* key sizes */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read key sizes for alg %d " "(proto %d)", alg_num, new_proto->proto_num); @@ -360,7 +361,7 @@ build_list(FILE *f, int *num) /* block sizes */ token = strtok_r(NULL, pipechar, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "cannot read mechanism name for alg %d " "(proto %d)", alg_num, new_proto->proto_num); @@ -371,7 +372,7 @@ build_list(FILE *f, int *num) /* extract key sizes */ key_increment = build_keysizes(&key_sizes, key_string); if (key_increment == -1) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "invalid key sizes for alg %d (proto %d)", alg_num, new_proto->proto_num); goto bail; @@ -386,7 +387,7 @@ build_list(FILE *f, int *num) num_sizes = 0; token = strtok_r(block_string, comma, &lasts); if (token == NULL) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "invalid block sizes for alg %d (proto %d)", alg_num, new_proto->proto_num); free(key_sizes); @@ -492,7 +493,7 @@ build_list(FILE *f, int *num) sizeof (LIBIPSEC_ALGS_LINE_PKGSTART) - 1) == 0) { /* start of package delimiter */ if (doing_pkg) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "duplicate package start delimiters"); goto bail; } @@ -508,7 +509,7 @@ build_list(FILE *f, int *num) char tmp_pkg[1024]; if (!doing_pkg) { - snprintf(diag_buf, sizeof (diag_buf), + (void) snprintf(diag_buf, sizeof (diag_buf), "end package delimiter without start"); goto bail; } @@ -567,14 +568,14 @@ _build_internal_algs(ipsec_proto_t **alg_context, int *alg_nums) (statbuf.st_mtime < proto_last_update && protos != NULL)) return; - rw_wrlock(&proto_rw); + (void) rw_wrlock(&proto_rw); } fd = open(INET_IPSECALGSFILE, O_RDONLY); if (fd != -1) { f = fdopen(fd, "r"); if (f == NULL) { - close(fd); + (void) close(fd); } else { rc = fstat(fd, &statbuf); if (rc != -1) { @@ -608,7 +609,7 @@ _build_internal_algs(ipsec_proto_t **alg_context, int *alg_nums) */ trash = NULL; } - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); _clean_trash(trash, trash_num); } else { /* @@ -644,7 +645,7 @@ duplicate_intarr(int *orig) iwalker = malloc(allocsize); if (iwalker != NULL) - memcpy(iwalker, orig, allocsize); + (void) memcpy(iwalker, orig, allocsize); return (iwalker); } @@ -755,7 +756,7 @@ _real_getipsecprotos(int *nentries) _build_internal_algs(NULL, NULL); - rw_rdlock(&proto_rw); + (void) rw_rdlock(&proto_rw); *nentries = num_protos; /* * Allocate 1 byte if there are no protocols so a non-NULL return @@ -766,7 +767,7 @@ _real_getipsecprotos(int *nentries) for (i = 0; i < num_protos; i++) rc[i] = protos[i].proto_num; } - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); return (rc); } @@ -781,7 +782,7 @@ _real_getipsecalgs(int *nentries, int proto_num) _build_internal_algs(NULL, NULL); - rw_rdlock(&proto_rw); + (void) rw_rdlock(&proto_rw); proto = findprotobynum(proto_num); if (proto != NULL) { *nentries = proto->proto_numalgs; @@ -796,7 +797,7 @@ _real_getipsecalgs(int *nentries, int proto_num) rc[i] = proto->proto_algs[i]->a_alg_num; } } - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); return (rc); } @@ -814,7 +815,7 @@ getipsecalgbyname(const char *name, int proto_num, int *errnop) goto bail; } - rw_rdlock(&proto_rw); + (void) rw_rdlock(&proto_rw); proto = findprotobynum(proto_num); if (proto != NULL) { for (i = 0; i < proto->proto_numalgs; i++) { @@ -829,7 +830,7 @@ getipsecalgbyname(const char *name, int proto_num, int *errnop) rc = _duplicate_alg( proto->proto_algs[i]); my_errno = (rc == NULL) ? ENOMEM : 0; - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); goto bail; } } @@ -838,7 +839,7 @@ getipsecalgbyname(const char *name, int proto_num, int *errnop) my_errno = EINVAL; } - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); bail: if (errnop != NULL) *errnop = my_errno; @@ -854,7 +855,7 @@ getipsecalgbynum(int alg_num, int proto_num, int *errnop) _build_internal_algs(NULL, NULL); - rw_rdlock(&proto_rw); + (void) rw_rdlock(&proto_rw); proto = findprotobynum(proto_num); if (proto != NULL) { @@ -869,7 +870,7 @@ getipsecalgbynum(int alg_num, int proto_num, int *errnop) my_errno = EINVAL; } - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); if (errnop != NULL) *errnop = my_errno; return (rc); @@ -883,11 +884,11 @@ getipsecprotobyname(const char *proto_name) _build_internal_algs(NULL, NULL); - rw_rdlock(&proto_rw); + (void) rw_rdlock(&proto_rw); proto = findprotobyname(proto_name); if (proto != NULL) rc = proto->proto_num; - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); return (rc); } @@ -899,12 +900,12 @@ getipsecprotobynum(int proto_num) _build_internal_algs(NULL, NULL); - rw_rdlock(&proto_rw); + (void) rw_rdlock(&proto_rw); proto = findprotobynum(proto_num); if (proto != NULL) rc = strdup(proto->proto_name); - rw_unlock(&proto_rw); + (void) rw_unlock(&proto_rw); return (rc); } diff --git a/usr/src/lib/libnsl/key/publickey.c b/usr/src/lib/libnsl/key/publickey.c index 5b23f92a3f..56144f070f 100644 --- a/usr/src/lib/libnsl/key/publickey.c +++ b/usr/src/lib/libnsl/key/publickey.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -63,7 +64,6 @@ #include <syslog.h> #include <assert.h> #include <sys/types.h> -#include <rpc/trace.h> #include <pwd.h> #include "nsswitch.h" #include <rpc/rpc.h> @@ -142,12 +142,7 @@ static DEFINE_NSS_DB_ROOT(db_root); * value returned by getpublickey. */ static int -getkeys_nis(errp, netname, pkey, skey, passwd) - int *errp; - char *netname; - char *pkey; - char *skey; - char *passwd; +getkeys_nis(int *errp, char *netname, char *pkey, char *skey, char *passwd) { char *domain; char *keyval = NULL; @@ -155,12 +150,9 @@ getkeys_nis(errp, netname, pkey, skey, passwd) char *p; int len; - trace1(TR_getkeys_nis, 0); - p = strchr(netname, '@'); - if (! p) { + if (!p) { *errp = __NSW_UNAVAIL; - trace1(TR_getkeys_nis, 1); return (0); } @@ -180,13 +172,11 @@ getkeys_nis(errp, netname, pkey, skey, passwd) if (keyval) free(keyval); *errp = __NSW_NOTFOUND; - trace1(TR_getkeys_nis, 1); return (0); default : if (keyval) free(keyval); *errp = __NSW_UNAVAIL; - trace1(TR_getkeys_nis, 1); return (0); case 0: break; @@ -196,7 +186,6 @@ getkeys_nis(errp, netname, pkey, skey, passwd) if (p == NULL) { free(keyval); *errp = __NSW_NOTFOUND; - trace1(TR_getkeys_nis, 1); return (0); } *p = 0; @@ -205,7 +194,6 @@ getkeys_nis(errp, netname, pkey, skey, passwd) if (len > HEXKEYBYTES) { free(keyval); *errp = __NSW_NOTFOUND; - trace1(TR_getkeys_nis, 1); return (0); } (void) strcpy(pkey, keyval); @@ -216,7 +204,6 @@ getkeys_nis(errp, netname, pkey, skey, passwd) r |= 2; free(keyval); *errp = __NSW_SUCCESS; - trace1(TR_getkeys_nis, 1); return (r); } @@ -235,12 +222,7 @@ getkeys_nis(errp, netname, pkey, skey, passwd) */ static int -getkeys_files(errp, netname, pkey, skey, passwd) - int *errp; - char *netname; - char *pkey; - char *skey; - char *passwd; +getkeys_files(int *errp, char *netname, char *pkey, char *skey, char *passwd) { char *mkey; char *mval; @@ -251,12 +233,9 @@ getkeys_files(errp, netname, pkey, skey, passwd) char *p; char *lasts; - trace1(TR_getkeys_files, 0); - fd = __nsl_fopen(PKFILE, "r"); if (fd == (__NSL_FILE *)0) { *errp = __NSW_UNAVAIL; - trace1(TR_getkeys_files, 1); return (0); } @@ -273,7 +252,7 @@ getkeys_files(errp, netname, pkey, skey, passwd) PKFILE, netname); continue; } - mval = strtok_r((char *)NULL, " \t#\n", &lasts); + mval = strtok_r(NULL, " \t#\n", &lasts); if (mval == NULL) { syslog(LOG_INFO, "getpublickey: Bad record in %s for %s", @@ -308,7 +287,6 @@ getkeys_files(errp, netname, pkey, skey, passwd) r |= 2; (void) __nsl_fclose(fd); *errp = __NSW_SUCCESS; - trace1(TR_getkeys_files, 1); return (r); } } @@ -316,7 +294,6 @@ getkeys_files(errp, netname, pkey, skey, passwd) (void) __nsl_fclose(fd); *errp = __NSW_NOTFOUND; - trace1(TR_getkeys_files, 1); return (0); } @@ -327,19 +304,14 @@ getkeys_files(errp, netname, pkey, skey, passwd) */ int -__getpublickey_cached(netname, pkey, from_cache) - char *netname; - char *pkey; - int *from_cache; +__getpublickey_cached(char *netname, char *pkey, int *from_cache) { return (__getpublickey_cached_g(netname, KEYSIZE, 0, pkey, HEXKEYBYTES+1, from_cache)); } int -getpublickey(netname, pkey) - const char *netname; - char *pkey; +getpublickey(const char *netname, char *pkey) { return (__getpublickey_cached((char *)netname, pkey, (int *)0)); } @@ -351,10 +323,7 @@ __getpublickey_flush(const char *netname) } int -getsecretkey(netname, skey, passwd) - const char *netname; - char *skey; - const char *passwd; +getsecretkey(const char *netname, char *skey, const char *passwd) { return (getsecretkey_g(netname, KEYSIZE, 0, skey, HEXKEYBYTES+1, passwd)); @@ -371,17 +340,15 @@ struct pkey_item { }; static void -pkey_cache_add(netname, pkey) - const char *netname; - char *pkey; +pkey_cache_add(const char *netname, char *pkey) { struct pkey_item *item; - if (! netname || ! pkey) { + if (!netname || !pkey) { return; } - item = (struct pkey_item *)calloc(1, sizeof (struct pkey_item)); + item = calloc(1, sizeof (struct pkey_item)); if (item == NULL) { return; } @@ -407,13 +374,11 @@ pkey_cache_add(netname, pkey) } static int -pkey_cache_get(netname, pkey) - const char *netname; - char *pkey; +pkey_cache_get(const char *netname, char *pkey) { struct pkey_item *item; - if (! netname || ! pkey) { + if (!netname || !pkey) { return (0); } @@ -428,8 +393,7 @@ pkey_cache_get(netname, pkey) } static void -pkey_cache_flush(netname) - const char *netname; +pkey_cache_flush(const char *netname) { struct pkey_item *item; @@ -476,14 +440,12 @@ extract_secret_g( char *buf = malloc(strlen(raw) + 1); /* private tmp buf */ char *p; - trace1(TR_extract_secret_g, 0); - if (! buf || ! passwd || ! raw || ! private || ! prilen || - ! VALID_KEYALG(keylen, algtype)) { + if (!buf || !passwd || !raw || !private || !prilen || + !VALID_KEYALG(keylen, algtype)) { if (private) *private = NUL; if (buf) free(buf); - trace1(TR_extract_secret_g, 1); return (0); } @@ -496,23 +458,20 @@ extract_secret_g( } /* raw buf has chksum appended, so let's verify it too */ - if (! xdecrypt_g(buf, keylen, algtype, passwd, netname, TRUE)) { + if (!xdecrypt_g(buf, keylen, algtype, passwd, netname, TRUE)) { private[0] = 0; free(buf); - trace1(TR_extract_secret_g, 1); return (1); /* yes, return 1 even if xdecrypt fails */ } if (strlen(buf) >= prilen) { private[0] = 0; free(buf); - trace1(TR_extract_secret_g, 1); return (0); } (void) strcpy(private, buf); free(buf); - trace1(TR_extract_secret_g, 1); return (1); } @@ -524,10 +483,7 @@ extract_secret_g( * it uses the DES based function xdecrypt() */ static int -extract_secret(raw, private, passwd) - char *raw; - char *private; - char *passwd; +extract_secret(char *raw, char *private, char *passwd) { return (extract_secret_g(raw, private, HEXKEYBYTES+1, passwd, NULL, KEYSIZE, 0)); @@ -560,12 +516,9 @@ getkeys_nisplus_g( int len; const bool_t classic_des = AUTH_DES_KEY(keylen, algtype); - trace1(TR_getkeys_nisplus_g, 0); - domain = strchr(netname, '@'); - if (! domain) { + if (!domain) { *err = __NSW_UNAVAIL; - trace1(TR_getkeys_nisplus_g, 1); return (0); } domain++; @@ -586,7 +539,6 @@ getkeys_nisplus_g( MAXNETNAMELEN, pkeylen, algtype), pkey)) { *err = __NSW_SUCCESS; - trace1(TR_getkeys_nisplus_g, 1); return (1); } *retry_cache = 0; @@ -595,7 +547,6 @@ getkeys_nisplus_g( if ((strlen(netname)+PKTABLE_LEN+strlen(domain)+32) > (size_t)NIS_MAXNAMELEN) { *err = __NSW_UNAVAIL; - trace1(TR_getkeys_nisplus_g, 1); return (0); } @@ -636,7 +587,6 @@ getkeys_nisplus_g( case NIS_NOSUCHTABLE: nis_freeresult(res); *err = __NSW_NOTFOUND; - trace1(TR_getkeys_nisplus_g, 1); return (0); case NIS_S_NOTFOUND: case NIS_TRYAGAIN: @@ -644,7 +594,6 @@ getkeys_nisplus_g( nis_sperrno(res->status)); nis_freeresult(res); *err = __NSW_TRYAGAIN; - trace1(TR_getkeys_nisplus_g, 1); return (0); default: *err = __NSW_UNAVAIL; @@ -652,7 +601,6 @@ getkeys_nisplus_g( "getkeys: (nis+ key lookup): %s\n", nis_sperrno(res->status)); nis_freeresult(res); - trace1(TR_getkeys_nisplus_g, 1); return (0); } @@ -715,7 +663,6 @@ getkeys_nisplus_g( nis_freeresult(res); *err = __NSW_SUCCESS; - trace1(TR_getkeys_nisplus_g, 1); return (r); } @@ -757,7 +704,6 @@ getkeys_ldap_g( nss_XbyY_buf_t *buf = NULL; char *keyval; - trace1(TR_getkeys_ldap_g, 0); NSS_XbyY_ALLOC(&buf, 0, NSS_BUFLEN_PUBLICKEY); NSS_XbyY_INIT(&arg, buf->result, buf->buffer, buf->buflen, NULL); @@ -781,7 +727,6 @@ getkeys_ldap_g( &arg) != NSS_SUCCESS) { NSS_XbyY_FREE(&buf); *err = __NSW_NOTFOUND; - trace1(TR_getkeys_ldap_g, 1); return (0); } keyval = buf->buffer; @@ -789,7 +734,6 @@ getkeys_ldap_g( if (p == NULL) { NSS_XbyY_FREE(&buf); *err = __NSW_NOTFOUND; - trace1(TR_getkeys_ldap_g, 1); return (0); } *p = 0; @@ -798,7 +742,6 @@ getkeys_ldap_g( if (len > HEXKEYBYTES) { NSS_XbyY_FREE(&buf); *err = __NSW_NOTFOUND; - trace1(TR_getkeys_ldap_g, 1); return (0); } (void) strcpy(pkey, keyval); @@ -809,7 +752,6 @@ getkeys_ldap_g( r |= 2; NSS_XbyY_FREE(&buf); *err = __NSW_SUCCESS; - trace1(TR_getkeys_ldap_g, 1); return (r); } @@ -831,31 +773,23 @@ netname2hashname( { const bool_t classic_des = AUTH_DES_KEY(keylen, algtype); - trace3(TR_netname2hashname, 0, keylen, algtype); - if (! netname || ! hashname || ! bufsiz) { - trace1(TR_netname2hashname, 1); + if (!netname || !hashname || !bufsiz) return (NULL); - } if (classic_des) { if (bufsiz > strlen(netname)) (void) strcpy(hashname, netname); - else { - trace1(TR_netname2hashname, 1); + else return (NULL); - } } else { char tmp[128]; (void) sprintf(tmp, ":%d-%d", keylen, algtype); if (bufsiz > (strlen(netname) + strlen(tmp))) (void) sprintf(hashname, "%s%s", netname, tmp); - else { - trace1(TR_netname2hashname, 1); + else return (NULL); - } } - trace1(TR_netname2hashname, 1); return (hashname); } @@ -891,12 +825,8 @@ __getpublickey_cached_g(const char netname[], /* in */ const bool_t classic_des = AUTH_DES_KEY(keylen, algtype); int retry_cache = 0; - trace1(TR_getpublickey_cached_g, 0); - if (! netname || ! pkey) { - trace1(TR_getpublickey_cached_g, 1); + if (!netname || !pkey) return (0); - } - if (from_cache) { char hashname[MAXNETNAMELEN]; @@ -904,7 +834,6 @@ __getpublickey_cached_g(const char netname[], /* in */ MAXNETNAMELEN, keylen, algtype), pkey)) { *from_cache = 1; - trace1(TR_getpublickey_cached_g, 1); return (1); } *from_cache = 0; @@ -912,34 +841,30 @@ __getpublickey_cached_g(const char netname[], /* in */ } conf = __nsw_getconfig("publickey", &perr); - if (! conf) { + if (!conf) { conf = &publickey_default; needfree = 0; } for (look = conf->lookups; look; look = look->next) { if (strcmp(look->service_name, "nisplus") == 0) { res = getkeys_nisplus_g(&err, (char *)netname, - pkey, pkeylen, - (char *)NULL, 0, - (char *)NULL, + pkey, pkeylen, NULL, 0, NULL, keylen, algtype, &retry_cache); if (retry_cache) *from_cache = 1; } else if (strcmp(look->service_name, "ldap") == 0) { res = getkeys_ldap_g(&err, (char *)netname, - pkey, pkeylen, - (char *)NULL, 0, - (char *)NULL, + pkey, pkeylen, NULL, 0, NULL, keylen, algtype); /* long DH keys will not be in nis or files */ } else if (classic_des && strcmp(look->service_name, "nis") == 0) res = getkeys_nis(&err, (char *)netname, pkey, - (char *)NULL, (char *)NULL); + NULL, NULL); else if (classic_des && strcmp(look->service_name, "files") == 0) res = getkeys_files(&err, (char *)netname, pkey, - (char *)NULL, (char *)NULL); + NULL, NULL); else { syslog(LOG_INFO, "Unknown publickey nameservice '%s'", look->service_name); @@ -964,7 +889,6 @@ __getpublickey_cached_g(const char netname[], /* in */ case __NSW_RETURN : if (needfree) __nsw_freeconfig(conf); - trace1(TR_getpublickey_cached_g, 1); return ((res & 1) != 0); default : syslog(LOG_INFO, "Unknown action for nameservice %s", @@ -974,7 +898,6 @@ __getpublickey_cached_g(const char netname[], /* in */ if (needfree) __nsw_freeconfig(conf); - trace1(TR_getpublickey_cached_g, 1); return (0); } @@ -1044,7 +967,6 @@ getpublickey_g( char *pkey, /* out */ size_t pkeylen) /* in */ { - trace1(TR_getpublickey_g, 0); return (__getpublickey_cached_g(netname, keylen, algtype, pkey, pkeylen, (int *)0)); } @@ -1067,15 +989,12 @@ getsecretkey_g( enum __nsw_parse_err perr; const bool_t classic_des = AUTH_DES_KEY(keylen, algtype); - trace1(TR_getsecretkey_g, 0); - if (! netname || !skey || ! skeylen) { - trace1(TR_getsecretkey_g, 1); + if (!netname || !skey || !skeylen) return (0); - } conf = __nsw_getconfig("publickey", &perr); - if (! conf) { + if (!conf) { conf = &publickey_default; needfree = 0; } @@ -1083,20 +1002,20 @@ getsecretkey_g( for (look = conf->lookups; look; look = look->next) { if (strcmp(look->service_name, "nisplus") == 0) res = getkeys_nisplus_g(&err, (char *)netname, - (char *)NULL, 0, skey, skeylen, + NULL, 0, skey, skeylen, (char *)passwd, keylen, algtype, 0); else if (strcmp(look->service_name, "ldap") == 0) res = getkeys_ldap_g(&err, (char *)netname, - (char *)NULL, 0, skey, skeylen, + NULL, 0, skey, skeylen, (char *)passwd, keylen, algtype); /* long DH keys will not be in nis or files */ else if (classic_des && strcmp(look->service_name, "nis") == 0) res = getkeys_nis(&err, (char *)netname, - (char *)NULL, skey, (char *)passwd); + NULL, skey, (char *)passwd); else if (classic_des && strcmp(look->service_name, "files") == 0) res = getkeys_files(&err, (char *)netname, - (char *)NULL, skey, (char *)passwd); + NULL, skey, (char *)passwd); else { syslog(LOG_INFO, "Unknown publickey nameservice '%s'", look->service_name); @@ -1108,7 +1027,6 @@ getsecretkey_g( case __NSW_RETURN : if (needfree) __nsw_freeconfig(conf); - trace1(TR_getsecretkey_g, 1); return ((res & 2) != 0); default : syslog(LOG_INFO, "Unknown action for nameservice %s", @@ -1117,6 +1035,5 @@ getsecretkey_g( } if (needfree) __nsw_freeconfig(conf); - trace1(TR_getsecretkey_g, 1); return (0); } diff --git a/usr/src/lib/libnsl/key/xcrypt.c b/usr/src/lib/libnsl/key/xcrypt.c index abf5c7e25b..0d0acb293e 100644 --- a/usr/src/lib/libnsl/key/xcrypt.c +++ b/usr/src/lib/libnsl/key/xcrypt.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -41,7 +42,6 @@ #include <stdio.h> #include <stdlib.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/rpc.h> #include <rpc/key_prot.h> /* for KEYCHECKSUMSIZE */ #include <rpc/des_crypt.h> @@ -91,12 +91,9 @@ xencrypt(secret, passwd) int err; int len; - trace1(TR_xencrypt, 0); len = (int)strlen(secret) / 2; - if (len > MAX_KEY_CRYPT_LEN) { - trace1(TR_xencrypt, 1); + if (len > MAX_KEY_CRYPT_LEN) return (0); - } buf = malloc((unsigned)len); (void) hex2bin(len, secret, buf); (void) passwd2des(passwd, key); @@ -105,16 +102,13 @@ xencrypt(secret, passwd) err = cbc_crypt(key, buf, len, DES_ENCRYPT | DES_HW, ivec); if (DES_FAILED(err)) { free(buf); - trace1(TR_xencrypt, 1); return (0); } (void) bin2hex(len, (unsigned char *) buf, secret); free(buf); - trace1(TR_xencrypt, 1); return (1); #if 0 /* EXPORT DELETE END */ - trace1(TR_xencrypt, 1); return (0); /* EXPORT DELETE START */ #endif @@ -138,12 +132,9 @@ xdecrypt(secret, passwd) int err; int len; - trace1(TR_xdecrypt, 0); len = (int)strlen(secret) / 2; - if (len > MAX_KEY_CRYPT_LEN) { - trace1(TR_xdecrypt, 1); + if (len > MAX_KEY_CRYPT_LEN) return (0); - } buf = malloc((unsigned)len); (void) hex2bin(len, secret, buf); @@ -153,16 +144,13 @@ xdecrypt(secret, passwd) err = cbc_crypt(key, buf, len, DES_DECRYPT | DES_HW, ivec); if (DES_FAILED(err)) { free(buf); - trace1(TR_xdecrypt, 1); return (0); } (void) bin2hex(len, (unsigned char *) buf, secret); free(buf); - trace1(TR_xdecrypt, 1); return (1); #if 0 /* EXPORT DELETE END */ - trace1(TR_xdecrypt, 1); return (0); /* EXPORT DELETE START */ #endif @@ -179,13 +167,11 @@ passwd2des(pw, key) { int i; - trace1(TR_passwd2des, 0); (void) memset(key, 0, 8); for (i = 0; *pw; i = (i+1) % 8) { key[i] ^= *pw++ << 1; } des_setparity(key); - trace1(TR_passwd2des, 1); return (1); } @@ -201,12 +187,10 @@ hex2bin(len, hexnum, binnum) { int i; - trace2(TR_hex2bin, 0, len); for (i = 0; i < len; i++) { *binnum++ = 16 * hexval(hexnum[2 * i]) + hexval(hexnum[2 * i + 1]); } - trace1(TR_hex2bin, 1); return (1); } @@ -222,14 +206,12 @@ bin2hex(len, binnum, hexnum) int i; unsigned val; - trace2(TR_bin2hex, 0, len); for (i = 0; i < len; i++) { val = binnum[i]; hexnum[i*2] = hex[val >> 4]; hexnum[i*2+1] = hex[val & 0xf]; } hexnum[len*2] = 0; - trace1(TR_bin2hex, 1); return (1); } @@ -242,18 +224,13 @@ static char hexval(c) char c; { - trace1(TR_hexval, 0); if (c >= '0' && c <= '9') { - trace1(TR_hexval, 1); return (c - '0'); } else if (c >= 'a' && c <= 'z') { - trace1(TR_hexval, 1); return (c - 'a' + 10); } else if (c >= 'A' && c <= 'Z') { - trace1(TR_hexval, 1); return (c - 'A' + 10); } else { - trace1(TR_hexval, 1); return (-1); } } @@ -300,12 +277,8 @@ xencrypt_g( hexkeybytes + 1; char *hexkeybuf; - trace1(TR_xencrypt_g, 0); - - if (!secret || !keylen || !passwd || !encrypted_secret) { - trace1(TR_xencrypt_g, 1); + if (!secret || !keylen || !passwd || !encrypted_secret) return (0); - } if ((hexkeybuf = malloc(bufsize)) == 0) return (0); @@ -336,7 +309,6 @@ xencrypt_g( if (binkeybytes > MAX_KEY_CRYPT_LEN) { free(hexkeybuf); - trace1(TR_xencrypt_g, 1); return (0); } if ((binkeybuf = malloc((unsigned)binkeybytes)) == 0) { @@ -363,17 +335,14 @@ xencrypt_g( if (DES_FAILED(err)) { free(hexkeybuf); free(binkeybuf); - trace1(TR_xencrypt_g, 1); return (0); } (void) bin2hex(binkeybytes, (unsigned char *) binkeybuf, hexkeybuf); free(binkeybuf); *encrypted_secret = hexkeybuf; - trace1(TR_xencrypt_g, 1); return (1); #if 0 /* EXPORT DELETE END */ - trace1(TR_xencrypt_g, 1); return (0); /* EXPORT DELETE START */ #endif @@ -415,12 +384,9 @@ xdecrypt_g( const int hexkeybytes = BITS2NIBBLES(keylen); const int keychecksumsize = classic_des ? KEYCHECKSUMSIZE : MD5HEXSIZE; - trace1(TR_xdecrypt_g, 0); len = (int)strlen(secret) / 2; - if (len > MAX_KEY_CRYPT_LEN) { - trace1(TR_xdecrypt_g, 1); + if (len > MAX_KEY_CRYPT_LEN) return (0); - } if ((buf = malloc((unsigned)len)) == 0) return (0); @@ -433,7 +399,6 @@ xdecrypt_g( (int)strlen(netname), &key, FALSE); else { free(buf); - trace1(TR_xdecrypt_g, 1); return (0); } (void) memset(ivec, 0, 8); @@ -441,7 +406,6 @@ xdecrypt_g( err = cbc_crypt(key.c, buf, len, DES_DECRYPT | DES_HW, ivec); if (DES_FAILED(err)) { free(buf); - trace1(TR_xdecrypt_g, 1); return (0); } (void) bin2hex(len, (unsigned char *) buf, secret); @@ -452,7 +416,6 @@ xdecrypt_g( if (memcmp(secret, &(secret[hexkeybytes]), keychecksumsize) != 0) { secret[0] = 0; - trace1(TR_xdecrypt_g, 1); return (0); } } else { @@ -470,20 +433,17 @@ xdecrypt_g( /* does the digest match the appended one? */ if (memcmp(&(secret[hexkeybytes]), - (void *)md5hexbuf, MD5HEXSIZE) != 0) { + md5hexbuf, MD5HEXSIZE) != 0) { secret[0] = 0; - trace1(TR_xdecrypt_g, 1); return (0); } } secret[hexkeybytes] = '\0'; - trace1(TR_xdecrypt_g, 1); return (1); #if 0 /* EXPORT DELETE END */ - trace1(TR_xdecrypt_g, 1); return (0); /* EXPORT DELETE START */ #endif @@ -513,7 +473,6 @@ passwd2des_g( char *text; int plen, tlen; - trace1(TR_passwd2des, 0); (void) memset(tkey.c, 0, 8); (void) memset(ivec.c, 0, 8); @@ -528,13 +487,13 @@ passwd2des_g( #define KEYLEN sizeof (tkey.c) plen = strlen(pw); tlen = ((plen + len + (KEYLEN-1))/KEYLEN)*KEYLEN; - if ((text = (char *)malloc(tlen)) == NULL) { + if ((text = malloc(tlen)) == NULL) { return (0); } (void) memset(text, 0, tlen); - if (! altalg) { + if (!altalg) { /* * Concatenate the password and the mix-in string, fan-fold and XOR them @@ -616,7 +575,6 @@ passwd2des_g( (void) memcpy((*key).c, ivec.c, sizeof (ivec.c)); - trace1(TR_passwd2des_g, 1); return (1); } @@ -656,15 +614,11 @@ weak_DES_key(des_block db) { int i; - trace1(TR_weak_DES_key, 0); for (i = 0; i < sizeof (weakDESkeys)/sizeof (struct DESkey); i++) { if (weakDESkeys[i].h1 == db.key.high && - weakDESkeys[i].h2 == db.key.low) { - trace1(TR_weak_DES_key, 1); + weakDESkeys[i].h2 == db.key.low) return (1); - } } - trace1(TR_weak_DES_key, 1); return (0); } diff --git a/usr/src/lib/libnsl/netdir/netdir.c b/usr/src/lib/libnsl/netdir/netdir.c index e99167e220..53a1590876 100644 --- a/usr/src/lib/libnsl/netdir/netdir.c +++ b/usr/src/lib/libnsl/netdir/netdir.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -52,7 +53,7 @@ #include <string.h> #include <sys/file.h> #include <dlfcn.h> -#include <rpc/trace.h> +#include <stdlib.h> #include <malloc.h> #include <syslog.h> #include <nss_netdir.h> @@ -99,7 +100,7 @@ static struct translator *load_xlate(char *); int _nderror; int * -__nderror() +__nderror(void) { static pthread_key_t nderror_key = 0; int *ret; @@ -124,8 +125,7 @@ __nderror() * and then update 'translate' with the old versions of the symbols. */ void -add_to_xlate_list(translate) -struct translator *translate; +add_to_xlate_list(struct translator *translate) { struct translator *t; @@ -158,19 +158,15 @@ struct translator *translate; * returns none - Bug Id. 4276329 */ int -netdir_getbyname(tp, serv, addrs) - struct netconfig *tp; /* The network config entry */ - struct nd_hostserv *serv; /* the service, host pair */ - struct nd_addrlist **addrs; /* the answer */ +netdir_getbyname(struct netconfig *tp, struct nd_hostserv *serv, + struct nd_addrlist **addrs) { - trace1(TR_netdir_getbyname, 0); if (tp == 0) { _nderror = ND_BADARG; - trace1(TR_netdir_getbyname, 1); return (_nderror); } if ((strcmp(tp->nc_protofmly, NC_INET) == 0) && - (tp->nc_nlookups == 0)) { + (tp->nc_nlookups == 0)) { struct nss_netdirbyname_in nssin; union nss_netdirbyname_out nssout; @@ -186,8 +182,9 @@ netdir_getbyname(tp, serv, addrs) nssin.arg.nss.host6.flags = 0; nssout.nd_alist = addrs; return (_get_hostserv_inetnetdir_byname(tp, &nssin, &nssout)); - } else if ((strcmp(tp->nc_protofmly, NC_INET6) == 0) && - (tp->nc_nlookups == 0)) { + } + if ((strcmp(tp->nc_protofmly, NC_INET6) == 0) && + (tp->nc_nlookups == 0)) { struct nss_netdirbyname_in nssin; union nss_netdirbyname_out nssout; @@ -198,10 +195,8 @@ netdir_getbyname(tp, serv, addrs) nssin.arg.nss.host6.flags = (AI_ALL | AI_V4MAPPED); nssout.nd_alist = addrs; return (_get_hostserv_inetnetdir_byname(tp, &nssin, &nssout)); - } else { - trace1(TR_netdir_getbyname, 1); - return (__classic_netdir_getbyname(tp, serv, addrs)); } + return (__classic_netdir_getbyname(tp, serv, addrs)); } /* @@ -214,17 +209,14 @@ netdir_getbyname(tp, serv, addrs) * /etc/netconfig with an intent of bypassing the name service switch. */ int -__classic_netdir_getbyname(tp, serv, addrs) - struct netconfig *tp; /* The network config entry */ - struct nd_hostserv *serv; /* the service, host pair */ - struct nd_addrlist **addrs; /* the answer */ +__classic_netdir_getbyname(struct netconfig *tp, struct nd_hostserv *serv, + struct nd_addrlist **addrs) { struct translator *t; /* pointer to translator list */ struct nd_addrlist *nn; /* the results */ char *lr; /* routines to try */ int i; /* counts the routines */ - trace1(TR_netdir_getbyname, 0); _nderror = ND_SYSTEM; for (i = 0; i < tp->nc_nlookups; i++) { lr = *((tp->nc_lookups) + i); @@ -233,34 +225,28 @@ __classic_netdir_getbyname(tp, serv, addrs) nn = (*(t->gbn))(tp, serv); if (nn) { *addrs = nn; - trace1(TR_netdir_getbyname, 1); return (0); - } else { - if (_nderror < 0) { - trace1(TR_netdir_getbyname, 1); - return (_nderror); - } - break; } + if (_nderror < 0) { + return (_nderror); + } + break; } } /* If we didn't find it try loading it */ if (!t) { if ((t = load_xlate(lr)) != NULL) { /* add it to the list */ - mutex_lock(&xlate_lock); + (void) mutex_lock(&xlate_lock); add_to_xlate_list(t); - mutex_unlock(&xlate_lock); + (void) mutex_unlock(&xlate_lock); nn = (*(t->gbn))(tp, serv); if (nn) { *addrs = nn; - trace1(TR_netdir_getbyname, 1); return (0); - } else { - if (_nderror < 0) { - trace1(TR_netdir_getbyname, 1); - return (_nderror); - } + } + if (_nderror < 0) { + return (_nderror); } } else { if (_nderror == ND_SYSTEM) { /* retry cache */ @@ -271,7 +257,6 @@ __classic_netdir_getbyname(tp, serv, addrs) } } } - trace1(TR_netdir_getbyname, 1); return (_nderror); /* No one works */ } @@ -280,15 +265,11 @@ __classic_netdir_getbyname(tp, serv, addrs) * the name by the address passed. */ int -netdir_getbyaddr(tp, serv, addr) - struct netconfig *tp; /* The netconfig entry */ - struct nd_hostservlist **serv; /* the answer(s) */ - struct netbuf *addr; /* the address we have */ +netdir_getbyaddr(struct netconfig *tp, struct nd_hostservlist **serv, + struct netbuf *addr) { - trace1(TR_netdir_getbyaddr, 0); if (tp == 0) { _nderror = ND_BADARG; - trace1(TR_netdir_getbyaddr, 1); return (_nderror); } if ((strcmp(tp->nc_protofmly, NC_INET) == 0) && @@ -299,9 +280,9 @@ netdir_getbyaddr(tp, serv, addr) nssin.op_t = NETDIR_BY; nssin.arg.nd_nbuf = addr; nssout.nd_hslist = serv; - trace1(TR_netdir_getbyaddr, 1); return (_get_hostserv_inetnetdir_byaddr(tp, &nssin, &nssout)); - } else if ((strcmp(tp->nc_protofmly, NC_INET6) == 0) && + } + if ((strcmp(tp->nc_protofmly, NC_INET6) == 0) && (tp->nc_nlookups == 0)) { struct nss_netdirbyaddr_in nssin; union nss_netdirbyaddr_out nssout; @@ -309,27 +290,20 @@ netdir_getbyaddr(tp, serv, addr) nssin.op_t = NETDIR_BY6; nssin.arg.nd_nbuf = addr; nssout.nd_hslist = serv; - trace1(TR_netdir_getbyaddr, 1); return (_get_hostserv_inetnetdir_byaddr(tp, &nssin, &nssout)); - } else { - trace1(TR_netdir_getbyaddr, 1); - return (__classic_netdir_getbyaddr(tp, serv, addr)); } + return (__classic_netdir_getbyaddr(tp, serv, addr)); } /* * This routine is similar to the one above except that it instructs the * _get_hostserv_inetnetdir_byaddr not to do a service lookup. */ int -__netdir_getbyaddr_nosrv(tp, serv, addr) - struct netconfig *tp; /* The netconfig entry */ - struct nd_hostservlist **serv; /* the answer(s) */ - struct netbuf *addr; /* the address we have */ +__netdir_getbyaddr_nosrv(struct netconfig *tp, struct nd_hostservlist **serv, + struct netbuf *addr) { - trace1(TR_netdir_getbyaddr, 0); if (tp == 0) { _nderror = ND_BADARG; - trace1(TR_netdir_getbyaddr, 1); return (_nderror); } if ((strcmp(tp->nc_protofmly, NC_INET) == 0) && @@ -340,9 +314,9 @@ __netdir_getbyaddr_nosrv(tp, serv, addr) nssin.op_t = NETDIR_BY_NOSRV; nssin.arg.nd_nbuf = addr; nssout.nd_hslist = serv; - trace1(TR_netdir_getbyaddr, 1); return (_get_hostserv_inetnetdir_byaddr(tp, &nssin, &nssout)); - } else if ((strcmp(tp->nc_protofmly, NC_INET6) == 0) && + } + if ((strcmp(tp->nc_protofmly, NC_INET6) == 0) && (tp->nc_nlookups == 0)) { struct nss_netdirbyaddr_in nssin; union nss_netdirbyaddr_out nssout; @@ -350,12 +324,9 @@ __netdir_getbyaddr_nosrv(tp, serv, addr) nssin.op_t = NETDIR_BY_NOSRV6; nssin.arg.nd_nbuf = addr; nssout.nd_hslist = serv; - trace1(TR_netdir_getbyaddr, 1); return (_get_hostserv_inetnetdir_byaddr(tp, &nssin, &nssout)); - } else { - trace1(TR_netdir_getbyaddr, 1); - return (__classic_netdir_getbyaddr(tp, serv, addr)); } + return (__classic_netdir_getbyaddr(tp, serv, addr)); } /* @@ -367,17 +338,14 @@ __netdir_getbyaddr_nosrv(tp, serv, addr) * /etc/netconfig with an intent of bypassing the name service switch. */ int -__classic_netdir_getbyaddr(tp, serv, addr) - struct netconfig *tp; /* The netconfig entry */ - struct nd_hostservlist **serv; /* the answer(s) */ - struct netbuf *addr; /* the address we have */ +__classic_netdir_getbyaddr(struct netconfig *tp, struct nd_hostservlist **serv, + struct netbuf *addr) { struct translator *t; /* pointer to translator list */ struct nd_hostservlist *hs; /* the results */ char *lr; /* routines to try */ int i; /* counts the routines */ - trace1(TR_netdir_getbyaddr, 0); _nderror = ND_SYSTEM; for (i = 0; i < tp->nc_nlookups; i++) { lr = *((tp->nc_lookups) + i); @@ -386,35 +354,27 @@ __classic_netdir_getbyaddr(tp, serv, addr) hs = (*(t->gba))(tp, addr); if (hs) { *serv = hs; - trace1(TR_netdir_getbyaddr, 1); return (0); - } else { - if (_nderror < 0) { - trace1(TR_netdir_getbyaddr, 1); - return (_nderror); - } - break; } + if (_nderror < 0) + return (_nderror); + break; } } /* If we didn't find it try loading it */ if (!t) { if ((t = load_xlate(lr)) != NULL) { /* add it to the list */ - mutex_lock(&xlate_lock); + (void) mutex_lock(&xlate_lock); add_to_xlate_list(t); - mutex_unlock(&xlate_lock); + (void) mutex_unlock(&xlate_lock); hs = (*(t->gba))(tp, addr); if (hs) { *serv = hs; - trace1(TR_netdir_getbyaddr, 1); return (0); - } else { - if (_nderror < 0) { - trace1(TR_netdir_getbyaddr, 1); - return (_nderror); - } } + if (_nderror < 0) + return (_nderror); } else { if (_nderror == ND_SYSTEM) { /* retry cache */ _nderror = ND_OK; @@ -424,7 +384,6 @@ __classic_netdir_getbyaddr(tp, serv, addr) } } } - trace1(TR_netdir_getbyaddr, 1); return (_nderror); /* No one works */ } @@ -438,27 +397,20 @@ __classic_netdir_getbyaddr(tp, serv, addr) * it simply calls the inet-specific built in implementation. */ int -netdir_options(tp, option, fd, par) - struct netconfig *tp; /* the netconfig entry */ - int option; /* option number */ - int fd; /* open file descriptor */ - char *par; /* parameters if any */ +netdir_options(struct netconfig *tp, int option, int fd, char *par) { struct translator *t; /* pointer to translator list */ char *lr; /* routines to try */ int i; /* counts the routines */ - trace3(TR_netdir_options, 0, option, fd); if (tp == 0) { _nderror = ND_BADARG; - trace3(TR_netdir_options, 1, option, fd); return (_nderror); } if ((strcmp(tp->nc_protofmly, NC_INET) == 0 || strcmp(tp->nc_protofmly, NC_INET6) == 0) && (tp->nc_nlookups == 0)) { - trace3(TR_netdir_options, 1, option, fd); return (__inet_netdir_options(tp, option, fd, par)); } @@ -466,30 +418,25 @@ netdir_options(tp, option, fd, par) for (i = 0; i < tp->nc_nlookups; i++) { lr = *((tp->nc_lookups) + i); for (t = xlate_list; t; t = t->next) { - if (strcmp(lr, t->tr_name) == 0) { - trace3(TR_netdir_options, 1, option, fd); + if (strcmp(lr, t->tr_name) == 0) return ((*(t->opt))(tp, option, fd, par)); - } } /* If we didn't find it try loading it */ if (!t) { if ((t = load_xlate(lr)) != NULL) { /* add it to the list */ - mutex_lock(&xlate_lock); + (void) mutex_lock(&xlate_lock); add_to_xlate_list(t); - mutex_unlock(&xlate_lock); - trace3(TR_netdir_options, 1, option, fd); + (void) mutex_unlock(&xlate_lock); return ((*(t->opt))(tp, option, fd, par)); - } else { - if (_nderror == ND_SYSTEM) { /* retry cache */ - _nderror = ND_OK; - i--; - continue; - } + } + if (_nderror == ND_SYSTEM) { /* retry cache */ + _nderror = ND_OK; + i--; + continue; } } } - trace3(TR_netdir_options, 1, option, fd); return (_nderror); /* No one works */ } @@ -501,25 +448,20 @@ netdir_options(tp, option, fd, par) * can translate it or it can't. */ struct netbuf * -uaddr2taddr(tp, addr) - struct netconfig *tp; /* the netconfig entry */ - char *addr; /* The address in question */ +uaddr2taddr(struct netconfig *tp, char *addr) { struct translator *t; /* pointer to translator list */ struct netbuf *x; /* the answer we want */ char *lr; /* routines to try */ int i; /* counts the routines */ - trace1(TR_uaddr2taddr, 0); if (tp == 0) { _nderror = ND_BADARG; - trace1(TR_uaddr2taddr, 1); return (0); } if ((strcmp(tp->nc_protofmly, NC_INET) == 0 || strcmp(tp->nc_protofmly, NC_INET6) == 0) && (tp->nc_nlookups == 0)) { - trace1(TR_uaddr2taddr, 1); return (__inet_uaddr2taddr(tp, addr)); } for (i = 0; i < tp->nc_nlookups; i++) { @@ -527,32 +469,24 @@ uaddr2taddr(tp, addr) for (t = xlate_list; t; t = t->next) { if (strcmp(lr, t->tr_name) == 0) { x = (*(t->u2t))(tp, addr); - if (x) { - trace1(TR_uaddr2taddr, 1); + if (x) return (x); - } - if (_nderror < 0) { - trace1(TR_uaddr2taddr, 1); + if (_nderror < 0) return (0); - } } } /* If we didn't find it try loading it */ if (!t) { if ((t = load_xlate(lr)) != NULL) { /* add it to the list */ - mutex_lock(&xlate_lock); + (void) mutex_lock(&xlate_lock); add_to_xlate_list(t); - mutex_unlock(&xlate_lock); + (void) mutex_unlock(&xlate_lock); x = (*(t->u2t))(tp, addr); - if (x) { - trace1(TR_uaddr2taddr, 1); + if (x) return (x); - } - if (_nderror < 0) { - trace1(TR_uaddr2taddr, 1); + if (_nderror < 0) return (0); - } } else { if (_nderror == ND_SYSTEM) { /* retry cache */ _nderror = ND_OK; @@ -562,7 +496,6 @@ uaddr2taddr(tp, addr) } } } - trace1(TR_uaddr2taddr, 1); return (0); /* No one works */ } @@ -574,25 +507,20 @@ uaddr2taddr(tp, addr) * can translate it or it can't. */ char * -taddr2uaddr(tp, addr) - struct netconfig *tp; /* the netconfig entry */ - struct netbuf *addr; /* The address in question */ +taddr2uaddr(struct netconfig *tp, struct netbuf *addr) { struct translator *t; /* pointer to translator list */ char *lr; /* routines to try */ char *x; /* the answer */ int i; /* counts the routines */ - trace1(TR_taddr2uaddr, 0); if (tp == 0) { _nderror = ND_BADARG; - trace1(TR_taddr2uaddr, 1); return (0); } if ((strcmp(tp->nc_protofmly, NC_INET) == 0 || strcmp(tp->nc_protofmly, NC_INET6) == 0) && (tp->nc_nlookups == 0)) { - trace1(TR_taddr2uaddr, 1); return (__inet_taddr2uaddr(tp, addr)); } for (i = 0; i < tp->nc_nlookups; i++) { @@ -600,32 +528,24 @@ taddr2uaddr(tp, addr) for (t = xlate_list; t; t = t->next) { if (strcmp(lr, t->tr_name) == 0) { x = (*(t->t2u))(tp, addr); - if (x) { - trace1(TR_taddr2uaddr, 1); + if (x) return (x); - } - if (_nderror < 0) { - trace1(TR_taddr2uaddr, 1); + if (_nderror < 0) return (0); - } } } /* If we didn't find it try loading it */ if (!t) { if ((t = load_xlate(lr)) != NULL) { /* add it to the list */ - mutex_lock(&xlate_lock); + (void) mutex_lock(&xlate_lock); add_to_xlate_list(t); - mutex_unlock(&xlate_lock); + (void) mutex_unlock(&xlate_lock); x = (*(t->t2u))(tp, addr); - if (x) { - trace1(TR_taddr2uaddr, 1); + if (x) return (x); - } - if (_nderror < 0) { - trace1(TR_taddr2uaddr, 1); + if (_nderror < 0) return (0); - } } else { if (_nderror == ND_SYSTEM) { /* retry cache */ _nderror = ND_OK; @@ -635,7 +555,6 @@ taddr2uaddr(tp, addr) } } } - trace1(TR_taddr2uaddr, 1); return (0); /* No one works */ } @@ -643,9 +562,7 @@ taddr2uaddr(tp, addr) * This is the routine that frees the objects that these routines allocate. */ void -netdir_free(ptr, type) - void *ptr; /* generic pointer */ - int type; /* thing we are freeing */ +netdir_free(void *ptr, int type) { struct netbuf *na; struct nd_addrlist *nas; @@ -653,17 +570,14 @@ netdir_free(ptr, type) struct nd_hostservlist *hss; int i; - trace2(TR_netdir_free, 0, type); - if (ptr == NULL) { - trace2(TR_netdir_free, 1, type); + if (ptr == NULL) return; - } switch (type) { case ND_ADDR : na = (struct netbuf *)ptr; if (na->buf) free(na->buf); - free((char *)na); + free(na); break; case ND_ADDRLIST : @@ -679,8 +593,8 @@ netdir_free(ptr, type) */ if (nas->n_addrs->buf) free(nas->n_addrs->buf); - free((char *)nas->n_addrs); - free((char *)nas); + free(nas->n_addrs); + free(nas); break; case ND_HOSTSERV : @@ -689,7 +603,7 @@ netdir_free(ptr, type) free(hs->h_host); if (hs->h_serv) free(hs->h_serv); - free((char *)hs); + free(hs); break; case ND_HOSTSERVLIST : @@ -700,15 +614,14 @@ netdir_free(ptr, type) if (hs->h_serv) free(hs->h_serv); } - free((char *)hss->h_hostservs); - free((char *)hss); + free(hss->h_hostservs); + free(hss); break; default : _nderror = ND_UKNWN; break; } - trace2(TR_netdir_free, 1, type); } /* @@ -716,8 +629,7 @@ netdir_free(ptr, type) * file specified by the network configuration structure. */ static struct translator * -load_xlate(name) - char *name; /* file name to load */ +load_xlate(char *name) { struct translator *t; static struct xlate_list { @@ -727,8 +639,7 @@ load_xlate(name) struct xlate_list *xlp, **xlastp; static mutex_t xlist_lock = DEFAULTMUTEX; - trace1(TR_load_xlate, 0); - mutex_lock(&xlist_lock); + (void) mutex_lock(&xlist_lock); /* * We maintain a list of libraries we have loaded. Loading a library * twice is double-plus ungood! @@ -738,25 +649,22 @@ load_xlate(name) if (xlp->library != NULL) { if (strcmp(xlp->library, name) == 0) { _nderror = ND_SYSTEM; /* seen this lib */ - mutex_unlock(&xlist_lock); - trace1(TR_load_xlate, 1); + (void) mutex_unlock(&xlist_lock); return (0); } } } - t = (struct translator *)malloc(sizeof (struct translator)); + t = malloc(sizeof (struct translator)); if (!t) { _nderror = ND_NOMEM; - mutex_unlock(&xlist_lock); - trace1(TR_load_xlate, 1); + (void) mutex_unlock(&xlist_lock); return (0); } t->tr_name = strdup(name); if (!t->tr_name) { _nderror = ND_NOMEM; - free((char *)t); - mutex_unlock(&xlist_lock); - trace1(TR_load_xlate, 1); + free(t); + (void) mutex_unlock(&xlist_lock); return (NULL); } @@ -805,7 +713,7 @@ load_xlate(name) /* * Add this library to the list of loaded libraries. */ - *xlastp = (struct xlate_list *)malloc(sizeof (struct xlate_list)); + *xlastp = malloc(sizeof (struct xlate_list)); if (*xlastp == NULL) { _nderror = ND_NOMEM; goto error; @@ -817,16 +725,14 @@ load_xlate(name) goto error; } (*xlastp)->next = NULL; - mutex_unlock(&xlist_lock); - trace1(TR_load_xlate, 1); + (void) mutex_unlock(&xlist_lock); return (t); error: if (t->tr_fd != NULL) (void) dlclose(t->tr_fd); free(t->tr_name); - free((char *)t); - mutex_unlock(&xlist_lock); - trace1(TR_load_xlate, 1); + free(t); + (void) mutex_unlock(&xlist_lock); return (NULL); } @@ -838,21 +744,18 @@ error: * error in _nderror. */ char * -netdir_sperror() +netdir_sperror(void) { static pthread_key_t nderrbuf_key = 0; static char buf_main[NDERR_BUFSZ]; char *str; char *dlerrstr; - trace1(TR_netdir_sperror, 0); str = thr_main()? buf_main : thr_get_storage(&nderrbuf_key, NDERR_BUFSZ, free); - if (str == NULL) { - trace1(TR_netdir_sperror, 1); + if (str == NULL) return (NULL); - } dlerrstr = dlerror(); switch (_nderror) { case ND_NOMEM : @@ -915,7 +818,6 @@ netdir_sperror() dgettext(__nsl_dom, "n2a: unknown error "), _nderror); break; } - trace1(TR_netdir_sperror, 1); return (str); } @@ -925,13 +827,10 @@ netdir_sperror() * colon first. */ void -netdir_perror(s) - char *s; +netdir_perror(char *s) { char *err; - trace1(TR_netdir_perror, 0); err = netdir_sperror(); (void) fprintf(stderr, "%s: %s\n", s, err ? err : "n2a: error"); - trace1(TR_netdir_perror, 1); } diff --git a/usr/src/lib/libnsl/netselect/netcspace.h b/usr/src/lib/libnsl/netselect/netcspace.h index bedd511358..1fe0475ac6 100644 --- a/usr/src/lib/libnsl/netselect/netcspace.h +++ b/usr/src/lib/libnsl/netselect/netcspace.h @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1989 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -32,11 +33,18 @@ * under license from the Regents of the University of California. */ -#ident "%Z%%M% %I% %E% SMI" +#ifndef _NSS_NETCSPACE_H +#define _NSS_NETCSPACE_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif struct nc_data { - char *string; - unsigned int value; + char *string; + unsigned int value; }; static struct nc_data nc_semantics[] = { @@ -58,6 +66,11 @@ static struct nc_data nc_flag[] = { #define NC_NOSET 2 #define NC_OPENFAIL 3 #define NC_BADLINE 4 -#define NC_NOTFOUND 5 -#define NC_NOMOREENTRIES 6 +#define NC_NOTFOUND 5 +#define NC_NOMOREENTRIES 6 + +#ifdef __cplusplus +} +#endif +#endif /* _NSS_NETCSPACE_H */ diff --git a/usr/src/lib/libnsl/netselect/netselect.c b/usr/src/lib/libnsl/netselect/netselect.c index 88bdf075db..7b7698f940 100644 --- a/usr/src/lib/libnsl/netselect/netselect.c +++ b/usr/src/lib/libnsl/netselect/netselect.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -38,11 +39,12 @@ #include "../rpc/rpc_mt.h" /* for MT declarations only */ #include <rpc/types.h> #include <stdio.h> +#include <stdlib.h> #include <string.h> #include <ctype.h> -#include <rpc/trace.h> #include <netconfig.h> #include <malloc.h> +#include <libintl.h> #include <syslog.h> #include "netcspace.h" #include "nsl_stdio_prv.h" @@ -53,30 +55,22 @@ * Local routines used by the library procedures */ -static int blank(); -static int comment(); -static struct netconfig *fgetnetconfig(); -static void netconfig_free(); -static unsigned int getflag(); -static char **getlookups(); -static struct netconfig **getnetlist(); -static unsigned int getnlookups(); -static char *gettoken(); -static unsigned int getvalue(); -static void shift1left(); -static void netlist_free(); -static void free_entry(); -static struct netconfig *netconfig_dup(); - -/* - * System V routines used by the library procedures. - */ -extern char *getenv(); - -/* messaging stuff. */ +static int blank(char *); +static int comment(char *); +static struct netconfig *fgetnetconfig(__NSL_FILE *, char *); +static void netconfig_free(struct netconfig *); +static unsigned int getflag(char *); +static char **getlookups(char *); +static struct netconfig **getnetlist(void); +static unsigned int getnlookups(char *); +static char *gettoken(char *, int); +static unsigned int getvalue(char *, struct nc_data nc_data[]); +static void shift1left(char *); +static void netlist_free(struct netconfig ***); +static void free_entry(void *); +static struct netconfig *netconfig_dup(struct netconfig *); extern const char __nsl_dom[]; -extern char *dgettext(const char *, const char *); /* * Static global variables used by the library procedures: @@ -109,7 +103,7 @@ static int fieldnum = 0; /* "owned" by fgetnetconfig() */ static int * -__nc_error() +__nc_error(void) { static pthread_key_t nc_error_key = 0; static int nc_error = NC_NOERROR; @@ -130,26 +124,22 @@ __nc_error() */ void * -setnetconfig() +setnetconfig(void) { NCONF_HANDLE *retp; - trace1(TR_setnetconfig, 0); - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if ((netpp == NULL) && ((netpp = getnetlist()) == NULL)) { - mutex_unlock(&netpp_mutex); - trace1(TR_setnetconfig, 1); + (void) mutex_unlock(&netpp_mutex); return (NULL); } - mutex_unlock(&netpp_mutex); - if ((retp = (NCONF_HANDLE *) malloc(sizeof (NCONF_HANDLE))) == NULL) { + (void) mutex_unlock(&netpp_mutex); + if ((retp = malloc(sizeof (NCONF_HANDLE))) == NULL) { nc_error = NC_NOMEM; - trace1(TR_setnetconfig, 1); return (NULL); } nc_error = NC_NOERROR; retp->nc_head = retp->nc_curr = netpp; - trace1(TR_setnetconfig, 1); return ((void *)retp); } @@ -158,24 +148,20 @@ setnetconfig() */ int -endnetconfig(vdata) -void *vdata; +endnetconfig(void *vdata) { NCONF_HANDLE *nconf_handlep = (NCONF_HANDLE *)vdata; - trace1(TR_endnetconfig, 0); - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if (netpp == NULL || nconf_handlep == NULL) { nc_error = NC_NOSET; - mutex_unlock(&netpp_mutex); - trace1(TR_endnetconfig, 1); + (void) mutex_unlock(&netpp_mutex); return (-1); } - mutex_unlock(&netpp_mutex); + (void) mutex_unlock(&netpp_mutex); nc_error = NC_NOERROR; - free((void *)nconf_handlep); - trace1(TR_endnetconfig, 1); + free(nconf_handlep); return (0); } @@ -189,22 +175,19 @@ void *vdata; */ struct netconfig * -getnetconfig(vdata) -void *vdata; +getnetconfig(void *vdata) { NCONF_HANDLE *nconf_handlep = (NCONF_HANDLE *)vdata; struct netconfig *retp; /* holds the return value */ int ipv6_present = -1; - trace1(TR_getnetconfig, 0); - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if ((netpp == NULL) || (nconf_handlep == NULL)) { nc_error = NC_NOSET; - mutex_unlock(&netpp_mutex); - trace1(TR_getnetconfig, 1); + (void) mutex_unlock(&netpp_mutex); return (NULL); } - mutex_unlock(&netpp_mutex); + (void) mutex_unlock(&netpp_mutex); for (;;) { retp = *(nconf_handlep->nc_curr); if (retp && (strcmp(retp->nc_netid, "udp6") == 0 || @@ -224,7 +207,6 @@ void *vdata; } else { nc_error = NC_NOMOREENTRIES; } - trace1(TR_getnetconfig, 1); return (retp); } @@ -237,20 +219,17 @@ void *vdata; */ struct netconfig * -getnetconfigent(netid) -const char *netid; +getnetconfigent(const char *netid) { struct netconfig **tpp; int ipv6_present; - trace1(TR_getnetconfigent, 0); - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if ((netpp == NULL) && ((netpp = getnetlist()) == NULL)) { - mutex_unlock(&netpp_mutex); - trace1(TR_getnetconfigent, 1); + (void) mutex_unlock(&netpp_mutex); return (NULL); } - mutex_unlock(&netpp_mutex); + (void) mutex_unlock(&netpp_mutex); for (tpp = netpp; *tpp; tpp++) { if (strcmp((*tpp)->nc_netid, netid) == 0) { if (*tpp && (strcmp((*tpp)->nc_netid, "udp6") == 0 || @@ -258,16 +237,13 @@ const char *netid; ipv6_present = __can_use_af(AF_INET6); if (!ipv6_present) { nc_error = NC_NOTFOUND; - trace1(TR_getnetconfigent, 1); return (NULL); } } - trace1(TR_getnetconfigent, 1); return (netconfig_dup(*tpp)); } } nc_error = NC_NOTFOUND; - trace1(TR_getnetconfigent, 1); return (NULL); } @@ -276,12 +252,9 @@ const char *netid; */ void -freenetconfigent(netp) -struct netconfig *netp; +freenetconfigent(struct netconfig *netp) { - trace1(TR_freenetconfigent, 0); netconfig_free(netp); - trace1(TR_freenetconfigent, 1); } /* @@ -292,7 +265,7 @@ struct netconfig *netp; */ static struct netconfig ** -getnetlist() +getnetlist(void) { char line[BUFSIZ]; /* holds each line of NETCONFIG */ __NSL_FILE *fp; /* file stream for NETCONFIG */ @@ -300,10 +273,8 @@ getnetlist() struct netconfig **tpp; /* used to traverse the netconfig list */ int count; /* the number of entries in file */ - trace1(TR_getnetlist, 0); if ((fp = __nsl_fopen(NETCONFIG, "r")) == NULL) { nc_error = NC_OPENFAIL; - trace1(TR_getnetlist, 1); return (NULL); } @@ -318,14 +289,12 @@ getnetlist() if (count == 0) { nc_error = NC_NOTFOUND; (void) __nsl_fclose(fp); - trace1(TR_getnetlist, 1); return (NULL); } - if ((listpp = (struct netconfig **)malloc((count + 1) * + if ((listpp = malloc((count + 1) * sizeof (struct netconfig *))) == NULL) { nc_error = NC_NOMEM; (void) __nsl_fclose(fp); - trace1(TR_getnetlist, 1); return (NULL); } @@ -344,7 +313,6 @@ getnetlist() if (nc_error != NC_NOMOREENTRIES) /* Something is screwed up */ netlist_free(&listpp); - trace1(TR_getnetlist, 1); return (listpp); } @@ -355,9 +323,7 @@ getnetlist() */ static struct netconfig * -fgetnetconfig(fp, netid) -__NSL_FILE *fp; -char *netid; +fgetnetconfig(__NSL_FILE *fp, char *netid) { char linep[BUFSIZ]; /* pointer to a line in the file */ struct netconfig *netconfigp; /* holds the new netconfig structure */ @@ -365,7 +331,6 @@ char *netid; char *retvalp; /* the return value of fgets() */ char *entnetid; /* netid for the current entry */ - trace1(TR_fgetnetconfig, 0); /* skip past blank lines and comments. */ while (retvalp = __nsl_fgets(linep, BUFSIZ, fp)) { linenum++; @@ -376,26 +341,21 @@ char *netid; } if (retvalp == NULL) { nc_error = NC_NOMOREENTRIES; - trace1(TR_fgetnetconfig, 1); return (NULL); } fieldnum = 0; if ((entnetid = gettoken(linep, FALSE)) == NULL) { nc_error = NC_BADLINE; - trace1(TR_fgetnetconfig, 1); return (NULL); } if (netid && (strcmp(netid, entnetid) != 0)) { free(entnetid); nc_error = NC_NOTFOUND; - trace1(TR_fgetnetconfig, 1); return (NULL); } - if ((netconfigp = (struct netconfig *) - calloc(1, sizeof (struct netconfig))) == NULL) { + if ((netconfigp = calloc(1, sizeof (struct netconfig))) == NULL) { free(entnetid); nc_error = NC_NOMEM; - trace1(TR_fgetnetconfig, 1); return (NULL); } @@ -419,7 +379,6 @@ char *netid; free(tok1); free(tok2); free(tok3); - trace1(TR_fgetnetconfig, 1); return (netconfigp); } @@ -432,7 +391,7 @@ char *netid; */ void * -setnetpath() +setnetpath(void) { int count; /* the number of entries in NETPATH */ char valid_netpath[BUFSIZ]; /* holds the valid entries if NETPATH */ @@ -445,21 +404,18 @@ setnetpath() char *tp; /* used to scan NETPATH string */ NCONF_HANDLE *retp; /* the return value */ - trace1(TR_setnetpath, 0); /* * Read in the netconfig database if not already read in */ - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if ((netpp == NULL) && ((netpp = getnetlist()) == NULL)) { - mutex_unlock(&netpp_mutex); - trace1(TR_setnetpath, 1); + (void) mutex_unlock(&netpp_mutex); return (NULL); } - mutex_unlock(&netpp_mutex); + (void) mutex_unlock(&netpp_mutex); - if ((retp = (NCONF_HANDLE *) malloc(sizeof (NCONF_HANDLE))) == NULL) { + if ((retp = malloc(sizeof (NCONF_HANDLE))) == NULL) { nc_error = NC_NOMEM; - trace1(TR_setnetpath, 1); return (NULL); } @@ -531,11 +487,10 @@ setnetpath() /* Get space to hold the valid list (+1 for the NULL) */ - if ((rnetpp = (struct netconfig **)malloc((count + 1) * + if ((rnetpp = malloc((count + 1) * sizeof (struct netconfig *))) == NULL) { - free((void *) retp); + free(retp); nc_error = NC_NOMEM; - trace1(TR_setnetpath, 1); return (NULL); } @@ -564,7 +519,6 @@ setnetpath() *curr_pp = NULL; retp->nc_curr = retp->nc_head = rnetpp; - trace1(TR_setnetpath, 1); return ((void *)retp); } @@ -574,25 +528,21 @@ setnetpath() */ int -endnetpath(vdata) -void *vdata; +endnetpath(void *vdata) { /* The argument is really a NCONF_HANDLE; cast it here */ NCONF_HANDLE *nconf_handlep = (NCONF_HANDLE *)vdata; - trace1(TR_endnetpath, 0); - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if (netpp == NULL || nconf_handlep == NULL) { nc_error = NC_NOSET; - mutex_unlock(&netpp_mutex); - trace1(TR_endnetpath, 1); + (void) mutex_unlock(&netpp_mutex); return (-1); } - mutex_unlock(&netpp_mutex); + (void) mutex_unlock(&netpp_mutex); free(nconf_handlep->nc_head); free(nconf_handlep); - trace1(TR_endnetpath, 1); return (0); } @@ -603,23 +553,20 @@ void *vdata; */ struct netconfig * -getnetpath(vdata) -void *vdata; +getnetpath(void *vdata) { /* The argument is really a NCONF_HANDLE; cast it here */ NCONF_HANDLE *nconf_handlep = (NCONF_HANDLE *)vdata; struct netconfig *retp; /* holds the return value */ int ipv6_present = -1; - trace1(TR_getnetpath, 0); - mutex_lock(&netpp_mutex); + (void) mutex_lock(&netpp_mutex); if (netpp == NULL) { nc_error = NC_NOSET; - mutex_unlock(&netpp_mutex); - trace1(TR_getnetpath, 1); + (void) mutex_unlock(&netpp_mutex); return (NULL); } - mutex_unlock(&netpp_mutex); + (void) mutex_unlock(&netpp_mutex); for (;;) { retp = *(nconf_handlep->nc_curr); if (retp && (strcmp(retp->nc_netid, "udp6") == 0 || @@ -640,7 +587,6 @@ void *vdata; nc_error = NC_NOMOREENTRIES; } - trace1(TR_getnetpath, 1); return (retp); } @@ -649,14 +595,11 @@ void *vdata; */ static int -blank(cp) -char *cp; +blank(char *cp) { - trace1(TR_blank, 0); while (*cp && isspace(*cp)) { cp++; } - trace1(TR_blank, 1); return (*cp == '\0'); } @@ -665,14 +608,11 @@ char *cp; */ static int -comment(cp) -char *cp; +comment(char *cp) { - trace1(TR_comment, 0); while (*cp && isspace(*cp)) { cp++; } - trace1(TR_comment, 1); return (*cp == '#'); } @@ -682,19 +622,15 @@ char *cp; */ static unsigned int -getvalue(cp, nc_data) -char *cp; -struct nc_data nc_data[]; +getvalue(char *cp, struct nc_data nc_data[]) { int i; /* used to index through the given struct nc_data array */ - trace1(TR_getvalue, 0); for (i = 0; nc_data[i].string; i++) { if (strcmp(nc_data[i].string, cp) == 0) { break; } } - trace1(TR_getvalue, 1); return (nc_data[i].value); } @@ -704,13 +640,11 @@ struct nc_data nc_data[]; */ static unsigned int -getflag(cp) -char *cp; +getflag(char *cp) { int i; /* indexs through the nc_flag array */ unsigned int mask = 0; /* holds bitmask of flags */ - trace1(TR_getflag, 0); while (*cp) { for (i = 0; nc_flag[i].string; i++) { if (*nc_flag[i].string == *cp) { @@ -720,7 +654,6 @@ char *cp; } cp++; } - trace1(TR_getflag, 1); return (mask); } @@ -731,24 +664,18 @@ char *cp; */ static char ** -getlookups(cp) -char *cp; +getlookups(char *cp) { unsigned int num; /* holds the number of entries in the list */ char **listpp; /* the beginning of the list of dir routines */ char **tpp; /* traverses the list, populating it */ char *start; - trace1(TR_getlookups, 0); num = getnlookups(cp); - if (num == 0) { - trace1(TR_getlookups, 1); + if (num == 0) return (NULL); - } - if ((listpp = (char **)malloc((num + 1) * sizeof (char *))) == NULL) { - trace1(TR_getlookups, 1); + if ((listpp = malloc((num + 1) * sizeof (char *))) == NULL) return (NULL); - } tpp = listpp; while (num--) { @@ -774,12 +701,10 @@ char *cp; for (tpp = listpp; *tpp; tpp++) free(*tpp); free(listpp); - trace1(TR_getlookups, 1); return (NULL); } } *tpp = NULL; - trace1(TR_getlookups, 1); return (listpp); } @@ -789,16 +714,12 @@ char *cp; */ static unsigned int -getnlookups(cp) -char *cp; +getnlookups(char *cp) { unsigned int count; /* the number of tokens in the string */ - trace1(TR_getnlookups, 0); - if (strcmp(cp, "-") == 0) { - trace1(TR_getnlookups, 1); + if (strcmp(cp, "-") == 0) return (0); - } count = 1; while (*cp) { @@ -816,7 +737,6 @@ char *cp; } cp++; } - trace1(TR_getnlookups, 1); return (count); } @@ -827,33 +747,26 @@ char *cp; */ static char * -gettoken(cp, skip) -char *cp; -int skip; +gettoken(char *cp, int skip) { static char *savep; /* the place where we left off */ char *p; /* the beginning of the new token */ char *retp; /* the token to be returned */ - trace1(TR_gettoken, 0); fieldnum++; /* Determine if first or subsequent call */ p = (cp == NULL)? savep: cp; /* Return if no tokens remain. */ - if (p == 0) { - trace1(TR_gettoken, 1); + if (p == 0) return (NULL); - } while (isspace(*p)) p++; - if (*p == '\0') { - trace1(TR_gettoken, 1); + if (*p == '\0') return (NULL); - } /* * Save the location of the token and then skip past it @@ -885,7 +798,6 @@ int skip; *p = '\0'; savep = ++p; } - trace1(TR_gettoken, 1); return (strdup(retp)); } @@ -895,17 +807,14 @@ int skip; */ static void -shift1left(p) -char *p; +shift1left(char *p) { - trace1(TR_shift1left, 0); for (; *p; p++) *p = *(p + 1); - trace1(TR_shift1left, 1); } char * -nc_sperror() +nc_sperror(void) { static char buf_main[BUFSIZ]; static pthread_key_t perror_key; @@ -913,8 +822,6 @@ nc_sperror() buf_main : thr_get_storage(&perror_key, BUFSIZ, free); - trace1(TR_nc_sperror, 0); - if (retstr == NULL) { syslog(LOG_WARNING, "nc_sperror: malloc failed when trying to create buffer\n"); @@ -959,47 +866,37 @@ nc_sperror() BUFSIZ); break; } - trace1(TR_nc_sperror, 1); return (retstr); } void nc_perror(const char *string) { - trace1(TR_nc_perror, 0); if (string) - fprintf(stderr, "%s: %s\n", string, nc_sperror()); + (void) fprintf(stderr, "%s: %s\n", string, nc_sperror()); else - fprintf(stderr, "%s\n", nc_sperror()); - trace1(TR_nc_perror, 1); + (void) fprintf(stderr, "%s\n", nc_sperror()); } static void -netlist_free(netppp) - struct netconfig ***netppp; +netlist_free(struct netconfig ***netppp) { struct netconfig **tpp; - trace1(TR_netlist_free, 0); for (tpp = *netppp; *tpp; tpp++) { netconfig_free(*tpp); } free(*netppp); *netppp = NULL; - trace1(TR_netlist_free, 1); } static void -netconfig_free(netconfigp) -struct netconfig *netconfigp; +netconfig_free(struct netconfig *netconfigp) { int i; - trace1(TR_netconfig_free, 0); - if (netconfigp == NULL) { - trace1(TR_netconfig_free, 1); + if (netconfigp == NULL) return; - } free_entry(netconfigp->nc_netid); free_entry(netconfigp->nc_protofmly); free_entry(netconfigp->nc_proto); @@ -1009,20 +906,16 @@ struct netconfig *netconfigp; free_entry(netconfigp->nc_lookups[i]); free_entry(netconfigp->nc_lookups); free(netconfigp); - trace1(TR_netconfig_free, 1); } static struct netconfig * -netconfig_dup(netconfigp) -struct netconfig *netconfigp; +netconfig_dup(struct netconfig *netconfigp) { struct netconfig *nconf; int i; - trace1(TR_netconfig_dup, 0); - nconf = (struct netconfig *)calloc(1, sizeof (struct netconfig)); + nconf = calloc(1, sizeof (struct netconfig)); if (nconf == NULL) { - trace1(TR_netconfig_dup, 1); nc_error = NC_NOMEM; return (NULL); } @@ -1030,14 +923,13 @@ struct netconfig *netconfigp; nconf->nc_protofmly = strdup(netconfigp->nc_protofmly); nconf->nc_proto = strdup(netconfigp->nc_proto); nconf->nc_device = strdup(netconfigp->nc_device); - nconf->nc_lookups = (char **)malloc((netconfigp->nc_nlookups + 1) + nconf->nc_lookups = malloc((netconfigp->nc_nlookups + 1) * sizeof (char *)); if (!(nconf->nc_lookups && nconf->nc_netid && nconf->nc_protofmly && nconf->nc_proto && nconf->nc_device)) { nc_error = NC_NOMEM; netconfig_free(nconf); - trace1(TR_netconfig_dup, 1); return (NULL); } @@ -1047,7 +939,6 @@ struct netconfig *netconfigp; nconf->nc_nlookups = i; netconfig_free(nconf); nc_error = NC_NOMEM; - trace1(TR_netconfig_dup, 1); return (NULL); } } @@ -1055,16 +946,12 @@ struct netconfig *netconfigp; nconf->nc_nlookups = netconfigp->nc_nlookups; nconf->nc_flag = netconfigp->nc_flag; nconf->nc_semantics = netconfigp->nc_semantics; - trace1(TR_netconfig_dup, 1); return (nconf); } static void -free_entry(foo) - void *foo; +free_entry(void *foo) { - trace1(TR_free_entry, 0); if (foo) free(foo); - trace1(TR_free_entry, 1); } diff --git a/usr/src/lib/libnsl/nis/gen/nis_callback.c b/usr/src/lib/libnsl/nis/gen/nis_callback.c index ecfce5171d..f213ffa045 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_callback.c +++ b/usr/src/lib/libnsl/nis/gen/nis_callback.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -552,7 +553,7 @@ __nis_run_callback( tv.tv_usec = 0; } while (! __cbdata->complete) { - rw_rdlock(&svc_fd_lock); /* acquire svc_fdset lock */ + (void) rw_rdlock(&svc_fd_lock); /* acquire svc_fdset lock */ if (nfds != svc_max_pollfd) { svc_pollset = realloc(svc_pollset, sizeof (pollfd_t) * svc_max_pollfd); @@ -560,13 +561,13 @@ __nis_run_callback( } if (nfds == 0) { - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); break; /* None waiting, hence return */ } (void) memcpy(svc_pollset, svc_pollfd, sizeof (pollfd_t) * svc_max_pollfd); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); switch (pollret = poll(svc_pollset, nfds, __rpc_timeval_to_msec(&tv))) { @@ -626,6 +627,7 @@ __nis_run_callback( * is done, waits for completion, and returns the number of times that the * dispatch function was invoked. */ +/* ARGSUSED */ int __nis_run_dump_callback( netobj *srvid, /* Server's netobj */ @@ -635,8 +637,6 @@ __nis_run_dump_callback( { int count; struct timeval cbtv = {NIS_CBACK_TIMEOUT, 0}; - enum clnt_stat cs; - bool_t is_up; if (timeout == 0 || (timeout->tv_sec == 0 && timeout->tv_usec == 0)) timeout = &cbtv; @@ -656,7 +656,7 @@ __nis_run_dump_callback( } /* Now it's our turn to wait (for completion) */ - while (1) { + for (;;) { timestruc_t to; int ret; diff --git a/usr/src/lib/libnsl/nis/gen/nis_cast.c b/usr/src/lib/libnsl/nis/gen/nis_cast.c index a43f36e152..54acadb9cd 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_cast.c +++ b/usr/src/lib/libnsl/nis/gen/nis_cast.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -145,12 +146,12 @@ __nis_cast_proc( char uaddrbuf[INET6_ADDRSTRLEN + sizeof (".255.255")]; /* large enough for an IPv6 uaddr */ - if (sys_auth == (AUTH *) NULL) { + if (sys_auth == NULL) { stat = RPC_SYSTEMERROR; goto done_broad; } - saddrs = (struct server_addr *)calloc(nbep, sizeof (*saddrs)); + saddrs = calloc(nbep, sizeof (*saddrs)); if (saddrs == 0) { syslog(LOG_ERR, "nis_cast: no memory"); stat = RPC_CANTSEND; @@ -177,7 +178,7 @@ __nis_cast_proc( pingable++; - trans = (struct transp *)malloc(sizeof (*trans)); + trans = malloc(sizeof (*trans)); if (trans == NULL) { syslog(LOG_ERR, "nis_cast: no memory"); stat = RPC_CANTSEND; @@ -197,15 +198,15 @@ __nis_cast_proc( stat = RPC_CANTSEND; goto done_broad; } - if (t_bind(trans->tr_fd, (struct t_bind *)NULL, - (struct t_bind *)NULL) < 0) { + if (t_bind(trans->tr_fd, NULL, NULL) < 0) { syslog(LOG_ERR, "nis_cast: t_bind: %m"); stat = RPC_CANTSEND; goto done_broad; } trans->tr_taddr = + /* LINTED pointer cast */ (struct t_bind *)t_alloc(trans->tr_fd, T_BIND, T_ADDR); - if (trans->tr_taddr == (struct t_bind *)NULL) { + if (trans->tr_taddr == NULL) { syslog(LOG_ERR, "nis_cast: t_alloc: %m"); stat = RPC_SYSTEMERROR; goto done_broad; @@ -341,10 +342,12 @@ __nis_cast_proc( fd = saddrs[curr].sa_transp->tr_fd; if (strcmp(NC_INET, saddrs[curr].sa_transp->tr_protofmly) == 0) { + /* LINTED pointer cast */ *((uint32_t *)outbuf) = htonl(xid + curr); t_udata.udata.buf = outbuf; t_udata.udata.len = outlen; } else { + /* LINTED pointer cast */ *((uint32_t *)outbuf6) = htonl(xid + curr); t_udata.udata.buf = outbuf6; t_udata.udata.len = outlen6; @@ -573,8 +576,8 @@ ping_endpoints(nis_bound_directory *binding, int start, int end, int *fastest) count = end - start; st = __nis_cast_proc(binding, start, count, NULLPROC, - xdr_void, (void *)NULL, - xdr_void, (void *)NULL, + xdr_void, NULL, + xdr_void, NULL, fastest, NIS_PING_TIMEOUT); if (st == RPC_SUCCESS) *fastest += start; diff --git a/usr/src/lib/libnsl/nis/gen/nis_cback_xdr.c b/usr/src/lib/libnsl/nis/gen/nis_cback_xdr.c new file mode 100644 index 0000000000..864cc9104e --- /dev/null +++ b/usr/src/lib/libnsl/nis/gen/nis_cback_xdr.c @@ -0,0 +1,51 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * Originally generated using rpcgen. + */ + +#include <rpc/rpc.h> +#include <rpcsvc/nis_callback.h> +#include "nis_clnt.h" + +bool_t +xdr_obj_p(XDR *xdrs, obj_p *objp) +{ + return (xdr_pointer(xdrs, (char **)objp, sizeof (nis_object), + (xdrproc_t)xdr_nis_object)); +} + +bool_t +xdr_cback_data(XDR *xdrs, cback_data *objp) +{ + return (xdr_array(xdrs, (char **)&objp->entries.entries_val, + (uint_t *)&objp->entries.entries_len, ~0, + sizeof (obj_p), (xdrproc_t)xdr_obj_p)); +} diff --git a/usr/src/lib/libnsl/nis/gen/nis_groups.c b/usr/src/lib/libnsl/nis/gen/nis_groups.c index 1c0f4810b5..be63da8cf8 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_groups.c +++ b/usr/src/lib/libnsl/nis/gen/nis_groups.c @@ -19,12 +19,9 @@ * * CDDL HEADER END */ -/* - * nis_groups.c - */ /* - * Copyright 1988-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -100,24 +97,24 @@ get_g_cache(void) if ((gc = groups_cache) != 0) { return (gc); } - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); /* write lock the cache and try again */ - rw_wrlock(&g_cache_lock); + (void) rw_wrlock(&g_cache_lock); if ((gc = groups_cache) != 0) { - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (gc); } - gc = groups_cache = (g_cache_ptr) calloc(1, sizeof (*groups_cache)); + gc = groups_cache = calloc(1, sizeof (*groups_cache)); if (groups_cache == 0) { - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (0); } - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (gc); } @@ -127,21 +124,19 @@ int __nis_group_cache_stats(int *grpcachecall, int *grpcachehits, int *grpcachemisses) { - rw_rdlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); if (groups_cache == 0) { *grpcachecall = 0; *grpcachehits = 0; *grpcachemisses = 0; - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); return (0); - } else { - *grpcachecall = groups_cache->ncalls; - *grpcachehits = groups_cache->nhits; - *grpcachemisses = groups_cache->nmisses; - rw_unlock(&g_cache_lock); - return (1); } - /* NOTREACHED */ + *grpcachecall = groups_cache->ncalls; + *grpcachehits = groups_cache->nhits; + *grpcachemisses = groups_cache->nmisses; + (void) rw_unlock(&g_cache_lock); + return (1); } /* @@ -186,14 +181,14 @@ insert_explicit(g_varieties *varp, nis_name princp) NIS_HASH_ITEM *it; if (varp->explicit == 0) { - if (0 == (varp->explicit = (NIS_HASH_TABLE *) + if (0 == (varp->explicit = calloc(1, sizeof (NIS_HASH_TABLE)))) { return (FALSE); } } /* Don't use nis_insert_name() because we don't need the strdup(), */ /* so do the same sort of thing ourselves */ - if (0 == (it = (NIS_HASH_ITEM *)malloc(sizeof (NIS_HASH_ITEM)))) { + if ((it = malloc(sizeof (NIS_HASH_ITEM))) == NULL) { /* Memory is tight; can we free some that we don't need? */ if (varp->explicit->first == 0) { /* Yup, no entries in the hash-table, so free it */ @@ -260,7 +255,7 @@ push_namelist(struct cons **nlp, char *name) /* Don't bother looking for duplicates. They were quite likely */ /* with the old group semantics but would be pretty weird now. */ - if (0 == (it = (struct cons *)malloc(sizeof (*it)))) { + if ((it = malloc(sizeof (*it))) == NULL) { return (FALSE); } it->nom = name; @@ -496,7 +491,7 @@ transform_group( int i; nis_name *ml; - ge = (g_entry *)calloc(1, sizeof (*ge)); + ge = calloc(1, sizeof (*ge)); if (ge == 0) { syslog(LOG_WARNING, "nislib:transform_group() out of memory"); *stat = NIS_NOMEMORY; @@ -579,26 +574,26 @@ cached_group_entry( /* Expire the group if necessary */ (void) gettimeofday(&tv, (struct timezone *)0); if (ge->tte < tv.tv_sec) { - rw_unlock(&g_cache_lock); - rw_wrlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_wrlock(&g_cache_lock); remove_g_entry(gc, group); ge = 0; } } if (ge != 0) { - rw_unlock(&g_cache_lock); - rw_wrlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_wrlock(&g_cache_lock); gc->nhits++; gc->ncalls++; - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (ge); } - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); /* write lock the cache and try again */ - rw_wrlock(&g_cache_lock); + (void) rw_wrlock(&g_cache_lock); ge = lookup_g_entry(gc, group); if (ge != 0 && !visited(ge)) { @@ -614,8 +609,8 @@ cached_group_entry( if (ge != 0) { gc->nhits++; gc->ncalls++; - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (ge); } else { nis_object *obj; @@ -624,29 +619,29 @@ cached_group_entry( obj = get_group(group, refname, lookup, stat); if (obj == 0) { gc->ncalls++; - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (0); /* Couldn't read it */ } ge = transform_group(group, obj, stat); if (ge == 0) { gc->ncalls++; - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); nis_destroy_object(obj); - rw_rdlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (0); } if (insert_g_entry(gc, ge) == 0) { gc->ncalls++; - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); free_g_entry(ge); - rw_rdlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); *stat = NIS_NOMEMORY; return (0); } gc->ncalls++; - rw_unlock(&g_cache_lock); - rw_rdlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); return (ge); } /* NOTREACHED */ @@ -676,7 +671,7 @@ mark_visit(g_entry *ge) } static void -unmark_fatal() +unmark_fatal(void) { (void) printf("unmark: fatal error\n"); abort(); @@ -817,10 +812,10 @@ nis_ismember( bool_t ret; nis_error x; - rw_rdlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); /* Err on the side of security: in case of doubt, return FALSE */ ret = (do_ismember_2(princp, group, 0, nis_lookup, &x) == ISMEM_YES); - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); return (ret); } @@ -840,10 +835,10 @@ __do_ismember( nis_error stat; enum ismem isit; - rw_rdlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); /* Err on the side of security: in case of doubt, return FALSE */ isit = do_ismember_2(princp, obj->zo_group, 0, lookup, &stat); - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); if (isit == ISMEM_DUNNO) { if (stat != NIS_SUCCESS) { syslog(LOG_ERR, @@ -862,18 +857,18 @@ nis_print_group_entry( g_entry *ge; nis_error stat; - rw_rdlock(&g_cache_lock); + (void) rw_rdlock(&g_cache_lock); ge = cached_group_entry(group, (nis_name)0, nis_lookup, &stat); if (ge == 0) { (void) printf("Could not find group \"%s\".\n", group); - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); return; } (void) printf("Group entry for \"%s\" group:\n", ge->hdata.name); printf_varieties(&ge->include, ""); printf_varieties(&ge->exclude, "non"); - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); } @@ -885,11 +880,11 @@ nis_print_group_entry( void nis_flushgroups(void) { - rw_wrlock(&g_cache_lock); + (void) rw_wrlock(&g_cache_lock); if (groups_cache != 0) { delete_g_entry(groups_cache); } - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); /* Else there's no cache, so no flushing to do */ } @@ -905,11 +900,11 @@ nis_flushgroups(void) void __nis_flush_one_group(nis_name groupname) /* === new kinda public interface */ { - rw_wrlock(&g_cache_lock); + (void) rw_wrlock(&g_cache_lock); if (groups_cache != 0) { remove_g_entry(groups_cache, groupname); } - rw_unlock(&g_cache_lock); + (void) rw_unlock(&g_cache_lock); /* Else there's no cache, so no flushing to do */ } @@ -928,7 +923,7 @@ __nis_flush_group_exp_name(nis_name groupname) char tname[NIS_MAXNAMELEN]; char buf[NIS_MAXNAMELEN]; - (void) sprintf(tname, "%s.%s", + (void) snprintf(tname, sizeof (tname), "%s.%s", nis_leaf_of_r(groupname, buf, NIS_MAXNAMELEN), nis_domain_of(domainname)); __nis_flush_one_group(tname); @@ -1088,7 +1083,7 @@ nis_addmember( ngrp = *obj; /* copy the object */ ngrp.GR_data.gr_members.gr_members_val = malloc((nm+1) * sizeof (nis_name)); - if (! ngrp.GR_data.gr_members.gr_members_val) { + if (!ngrp.GR_data.gr_members.gr_members_val) { syslog(LOG_ERR, "nis_addmember: Out of memory"); nis_destroy_object(obj); return (NIS_NOMEMORY); @@ -1098,7 +1093,8 @@ nis_addmember( } ngrp.GR_data.gr_members.gr_members_val[nm] = princp; ngrp.GR_data.gr_members.gr_members_len = nm+1; - (void) sprintf(name, "%s.%s", obj->zo_name, obj->zo_domain); + (void) snprintf(name, sizeof (name), + "%s.%s", obj->zo_name, obj->zo_domain); /* XXX overwrite problem if multiple writers ? */ res = nis_modify(name, &ngrp); free(ngrp.GR_data.gr_members.gr_members_val); @@ -1144,7 +1140,7 @@ nis_removemember( ngrp = *obj; /* copy the object */ ngrp.GR_data.gr_members.gr_members_val = malloc(nm * sizeof (nis_name)); - if (! ngrp.GR_data.gr_members.gr_members_val) { + if (!ngrp.GR_data.gr_members.gr_members_val) { syslog(LOG_ERR, "nis_addmember: Out of memory"); nis_destroy_object(obj); return (NIS_NOMEMORY); @@ -1164,7 +1160,8 @@ nis_removemember( } } ngrp.GR_data.gr_members.gr_members_len = x; - (void) sprintf(name, "%s.%s", obj->zo_name, obj->zo_domain); + (void) snprintf(name, sizeof (name), + "%s.%s", obj->zo_name, obj->zo_domain); res = nis_modify(name, &ngrp); free(ngrp.GR_data.gr_members.gr_members_val); result = res->status; diff --git a/usr/src/lib/libnsl/nis/gen/nis_local.h b/usr/src/lib/libnsl/nis/gen/nis_local.h index 680ca9343a..8d030c5d59 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_local.h +++ b/usr/src/lib/libnsl/nis/gen/nis_local.h @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -169,54 +170,51 @@ extern void __nis_release_server(nis_call_state *, CLIENT *, extern void __nis_bad_auth_server(CLIENT *); extern void abort(void); -void nis_sort_directory_servers(directory_obj *); - -nis_error nis_bind_dir(char *, int, nis_bound_directory **, uint_t); -CLIENT *nis_client_handle(nis_bound_directory *, int, uint_t); -nis_server *__nis_server_dup(nis_server *, nis_server *); -void *__inet_get_local_interfaces(void); -void __inet_free_local_interfaces(void *); -int __inet_address_is_local(void *, struct in_addr); -int __inet_address_count(void *); -int __inet_uaddr_is_local(void *, struct netconfig *, char *); -char *__inet_get_uaddr(void *, struct netconfig *, int); -char *__inet_get_networka(void *, int); -int __inet_address_is_local_af(void *, sa_family_t, void *); -int __nis_server_is_local(endpoint *, void *); -endpoint *__get_bound_endpoint(nis_bound_directory *binding, int n); -endpoint *__endpoint_dup(endpoint *src, endpoint *dst); -void __endpoint_free(endpoint *ep); -void nis_print_binding(nis_bound_directory *binding); -char *__nis_get_server_address(struct netconfig *ncp, endpoint *ep); -nis_error __nis_path(char *from, char *to, int *length, char ***); -void __nis_path_free(char **names, int length); -int32_t __nis_librand(void); -int __nis_host_is_server(nis_server *srv, int nsrv); -int __nis_parse_path(char *path, nis_name *list, int max); -nis_name * __nis_getnames(nis_name name, nis_error *err); -void __nis_print_result(nis_result *res); -void __nis_print_rpc_result(enum clnt_stat status); -void __nis_print_call(CLIENT *clnt, int proc); -void __nis_print_fdreq(fd_args *); -void __nis_print_req(ib_request *req); -void __nis_print_nsreq(ns_request *req); -void __nis_init_call_state(nis_call_state *state); -void __nis_reset_call_state(nis_call_state *state); -nis_error nis_bind_server(nis_server *srv, int nsrv, - nis_bound_directory **binding); -nis_error nis_call(nis_call_state *state, rpcproc_t func, - xdrproc_t req_proc, char *req, xdrproc_t res_proc, char *res); -nis_name __nis_nextsep_of(char *); -int __rpc_timeval_to_msec(struct timeval *t); -AUTH *authdes_pk_seccreate(char *servername, netobj *pkey, uint_t window, - char *timehost, des_block *ckey, nis_server *srvr); -void __nis_netconfig2ep(struct netconfig *nc, endpoint *ep); -bool_t __nis_netconfig_matches_ep(struct netconfig *nc, endpoint *ep); -nis_server *__nis_init_dump_callback(CLIENT *svc_clnt, int (*cbfunc)(), - void *userdata); -int __nis_run_dump_callback(netobj *srvid, rpcproc_t srvproc, - struct timeval *timeout, - CLIENT *myserv); +extern void nis_sort_directory_servers(directory_obj *); + +extern nis_error nis_bind_dir(char *, int, nis_bound_directory **, uint_t); +extern CLIENT *nis_client_handle(nis_bound_directory *, int, uint_t); +extern nis_server *__nis_server_dup(nis_server *, nis_server *); +extern void *__inet_get_local_interfaces(void); +extern void __inet_free_local_interfaces(void *); +extern int __inet_address_is_local(void *, struct in_addr); +extern int __inet_address_count(void *); +extern int __inet_uaddr_is_local(void *, struct netconfig *, char *); +extern char *__inet_get_uaddr(void *, struct netconfig *, int); +extern char *__inet_get_networka(void *, int); +extern int __inet_address_is_local_af(void *, sa_family_t, void *); +extern int __nis_server_is_local(endpoint *, void *); +extern endpoint *__get_bound_endpoint(nis_bound_directory *, int); +extern endpoint *__endpoint_dup(endpoint *, endpoint *); +extern void __endpoint_free(endpoint *); +extern void nis_print_binding(nis_bound_directory *); +extern char *__nis_get_server_address(struct netconfig *, endpoint *); +extern nis_error __nis_path(char *, char *, int *, char ***); +extern void __nis_path_free(char **, int); +extern int32_t __nis_librand(void); +extern int __nis_host_is_server(nis_server *, int); +extern int __nis_parse_path(char *, nis_name *, int); +extern nis_name * __nis_getnames(nis_name, nis_error *); +extern void __nis_print_result(nis_result *); +extern void __nis_print_rpc_result(enum clnt_stat); +extern void __nis_print_call(CLIENT *, int); +extern void __nis_print_fdreq(fd_args *); +extern void __nis_print_req(ib_request *); +extern void __nis_print_nsreq(ns_request *); +extern void __nis_init_call_state(nis_call_state *); +extern void __nis_reset_call_state(nis_call_state *); +extern nis_error nis_bind_server(nis_server *, int, nis_bound_directory **); +extern nis_error nis_call(nis_call_state *, rpcproc_t, + xdrproc_t, char *, xdrproc_t, char *); +extern nis_name __nis_nextsep_of(char *); +extern int __rpc_timeval_to_msec(struct timeval *); +extern AUTH *authdes_pk_seccreate(const char *, netobj *, uint_t, + const char *, const des_block *, nis_server *); +extern void __nis_netconfig2ep(struct netconfig *, endpoint *); +extern bool_t __nis_netconfig_matches_ep(struct netconfig *, endpoint *); +extern nis_server *__nis_init_dump_callback(CLIENT *, int (*)(), void *); +extern int __nis_run_dump_callback(netobj *, rpcproc_t, + struct timeval *, CLIENT *); /* * Internal variables diff --git a/usr/src/lib/libnsl/nis/gen/nis_lookup.c b/usr/src/lib/libnsl/nis/gen/nis_lookup.c index e4de2556eb..d162e95609 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_lookup.c +++ b/usr/src/lib/libnsl/nis/gen/nis_lookup.c @@ -19,10 +19,9 @@ * * CDDL HEADER END */ + /* - * nis_lookup.c - * - * Copyright 1988-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -68,7 +67,7 @@ extern int __nis_debug_rpc; nis_result * __nis_remote_lookup( ib_request *req, /* name parameters */ - u_int flags, /* user flags */ + uint_t flags, /* user flags */ int list_op, /* list semantics */ void *cbdata, /* Callback data */ int (*cback)()) /* Callback (for list calls) */ @@ -92,7 +91,7 @@ __nis_remote_lookup( * copy of the request so that we can reuse it while * following links (without clobbering the callers copy). */ - res = (nis_result *)malloc(sizeof (nis_result)); + res = malloc(sizeof (nis_result)); if (res == NULL) return (NULL); local_req = *req; @@ -218,7 +217,7 @@ call_done: nis_freeresult(link_res); } link_res = res; - res = (nis_result *)malloc(sizeof (nis_result)); + res = malloc(sizeof (nis_result)); if (res == NULL) { nis_freeresult(link_res); return (NULL); @@ -265,7 +264,7 @@ call_done: nis_result * __nis_core_lookup( ib_request *req, /* name parameters */ - u_int flags, /* user flags */ + uint_t flags, /* user flags */ int list_op, /* list semantics */ void *cbdata, /* Callback data */ int (*cback)()) /* Callback (for list calls) */ @@ -282,7 +281,7 @@ __nis_finddirectory_remote(nis_bound_directory **binding, char *dname) fd_result *res; nis_call_state state; - res = (fd_result *)calloc(1, sizeof (fd_result)); + res = calloc(1, sizeof (fd_result)); if (res == NULL) return (NULL); diff --git a/usr/src/lib/libnsl/nis/gen/nis_misc.c b/usr/src/lib/libnsl/nis/gen/nis_misc.c index 65a9f5e09c..68c3b05561 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_misc.c +++ b/usr/src/lib/libnsl/nis/gen/nis_misc.c @@ -19,12 +19,13 @@ * * CDDL HEADER END */ + /* * nis_misc.c */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -170,7 +171,7 @@ nis_dumplog( enum clnt_stat stat; log_result *result_ptr; - result_ptr = (log_result *)calloc(1, sizeof (log_result)); + result_ptr = calloc(1, sizeof (log_result)); if (result_ptr == NULL) { syslog(LOG_ERR, "nis_dumplog: Client out of memory."); return (NULL); @@ -246,7 +247,7 @@ nis_dump( int err; log_result *result_ptr; - result_ptr = (log_result *)calloc(1, sizeof (log_result)); + result_ptr = calloc(1, sizeof (log_result)); if (result_ptr == NULL) { syslog(LOG_ERR, "nis_dump: Client out of memory."); return (NULL); @@ -379,13 +380,13 @@ nis_sort_server_endpoints_inet(nis_server *svr) ncp_inet6 = ncp; } if (ncp_inet == 0 && ncp_inet6 == 0) { - endnetconfig(nch); + (void) endnetconfig(nch); return; } local_interfaces = __inet_get_local_interfaces(); if (local_interfaces == 0) { - endnetconfig(nch); + (void) endnetconfig(nch); return; } @@ -425,7 +426,7 @@ nis_sort_server_endpoints_inet(nis_server *svr) /* clean up */ __inet_free_local_interfaces(local_interfaces); - endnetconfig(nch); + (void) endnetconfig(nch); } /* @@ -505,14 +506,14 @@ __nis_get_netconfig(endpoint *ep) * netconfig entry. */ if (nc) { - p = (struct netconfig_list *)malloc(sizeof (*p)); + p = malloc(sizeof (*p)); if (p == 0) return (0); p->nc = getnetconfigent(nc->nc_netid); p->next = ncl; ncl = p; } - endnetconfig(nch); + (void) endnetconfig(nch); return (nc); } @@ -535,7 +536,7 @@ endpoint * __endpoint_dup(endpoint *src, endpoint *dst) { if (dst == NULL) { - dst = (endpoint *)malloc(sizeof (endpoint)); + dst = malloc(sizeof (endpoint)); if (dst == NULL) return (NULL); } @@ -575,11 +576,12 @@ nis_server * __nis_server_dup(nis_server *src, nis_server *dst) { if (dst == NULL) { - dst = (nis_server *)malloc(sizeof (nis_server)); + dst = malloc(sizeof (nis_server)); if (dst == NULL) return (NULL); } (void) memset((char *)dst, 0, sizeof (nis_server)); + /* LINTED pointer cast */ return ((nis_server *) __nis_xdr_dup(xdr_nis_server, (char *)src, (char *)dst)); } @@ -593,7 +595,7 @@ __nis_xdr_dup(xdrproc_t proc, char *src, char *dst) XDR xdrs; size = xdr_sizeof(proc, src); - data = (char *)malloc(size); + data = malloc(size); if (data == NULL) return (NULL); @@ -619,8 +621,8 @@ __nis_path_free(char **names, int len) int i; for (i = 0; i < len; i++) - free((void *)names[i]); - free((void *)names); + free(names[i]); + free(names); } /* diff --git a/usr/src/lib/libnsl/nis/gen/nis_misc_proc.c b/usr/src/lib/libnsl/nis/gen/nis_misc_proc.c index 6047dcc79f..15a2f066dc 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_misc_proc.c +++ b/usr/src/lib/libnsl/nis/gen/nis_misc_proc.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -86,7 +87,7 @@ add_cred_item(char *netname, char *pname) if (old != NULL) return; - foo = (struct creditem *)calloc(1, sizeof (struct creditem)); + foo = calloc(1, sizeof (struct creditem)); if (foo == NULL) return; @@ -153,11 +154,13 @@ __nis_auth2princ( } return; } else if (flavor == AUTH_SYS) { /* XXX ifdef this for 4.1 */ + /* LINTED pointer cast */ au = (struct authsys_parms *)(auth); rmtdomain = nis_domain_of(au->aup_machname); if (au->aup_uid == 0) { - (void) sprintf(name, "%s", au->aup_machname); - if (! rmtdomain) + (void) snprintf(name, MAX_MACHINE_NAME, + "%s", au->aup_machname); + if (!rmtdomain) (void) strcat(name, __nis_rpc_domain()); if (name[strlen(name) - 1] != '.') (void) strcat(name, "."); @@ -176,6 +179,7 @@ __nis_auth2princ( (void) strcat(srch, "."); } } else if (flavor == AUTH_DES) { + /* LINTED pointer cast */ ad = (struct authdes_cred *)(auth); if (refresh) (void) delete_cred_item(ad->adc_fullname.name); @@ -300,15 +304,15 @@ gss_OID_load() gss_OID *OIDptr; int stat = 0; - mutex_lock(&gss_load_lock); + (void) mutex_lock(&gss_load_lock); if (GSS_EXPORT_NAME) { - mutex_unlock(&gss_load_lock); + (void) mutex_unlock(&gss_load_lock); return (0); } /* if LIBGSS is not loaded return an error */ if ((dh = dlopen(LIBGSS, RTLD_NOLOAD)) == NULL) { - mutex_unlock(&gss_load_lock); + (void) mutex_unlock(&gss_load_lock); return (0); } @@ -352,7 +356,7 @@ gss_OID_load() } Done: - mutex_unlock(&gss_load_lock); + (void) mutex_unlock(&gss_load_lock); if (stat == 0) GSS_EXPORT_NAME = 0; @@ -418,7 +422,7 @@ __nis_gssprin2netname(rpc_gss_principal_t prin, char netname[MAXNETNAMELEN+1]) * and make sure that its null terminated. */ if (OID_IS_EQUAL(DH_NETNAME, name_type)) { - strncpy(netname, + (void) strncpy(netname, (char *)display_name.value, MAXNETNAMELEN); netname[MAXNETNAMELEN] = '\0'; @@ -532,11 +536,13 @@ __nis_auth2princ_rpcgss( } return; } else if (flavor == AUTH_SYS) { /* XXX ifdef this for 4.1 */ + /* LINTED pointer cast */ au = (struct authsys_parms *)(auth); rmtdomain = nis_domain_of(au->aup_machname); if (au->aup_uid == 0) { - (void) sprintf(name, "%s", au->aup_machname); - if (! rmtdomain) + (void) snprintf(name, MAX_MACHINE_NAME, + "%s", au->aup_machname); + if (!rmtdomain) (void) strcat(name, __nis_rpc_domain()); if (name[strlen(name) - 1] != '.') (void) strcat(name, "."); @@ -555,6 +561,7 @@ __nis_auth2princ_rpcgss( (void) strcat(srch, "."); } } else if (flavor == AUTH_DES) { + /* LINTED pointer cast */ ad = (struct authdes_cred *)(auth); if (refresh) (void) delete_cred_item(ad->adc_fullname.name); @@ -592,7 +599,7 @@ __nis_auth2princ_rpcgss( rpc_gss_rawcred_t *rcred; void *cookie; - if (! rpc_gss_getcred(req, &rcred, NULL, &cookie)) { + if (!rpc_gss_getcred(req, &rcred, NULL, &cookie)) { if (verbose) { syslog(LOG_WARNING, "__nis_auth2princ_rpcgss: GSS getcred failure: returning '%s'", @@ -625,7 +632,7 @@ __nis_auth2princ_rpcgss( char alias[MECH_MAXALIASNAME+1] = { 0 }; rmtdomain++; - if (! __nis_mechname2alias(rcred->mechanism, alias, + if (!__nis_mechname2alias(rcred->mechanism, alias, sizeof (alias))) { syslog(LOG_ERR, "__nis_auth2princ_rpcgss: mechname '%s' not found: returning 'nobody'", @@ -750,7 +757,7 @@ __nis_ismaster(char *host, char *domain) if ((strlen(domain) + 10) > (size_t)NIS_MAXNAMELEN) return (FALSE); - (void) sprintf(buf, "org_dir.%s", domain); + (void) snprintf(buf, sizeof (buf), "org_dir.%s", domain); if (buf[strlen(buf) - 1] != '.') (void) strcat(buf, "."); @@ -799,7 +806,7 @@ __nis_isadmin(char *princ, char *table, char *domain) syslog(LOG_ERR, "__nis_isadmin: buffer too small"); return (FALSE); } - (void) sprintf(buf, "%s.org_dir.%s", table, domain); + (void) snprintf(buf, sizeof (buf), "%s.org_dir.%s", table, domain); if (buf[strlen(buf) - 1] != '.') (void) strcat(buf, "."); @@ -965,7 +972,7 @@ __nis_host2nis_server_g(const char *host, if (num_ep == addr_size) { addr_size += INC_SIZE; oldaddr = addr; - addr = (endpoint *)realloc((void *)addr, + addr = realloc(addr, addr_size * sizeof (endpoint)); if (addr == NULL) { if (errcode) @@ -992,7 +999,7 @@ __nis_host2nis_server_g(const char *host, } (void) endnetconfig(nch); - if ((hostinfo = (nis_server *)calloc(1, sizeof (nis_server))) == NULL) { + if ((hostinfo = calloc(1, sizeof (nis_server))) == NULL) { nis_free_endpoints(addr, num_ep); if (errcode) *errcode = NIS_NOMEMORY; @@ -1033,7 +1040,7 @@ __nis_host2nis_server_g(const char *host, binpadlen = ((binlen + 3) / 4) * 4; hexkeylen = binlen * 2 + 1; - if (!(hexkey = (char *)malloc(hexkeylen))) { + if (!(hexkey = malloc(hexkeylen))) { __nis_release_mechanisms(mechlist); __free_nis_server(hostinfo); free(keylist); @@ -1058,8 +1065,7 @@ __nis_host2nis_server_g(const char *host, keylistsize += sizeof (ushort_t) * 2 + binpadlen; oldkeylist = keylist; - if (!(keylist = - (extdhkey_t *)realloc(keylist, + if (!(keylist = realloc(keylist, keylistsize))) { free(oldkeylist); free(hexkey); @@ -1071,6 +1077,7 @@ __nis_host2nis_server_g(const char *host, } entryoffset = (char *)keylist + keyoffset; + /* LINTED pointer cast */ curentry = (extdhkey_t *)entryoffset; curentry->keylen = htons(keylen); @@ -1130,8 +1137,10 @@ char * __nis_dhext_extract_pkey(netobj *no, keylen_t keylen, algtype_t algtype) { char *hexkey; + /* LINTED pointer cast */ extdhkey_t *keyent = (extdhkey_t *)no->n_bytes; + /* LINTED pointer cast */ while (keyent < (extdhkey_t *)(no->n_bytes + no->n_len)) { char *keyoffset; size_t binlen = (ntohs(keyent->keylen) + 7) / 8; @@ -1141,7 +1150,7 @@ __nis_dhext_extract_pkey(netobj *no, keylen_t keylen, algtype_t algtype) if (keylen == ntohs(keyent->keylen) && algtype == ntohs(keyent->algtype)) { - if (!(hexkey = (char *)malloc(hexkeylen))) + if (!(hexkey = malloc(hexkeylen))) return (NULL); (void) bin2hex(binlen, keyent->key, hexkey); @@ -1149,6 +1158,7 @@ __nis_dhext_extract_pkey(netobj *no, keylen_t keylen, algtype_t algtype) } keyoffset = (char *)keyent + (sizeof (ushort_t) * 2) + binpadlen; + /* LINTED pointer cast */ keyent = (extdhkey_t *)keyoffset; } return (NULL); @@ -1164,11 +1174,12 @@ __nis_dhext_extract_keyinfo(nis_server *ns, extdhkey_t **retdat) { extdhkey_t *keyinfolist = NULL, *tmplist = NULL; int count = 0; + /* LINTED pointer cast */ extdhkey_t *keyent = (extdhkey_t *)ns->pkey.n_bytes; switch (ns->key_type) { case NIS_PK_DH: - if (!(keyinfolist = (extdhkey_t *)malloc(sizeof (extdhkey_t)))) + if (!(keyinfolist = malloc(sizeof (extdhkey_t)))) return (0); keyinfolist[0].keylen = 192; keyinfolist[0].algtype = 0; @@ -1177,6 +1188,7 @@ __nis_dhext_extract_keyinfo(nis_server *ns, extdhkey_t **retdat) return (1); case NIS_PK_DHEXT: + /* LINTED pointer cast */ while (keyent < (extdhkey_t *)(ns->pkey.n_bytes + ns->pkey.n_len)) { size_t binlen = (keyent->keylen + 7) / 8; @@ -1185,8 +1197,7 @@ __nis_dhext_extract_keyinfo(nis_server *ns, extdhkey_t **retdat) tmplist = keyinfolist; - if (!(keyinfolist = - (extdhkey_t *)realloc(keyinfolist, + if (!(keyinfolist = realloc(keyinfolist, (count + 1) * sizeof (extdhkey_t)))) { free(tmplist); @@ -1197,6 +1208,7 @@ __nis_dhext_extract_keyinfo(nis_server *ns, extdhkey_t **retdat) keyoffset = (char *)keyent + (sizeof (ushort_t) * 2) + binpadlen; + /* LINTED pointer cast */ keyent = (extdhkey_t *)keyoffset; count++; } diff --git a/usr/src/lib/libnsl/nis/gen/nis_names.c b/usr/src/lib/libnsl/nis/gen/nis_names.c index 87af75f0e7..317f6356a6 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_names.c +++ b/usr/src/lib/libnsl/nis/gen/nis_names.c @@ -19,12 +19,13 @@ * * CDDL HEADER END */ + /* * nis_names.c * * Relative name search policies. * - * Copyright 1988-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -217,7 +218,7 @@ parse_default( * "foo" is not a label of "foo500" though * it's a substring, hence not-a-match here. */ - if ((mkr = strstr(tmpdom, tmpnam)) && + if ((mkr = strstr(tmpdom, tmpnam)) != 0 && *(mkr+strlen(tmpnam)) == '.') { char *temp; /* very temporary */ @@ -444,7 +445,7 @@ parse_path(const nis_name name, const char *path, const nis_name local, break; /* finish early */ result[cur++] = (nis_name) strdup(buf); - if (! result[cur-1]) + if (!result[cur-1]) break; /* finish early */ } } @@ -640,14 +641,13 @@ __nis_getnames(nis_name name, nis_error *nis_err) *tmp_path = NULL; /* The search path */ char buf[NIS_MAXSRCHLEN]; - if (! name) { + if (!name) { *nis_err = NIS_BADNAME; return (NULL); } if (name[strlen(name)-1] != '.') { - result = (nis_name *) malloc(NIS_MAXPATHDEPTH * - sizeof (nis_name)); + result = malloc(NIS_MAXPATHDEPTH * sizeof (nis_name)); if (result == NULL) { *nis_err = NIS_NOMEMORY; return (NULL); @@ -663,7 +663,7 @@ __nis_getnames(nis_name name, nis_error *nis_err) append_orgdir(buf); #endif - if (! path) + if (!path) path = "$"; /* default path */ /* if can't get local_dir, no need to continue */ @@ -695,8 +695,8 @@ __nis_getnames(nis_name name, nis_error *nis_err) } else { /* the simple case for a fully-qualified path */ - result = (nis_name *) malloc(2 * sizeof (nis_name)); - if (! result) { + result = malloc(2 * sizeof (nis_name)); + if (!result) { *nis_err = NIS_NOMEMORY; return (NULL); } diff --git a/usr/src/lib/libnsl/nis/gen/nis_rpc.c b/usr/src/lib/libnsl/nis/gen/nis_rpc.c index 786a1d1910..87e8fd451d 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_rpc.c +++ b/usr/src/lib/libnsl/nis/gen/nis_rpc.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -36,6 +37,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <syslog.h> +#include <stdlib.h> #include <malloc.h> #include <unistd.h> #include <rpc/rpc.h> @@ -606,8 +608,7 @@ new_address: * Allocate new server binding entry. */ - if (srv_new = (struct server *) - calloc(1, sizeof (struct server))) + if (srv_new = calloc(1, sizeof (struct server))) srv_count++; if (!srv_new) { @@ -999,7 +1000,7 @@ __nis_get_server(nis_call_state *state) directory_obj *dobj; CLIENT *clnt; - __start_clock(CLOCK_CACHE); + (void) __start_clock(CLOCK_CACHE); for (;;) { switch (state->state) { case S_INIT: @@ -1192,7 +1193,7 @@ check_rdev(server *srv) syslog(LOG_DEBUG, "NIS+: can't stat %d", srv->fd); /* could be because file descriptor was closed */ /* it's not our file descriptor, so don't try to close it */ - (void) clnt_control(srv->clnt, CLSET_FD_NCLOSE, (char *)NULL); + (void) clnt_control(srv->clnt, CLSET_FD_NCLOSE, NULL); return (0); } if (srv->rdev != stbuf.st_rdev) { @@ -1200,7 +1201,7 @@ check_rdev(server *srv) "NIS+: fd %d changed, old=0x%lx, new=0x%lx", srv->fd, srv->rdev, stbuf.st_rdev); /* it's not our file descriptor, so don't try to close it */ - (void) clnt_control(srv->clnt, CLSET_FD_NCLOSE, (char *)NULL); + (void) clnt_control(srv->clnt, CLSET_FD_NCLOSE, NULL); return (0); } return (1); /* fd is okay */ diff --git a/usr/src/lib/libnsl/nis/gen/nis_sec_mechs.c b/usr/src/lib/libnsl/nis/gen/nis_sec_mechs.c index cc0f630949..3819433a59 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_sec_mechs.c +++ b/usr/src/lib/libnsl/nis/gen/nis_sec_mechs.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -135,7 +136,7 @@ list_append_ent(void *ent, void **list, uint_t cnt, void (*free_ent)()) { void **new_l; - if (! (new_l = realloc(list, sizeof (*list) * (cnt + 1)))) { + if (!(new_l = realloc(list, sizeof (*list) * (cnt + 1)))) { list_free_all(free_ent, list); return (NULL); } @@ -153,7 +154,7 @@ list_copy(void *(*cp_ent)(), void **mpp) void *tp; int diff; - if (! mpp) + if (!mpp) return (NULL); for (tpp = mpp; *tpp; tpp++) @@ -161,11 +162,11 @@ list_copy(void *(*cp_ent)(), void **mpp) diff = tpp - mpp; - if (! (tpp_h = calloc(diff + 1, sizeof (*mpp)))) + if (!(tpp_h = calloc(diff + 1, sizeof (*mpp)))) return (NULL); for (tpp = tpp_h; *mpp; mpp++) { - if (! (tp = (*cp_ent)(*mpp))) { + if (!(tp = (*cp_ent)(*mpp))) { free(tpp_h); return (NULL); } @@ -248,7 +249,7 @@ isnumberstr(const char *s) { for (; *s; s++) - if (! isdigit(*s)) + if (!isdigit(*s)) return (FALSE); return (TRUE); @@ -310,17 +311,17 @@ parse_line(char *linep, int minflds, int maxflds, int bufsiz) char *cp; int i; - if (! fpp) + if (!fpp) return (NULL); - if (! (cp = (char *)malloc(bufsiz))) { + if (!(cp = malloc(bufsiz))) { free(fpp); return (NULL); } for (i = 0; i < maxflds; i++, tpp++) { char *tp; - if (! nextfield(&linep, cp, bufsiz)) { + if (!nextfield(&linep, cp, bufsiz)) { free(cp); if (i < minflds) { free_fields(fpp, i); @@ -328,7 +329,7 @@ parse_line(char *linep, int minflds, int maxflds, int bufsiz) } else return (fpp); } - if (! (tp = strdup(cp))) { + if (!(tp = strdup(cp))) { free_fields(fpp, i); free(cp); return (NULL); @@ -383,7 +384,7 @@ cont: if (cp == NULL) return (NULL); - if (! (flds = parse_line(cp, num_flds_min, num_flds_max, + if (!(flds = parse_line(cp, num_flds_min, num_flds_max, line_len))) goto cont; @@ -393,7 +394,7 @@ cont: goto cont; } - if (! (m = malloc(sizeof (mechanism_t)))) { + if (!(m = malloc(sizeof (mechanism_t)))) { free_fields(flds, num_flds_max); return (NULL); } @@ -411,7 +412,7 @@ cont: * Make qop NULL if the field was empty or was "default" or * was '-'. */ - if (! *(flds + qp_offset) || + if (!*(flds + qp_offset) || (strncasecmp(*(flds + qp_offset), cf_secserv_default_str, strlen(cf_secserv_default_str)) == 0) || NIS_SEC_CF_NA_CMP(*(flds + qp_offset))) @@ -494,7 +495,7 @@ sf_copy_mech_ent(mechanism_t *mp) { mechanism_t *tp = calloc(1, sizeof (*mp)); - if (! mp || ! tp) + if (!mp || !tp) return (NULL); tp->mechname = mp->mechname ? strdup(mp->mechname) : NULL; @@ -575,7 +576,7 @@ __nis_get_mechanisms(bool_t qop_secserv) } mechs = mechs_no_dups = NULL; - if (! (fptr = __nsl_fopen(NIS_SEC_CF_PATHNAME, "r"))) { + if (!(fptr = __nsl_fopen(NIS_SEC_CF_PATHNAME, "r"))) { (void) mutex_unlock(&nis_sec_cf_lock); return (NULL); } @@ -585,7 +586,7 @@ __nis_get_mechanisms(bool_t qop_secserv) * Make sure entry is either the AUTH_DES compat * one or a valid GSS one that is installed. */ - if (! (AUTH_DES_COMPAT_CHK(mp) || + if (!(AUTH_DES_COMPAT_CHK(mp) || (NIS_SEC_CF_GSS_MECH(mp) && rpc_gss_is_installed(mp->mechname)))) { continue; @@ -659,7 +660,7 @@ __nis_translate_mechanism(const char *mechname, int *keylen, int *algtype) mechanism_t **mpp; mechanism_t **mpp_h; - if (! mechname || ! keylen || ! algtype) + if (!mechname || !keylen || !algtype) return (-1); /* AUTH_DES */ @@ -669,21 +670,21 @@ __nis_translate_mechanism(const char *mechname, int *keylen, int *algtype) return (0); } - if (! (mpp = __nis_get_mechanisms(FALSE))) + if (!(mpp = __nis_get_mechanisms(FALSE))) return (-1); mpp_h = mpp; for (; *mpp; mpp++) { mechanism_t *mp = *mpp; if (mp->mechname && - (! strcasecmp(mechname, mp->mechname))) { + (!strcasecmp(mechname, mp->mechname))) { *keylen = mp->keylen; *algtype = mp->algtype; __nis_release_mechanisms(mpp_h); return (0); } if (mp->alias && - (! strcasecmp(mechname, mp->alias))) { + (!strcasecmp(mechname, mp->alias))) { *keylen = mp->keylen; *algtype = mp->algtype; __nis_release_mechanisms(mpp_h); @@ -712,10 +713,10 @@ __nis_mechname2alias(const char *mechname, /* in */ mechanism_t **mpp; mechanism_t **mpp_h; - if (! mechname || ! alias) + if (!mechname || !alias) return (NULL); - if (! (mpp = __nis_get_mechanisms(FALSE))) + if (!(mpp = __nis_get_mechanisms(FALSE))) return (NULL); mpp_h = mpp; @@ -771,7 +772,7 @@ __nis_authtype2mechalias( const char *src = authtype; const char *max = src + mechaliaslen; - if (! src || ! dst || mechaliaslen == 0) + if (!src || !dst || mechaliaslen == 0) return (NULL); while (*src && src < max - 1) @@ -806,7 +807,7 @@ __nis_mechalias2authtype( const char *max = src + authtypelen; const int slen = strlen(cf_mech_dh1920_str); - if (! src || ! dst || ! authtypelen) + if (!src || !dst || !authtypelen) return (NULL); if (strncasecmp(src, cf_mech_dh1920_str, slen + 1) @@ -845,7 +846,7 @@ __nis_keyalg2mechalias( { mechanism_t **mechs; /* array of mechanisms */ - if (! alias) + if (!alias) return (NULL); if (AUTH_DES_KEY(keylen, algtype)) { @@ -862,7 +863,7 @@ __nis_keyalg2mechalias( for (mpp = mechs; *mpp; mpp++) { mechanism_t *mp = *mpp; - if (! VALID_MECH_ENTRY(mp) || + if (!VALID_MECH_ENTRY(mp) || AUTH_DES_COMPAT_CHK(mp)) continue; @@ -902,13 +903,13 @@ __nis_keyalg2authtype( char alias[MECH_MAXALIASNAME+1] = {0}; - if (! authtype || authtype_len == 0) + if (!authtype || authtype_len == 0) return (NULL); - if (! __nis_keyalg2mechalias(keylen, algtype, alias, sizeof (alias))) + if (!__nis_keyalg2mechalias(keylen, algtype, alias, sizeof (alias))) return (NULL); - if (! __nis_mechalias2authtype(alias, authtype, authtype_len)) + if (!__nis_mechalias2authtype(alias, authtype, authtype_len)) return (NULL); return (authtype); @@ -934,11 +935,11 @@ cont: if (cp == NULL) return (NULL); - if (! (flds = parse_line(cp, mech_file_flds_min, + if (!(flds = parse_line(cp, mech_file_flds_min, mech_file_flds_max, MF_MAX_FLDLEN))) goto cont; - if (! (m = malloc(sizeof (mfent_t)))) { + if (!(m = malloc(sizeof (mfent_t)))) { free_fields(flds, mech_file_flds_max); return (NULL); } @@ -957,7 +958,7 @@ mf_copy_ent(mfent_t *mp) { mfent_t *tp = calloc(1, sizeof (*mp)); - if (! mp || ! tp) + if (!mp || !tp) return (NULL); tp->mechname = mp->mechname ? strdup(mp->mechname) : NULL; @@ -1021,7 +1022,7 @@ mf_get_mechs() mechs = NULL; } - if (! (fptr = __nsl_fopen(mech_file, "r"))) { + if (!(fptr = __nsl_fopen(mech_file, "r"))) { (void) mutex_unlock(&mech_file_lock); return (NULL); } @@ -1057,7 +1058,7 @@ mechfile_name2lib(const char *mechname, char *libname, int len) mfent_t **mechs = mf_get_mechs(); mfent_t **mpp; - if (! mechs || ! mechname || ! libname || ! len) + if (!mechs || !mechname || !libname || !len) return (NULL); for (mpp = mechs; *mpp; mpp++) { @@ -1086,12 +1087,13 @@ __nis_get_mechanism_library(keylen_t keylen, algtype_t algtype, { char mechname[MAXDHNAME + 1]; - if (keylen == 0 || ! buffer || buflen == 0) + if (keylen == 0 || !buffer || buflen == 0) return (NULL); - (void) sprintf(mechname, "%s_%d_%d", dh_str, keylen, algtype); + (void) snprintf(mechname, sizeof (mechname), + "%s_%d_%d", dh_str, keylen, algtype); - if (! mechfile_name2lib(mechname, buffer, buflen)) + if (!mechfile_name2lib(mechname, buffer, buflen)) return (NULL); return (buffer); @@ -1114,15 +1116,16 @@ __nis_get_mechanism_symbol(keylen_t keylen, char libname[MAXDHNAME+1]; char libpath[MAXPATHLEN+1]; - if (! __nis_get_mechanism_library(keylen, algtype, libname, MAXDHNAME)) + if (!__nis_get_mechanism_library(keylen, algtype, libname, MAXDHNAME)) return (NULL); if (strlen(MECH_LIB_PREFIX) + strlen(libname) + 1 > sizeof (libpath)) return (NULL); - (void) sprintf(libpath, "%s%s", MECH_LIB_PREFIX, libname); + (void) snprintf(libpath, sizeof (libpath), + "%s%s", MECH_LIB_PREFIX, libname); - if (! (handle = dlopen(libpath, RTLD_LAZY))) + if (!(handle = dlopen(libpath, RTLD_LAZY))) return (NULL); return (dlsym(handle, symname)); diff --git a/usr/src/lib/libnsl/nis/gen/nis_subr.c b/usr/src/lib/libnsl/nis/gen/nis_subr.c index 03d58611b3..71ab1338b0 100644 --- a/usr/src/lib/libnsl/nis/gen/nis_subr.c +++ b/usr/src/lib/libnsl/nis/gen/nis_subr.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -236,9 +237,8 @@ __get_local_names(void) return (names); } -static -char * -get_nis_domain() +static char * +get_nis_domain(void) { directory_obj dobj; enum __nsw_parse_err pserr; @@ -282,7 +282,7 @@ __get_local_names1(void) return (ln); } /* First call goes this way */ - ln = (struct local_names *)calloc(1, sizeof (*ln)); + ln = calloc(1, sizeof (*ln)); if (ln == NULL) { syslog(LOG_ERR, "__get_local_names: Out of heap."); return (NULL); @@ -308,10 +308,10 @@ __get_local_names1(void) if (ln->domain[0] != '.') (void) strcat(ln->host, "."); if ((ln->rpcdomain = get_nis_domain()) != NULL) { - strcat(ln->host, ln->rpcdomain); + (void) strcat(ln->host, ln->rpcdomain); } else { ln->rpcdomain = strdup(ln->domain); - strcat(ln->host, ln->domain); + (void) strcat(ln->host, ln->domain); } t = getenv("NIS_GROUP"); @@ -626,8 +626,9 @@ __nis_principal(char *principal_name, uid_t uid, char *directory) return (NIS_BADNAME); } - (void) sprintf(buf, "[auth_name=%d,auth_type=LOCAL],%s.%s", - uid, PKTABLE, directory); + (void) snprintf(buf, sizeof (buf), + "[auth_name=%d,auth_type=LOCAL],%s.%s", + (int)uid, PKTABLE, directory); if (buf[strlen(buf)-1] != '.') (void) strcat(buf, "."); @@ -694,7 +695,7 @@ nis_local_principal(void) sig_mutex_unlock(&local_principal_lock); return (ln->host); } - p = (struct principal_list *)calloc(1, sizeof (*p)); + p = calloc(1, sizeof (*p)); if (p == NULL) return (NULL); if (!ln->principal_map) { @@ -799,12 +800,12 @@ nis_clone_object_r( int status; /* a counter variable */ XDR in_xdrs, out_xdrs; - if (! nis_get_static_storage(clone_buf_ptr, 1, + if (!nis_get_static_storage(clone_buf_ptr, 1, xdr_sizeof(xdr_nis_object, obj))) return (NULL); - memset(&in_xdrs, 0, sizeof (in_xdrs)); - memset(&out_xdrs, 0, sizeof (out_xdrs)); + (void) memset(&in_xdrs, 0, sizeof (in_xdrs)); + (void) memset(&out_xdrs, 0, sizeof (out_xdrs)); xdrmem_create(&in_xdrs, clone_buf_ptr->buf, clone_buf_ptr->size, XDR_ENCODE); xdrmem_create(&out_xdrs, clone_buf_ptr->buf, clone_buf_ptr->size, @@ -812,10 +813,10 @@ nis_clone_object_r( /* Allocate a basic NIS object structure */ if (dest) { - (void) memset((char *)dest, 0, sizeof (nis_object)); + (void) memset(dest, 0, sizeof (nis_object)); result = dest; } else - result = (nis_object *)calloc(1, sizeof (nis_object)); + result = calloc(1, sizeof (nis_object)); if (result == NULL) return (NULL); @@ -912,8 +913,8 @@ __break_name( s++; } } - pieces = (char **)calloc(components+1, sizeof (char *)); - if (! pieces) { + pieces = calloc(components+1, sizeof (char *)); + if (!pieces) { free(data); return (NULL); } @@ -1000,10 +1001,10 @@ nis_make_error( { nis_result *nres; - nres = (nis_result *)malloc(sizeof (nis_result)); + nres = malloc(sizeof (nis_result)); if (!nres) return ((nis_result *)&__nomem_nis_result); - (void) memset((char *)nres, 0, sizeof (nis_result)); + (void) memset(nres, 0, sizeof (nis_result)); nres->status = err; nres->aticks = aticks; nres->zticks = zticks; @@ -1033,8 +1034,8 @@ __cvt2attr( nis_attr *zattrs; char *s; - zattrs = (nis_attr *)calloc(*na, sizeof (nis_attr)); - if (! zattrs) + zattrs = calloc(*na, sizeof (nis_attr)); + if (!zattrs) return (NULL); for (i = 0; i < *na; i++) { @@ -1066,7 +1067,7 @@ __cvt2attr( * existing databases. * ANSWER : Always return an error. */ - if (! zattrs[i].ZVAL) { + if (!zattrs[i].ZVAL) { free(zattrs); return (NULL); } @@ -1129,7 +1130,7 @@ nis_get_request( * space within an attribute value */ - (void) memset((char *)req, 0, sizeof (ib_request)); + (void) memset(req, 0, sizeof (ib_request)); /* * if we're passed an object but no name, use the name from @@ -1140,7 +1141,8 @@ nis_get_request( sizeof (namebuf)) { return (NIS_BADNAME); } - (void) sprintf(namebuf, "%s.%s", obj->zo_name, obj->zo_domain); + (void) snprintf(namebuf, sizeof (namebuf), + "%s.%s", obj->zo_name, obj->zo_domain); name = namebuf; } if (!name || (name[0] == '\0')) @@ -1157,7 +1159,7 @@ nis_get_request( s++; /* Point past the opening bracket */ datalen = strlen(s); - data = (char *)calloc(1, datalen+1); + data = calloc(1, datalen+1); if (!data) return (NIS_NOMEMORY); @@ -1229,8 +1231,8 @@ nis_get_request( if (zn) { /* Save this as the table name */ req->ibr_name = strdup(t); - attr = (char **)calloc(zn+1, sizeof (char *)); - if (! attr) { + attr = calloc(zn+1, sizeof (char *)); + if (!attr) { free(data); free(req->ibr_name); req->ibr_name = 0; @@ -1260,7 +1262,7 @@ nis_get_request( req->ibr_srch.ibr_srch_len = zn; req->ibr_srch.ibr_srch_val = __cvt2attr(&zn, attr); free(attr); /* don't need this any more */ - if (! (req->ibr_srch.ibr_srch_val)) { + if (!(req->ibr_srch.ibr_srch_val)) { req->ibr_srch.ibr_srch_len = 0; free(req->ibr_name); req->ibr_name = 0; @@ -1306,8 +1308,8 @@ nis_read_obj(char *f) /* name of the object to read */ XDR xdrs; /* An xdr stream handle */ nis_object *res; - res = (nis_object *)calloc(1, sizeof (nis_object)); - if (! res) + res = calloc(1, sizeof (nis_object)); + if (!res) return (NULL); rootfile = fopen(f, "r"); @@ -1398,9 +1400,8 @@ __map_addr( } client = __nis_clnt_create(RPC_ANYFD, nc, uaddr, 0, 0, RPCBPROG, RPCBVERS, ilen, olen); - if (! client) { + if (!client) return (NULL); - } (void) clnt_control(client, CLSET_FD_CLOSE, NULL); @@ -1428,7 +1429,7 @@ __map_addr( if (clnt_st == RPC_SUCCESS) { clnt_destroy(client); if (*ua == '\0') { - mem_free(ua, 1); + free(ua); return (NULL); } res = strdup(ua); @@ -1453,6 +1454,7 @@ __map_addr( char buf[32]; (void) clnt_control(client, CLGET_SVC_ADDR, (char *)&remote); + /* LINTED pointer cast */ sa = (struct sockaddr_in *)(remote.buf); protocol = strcmp(nc->nc_proto, NC_TCP) ? IPPROTO_UDP : IPPROTO_TCP; @@ -1505,7 +1507,7 @@ __nis_get_callback_addresses(endpoint *ep, endpoint **ret_eps) void *nch; struct netconfig *nc; - eps = (endpoint *)malloc(MAX_EP * sizeof (endpoint)); + eps = malloc(MAX_EP * sizeof (endpoint)); if (eps == 0) return (0); @@ -1612,7 +1614,7 @@ create_rpcgss_secctx( } /* RPC GSS service names are of the form svc@host.dom */ - (void) sprintf(svc_name, + (void) snprintf(svc_name, sizeof (svc_name), "%s@%s", gss_svc ? gss_svc : NIS_SVCNAME_NISD, srv->name); @@ -1630,7 +1632,7 @@ create_rpcgss_secctx( return (NULL); } - if (! VALID_MECH_ENTRY(mp)) { + if (!VALID_MECH_ENTRY(mp)) { syslog(LOG_ERR, "%s: invalid mechanism entry name '%s'", NIS_SEC_CF_PATHNAME, @@ -1647,9 +1649,9 @@ create_rpcgss_secctx( */ if (MECH_PK_TECH(mp) && ((srv->key_type == NIS_PK_DHEXT && - ! __nis_dhext_extract_pkey(&(srv->pkey), + !__nis_dhext_extract_pkey(&(srv->pkey), mp->keylen, mp->algtype)) || - ! key_secretkey_is_set_g(mp->keylen, + !key_secretkey_is_set_g(mp->keylen, mp->algtype))) { #ifdef DHEXT_DEBUG (void) fprintf(stderr, @@ -1811,7 +1813,7 @@ nis_make_rpchandle_gss_svc_ext( nc_handle = (void *) setnetconfig(); - if (! nc_handle) + if (!nc_handle) return (NULL); ep = srv->ep.ep_val; @@ -1917,7 +1919,7 @@ nis_make_rpchandle_gss_svc_ext( } /* Done with the netconfig handle regardless */ - endnetconfig(nc_handle); + (void) endnetconfig(nc_handle); /* If we still don't have a client handle, we're sunk */ if (clnt == 0) { @@ -1938,7 +1940,7 @@ nis_make_rpchandle_gss_svc_ext( if (create_rpcgss_secctx(clnt, srv, gss_svc, &try_auth_des)) return (clnt); - if (! try_auth_des) + if (!try_auth_des) /* XXXX what's the meaning of going into a switch stmt??? */ goto auth_sys; @@ -2030,12 +2032,12 @@ nis_get_static_storage( uint_t sz; sz = nel * el; - if (! bs) + if (!bs) return (NULL); - if (! bs->buf) { - bs->buf = (void *) malloc(sz); - if (! bs->buf) + if (!bs->buf) { + bs->buf = malloc(sz); + if (!bs->buf) return (NULL); bs->size = sz; sig_mutex_lock(&__nis_ss_used_lock); @@ -2046,11 +2048,11 @@ nis_get_static_storage( free(bs->buf); size_delta = - (bs->size); - bs->buf = (void *) malloc(sz); + bs->buf = malloc(sz); /* check the result of malloc() first */ /* then update the statistic. */ - if (! bs->buf) + if (!bs->buf) return (NULL); bs->size = sz; size_delta += sz; @@ -2074,7 +2076,7 @@ nis_old_data_r( buf = (char *)nis_get_static_storage(bs_ptr, 1, 1024); - if (! buf) + if (!buf) return (NULL); /* @@ -2087,7 +2089,7 @@ nis_old_data_r( len = strlen(s) + 1; if (len >= sizeof (temp)) return (NULL); - (void) sprintf(temp, "/%s", s); + (void) snprintf(temp, sizeof (temp), "/%s", s); } if (len + strlen(__nis_data_directory) + strlen(nis_leaf_of(nis_local_host())) >= bs_ptr->size) @@ -2128,7 +2130,7 @@ nis_data_r(char *s, struct nis_sdata *bs_ptr) buf = (char *)nis_get_static_storage(bs_ptr, 1, 1024); - if (! buf) + if (!buf) return (NULL); /* @@ -2141,7 +2143,7 @@ nis_data_r(char *s, struct nis_sdata *bs_ptr) len = strlen(s) + 1; if (len >= sizeof (temp)) return (NULL); - (void) sprintf(temp, "/%s", s); + (void) snprintf(temp, sizeof (temp), "/%s", s); } if (len + strlen(__nis_data_directory) + strlen(NIS_DIR) >= bs_ptr->size) @@ -2208,7 +2210,7 @@ __nis_local_root(void) sig_mutex_unlock(&local_root_lock); return (local_root); } - local_root = (nis_name)calloc(1, LN_BUFSIZE); + local_root = calloc(1, LN_BUFSIZE); if (!local_root) { sig_mutex_unlock(&local_root_lock); @@ -2295,7 +2297,7 @@ __nis_cache_server_pkeys(directory_obj *dir) { case NIS_PK_DH: if (srv->pkey.n_len < sizeof (pkey) && host2netname(netname, srv->name, NULL)) { - memcpy(pkey, srv->pkey.n_bytes, + (void) memcpy(pkey, srv->pkey.n_bytes, srv->pkey.n_len); pkey[srv->pkey.n_len] = '\0'; __pkey_cache_add(netname, pkey, 192, 0); @@ -2307,6 +2309,7 @@ __nis_cache_server_pkeys(directory_obj *dir) { for (s = 0; s < srv->pkey.n_len; ) { keylen_t k, kpadlen; algtype_t a; + /* LINTED pointer cast */ key = (extdhkey_t *)&(srv->pkey.n_bytes[s]); k = ntohs(key->keylen); if (k == 0) diff --git a/usr/src/lib/libnsl/nis/gen/nis_xdr.c b/usr/src/lib/libnsl/nis/gen/nis_xdr.c new file mode 100644 index 0000000000..b7b88816a7 --- /dev/null +++ b/usr/src/lib/libnsl/nis/gen/nis_xdr.c @@ -0,0 +1,531 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * Originally generated using rpcgen. + */ + +#include <rpc/rpc.h> +#include <rpcsvc/nis.h> + +bool_t +xdr_nis_attr(XDR *xdrs, nis_attr *objp) +{ + if (!xdr_string(xdrs, &objp->zattr_ndx, ~0)) + return (FALSE); + return (xdr_bytes(xdrs, (char **)&objp->zattr_val.zattr_val_val, + (uint_t *)&objp->zattr_val.zattr_val_len, ~0)); +} + +bool_t +xdr_nis_name(XDR *xdrs, nis_name *objp) +{ + return (xdr_string(xdrs, objp, ~0)); +} + +bool_t +xdr_zotypes(XDR *xdrs, zotypes *objp) +{ + return (xdr_enum(xdrs, (enum_t *)objp)); +} + +bool_t +xdr_nstype(XDR *xdrs, nstype *objp) +{ + return (xdr_enum(xdrs, (enum_t *)objp)); +} + +bool_t +xdr_oar_mask(XDR *xdrs, oar_mask *objp) +{ + if (!xdr_u_int(xdrs, &objp->oa_rights)) + return (FALSE); + return (xdr_zotypes(xdrs, &objp->oa_otype)); +} + +bool_t +xdr_endpoint(XDR *xdrs, endpoint *objp) +{ + if (!xdr_string(xdrs, &objp->uaddr, ~0)) + return (FALSE); + if (!xdr_string(xdrs, &objp->family, ~0)) + return (FALSE); + return (xdr_string(xdrs, &objp->proto, ~0)); +} + +bool_t +xdr_nis_server(XDR *xdrs, nis_server *objp) +{ + if (!xdr_nis_name(xdrs, &objp->name)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->ep.ep_val, + (uint_t *)&objp->ep.ep_len, ~0, + sizeof (endpoint), (xdrproc_t)xdr_endpoint)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->key_type)) + return (FALSE); + return (xdr_netobj(xdrs, &objp->pkey)); +} + +bool_t +xdr_directory_obj(XDR *xdrs, directory_obj *objp) +{ + if (!xdr_nis_name(xdrs, &objp->do_name)) + return (FALSE); + if (!xdr_nstype(xdrs, &objp->do_type)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->do_servers.do_servers_val, + (uint_t *)&objp->do_servers.do_servers_len, ~0, + sizeof (nis_server), (xdrproc_t)xdr_nis_server)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->do_ttl)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->do_armask.do_armask_val, + (uint_t *)&objp->do_armask.do_armask_len, ~0, + sizeof (oar_mask), (xdrproc_t)xdr_oar_mask)); +} + +bool_t +xdr_entry_col(XDR *xdrs, entry_col *objp) +{ + if (!xdr_u_int(xdrs, &objp->ec_flags)) + return (FALSE); + return (xdr_bytes(xdrs, (char **)&objp->ec_value.ec_value_val, + (uint_t *)&objp->ec_value.ec_value_len, ~0)); +} + +bool_t +xdr_entry_obj(XDR *xdrs, entry_obj *objp) +{ + if (!xdr_string(xdrs, &objp->en_type, ~0)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->en_cols.en_cols_val, + (uint_t *)&objp->en_cols.en_cols_len, ~0, + sizeof (entry_col), (xdrproc_t)xdr_entry_col)); +} + +bool_t +xdr_group_obj(XDR *xdrs, group_obj *objp) +{ + if (!xdr_u_int(xdrs, &objp->gr_flags)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->gr_members.gr_members_val, + (uint_t *)&objp->gr_members.gr_members_len, ~0, + sizeof (nis_name), (xdrproc_t)xdr_nis_name)); +} + +bool_t +xdr_link_obj(XDR *xdrs, link_obj *objp) +{ + if (!xdr_zotypes(xdrs, &objp->li_rtype)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->li_attrs.li_attrs_val, + (uint_t *)&objp->li_attrs.li_attrs_len, ~0, + sizeof (nis_attr), (xdrproc_t)xdr_nis_attr)) + return (FALSE); + return (xdr_nis_name(xdrs, &objp->li_name)); +} + +bool_t +xdr_table_col(XDR *xdrs, table_col *objp) +{ + if (!xdr_string(xdrs, &objp->tc_name, 64)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->tc_flags)) + return (FALSE); + return (xdr_u_int(xdrs, &objp->tc_rights)); +} + +bool_t +xdr_table_obj(XDR *xdrs, table_obj *objp) +{ + if (!xdr_string(xdrs, &objp->ta_type, 64)) + return (FALSE); + if (!xdr_int(xdrs, &objp->ta_maxcol)) + return (FALSE); + if (!xdr_u_char(xdrs, &objp->ta_sep)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->ta_cols.ta_cols_val, + (uint_t *)&objp->ta_cols.ta_cols_len, ~0, + sizeof (table_col), (xdrproc_t)xdr_table_col)) + return (FALSE); + return (xdr_string(xdrs, &objp->ta_path, ~0)); +} + +bool_t +xdr_objdata(XDR *xdrs, objdata *objp) +{ + if (!xdr_zotypes(xdrs, &objp->zo_type)) + return (FALSE); + + switch (objp->zo_type) { + case NIS_DIRECTORY_OBJ: + return (xdr_directory_obj(xdrs, &objp->objdata_u.di_data)); + case NIS_GROUP_OBJ: + return (xdr_group_obj(xdrs, &objp->objdata_u.gr_data)); + case NIS_TABLE_OBJ: + return (xdr_table_obj(xdrs, &objp->objdata_u.ta_data)); + case NIS_ENTRY_OBJ: + return (xdr_entry_obj(xdrs, &objp->objdata_u.en_data)); + case NIS_LINK_OBJ: + return (xdr_link_obj(xdrs, &objp->objdata_u.li_data)); + case NIS_PRIVATE_OBJ: + return (xdr_bytes(xdrs, + (char **)&objp->objdata_u.po_data.po_data_val, + (uint_t *)&objp->objdata_u.po_data.po_data_len, ~0)); + case NIS_NO_OBJ: + return (TRUE); + case NIS_BOGUS_OBJ: + return (TRUE); + } + return (TRUE); +} + +bool_t +xdr_nis_oid(XDR *xdrs, nis_oid *objp) +{ + if (!xdr_uint32_t(xdrs, &objp->ctime)) + return (FALSE); + return (xdr_uint32_t(xdrs, &objp->mtime)); +} + +bool_t +xdr_nis_object(XDR *xdrs, nis_object *objp) +{ + if (!xdr_nis_oid(xdrs, &objp->zo_oid)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->zo_name)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->zo_owner)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->zo_group)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->zo_domain)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->zo_access)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->zo_ttl)) + return (FALSE); + return (xdr_objdata(xdrs, &objp->zo_data)); +} + +bool_t +xdr_nis_error(XDR *xdrs, nis_error *objp) +{ + return (xdr_enum(xdrs, (enum_t *)objp)); +} + +bool_t +xdr_nis_result(XDR *xdrs, nis_result *objp) +{ + if (!xdr_nis_error(xdrs, &objp->status)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->objects.objects_val, + (uint_t *)&objp->objects.objects_len, ~0, + sizeof (nis_object), (xdrproc_t)xdr_nis_object)) + return (FALSE); + if (!xdr_netobj(xdrs, &objp->cookie)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->zticks)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->dticks)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->aticks)) + return (FALSE); + return (xdr_uint32_t(xdrs, &objp->cticks)); +} + +bool_t +xdr_ns_request(XDR *xdrs, ns_request *objp) +{ + if (!xdr_nis_name(xdrs, &objp->ns_name)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->ns_object.ns_object_val, + (uint_t *)&objp->ns_object.ns_object_len, 1, + sizeof (nis_object), (xdrproc_t)xdr_nis_object)); +} + +bool_t +xdr_ib_request(XDR *xdrs, ib_request *objp) +{ + if (!xdr_nis_name(xdrs, &objp->ibr_name)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->ibr_srch.ibr_srch_val, + (uint_t *)&objp->ibr_srch.ibr_srch_len, ~0, + sizeof (nis_attr), (xdrproc_t)xdr_nis_attr)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->ibr_flags)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->ibr_obj.ibr_obj_val, + (uint_t *)&objp->ibr_obj.ibr_obj_len, 1, + sizeof (nis_object), (xdrproc_t)xdr_nis_object)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->ibr_cbhost.ibr_cbhost_val, + (uint_t *)&objp->ibr_cbhost.ibr_cbhost_len, 1, + sizeof (nis_server), (xdrproc_t)xdr_nis_server)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->ibr_bufsize)) + return (FALSE); + return (xdr_netobj(xdrs, &objp->ibr_cookie)); +} + +bool_t +xdr_ping_args(XDR *xdrs, ping_args *objp) +{ + if (!xdr_nis_name(xdrs, &objp->dir)) + return (FALSE); + return (xdr_uint32_t(xdrs, &objp->stamp)); +} + +bool_t +xdr_log_entry_t(XDR *xdrs, log_entry_t *objp) +{ + return (xdr_enum(xdrs, (enum_t *)objp)); +} + +bool_t +xdr_log_entry(XDR *xdrs, log_entry *objp) +{ + if (!xdr_uint32_t(xdrs, &objp->le_time)) + return (FALSE); + if (!xdr_log_entry_t(xdrs, &objp->le_type)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->le_princp)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->le_name)) + return (FALSE); + if (!xdr_array(xdrs, (char **)&objp->le_attrs.le_attrs_val, + (uint_t *)&objp->le_attrs.le_attrs_len, ~0, + sizeof (nis_attr), (xdrproc_t)xdr_nis_attr)) + return (FALSE); + return (xdr_nis_object(xdrs, &objp->le_object)); +} + +bool_t +xdr_log_result(XDR *xdrs, log_result *objp) +{ + if (!xdr_nis_error(xdrs, &objp->lr_status)) + return (FALSE); + if (!xdr_netobj(xdrs, &objp->lr_cookie)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->lr_entries.lr_entries_val, + (uint_t *)&objp->lr_entries.lr_entries_len, ~0, + sizeof (log_entry), (xdrproc_t)xdr_log_entry)); +} + +bool_t +xdr_cp_result(XDR *xdrs, cp_result *objp) +{ + if (!xdr_nis_error(xdrs, &objp->cp_status)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->cp_zticks)) + return (FALSE); + return (xdr_uint32_t(xdrs, &objp->cp_dticks)); +} + +bool_t +xdr_nis_tag(XDR *xdrs, nis_tag *objp) +{ + if (!xdr_u_int(xdrs, &objp->tag_type)) + return (FALSE); + return (xdr_string(xdrs, &objp->tag_val, ~0)); +} + +bool_t +xdr_nis_taglist(XDR *xdrs, nis_taglist *objp) +{ + return (xdr_array(xdrs, (char **)&objp->tags.tags_val, + (uint_t *)&objp->tags.tags_len, ~0, + sizeof (nis_tag), (xdrproc_t)xdr_nis_tag)); +} + +bool_t +xdr_dump_args(XDR *xdrs, dump_args *objp) +{ + if (!xdr_nis_name(xdrs, &objp->da_dir)) + return (FALSE); + if (!xdr_uint32_t(xdrs, &objp->da_time)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->da_cbhost.da_cbhost_val, + (uint_t *)&objp->da_cbhost.da_cbhost_len, 1, + sizeof (nis_server), (xdrproc_t)xdr_nis_server)); +} + +bool_t +xdr_fd_args(XDR *xdrs, fd_args *objp) +{ + if (!xdr_nis_name(xdrs, &objp->dir_name)) + return (FALSE); + return (xdr_nis_name(xdrs, &objp->requester)); +} + +bool_t +xdr_fd_result(XDR *xdrs, fd_result *objp) +{ + if (!xdr_nis_error(xdrs, &objp->status)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->source)) + return (FALSE); + if (!xdr_bytes(xdrs, (char **)&objp->dir_data.dir_data_val, + (uint_t *)&objp->dir_data.dir_data_len, ~0)) + return (FALSE); + return (xdr_bytes(xdrs, (char **)&objp->signature.signature_val, + (uint_t *)&objp->signature.signature_len, ~0)); +} +/* + * Structures used for server binding. + */ + +bool_t +xdr_nis_bound_endpoint(XDR *xdrs, nis_bound_endpoint *objp) +{ + rpc_inline_t *buf; + + if (xdrs->x_op == XDR_ENCODE) { + if (!xdr_endpoint(xdrs, &objp->ep)) + return (FALSE); + buf = XDR_INLINE(xdrs, 5 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_int(xdrs, &objp->generation)) + return (FALSE); + if (!xdr_int(xdrs, &objp->rank)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->flags)) + return (FALSE); + if (!xdr_int(xdrs, &objp->hostnum)) + return (FALSE); + if (!xdr_int(xdrs, &objp->epnum)) + return (FALSE); + + } else { +#if defined(_LP64) + IXDR_PUT_INT32(buf, objp->generation); + IXDR_PUT_INT32(buf, objp->rank); + IXDR_PUT_U_INT32(buf, objp->flags); + IXDR_PUT_INT32(buf, objp->hostnum); + IXDR_PUT_INT32(buf, objp->epnum); +#else + IXDR_PUT_LONG(buf, objp->generation); + IXDR_PUT_LONG(buf, objp->rank); + IXDR_PUT_U_LONG(buf, objp->flags); + IXDR_PUT_LONG(buf, objp->hostnum); + IXDR_PUT_LONG(buf, objp->epnum); +#endif + } + if (!xdr_nis_name(xdrs, &objp->uaddr)) + return (FALSE); + return (xdr_endpoint(xdrs, &objp->cbep)); + } + if (xdrs->x_op == XDR_DECODE) { + if (!xdr_endpoint(xdrs, &objp->ep)) + return (FALSE); + buf = XDR_INLINE(xdrs, 5 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_int(xdrs, &objp->generation)) + return (FALSE); + if (!xdr_int(xdrs, &objp->rank)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->flags)) + return (FALSE); + if (!xdr_int(xdrs, &objp->hostnum)) + return (FALSE); + if (!xdr_int(xdrs, &objp->epnum)) + return (FALSE); + + } else { +#if defined(_LP64) + objp->generation = IXDR_GET_INT32(buf); + objp->rank = IXDR_GET_INT32(buf); + objp->flags = IXDR_GET_U_INT32(buf); + objp->hostnum = IXDR_GET_INT32(buf); + objp->epnum = IXDR_GET_INT32(buf); +#else + objp->generation = IXDR_GET_LONG(buf); + objp->rank = IXDR_GET_LONG(buf); + objp->flags = IXDR_GET_U_LONG(buf); + objp->hostnum = IXDR_GET_LONG(buf); + objp->epnum = IXDR_GET_LONG(buf); +#endif + } + if (!xdr_nis_name(xdrs, &objp->uaddr)) + return (FALSE); + return (xdr_endpoint(xdrs, &objp->cbep)); + } + + if (!xdr_endpoint(xdrs, &objp->ep)) + return (FALSE); + if (!xdr_int(xdrs, &objp->generation)) + return (FALSE); + if (!xdr_int(xdrs, &objp->rank)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->flags)) + return (FALSE); + if (!xdr_int(xdrs, &objp->hostnum)) + return (FALSE); + if (!xdr_int(xdrs, &objp->epnum)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->uaddr)) + return (FALSE); + return (xdr_endpoint(xdrs, &objp->cbep)); +} + +bool_t +xdr_nis_bound_directory(XDR *xdrs, nis_bound_directory *objp) +{ + if (!xdr_int(xdrs, &objp->generation)) + return (FALSE); + if (!xdr_int(xdrs, &objp->min_rank)) + return (FALSE); + if (!xdr_int(xdrs, &objp->optimal_rank)) + return (FALSE); + if (!xdr_directory_obj(xdrs, &objp->dobj)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->BEP.BEP_val, + (uint_t *)&objp->BEP.BEP_len, ~0, + sizeof (nis_bound_endpoint), + (xdrproc_t)xdr_nis_bound_endpoint)); +} + +bool_t +xdr_nis_active_endpoint(XDR *xdrs, nis_active_endpoint *objp) +{ + if (!xdr_endpoint(xdrs, &objp->ep)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->hostname)) + return (FALSE); + if (!xdr_int(xdrs, &objp->rank)) + return (FALSE); + if (!xdr_int(xdrs, &objp->uaddr_generation)) + return (FALSE); + if (!xdr_nis_name(xdrs, &objp->uaddr)) + return (FALSE); + if (!xdr_int(xdrs, &objp->cbep_generation)) + return (FALSE); + return (xdr_endpoint(xdrs, &objp->cbep)); +} diff --git a/usr/src/lib/libnsl/nis/gen/nislib.c b/usr/src/lib/libnsl/nis/gen/nislib.c index e4a54198e9..e645c35984 100644 --- a/usr/src/lib/libnsl/nis/gen/nislib.c +++ b/usr/src/lib/libnsl/nis/gen/nislib.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1988-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -242,7 +243,8 @@ __nis_path_list( /* construct a list of tables to search */ (void) strncpy(pathbuf, tbl_obj->TA_data.ta_path, NIS_MAXPATHLEN); if (sf) { - (void) sprintf(firstpath, "%s.%s", tbl_obj->zo_name, + (void) snprintf(firstpath, sizeof (firstpath), + "%s.%s", tbl_obj->zo_name, tbl_obj->zo_domain); pathlist[0] = firstpath; tnum = __nis_parse_path(pathbuf, &pathlist[1], @@ -277,10 +279,10 @@ __nis_path_list( ret_objs[i+1].objs = NULL; ret_objs[i+1].len = 0; if (cback) { - mutex_lock(&__nis_callback_lock); + (void) mutex_lock(&__nis_callback_lock); local_res = __nis_core_lookup(req, flags, 1, cbdata, cback); - mutex_unlock(&__nis_callback_lock); + (void) mutex_unlock(&__nis_callback_lock); } else local_res = __nis_core_lookup(req, flags, 1, cbdata, cback); @@ -383,8 +385,7 @@ __nis_path_list( */ if (total_objs) { /* now build a list of objects that should be returned */ - obj_list = (nis_object *) calloc(total_objs, - sizeof (nis_object)); + obj_list = calloc(total_objs, sizeof (nis_object)); if (obj_list == NULL) { res->status = NIS_NOMEMORY; res->aticks += aticks; @@ -450,7 +451,6 @@ nis_lookup(nis_name name, uint_t flags) nis_error nis_err = NIS_SUCCESS; nis_name *namelist; nis_result *res; - nis_error err; ib_request req; int i; unsigned int aticks = 0, @@ -458,7 +458,7 @@ nis_lookup(nis_name name, uint_t flags) dticks = 0, zticks = 0; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, "nis_lookup(%s, 0x%x)\n", @@ -559,7 +559,7 @@ nis_list( int i, done; /* start the client profiling clock */ - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { @@ -639,9 +639,9 @@ nis_list( i = (int)strlen(name); if ((flags & EXPAND_NAME) == 0 || (i > 0 && name[i-1] == '.')) { if (cback) { - mutex_lock(&__nis_callback_lock); + (void) mutex_lock(&__nis_callback_lock); res = __nis_core_lookup(&req, flags, 1, cbdata, cback); - mutex_unlock(&__nis_callback_lock); + (void) mutex_unlock(&__nis_callback_lock); } else res = __nis_core_lookup(&req, flags, 1, cbdata, cback); free(req.ibr_name); @@ -663,10 +663,10 @@ nis_list( /* replace with the candidate name */ req.ibr_name = namelist[i]; if (cback) { - mutex_lock(&__nis_callback_lock); + (void) mutex_lock(&__nis_callback_lock); res = __nis_core_lookup(&req, flags, 1, cbdata, cback); - mutex_unlock(&__nis_callback_lock); + (void) mutex_unlock(&__nis_callback_lock); } else res = __nis_core_lookup(&req, flags, 1, cbdata, cback); @@ -946,7 +946,7 @@ nis_nameops(nis_name name, nis_object *obj, rpcproc_t func) state.flags = MASTER_ONLY; state.parent_first = 1; - res = (nis_result *)calloc(1, sizeof (nis_result)); + res = calloc(1, sizeof (nis_result)); if (res == NULL) return (nis_make_error(NIS_NOMEMORY, 0, 0, 0, 0)); @@ -983,7 +983,7 @@ nis_add(nis_name name, nis_object *obj) { nis_result *res; - __start_clock(CLOCK_CLIENT); /* start the client clock */ + (void) __start_clock(CLOCK_CLIENT); /* start the client clock */ __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, "nis_add(%s, 0x%p\n", @@ -1021,7 +1021,7 @@ nis_remove(nis_name name, nis_object *obj) { nis_result *res; - __start_clock(CLOCK_CLIENT); /* start the client clock */ + (void) __start_clock(CLOCK_CLIENT); /* start the client clock */ __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, "nis_remove(%s, 0x%p)\n", @@ -1047,7 +1047,7 @@ nis_modify(nis_name name, nis_object *obj) { nis_result *res; - __start_clock(CLOCK_CLIENT); /* start the client clock */ + (void) __start_clock(CLOCK_CLIENT); /* start the client clock */ __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, "nis_modify(%s, 0x%p)\n", @@ -1110,7 +1110,7 @@ name_to_cookie(char *name, nis_result *res) offset = strlen(name) + 1; len = offset + res->cookie.n_len; - p = (char *)malloc(len); + p = malloc(len); if (p == 0) { cookie->n_len = 0; /* indicates a bad cookie */ syslog(LOG_ERR, "name_to_cookie: malloc failed"); @@ -1190,7 +1190,7 @@ nis_ibops(ib_request *req, rpcproc_t func) obj->zo_owner = nis_local_group(); } - res = (nis_result *)calloc(1, sizeof (nis_result)); + res = calloc(1, sizeof (nis_result)); if (res == NULL) return (nis_make_error(NIS_NOMEMORY, 0, 0, 0, 0)); @@ -1276,7 +1276,7 @@ nis_add_entry( ib_request req; nis_error stat; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, @@ -1314,7 +1314,7 @@ nis_remove_entry( ib_request req; nis_error stat; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, @@ -1353,7 +1353,7 @@ nis_modify_entry( ib_request req; nis_error stat; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, @@ -1389,7 +1389,7 @@ nis_first_entry(nis_name table) /* Table to read */ ib_request req; nis_error stat; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, "nis_first_entry(%s)\n", @@ -1435,7 +1435,7 @@ nis_next_entry( ib_request req; nis_error stat; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); __nis_CacheStart(); if (__nis_debug_calls) { (void) fprintf(__nis_debug_file, "nis_next_entry(%s, 0x%p)\n", @@ -1467,11 +1467,11 @@ nis_checkpoint(nis_name name) nis_call_state state; int times = 0; - __start_clock(CLOCK_CLIENT); + (void) __start_clock(CLOCK_CLIENT); - res = (nis_result *)calloc(1, sizeof (nis_result)); + res = calloc(1, sizeof (nis_result)); if (res == NULL) { - __stop_clock(CLOCK_CLIENT); + (void) __stop_clock(CLOCK_CLIENT); return (NULL); } diff --git a/usr/src/lib/libnsl/nsl/_conn_util.c b/usr/src/lib/libnsl/nsl/_conn_util.c index 32cd54d079..42a811abec 100644 --- a/usr/src/lib/libnsl/nsl/_conn_util.c +++ b/usr/src/lib/libnsl/nsl/_conn_util.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -33,7 +33,6 @@ #include "mt.h" #include <sys/param.h> #include <sys/types.h> -#include <rpc/trace.h> #include <errno.h> #include <string.h> #include <stdlib.h> @@ -61,26 +60,21 @@ _t_snd_conn_req( struct strbuf *ctlbufp) { struct T_conn_req *creq; - int size, sv_errno; + int size; int fd; - trace2(TR__t_snd_conn_req, 0, fd); assert(MUTEX_HELD(&tiptr->ti_lock)); fd = tiptr->ti_fd; if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; - trace2(TR__t_snd_conn_req, 1, fd); return (-1); } - if (_t_is_event(fd, tiptr) < 0) { - sv_errno = errno; - trace2(TR__t_snd_conn_req, 1, fd); - errno = sv_errno; + if (_t_is_event(fd, tiptr) < 0) return (-1); - } + /* LINTED pointer cast */ creq = (struct T_conn_req *)ctlbufp->buf; creq->PRIM_type = T_CONN_REQ; creq->DEST_length = call->addr.len; @@ -98,7 +92,6 @@ _t_snd_conn_req( * return error. */ t_errno = TBADADDR; - trace2(TR__t_snd_conn_req, 1, fd); return (-1); } size = creq->DEST_offset + creq->DEST_length; @@ -112,7 +105,6 @@ _t_snd_conn_req( * return error. */ t_errno = TBADOPT; - trace2(TR__t_snd_conn_req, 1, fd); return (-1); } size = creq->OPT_offset + creq->OPT_length; @@ -127,7 +119,6 @@ _t_snd_conn_req( * provider. */ t_errno = TBADDATA; - trace2(TR__t_snd_conn_req, 1, fd); return (-1); } } @@ -140,20 +131,12 @@ _t_snd_conn_req( */ if (putmsg(fd, ctlbufp, (struct strbuf *)(call->udata.len? &call->udata: NULL), 0) < 0) { - sv_errno = errno; t_errno = TSYSERR; - trace2(TR__t_snd_conn_req, 1, fd); - errno = sv_errno; return (-1); } - if (_t_is_ok(fd, tiptr, T_CONN_REQ) < 0) { - sv_errno = errno; - trace2(TR__t_snd_conn_req, 1, fd); - errno = sv_errno; + if (_t_is_ok(fd, tiptr, T_CONN_REQ) < 0) return (-1); - } - trace2(TR__t_snd_conn_req, 1, fd); return (0); } @@ -179,13 +162,10 @@ _t_rcv_conn_con( int flg = 0; - trace2(TR__t_rcv_conn_con, 0, fd); - fd = tiptr->ti_fd; if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; - trace2(TR__t_rcv_conn_con, 1, fd); return (-1); } @@ -194,7 +174,6 @@ _t_rcv_conn_con( */ if (tiptr->ti_lookcnt > 0) { t_errno = TLOOK; - trace2(TR__t_rcv_conn_con, 1, fd); return (-1); } @@ -202,12 +181,8 @@ _t_rcv_conn_con( /* * Acquire databuf for use in sending/receiving data part */ - if (_t_acquire_databuf(tiptr, &databuf, &didralloc) < 0) { - sv_errno = errno; - trace2(TR__t_rcv_conn_con, 1, fd); - errno = sv_errno; + if (_t_acquire_databuf(tiptr, &databuf, &didralloc) < 0) return (-1); - } /* * This is a call that may block indefinitely so we drop the @@ -248,6 +223,7 @@ _t_rcv_conn_con( goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbufp->buf; switch (pptr->type) { @@ -310,7 +286,6 @@ _t_rcv_conn_con( free(databuf.buf); else tiptr->ti_rcvbuf = databuf.buf; - trace2(TR__t_rcv_conn_con, 1, fd); return (0); case T_DISCON_IND: @@ -337,15 +312,11 @@ _t_rcv_conn_con( } t_errno = TSYSERR; - trace2(TR__t_rcv_conn_con, 1, fd); errno = EPROTO; err_out: - sv_errno = errno; if (didralloc) free(databuf.buf); else tiptr->ti_rcvbuf = databuf.buf; - trace2(TR__t_rcv_conn_con, 1, fd); - errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/_errlst.c b/usr/src/lib/libnsl/nsl/_errlst.c index 32cd83a95b..6f7182c191 100644 --- a/usr/src/lib/libnsl/nsl/_errlst.c +++ b/usr/src/lib/libnsl/nsl/_errlst.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -55,7 +55,7 @@ int t_nerr = 19; * transport interface error list */ -const char *t_errlist[] = { +char *t_errlist[] = { "No Error", /* 0 */ "Incorrect address format", /* 1 */ "Incorrect options format", /* 2 */ @@ -127,7 +127,7 @@ const char *t_errlist[] = { int * -__t_errno() +__t_errno(void) { static pthread_key_t t_errno_key = 0; int *ret; diff --git a/usr/src/lib/libnsl/nsl/_utility.c b/usr/src/lib/libnsl/nsl/_utility.c index 9d5533eec8..5799e09f64 100644 --- a/usr/src/lib/libnsl/nsl/_utility.c +++ b/usr/src/lib/libnsl/nsl/_utility.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -35,7 +35,6 @@ #include <string.h> #include <strings.h> #include <unistd.h> -#include <rpc/trace.h> #include <errno.h> #include <stropts.h> #include <sys/stream.h> @@ -81,16 +80,14 @@ _t_checkfd(int fd, int force_sync, int api_semantics) struct _ti_user *tiptr; int retval, timodpushed; - trace2(TR__t_checkfd, 0, fd); if (fd < 0) { t_errno = TBADF; - trace2(TR__t_checkfd, 1, fd); return (NULL); } tiptr = NULL; sig_mutex_lock(&_ti_userlock); if ((tiptr = find_tilink(fd)) != NULL) { - if (! force_sync) { + if (!force_sync) { sig_mutex_unlock(&_ti_userlock); return (tiptr); } @@ -122,7 +119,6 @@ _t_checkfd(int fd, int force_sync, int api_semantics) * test if we ever fix this for TLI */ t_errno = TBADF; - trace2(TR__t_checkfd, 1, fd); return (NULL); } @@ -139,11 +135,7 @@ _t_checkfd(int fd, int force_sync, int api_semantics) } while (retval < 0 && errno == EINTR); if (retval < 0) { - int sv_errno = errno; - t_errno = TSYSERR; - trace2(TR_t_open, 1, flags); - errno = sv_errno; return (NULL); } timodpushed = 1; @@ -171,13 +163,11 @@ _t_checkfd(int fd, int force_sync, int api_semantics) */ if (timodpushed) (void) _ioctl(fd, I_POP, 0); - trace2(TR__t_checkfd, 1, fd); errno = sv_errno; return (NULL); } sig_mutex_unlock(&_ti_userlock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR__t_checkfd, 1, fd); return (tiptr); } @@ -193,8 +183,6 @@ _t_aligned_copy( char *datap, t_scalar_t *rtn_offset) { - trace1(TR__t_aligned_copy, 0); - *rtn_offset = ROUNDUP32(init_offset); if ((*rtn_offset + len) > strbufp->maxlen) { /* @@ -204,7 +192,6 @@ _t_aligned_copy( } (void) memcpy(strbufp->buf + *rtn_offset, datap, (size_t)len); - trace1(TR__t_aligned_copy, 1); return (0); } @@ -234,9 +221,6 @@ _t_register_lookevent( { struct _ti_lookbufs *tlbs; int cbuf_size, dbuf_size; - int sv_errno; - - trace3(TR__t_register_lookevent, 0, dsize, csize); assert(MUTEX_HELD(&tiptr->ti_lock)); @@ -245,7 +229,6 @@ _t_register_lookevent( if ((csize > cbuf_size) || dsize > dbuf_size) { /* can't fit - return error */ - trace3(TR__t_register_lookevent, 1, dsize, csize); return (-1); /* error */ } /* @@ -258,9 +241,11 @@ _t_register_lookevent( */ if (tiptr->ti_lookcnt > 0) { /* something already on looklist */ if (cptr && csize >= (int)sizeof (struct T_discon_ind) && + /* LINTED pointer cast */ *(t_scalar_t *)cptr == T_DISCON_IND) { /* appending discon ind */ assert(tiptr->ti_servtype != T_CLTS); + /* LINTED pointer cast */ if (*(t_scalar_t *)tiptr->ti_lookbufs.tl_lookcbuf == T_ORDREL_IND) { /* T_ORDREL_IND is on list */ /* @@ -286,13 +271,9 @@ _t_register_lookevent( /* * signals are deferred, calls to malloc() are safe. */ - if ((tlbs->tl_next = malloc(sizeof (struct _ti_lookbufs))) - == NULL) { - sv_errno = errno; - trace3(TR__t_register_lookevent, 1, dsize, csize); - errno = sv_errno; + if ((tlbs->tl_next = malloc(sizeof (struct _ti_lookbufs))) == + NULL) return (-1); /* error */ - } tlbs = tlbs->tl_next; /* * Allocate the buffers. The sizes derived from the @@ -301,20 +282,14 @@ _t_register_lookevent( */ if ((tlbs->tl_lookcbuf = malloc(cbuf_size)) == NULL) { /* giving up - free other memory chunks */ - sv_errno = errno; free(tlbs); - trace3(TR__t_register_lookevent, 1, dsize, csize); - errno = sv_errno; return (-1); /* error */ } if ((dsize > 0) && ((tlbs->tl_lookdbuf = malloc(dbuf_size)) == NULL)) { /* giving up - free other memory chunks */ - sv_errno = errno; free(tlbs->tl_lookcbuf); free(tlbs); - trace3(TR__t_register_lookevent, 1, dsize, csize); - errno = sv_errno; return (-1); /* error */ } } @@ -326,7 +301,6 @@ _t_register_lookevent( tlbs->tl_lookclen = csize; tlbs->tl_next = NULL; tiptr->ti_lookcnt++; - trace3(TR__t_register_lookevent, 1, dsize, csize); return (0); /* ok return */ } @@ -340,22 +314,16 @@ _t_is_event(int fd, struct _ti_user *tiptr) { int size, retval; - trace2(TR__t_is_event, 0, fd); assert(MUTEX_HELD(&tiptr->ti_lock)); if ((retval = _ioctl(fd, I_NREAD, &size)) < 0) { - int sv_errno = errno; t_errno = TSYSERR; - trace2(TR__t_is_event, 1, fd); - errno = sv_errno; return (-1); } if ((retval > 0) || (tiptr->ti_lookcnt > 0)) { t_errno = TLOOK; - trace2(TR__t_is_event, 1, fd); return (-1); } - trace2(TR__t_is_event, 1, fd); return (0); } @@ -371,34 +339,24 @@ _t_is_ok(int fd, struct _ti_user *tiptr, t_scalar_t type) union T_primitives *pptr; int retval, cntlflag; int size; - int sv_errno; int didalloc, didralloc; int flags = 0; - trace2(TR__t_is_ok, 0, fd); - assert(MUTEX_HELD(&tiptr->ti_lock)); /* * Acquire ctlbuf for use in sending/receiving control part * of the message. */ - if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { - sv_errno = errno; - trace2(TR__t_is_ok, 1, fd); - errno = sv_errno; + if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) return (-1); - } /* * Acquire databuf for use in sending/receiving data part */ if (_t_acquire_databuf(tiptr, &databuf, &didralloc) < 0) { - sv_errno = errno; if (didalloc) free(ctlbuf.buf); else tiptr->ti_ctlbuf = ctlbuf.buf; - trace2(TR__t_is_ok, 1, fd); - errno = sv_errno; return (-1); } @@ -444,6 +402,7 @@ _t_is_ok(int fd, struct _ti_user *tiptr, t_scalar_t type) if (cntlflag & (O_NDELAY | O_NONBLOCK)) (void) _fcntl(fd, F_SETFL, cntlflag); + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; switch (pptr->type) { @@ -462,7 +421,6 @@ _t_is_ok(int fd, struct _ti_user *tiptr, t_scalar_t type) free(databuf.buf); else tiptr->ti_rcvbuf = databuf.buf; - trace2(TR__t_is_ok, 1, fd); return (0); case T_ERROR_ACK: @@ -498,7 +456,6 @@ _t_is_ok(int fd, struct _ti_user *tiptr, t_scalar_t type) /* fallthru to err_out: */ } err_out: - sv_errno = errno; if (didalloc) free(ctlbuf.buf); else @@ -507,8 +464,6 @@ err_out: free(databuf.buf); else tiptr->ti_rcvbuf = databuf.buf; - trace2(TR__t_is_ok, 1, fd); - errno = sv_errno; return (-1); } @@ -518,33 +473,27 @@ err_out: int _t_do_ioctl(int fd, char *buf, int size, int cmd, int *retlenp) { - int retval, sv_errno; + int retval; struct strioctl strioc; - trace1(TR__t_do_ioctl, 0); strioc.ic_cmd = cmd; strioc.ic_timout = -1; strioc.ic_len = size; strioc.ic_dp = buf; if ((retval = _ioctl(fd, I_STR, &strioc)) < 0) { - sv_errno = errno; t_errno = TSYSERR; - trace1(TR__t_do_ioctl, 1); - errno = sv_errno; return (-1); } if (retval > 0) { t_errno = retval&0xff; - trace1(TR__t_do_ioctl, 1); if (t_errno == TSYSERR) errno = (retval >> 8)&0xff; return (-1); } if (retlenp) *retlenp = strioc.ic_len; - trace1(TR__t_do_ioctl, 1); return (0); } @@ -560,26 +509,17 @@ _t_alloc_bufs(int fd, struct _ti_user *tiptr, struct T_info_ack *tsap) unsigned int csize, dsize, asize, osize; char *ctlbuf, *rcvbuf; char *lookdbuf, *lookcbuf; - int sv_errno; - trace2(TR__t_alloc_bufs, 0, fd); csize = _t_setsize(tsap->CDATA_size); dsize = _t_setsize(tsap->DDATA_size); size1 = _T_MAX(csize, dsize); if (size1 != 0) { - if ((rcvbuf = malloc(size1)) == NULL) { - sv_errno = errno; - trace2(TR__t_alloc_bufs, 1, fd); - errno = sv_errno; + if ((rcvbuf = malloc(size1)) == NULL) return (-1); - } if ((lookdbuf = malloc(size1)) == NULL) { - sv_errno = errno; free(rcvbuf); - trace2(TR__t_alloc_bufs, 1, fd); - errno = sv_errno; return (-1); } } else { @@ -614,25 +554,19 @@ _t_alloc_bufs(int fd, struct _ti_user *tiptr, struct T_info_ack *tsap) /* option buffer plus alignment */ if ((ctlbuf = malloc(size2)) == NULL) { - sv_errno = errno; if (size1 != 0) { free(rcvbuf); free(lookdbuf); } - trace2(TR__t_alloc_bufs, 1, fd); - errno = sv_errno; return (-1); } if ((lookcbuf = malloc(size2)) == NULL) { - sv_errno = errno; if (size1 != 0) { free(rcvbuf); free(lookdbuf); } free(ctlbuf); - trace2(TR__t_alloc_bufs, 1, fd); - errno = sv_errno; return (-1); } @@ -651,7 +585,6 @@ _t_alloc_bufs(int fd, struct _ti_user *tiptr, struct T_info_ack *tsap) tiptr->ti_lookbufs.tl_lookdlen = 0; tiptr->ti_lookbufs.tl_lookdbuf = lookdbuf; - trace2(TR__t_alloc_bufs, 1, fd); return (0); } @@ -662,16 +595,12 @@ _t_alloc_bufs(int fd, struct _ti_user *tiptr, struct T_info_ack *tsap) static unsigned int _t_setsize(t_scalar_t infosize) { - trace2(TR__t_setsize, 0, infosize); switch (infosize) { case T_INFINITE /* -1 */: - trace2(TR__t_setsize, 1, infosize); return (DEFSIZE); case T_INVALID /* -2 */: - trace2(TR__t_setsize, 1, infosize); return (0); default: - trace2(TR__t_setsize, 1, infosize); return ((unsigned int) infosize); } } @@ -690,7 +619,6 @@ _t_reinit_tiptr(struct _ti_user *tiptr) * is used for a fresh initialization. */ - trace1(TR__t_reinit_tiptr, 0); tiptr->ti_flags = 0; tiptr->ti_rcvsize = 0; tiptr->ti_rcvbuf = NULL; @@ -712,8 +640,6 @@ _t_reinit_tiptr(struct _ti_user *tiptr) tiptr->ti_ocnt = 0; tiptr->ti_prov_flag = 0; tiptr->ti_qlen = 0; - - trace1(TR__t_reinit_tiptr, 1); } /* @@ -783,8 +709,7 @@ add_tilink(int s) /* * Allocate and link in a new one. */ - if ((tiptr = (struct _ti_user *)malloc(sizeof (*tiptr))) - == NULL) + if ((tiptr = malloc(sizeof (*tiptr))) == NULL) return (NULL); /* * First initialize fields common with reinitialization and @@ -797,8 +722,7 @@ add_tilink(int s) /* * First entry. */ - if ((tiptr = (struct _ti_user *)malloc(sizeof (*tiptr))) - == NULL) + if ((tiptr = malloc(sizeof (*tiptr))) == NULL) return (NULL); _t_reinit_tiptr(tiptr); hash_bucket[x] = tiptr; @@ -808,7 +732,7 @@ add_tilink(int s) tiptr->ti_fd = s; tiptr->ti_rdev = stbuf.st_rdev; tiptr->ti_ino = stbuf.st_ino; - mutex_init(&tiptr->ti_lock, USYNC_THREAD, NULL); + (void) mutex_init(&tiptr->ti_lock, USYNC_THREAD, NULL); return (tiptr); } @@ -885,7 +809,7 @@ _t_delete_tilink(int s) free(curptr->ti_rcvbuf); free(curptr->ti_ctlbuf); _t_free_lookbufs(curptr); - mutex_destroy(&curptr->ti_lock); + (void) mutex_destroy(&curptr->ti_lock); free(curptr); return (0); } @@ -902,7 +826,7 @@ _t_delete_tilink(int s) * doesn't support T_CAPABILITY_REQ TPI message. */ struct _ti_user * -_t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) +_t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) { /* * Aligned data buffer for ioctl. @@ -936,8 +860,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) int expected_acksize; int retlen, rstate, sv_errno, rval; - trace2(TR__t_create, 0, flags); - assert(MUTEX_HELD(&_ti_userlock)); /* @@ -961,9 +883,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) expected_acksize = (int)sizeof (struct T_capability_ack); if (rval < 0) { - sv_errno = errno; - trace2(TR__t_create, 1, flags); - errno = sv_errno; /* * TI_CAPABILITY may fail when transport provider doesn't * support T_CAPABILITY_REQ message type. In this case file @@ -980,21 +899,18 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) if (retlen != expected_acksize) { t_errno = TSYSERR; - trace2(TR__t_create, 1, flags); errno = EIO; return (NULL); } if ((tcap->CAP_bits1 & TC1_INFO) == 0) { t_errno = TSYSERR; - trace2(TR__t_create, 1, flags); errno = EPROTO; return (NULL); } if (info != NULL) { if (tiap->PRIM_type != T_INFO_ACK) { t_errno = TSYSERR; - trace2(TR__t_create, 1, flags); errno = EPROTO; return (NULL); } @@ -1035,7 +951,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) ntiptr = add_tilink(fd); if (ntiptr == NULL) { t_errno = TSYSERR; - trace2(TR__t_create, 1, flags); errno = ENOMEM; return (NULL); } @@ -1049,7 +964,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) (void) _t_delete_tilink(fd); t_errno = TSYSERR; sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, flags); errno = sv_errno; return (NULL); } @@ -1095,7 +1009,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) sv_errno = errno; (void) _t_delete_tilink(fd); sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, fd); errno = sv_errno; return (NULL); } @@ -1115,7 +1028,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) sv_errno = errno; (void) _t_delete_tilink(fd); sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, fd); errno = sv_errno; return (NULL); } @@ -1131,7 +1043,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) sv_errno = errno; (void) _t_delete_tilink(fd); sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, fd); errno = sv_errno; return (NULL); } @@ -1141,7 +1052,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) t_errno = TSTATECHNG; (void) _t_delete_tilink(fd); sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, fd); return (NULL); } @@ -1159,7 +1069,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) (void) _t_delete_tilink(fd); t_errno = TSYSERR; sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, flags); errno = sv_errno; return (NULL); } @@ -1174,7 +1083,6 @@ _t_create(int fd, struct t_info *info, int api_semantics, int *t_capreq_failed) (void) _t_delete_tilink(fd); t_errno = TSYSERR; sig_mutex_unlock(&ntiptr->ti_lock); - trace2(TR__t_create, 1, flags); errno = sv_errno; return (NULL); } @@ -1229,6 +1137,7 @@ _t_adjust_state(int fd, int instate) * read (T_DATA_IND or M_DATA) */ if (((arg.ctlbuf.len == 4) && + /* LINTED pointer cast */ ((*(int32_t *)arg.ctlbuf.buf) == T_DATA_IND)) || ((arg.ctlbuf.len == 0) && arg.databuf.len)) { outstate = T_DATAXFER; @@ -1243,6 +1152,7 @@ _t_adjust_state(int fd, int instate) * from the stream head. */ if ((arg.ctlbuf.len == 4) && + /* LINTED pointer cast */ ((*(int32_t *)arg.ctlbuf.buf) == T_CONN_CON)) outstate = T_OUTCON; break; @@ -1254,6 +1164,7 @@ _t_adjust_state(int fd, int instate) * read (T_DATA_IND or M_DATA) */ if (((arg.ctlbuf.len == 4) && + /* LINTED pointer cast */ ((*(int32_t *)arg.ctlbuf.buf) == T_DATA_IND)) || ((arg.ctlbuf.len == 0) && arg.databuf.len)) { outstate = T_DATAXFER; @@ -1346,7 +1257,7 @@ _t_free_lookbufs(struct _ti_user *tiptr) free(tlbs->tl_lookcbuf); prev_tlbs = tlbs; tlbs = tlbs->tl_next; - free((char *)prev_tlbs); + free(prev_tlbs); } } @@ -1423,7 +1334,7 @@ _t_flush_lookevents(struct _ti_user *tiptr) free(tlbs->tl_lookcbuf); prev_tlbs = tlbs; tlbs = tlbs->tl_next; - free((char *)prev_tlbs); + free(prev_tlbs); } } diff --git a/usr/src/lib/libnsl/nsl/t_accept.c b/usr/src/lib/libnsl/nsl/t_accept.c index 6832553cc0..0436d578d4 100644 --- a/usr/src/lib/libnsl/nsl/t_accept.c +++ b/usr/src/lib/libnsl/nsl/t_accept.c @@ -19,21 +19,19 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5.2.1 */ #include "mt.h" #include <stdlib.h> -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <stropts.h> @@ -65,19 +63,10 @@ _tx_accept( int didalloc; t_scalar_t conn_res_prim; - trace3(TR_t_accept, 0, fd, resfd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace3(TR_t_accept, 1, fd, resfd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } - if ((restiptr = _t_checkfd(resfd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace3(TR_t_accept, 1, fd, resfd); - errno = sv_errno; + if ((restiptr = _t_checkfd(resfd, 0, api_semantics)) == NULL) return (-1); - } /* * We need to block signals to perform the I_FDINSERT operation @@ -92,7 +81,6 @@ _tx_accept( t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); return (-1); } @@ -112,12 +100,11 @@ _tx_accept( if ((fd == resfd && tiptr->ti_state != T_INCON) || (fd != resfd && ((tiptr->ti_state != T_INCON) || - ! (restiptr->ti_state == T_IDLE || + !(restiptr->ti_state == T_IDLE || restiptr->ti_state == T_UNBND)))) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); return (-1); } @@ -133,7 +120,6 @@ _tx_accept( t_errno = TRESQLEN; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); return (-1); } @@ -141,7 +127,6 @@ _tx_accept( t_errno = TINDOUT; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); return (-1); } @@ -168,7 +153,6 @@ _tx_accept( t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); errno = sv_errno; return (-1); } @@ -176,7 +160,6 @@ _tx_accept( t_errno = TBADF; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); return (-1); } } @@ -189,7 +172,6 @@ _tx_accept( sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); errno = sv_errno; return (-1); } @@ -203,6 +185,7 @@ _tx_accept( goto err_out; } + /* LINTED pointer cast */ cres = (struct T_conn_res *)ctlbuf.buf; cres->OPT_length = call->opt.len; cres->OPT_offset = 0; @@ -359,7 +342,6 @@ _tx_accept( tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); return (0); /* NOTREACHED */ err_out: @@ -370,7 +352,6 @@ err_out: tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace3(TR_t_accept, 1, fd, resfd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_alloc.c b/usr/src/lib/libnsl/nsl/t_alloc.c index 5ee659b2ef..c30bafcad4 100644 --- a/usr/src/lib/libnsl/nsl/t_alloc.c +++ b/usr/src/lib/libnsl/nsl/t_alloc.c @@ -19,21 +19,19 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4.1.2 */ #include "mt.h" #include <stdlib.h> -#include <rpc/trace.h> #include <unistd.h> #include <stropts.h> #include <sys/stream.h> @@ -72,13 +70,8 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) int retval, sv_errno; t_scalar_t optsize; - trace4(TR_t_alloc, 0, fd, struct_type, fields); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace4(TR_t_alloc, 1, fd, struct_type, fields); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (NULL); - } sig_mutex_lock(&tiptr->ti_lock); /* @@ -97,7 +90,6 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); t_errno = TSYSERR; - trace4(TR_t_alloc, 1, fd, struct_type, fields); errno = sv_errno; return (NULL); } @@ -105,7 +97,6 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) if (strioc.ic_len != (int)sizeof (struct T_info_ack)) { t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); errno = EIO; return (NULL); } @@ -119,23 +110,20 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) switch (struct_type) { case T_BIND: - if ((p.bind = (struct t_bind *) - calloc(1, sizeof (struct t_bind))) == NULL) - goto errout; + if ((p.bind = calloc(1, sizeof (struct t_bind))) == NULL) + goto errout; if (fields & T_ADDR) { if (_alloc_buf(&p.bind->addr, info.ADDR_size, fields, api_semantics) < 0) goto errout; } - trace4(TR_t_alloc, 1, fd, struct_type, fields); sig_mutex_unlock(&tiptr->ti_lock); return ((char *)p.bind); case T_CALL: - if ((p.call = (struct t_call *) - calloc(1, sizeof (struct t_call))) == NULL) - goto errout; + if ((p.call = calloc(1, sizeof (struct t_call))) == NULL) + goto errout; if (fields & T_ADDR) { if (_alloc_buf(&p.call->addr, info.ADDR_size, @@ -161,13 +149,11 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) goto errout; } sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return ((char *)p.call); case T_OPTMGMT: - if ((p.opt = (struct t_optmgmt *) - calloc(1, sizeof (struct t_optmgmt))) == NULL) - goto errout; + if ((p.opt = calloc(1, sizeof (struct t_optmgmt))) == NULL) + goto errout; if (fields & T_OPT) { if (info.OPT_size >= 0 && _T_IS_XTI(api_semantics)) /* compensate for XTI level options */ @@ -180,12 +166,10 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) goto errout; } sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return ((char *)p.opt); case T_DIS: - if ((p.dis = (struct t_discon *) - calloc(1, sizeof (struct t_discon))) == NULL) + if ((p.dis = calloc(1, sizeof (struct t_discon))) == NULL) goto errout; if (fields & T_UDATA) { if (_alloc_buf(&p.dis->udata, info.DDATA_size, @@ -193,13 +177,11 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) goto errout; } sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return ((char *)p.dis); case T_UNITDATA: - if ((p.udata = (struct t_unitdata *) - calloc(1, sizeof (struct t_unitdata))) == NULL) - goto errout; + if ((p.udata = calloc(1, sizeof (struct t_unitdata))) == NULL) + goto errout; if (fields & T_ADDR) { if (_alloc_buf(&p.udata->addr, info.ADDR_size, fields, api_semantics) < 0) @@ -222,13 +204,11 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) goto errout; } sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return ((char *)p.udata); case T_UDERROR: - if ((p.uderr = (struct t_uderr *) - calloc(1, sizeof (struct t_uderr))) == NULL) - goto errout; + if ((p.uderr = calloc(1, sizeof (struct t_uderr))) == NULL) + goto errout; if (fields & T_ADDR) { if (_alloc_buf(&p.uderr->addr, info.ADDR_size, fields, api_semantics) < 0) @@ -246,26 +226,21 @@ _tx_alloc(int fd, int struct_type, int fields, int api_semantics) goto errout; } sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return ((char *)p.uderr); case T_INFO: - if ((p.info = (struct t_info *) - calloc(1, sizeof (struct t_info))) == NULL) - goto errout; + if ((p.info = calloc(1, sizeof (struct t_info))) == NULL) + goto errout; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return ((char *)p.info); default: if (_T_IS_XTI(api_semantics)) { t_errno = TNOSTRUCTYPE; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); } else { /* TX_TLI_API */ t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); errno = EINVAL; } return (NULL); @@ -283,14 +258,12 @@ errout: t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_alloc, 1, fd, struct_type, fields); return (NULL); } static int _alloc_buf(struct netbuf *buf, t_scalar_t n, int fields, int api_semantics) { - trace2(TR__alloc_buf, 0, n); switch (n) { case T_INFINITE /* -1 */: if (_T_IS_XTI(api_semantics)) { @@ -301,7 +274,6 @@ _alloc_buf(struct netbuf *buf, t_scalar_t n, int fields, int api_semantics) * Do not return error * if T_ALL is used. */ - trace2(TR__alloc_buf, 1, n); errno = EINVAL; return (-1); } @@ -310,7 +282,6 @@ _alloc_buf(struct netbuf *buf, t_scalar_t n, int fields, int api_semantics) * retain TLI behavior */ if ((buf->buf = calloc(1, 1024)) == NULL) { - trace2(TR__alloc_buf, 1, n); errno = ENOMEM; return (-1); } else @@ -332,7 +303,6 @@ _alloc_buf(struct netbuf *buf, t_scalar_t n, int fields, int api_semantics) * Do not return error * if T_ALL is used. */ - trace2(TR__alloc_buf, 1, n); errno = EINVAL; return (-1); } @@ -347,13 +317,11 @@ _alloc_buf(struct netbuf *buf, t_scalar_t n, int fields, int api_semantics) default: if ((buf->buf = calloc(1, (size_t)n)) == NULL) { - trace2(TR__alloc_buf, 1, n); errno = ENOMEM; return (-1); } else buf->maxlen = n; break; } - trace2(TR__alloc_buf, 1, n); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_bind.c b/usr/src/lib/libnsl/nsl/t_bind.c index d676be166e..2409f87b0b 100644 --- a/usr/src/lib/libnsl/nsl/t_bind.c +++ b/usr/src/lib/libnsl/nsl/t_bind.c @@ -19,21 +19,19 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3.4.1 */ #include "mt.h" #include <stdlib.h> -#include <rpc/trace.h> #include <errno.h> #include <string.h> #include <stropts.h> @@ -64,13 +62,8 @@ _tx_bind( int use_xpg41tpi; struct strbuf ctlbuf; - trace2(TR_t_bind, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_bind, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } /* * We block all signals since TI_BIND, which sends a TPI message @@ -89,7 +82,6 @@ _tx_bind( t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_bind, 1, fd); return (-1); } } @@ -102,11 +94,11 @@ _tx_bind( sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_bind, 1, fd); errno = sv_errno; return (-1); } + /* LINTED pointer cast */ bind_reqp = (struct T_bind_req *)ctlbuf.buf; size = (int)sizeof (struct T_bind_req); @@ -148,6 +140,7 @@ _tx_bind( goto err_out; } + /* LINTED pointer cast */ bind_ackp = (struct T_bind_ack *)ctlbuf.buf; if ((req != NULL) && req->addr.len != 0 && @@ -201,7 +194,6 @@ _tx_bind( tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_bind, 1, fd); return (0); /* NOTREACHED */ err_out: @@ -212,7 +204,6 @@ err_out: tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_bind, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_close.c b/usr/src/lib/libnsl/nsl/t_close.c index 214db48736..7071f5e326 100644 --- a/usr/src/lib/libnsl/nsl/t_close.c +++ b/usr/src/lib/libnsl/nsl/t_close.c @@ -19,20 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ #include "mt.h" -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <xti.h> @@ -46,14 +44,8 @@ _tx_close(int fd, int api_semantics) sigset_t mask; int sv_errno; - trace2(TR_t_close, 0, fd); - - if (_t_checkfd(fd, 0, api_semantics) == NULL) { - sv_errno = errno; - trace2(TR_t_close, 1, fd); - errno = sv_errno; + if (_t_checkfd(fd, 0, api_semantics) == NULL) return (-1); - } (void) thr_sigsetmask(SIG_SETMASK, &fillset, &mask); sig_mutex_lock(&_ti_userlock); @@ -61,7 +53,6 @@ _tx_close(int fd, int api_semantics) sv_errno = errno; sig_mutex_unlock(&_ti_userlock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_close, 1, fd); errno = sv_errno; return (-1); } @@ -74,6 +65,5 @@ _tx_close(int fd, int api_semantics) sig_mutex_unlock(&_ti_userlock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_close, 1, fd); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_connect.c b/usr/src/lib/libnsl/nsl/t_connect.c index ff6f5a63b0..b806b8f9e4 100644 --- a/usr/src/lib/libnsl/nsl/t_connect.c +++ b/usr/src/lib/libnsl/nsl/t_connect.c @@ -19,19 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.7 */ #include "mt.h" -#include <rpc/trace.h> #include <stropts.h> #include <stdlib.h> #include <sys/timod.h> @@ -66,13 +65,8 @@ _tx_connect( int sv_errno; int didalloc; - trace2(TR_t_connect, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_connect, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (_T_IS_XTI(api_semantics)) { @@ -83,7 +77,6 @@ _tx_connect( if (tiptr->ti_state != T_IDLE) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); return (-1); } } @@ -95,7 +88,6 @@ _tx_connect( if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); errno = sv_errno; return (-1); } @@ -172,7 +164,6 @@ _tx_connect( else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); return (0); err_out: @@ -183,7 +174,6 @@ err_out: tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_error.c b/usr/src/lib/libnsl/nsl/t_error.c index 7d89822628..cc316dea2a 100644 --- a/usr/src/lib/libnsl/nsl/t_error.c +++ b/usr/src/lib/libnsl/nsl/t_error.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ #include "mt.h" @@ -37,7 +36,6 @@ #include <unistd.h> #include <stdio.h> #include <string.h> -#include <rpc/trace.h> /* ARGSUSED1 */ int @@ -46,10 +44,8 @@ _tx_error(const char *s, int api_semantics) const char *c; int n; - trace1(TR_t_error, 0); c = t_strerror(t_errno); - if (s != (char *)NULL && - *s != '\0') { + if (s != NULL && *s != '\0') { n = strlen(s); if (n) { (void) write(2, s, (unsigned)n); @@ -62,6 +58,5 @@ _tx_error(const char *s, int api_semantics) perror(""); } else (void) write(2, "\n", 1); - trace1(TR_t_error, 1); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_free.c b/usr/src/lib/libnsl/nsl/t_free.c index d9c78195a6..7e78737e9b 100644 --- a/usr/src/lib/libnsl/nsl/t_free.c +++ b/usr/src/lib/libnsl/nsl/t_free.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ #include "mt.h" @@ -37,7 +36,6 @@ #include <stropts.h> #include <stdlib.h> #include <sys/types.h> -#include <rpc/trace.h> #include "tx.h" int @@ -57,16 +55,17 @@ _tx_free(char *ptr, int struct_type, int api_semantics) * fields of each structure. */ - trace2(TR_t_free, 0, struct_type); switch (struct_type) { case T_BIND: + /* LINTED pointer cast */ p.bind = (struct t_bind *)ptr; if (p.bind->addr.buf != NULL) free(p.bind->addr.buf); break; case T_CALL: + /* LINTED pointer cast */ p.call = (struct t_call *)ptr; if (p.call->addr.buf != NULL) free(p.call->addr.buf); @@ -77,18 +76,21 @@ _tx_free(char *ptr, int struct_type, int api_semantics) break; case T_OPTMGMT: + /* LINTED pointer cast */ p.opt = (struct t_optmgmt *)ptr; if (p.opt->opt.buf != NULL) free(p.opt->opt.buf); break; case T_DIS: + /* LINTED pointer cast */ p.dis = (struct t_discon *)ptr; if (p.dis->udata.buf != NULL) free(p.dis->udata.buf); break; case T_UNITDATA: + /* LINTED pointer cast */ p.udata = (struct t_unitdata *)ptr; if (p.udata->addr.buf != NULL) free(p.udata->addr.buf); @@ -99,6 +101,7 @@ _tx_free(char *ptr, int struct_type, int api_semantics) break; case T_UDERROR: + /* LINTED pointer cast */ p.uderr = (struct t_uderr *)ptr; if (p.uderr->addr.buf != NULL) free(p.uderr->addr.buf); @@ -112,16 +115,13 @@ _tx_free(char *ptr, int struct_type, int api_semantics) default: if (_T_IS_XTI(api_semantics)) { t_errno = TNOSTRUCTYPE; - trace2(TR_t_free, 1, struct_type); } else { /* TX_TLI_API */ t_errno = TSYSERR; - trace2(TR_t_free, 1, struct_type); errno = EINVAL; } return (-1); } free(ptr); - trace2(TR_t_free, 1, struct_type); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_getinfo.c b/usr/src/lib/libnsl/nsl/t_getinfo.c index 5c71a7c63d..b3cae25d5b 100644 --- a/usr/src/lib/libnsl/nsl/t_getinfo.c +++ b/usr/src/lib/libnsl/nsl/t_getinfo.c @@ -19,31 +19,35 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ #include "mt.h" -#include <errno.h> -#include <sys/types.h> -#include <unistd.h> #include <stdlib.h> -#include <rpc/trace.h> +#include <string.h> +#include <strings.h> +#include <unistd.h> +#include <errno.h> +#include <stropts.h> #include <sys/stream.h> #define _SUN_TPI_VERSION 2 #include <sys/tihdr.h> #include <sys/timod.h> +#include <sys/stat.h> #include <xti.h> +#include <fcntl.h> #include <signal.h> -#include <stropts.h> +#include <assert.h> +#include <syslog.h> +#include <limits.h> #include "tx.h" int @@ -56,13 +60,8 @@ _tx_getinfo(int fd, struct t_info *info, int api_semantics) int retval, sv_errno, didalloc; struct strbuf ctlbuf; - trace2(TR_t_getinfo, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) { - sv_errno = errno; - trace2(TR_t_getinfo, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); /* @@ -73,11 +72,11 @@ _tx_getinfo(int fd, struct t_info *info, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_getinfo, 1, fd); errno = sv_errno; return (-1); } + /* LINTED pointer cast */ inforeqp = (struct T_info_req *)ctlbuf.buf; inforeqp->PRIM_type = T_INFO_REQ; @@ -95,6 +94,7 @@ _tx_getinfo(int fd, struct t_info *info, int api_semantics) goto err_out; } + /* LINTED pointer cast */ infoackp = (struct T_info_ack *)ctlbuf.buf; info->addr = infoackp->ADDR_size; @@ -116,7 +116,6 @@ _tx_getinfo(int fd, struct t_info *info, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_getinfo, 1, fd); return (0); err_out: @@ -126,7 +125,6 @@ err_out: else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_getinfo, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_getname.c b/usr/src/lib/libnsl/nsl/t_getname.c index 5b8d6b4cca..57b2f82af2 100644 --- a/usr/src/lib/libnsl/nsl/t_getname.c +++ b/usr/src/lib/libnsl/nsl/t_getname.c @@ -19,23 +19,20 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" - /* SVr4.0 1.1.1.1 */ #include <stdlib.h> #include "mt.h" #include <errno.h> -#include <rpc/trace.h> #include <unistd.h> #include <string.h> #include <stropts.h> @@ -60,20 +57,14 @@ _tx_getname(int fd, struct netbuf *name, int type, int api_semantics) struct _ti_user *tiptr; int retval, sv_errno; - trace3(TR_t_getname, 0, fd, type); assert(_T_IS_TLI(api_semantics)); /* TLI only interface */ if (!name || ((type != LOCALNAME) && (type != REMOTENAME))) { - trace3(TR_t_getname, 1, fd, type); errno = EINVAL; return (-1); } - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) { - sv_errno = errno; - trace3(TR_t_getname, 1, fd, type); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); retval = __tx_getname_locked(fd, name, type); @@ -81,14 +72,12 @@ _tx_getname(int fd, struct netbuf *name, int type, int api_semantics) if (retval < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_getname, 1, fd, type); errno = sv_errno; return (-1); } sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_getname, 1, fd, type); return (0); } @@ -127,14 +116,8 @@ _tx_getprotaddr( struct strbuf ctlbuf; int retlen; - trace2(TR_t_getprotaddr, 0, fd); - - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) { - sv_errno = errno; - trace2(TR_t_getprotaddr, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); @@ -159,11 +142,11 @@ _tx_getprotaddr( if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_bind, 1, fd); errno = sv_errno; return (-1); } + /* LINTED pointer cast */ addreqp = (struct T_addr_req *)ctlbuf.buf; addreqp->PRIM_type = T_ADDR_REQ; @@ -176,7 +159,6 @@ _tx_getprotaddr( if (retval < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_getprotaddr, 1, fd); errno = sv_errno; goto err_out; } @@ -184,12 +166,12 @@ _tx_getprotaddr( if (retlen < (int)sizeof (struct T_addr_ack)) { t_errno = TSYSERR; - trace2(TR_t_getprotaddr, 1, fd); errno = EIO; retval = -1; goto err_out; } + /* LINTED pointer cast */ addrackp = (struct T_addr_ack *)ctlbuf.buf; /* @@ -199,12 +181,11 @@ _tx_getprotaddr( if (TLEN_GT_NLEN(addrackp->LOCADDR_length, boundaddr->addr.maxlen)) { t_errno = TBUFOVFLW; - trace2(TR_t_getprotaddr, 1, fd); retval = -1; goto err_out; } boundaddr->addr.len = addrackp->LOCADDR_length; - memcpy(boundaddr->addr.buf, + (void) memcpy(boundaddr->addr.buf, ctlbuf.buf + addrackp->LOCADDR_offset, (size_t)addrackp->LOCADDR_length); } @@ -225,18 +206,15 @@ _tx_getprotaddr( if (TLEN_GT_NLEN(addrackp->REMADDR_length, peeraddr->addr.maxlen)) { t_errno = TBUFOVFLW; - trace2(TR_t_getprotaddr, 1, fd); retval = -1; goto err_out; } peeraddr->addr.len = addrackp->REMADDR_length; - memcpy(peeraddr->addr.buf, + (void) memcpy(peeraddr->addr.buf, ctlbuf.buf + addrackp->REMADDR_offset, (size_t)addrackp->REMADDR_length); } - trace2(TR_t_getprotaddr, 1, fd); - err_out: if (didalloc) free(ctlbuf.buf); diff --git a/usr/src/lib/libnsl/nsl/t_getstate.c b/usr/src/lib/libnsl/nsl/t_getstate.c index 36d40310f6..3b68c4c25c 100644 --- a/usr/src/lib/libnsl/nsl/t_getstate.c +++ b/usr/src/lib/libnsl/nsl/t_getstate.c @@ -19,22 +19,19 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" - /* SVr4.0 1.4.2.1 */ #include "mt.h" #include <errno.h> -#include <rpc/trace.h> #include <xti.h> #include <stropts.h> #include <sys/timod.h> @@ -45,15 +42,9 @@ int _tx_getstate(int fd, int api_semantics) { struct _ti_user *tiptr; - int sv_errno; - trace2(TR_t_getstate, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_getstate, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } switch (tiptr->ti_state) { @@ -64,11 +55,9 @@ _tx_getstate(int fd, int api_semantics) case T_DATAXFER: case T_INREL: case T_OUTREL: - trace2(TR_t_getstate, 1, fd); return (tiptr->ti_state); default: t_errno = TSTATECHNG; - trace2(TR_t_getstate, 1, fd); return (-1); } } diff --git a/usr/src/lib/libnsl/nsl/t_listen.c b/usr/src/lib/libnsl/nsl/t_listen.c index 59692b2a3f..f6d8a8551c 100644 --- a/usr/src/lib/libnsl/nsl/t_listen.c +++ b/usr/src/lib/libnsl/nsl/t_listen.c @@ -19,20 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ #include "mt.h" -#include <rpc/trace.h> #include <errno.h> #include <stdlib.h> #include <string.h> @@ -57,14 +55,8 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) int didalloc, didralloc; int flg = 0; - trace2(TR_t_listen, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_listen, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } - sig_mutex_lock(&tiptr->ti_lock); @@ -72,7 +64,6 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) sv_errno = errno; t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_listen, 1, fd); errno = sv_errno; return (-1); } @@ -81,18 +72,16 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) * User level state verification only done for XTI * because doing for TLI may break existing applications */ - if (! (tiptr->ti_state == T_IDLE || + if (!(tiptr->ti_state == T_IDLE || tiptr->ti_state == T_INCON)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); return (-1); } if (tiptr->ti_qlen == 0) { t_errno = TBADQLEN; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); return (-1); } @@ -101,7 +90,6 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) tiptr->ti_flags |= TX_TQFULL_NOTIFIED; t_errno = TQFULL; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_connect, 1, fd); return (-1); } } @@ -114,7 +102,6 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) if (tiptr->ti_lookcnt > 0) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_listen, 1, fd); return (-1); } @@ -125,7 +112,6 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_listen, 1, fd); errno = sv_errno; return (-1); } @@ -140,7 +126,6 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_listen, 1, fd); errno = sv_errno; return (-1); } @@ -184,6 +169,7 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; switch (pptr->type) { @@ -252,7 +238,6 @@ _tx_listen(int fd, struct t_call *call, int api_semantics) else tiptr->ti_rcvbuf = databuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_listen, 1, fd); return (0); case T_DISCON_IND: @@ -288,7 +273,6 @@ err_out: else tiptr->ti_rcvbuf = databuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_listen, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_look.c b/usr/src/lib/libnsl/nsl/t_look.c index 697c4c430e..527db7ee47 100644 --- a/usr/src/lib/libnsl/nsl/t_look.c +++ b/usr/src/lib/libnsl/nsl/t_look.c @@ -19,19 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include "mt.h" -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <sys/stream.h> @@ -51,13 +50,8 @@ _tx_look(int fd, int api_semantics) int do_expinline_peek; /* unusual XTI specific processing */ struct _ti_user *tiptr; - trace2(TR_t_look, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR__t_look, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (_T_IS_XTI(api_semantics)) @@ -69,7 +63,6 @@ _tx_look(int fd, int api_semantics) sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_look, 1, fd); errno = sv_errno; return (state); } @@ -88,13 +81,11 @@ _t_look_locked( ) { struct strpeek strpeek; - int retval, sv_errno; + int retval; union T_primitives *pptr; t_scalar_t type; t_scalar_t ctltype; - trace2(TR__t_look_locked, 0, fd); - assert(MUTEX_HELD(&tiptr->ti_lock)); #ifdef notyet @@ -142,9 +133,6 @@ _t_look_locked( } while (retval < 0 && errno == EINTR); if (retval < 0) { - sv_errno = errno; - trace2(TR__t_look_locked, 1, fd); - errno = sv_errno; if (_T_IS_TLI(api_semantics)) { /* * This return of T_ERROR event is ancient @@ -158,14 +146,13 @@ _t_look_locked( * break apps in field ? */ return (T_ERROR); - } else { - /* - * XTI semantics (also identical to documented, - * but not implemented TLI semantics). - */ - t_errno = TSYSERR; - return (-1); } + /* + * XTI semantics (also identical to documented, + * but not implemented TLI semantics). + */ + t_errno = TSYSERR; + return (-1); } /* @@ -173,8 +160,10 @@ _t_look_locked( */ if ((tiptr->ti_lookcnt > 0) || ((retval > 0) && (strpeek.ctlbuf.len >= (int)sizeof (t_scalar_t)))) { + /* LINTED pointer cast */ pptr = (union T_primitives *)strpeek.ctlbuf.buf; if (tiptr->ti_lookcnt > 0) { + /* LINTED pointer cast */ type = *((t_scalar_t *)tiptr->ti_lookbufs.tl_lookcbuf); /* * If message on stream head is a T_DISCON_IND, that @@ -197,15 +186,12 @@ _t_look_locked( switch (type) { case T_CONN_IND: - trace2(TR__t_look_locked, 1, fd); return (T_LISTEN); case T_CONN_CON: - trace2(TR__t_look_locked, 1, fd); return (T_CONNECT); case T_DISCON_IND: - trace2(TR__t_look_locked, 1, fd); return (T_DISCONNECT); case T_DATA_IND: { @@ -218,37 +204,28 @@ _t_look_locked( retval = _t_expinline_queued(fd, &exp_on_q); if (retval < 0) { t_errno = TSYSERR; - sv_errno = errno; - trace2(TR__t_look_locked, 1, fd); - errno = sv_errno; return (-1); } if (exp_on_q) event = T_EXDATA; } - trace2(TR__t_look_locked, 1, fd); return (event); } case T_UNITDATA_IND: - trace2(TR__t_look_locked, 1, fd); return (T_DATA); case T_EXDATA_IND: - trace2(TR__t_look_locked, 1, fd); return (T_EXDATA); case T_UDERROR_IND: - trace2(TR__t_look_locked, 1, fd); return (T_UDERR); case T_ORDREL_IND: - trace2(TR__t_look_locked, 1, fd); return (T_ORDREL); default: t_errno = TSYSERR; - trace2(TR__t_look_locked, 1, fd); errno = EPROTO; return (-1); } @@ -266,16 +243,11 @@ _t_look_locked( (tiptr->ti_prov_flag & EXPINLINE)) { assert(_T_IS_XTI(api_semantics)); retval = _t_expinline_queued(fd, &exp_on_q); - if (retval < 0) { - sv_errno = errno; - trace2(TR__t_look_locked, 1, fd); - errno = sv_errno; + if (retval < 0) return (-1); - } if (exp_on_q) event = T_EXDATA; } - trace2(TR__t_look_locked, 1, fd); return (event); } @@ -286,10 +258,8 @@ _t_look_locked( */ if ((retval > 0) && (strpeek.ctlbuf.len > 0)) { t_errno = TSYSERR; - trace2(TR__t_look_locked, 1, fd); errno = EPROTO; return (-1); } - trace2(TR__t_look_locked, 1, fd); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_open.c b/usr/src/lib/libnsl/nsl/t_open.c index bc87c362c0..1b5d47df55 100644 --- a/usr/src/lib/libnsl/nsl/t_open.c +++ b/usr/src/lib/libnsl/nsl/t_open.c @@ -19,29 +19,35 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5.3.3 */ #include "mt.h" -#include <fcntl.h> -#include <rpc/trace.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> #include <unistd.h> #include <errno.h> #include <stropts.h> +#include <sys/stream.h> #define _SUN_TPI_VERSION 2 +#include <sys/tihdr.h> #include <sys/timod.h> +#include <sys/stat.h> #include <xti.h> +#include <fcntl.h> #include <signal.h> +#include <assert.h> #include <syslog.h> +#include <limits.h> #include "tx.h" /* @@ -65,10 +71,8 @@ _tx_open(const char *path, int flags, struct t_info *info, int api_semantics) int t_create_first_attempt = 1; int ticap_ioctl_failed = 0; - trace2(TR_t_open, 0, flags); if (!(flags & O_RDWR)) { t_errno = TBADFLAG; - trace2(TR_t_open, 1, flags); return (-1); } @@ -77,10 +81,6 @@ _tx_open(const char *path, int flags, struct t_info *info, int api_semantics) retry: if ((fd = open(path, flags)) < 0) { - sv_errno = errno; - - trace2(TR_t_open, 1, flags); - errno = sv_errno; t_errno = TSYSERR; if (_T_IS_XTI(api_semantics) && errno == ENOENT) /* XTI only */ @@ -99,7 +99,6 @@ retry: t_errno = TSYSERR; (void) close(fd); - trace2(TR_t_open, 1, flags); errno = sv_errno; return (-1); } @@ -121,7 +120,6 @@ retry: t_errno = TSYSERR; (void) close(fd); - trace2(TR_t_open, 1, flags); errno = sv_errno; return (-1); } @@ -187,6 +185,5 @@ retry: * descriptor and not a critical failure. */ - trace2(TR_t_open, 1, flags); return (fd); } diff --git a/usr/src/lib/libnsl/nsl/t_optmgmt.c b/usr/src/lib/libnsl/nsl/t_optmgmt.c index 592a6b4a6e..27d68d3ce2 100644 --- a/usr/src/lib/libnsl/nsl/t_optmgmt.c +++ b/usr/src/lib/libnsl/nsl/t_optmgmt.c @@ -19,24 +19,21 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" - /* SVr4.0 1.3.4.1 */ #include "mt.h" #include <stdlib.h> #include <stdio.h> #include <string.h> -#include <rpc/trace.h> #include <errno.h> #include <sys/stream.h> #define _SUN_TPI_VERSION 2 @@ -78,13 +75,8 @@ _tx_optmgmt( t_uscalar_t first_opt_level; t_scalar_t optlen; - trace2(TR_t_optmgmt, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_optmgmt, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } /* * We block all signals during the TI_OPTMGMT operation @@ -105,7 +97,6 @@ _tx_optmgmt( sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_optmgmt, 1, fd); errno = sv_errno; return (-1); } @@ -132,6 +123,7 @@ _tx_optmgmt( goto err_out; } + /* LINTED pointer cast */ opt_start = (struct t_opthdr *)req->opt.buf; /* @@ -148,11 +140,12 @@ _tx_optmgmt( * * If start of buffer is not aligned, we signal an error. */ - if (! (ISALIGNED_XTI_opthdr(opt_start))) { + if (!(ISALIGNED_XTI_opthdr(opt_start))) { t_errno = TBADOPT; goto err_out; } + /* LINTED pointer cast */ opt_end = (struct t_opthdr *)((char *)opt_start + optlen); @@ -198,6 +191,7 @@ _tx_optmgmt( * all options in the buffer have to be the * same level. */ + /* LINTED pointer cast */ next_opt = (struct t_opthdr *)((uchar_t *)opt + ROUNDUP_XTI_opthdr(opt->len)); @@ -228,6 +222,7 @@ _tx_optmgmt( } } + /* LINTED pointer cast */ optreq = (struct T_optmgmt_req *)ctlbuf.buf; if (_T_IS_XTI(api_semantics)) optreq->PRIM_type = T_OPTMGMT_REQ; @@ -261,6 +256,7 @@ _tx_optmgmt( goto err_out; } + /* LINTED pointer cast */ optack = (struct T_optmgmt_ack *)ctlbuf.buf; if (_T_IS_TLI(api_semantics) || ret->opt.maxlen > 0) { @@ -318,7 +314,6 @@ _tx_optmgmt( tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_optmgmt, 1, fd); return (0); /* NOTREACHED */ @@ -330,7 +325,6 @@ err_out: tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_optmgmt, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcv.c b/usr/src/lib/libnsl/nsl/t_rcv.c index 1821bdcd5a..d1bd56a00f 100644 --- a/usr/src/lib/libnsl/nsl/t_rcv.c +++ b/usr/src/lib/libnsl/nsl/t_rcv.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.7 */ /* @@ -38,7 +37,6 @@ */ #include "mt.h" #include <stdlib.h> -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <stropts.h> @@ -62,19 +60,13 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) int sv_errno; int didalloc; - trace3(TR_t_rcv, 0, fd, nbytes); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace3(TR_t_rcv, 1, fd, nbytes); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); return (-1); } @@ -83,11 +75,10 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) * User level state verification only done for XTI * because doing for TLI may break existing applications */ - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_OUTREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); return (-1); } } @@ -127,7 +118,6 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); errno = sv_errno; return (-1); } @@ -145,11 +135,11 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) tlbs = &tiptr->ti_lookbufs; do { + /* LINTED pointer cast */ if (*((t_scalar_t *)tlbs->tl_lookcbuf) == T_DISCON_IND) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); return (-1); } } while ((tlbs = tlbs->tl_next) != NULL); @@ -162,7 +152,6 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) */ t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); return (-1); } } @@ -174,7 +163,6 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); errno = sv_errno; return (-1); } @@ -215,6 +203,7 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; switch (pptr->type) { @@ -258,7 +247,6 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); return (databuf.len); case T_ORDREL_IND: @@ -383,7 +371,6 @@ _tx_rcv(int fd, char *buf, unsigned nbytes, int *flags, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); return (databuf.len); } /* NOTREACHED */ @@ -396,7 +383,6 @@ err_out: tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace3(TR_t_rcv, 1, fd, nbytes); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvconnect.c b/usr/src/lib/libnsl/nsl/t_rcvconnect.c index c324c22e3a..6fb781bcac 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvconnect.c +++ b/usr/src/lib/libnsl/nsl/t_rcvconnect.c @@ -19,23 +19,21 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3 */ #include "mt.h" #include <stdlib.h> #include <errno.h> #include <stropts.h> -#include <rpc/trace.h> #include <xti.h> #include <sys/timod.h> #include "tx.h" @@ -58,13 +56,8 @@ _tx_rcvconnect(int fd, struct t_call *call, int api_semantics) struct strbuf ctlbuf; int didalloc; - trace2(TR_t_rcvconnect, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_rcvconnect, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); @@ -76,7 +69,6 @@ _tx_rcvconnect(int fd, struct t_call *call, int api_semantics) if (tiptr->ti_state != T_OUTCON) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvconnect, 1, fd); return (-1); } } @@ -88,7 +80,6 @@ _tx_rcvconnect(int fd, struct t_call *call, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvconnect, 1, fd); errno = sv_errno; return (-1); } @@ -115,7 +106,6 @@ _tx_rcvconnect(int fd, struct t_call *call, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvconnect, 1, fd); errno = sv_errno; return (retval); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvdis.c b/usr/src/lib/libnsl/nsl/t_rcvdis.c index b11afd5c8e..aa4eb7d21b 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvdis.c +++ b/usr/src/lib/libnsl/nsl/t_rcvdis.c @@ -19,20 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.10 */ #include "mt.h" -#include <rpc/trace.h> #include <stdlib.h> #include <string.h> #include <errno.h> @@ -59,13 +57,8 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) int didalloc, didralloc; int use_lookbufs = 0; - trace2(TR_t_rcvdis, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_rcvdis, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } /* * Acquire per thread lock. @@ -78,7 +71,6 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); return (-1); } @@ -87,14 +79,13 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) * User level state verification only done for XTI * because doing for TLI may break existing applications */ - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_OUTCON || tiptr->ti_state == T_OUTREL || tiptr->ti_state == T_INREL || (tiptr->ti_state == T_INCON && tiptr->ti_ocnt > 0))) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); return (-1); } } @@ -104,6 +95,7 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) * event in the lookbuffer, is so just get it. */ if ((tiptr->ti_lookcnt > 0) && + /* LINTED pointer cast */ (*((t_scalar_t *)tiptr->ti_lookbufs.tl_lookcbuf) == T_DISCON_IND)) { /* * The T_DISCON_IND is already in the look buffer @@ -124,7 +116,6 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) api_semantics)) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); errno = sv_errno; return (-1); } @@ -132,7 +123,6 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) if (retval != T_DISCONNECT) { t_errno = TNODIS; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); return (-1); } @@ -146,7 +136,6 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); errno = sv_errno; return (-1); } @@ -161,7 +150,6 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); errno = sv_errno; return (-1); } @@ -192,6 +180,7 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; if ((ctlbuf.len < (int)sizeof (struct T_discon_ind)) || @@ -247,7 +236,6 @@ _tx_rcvdis(int fd, struct t_discon *discon, int api_semantics) tiptr->ti_rcvbuf = databuf.buf; } sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); return (0); err_out: @@ -266,7 +254,6 @@ err_out: tiptr->ti_rcvbuf = databuf.buf; } sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvdis, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvrel.c b/usr/src/lib/libnsl/nsl/t_rcvrel.c index 2769065a8f..07165e3b01 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvrel.c +++ b/usr/src/lib/libnsl/nsl/t_rcvrel.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.7.3.1 */ /* @@ -37,8 +36,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> -#include <rpc/trace.h> #include <stdlib.h> #include <errno.h> #include <stropts.h> @@ -64,20 +61,13 @@ _tx_rcvrel(int fd, int api_semantics) int flg = 0; - - trace2(TR_t_rcvrel, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) { - sv_errno = errno; - trace2(TR_t_rcvrel, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_COTS_ORD) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); return (-1); } @@ -86,11 +76,10 @@ _tx_rcvrel(int fd, int api_semantics) * User level state verification only done for XTI * because doing for TLI may break existing applications */ - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_OUTREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); return (-1); } } @@ -98,7 +87,6 @@ _tx_rcvrel(int fd, int api_semantics) if ((retval = _t_look_locked(fd, tiptr, 0, api_semantics)) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); errno = sv_errno; return (-1); } @@ -110,11 +98,11 @@ _tx_rcvrel(int fd, int api_semantics) */ t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); return (-1); } if ((tiptr->ti_lookcnt > 0) && + /* LINTED pointer cast */ (*((t_scalar_t *)tiptr->ti_lookbufs.tl_lookcbuf) == T_ORDREL_IND)) { /* * Current look buffer event is T_ORDREL_IND. @@ -124,13 +112,11 @@ _tx_rcvrel(int fd, int api_semantics) _T_TX_NEXTSTATE(T_RCVREL, tiptr, "t_rcv: invalid state event T_RCVREL"); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); return (0); } else { if (retval != T_ORDREL) { t_errno = TNOREL; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); return (-1); } } @@ -145,7 +131,6 @@ _tx_rcvrel(int fd, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); errno = sv_errno; return (-1); } @@ -160,7 +145,6 @@ _tx_rcvrel(int fd, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); errno = sv_errno; return (-1); } @@ -187,6 +171,7 @@ _tx_rcvrel(int fd, int api_semantics) errno = EIO; goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; if (ctlbuf.len < (int)sizeof (struct T_ordrel_ind)) { @@ -231,7 +216,6 @@ _tx_rcvrel(int fd, int api_semantics) else tiptr->ti_rcvbuf = databuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); return (0); err_out: @@ -246,7 +230,6 @@ err_out: else tiptr->ti_rcvbuf = databuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvrel, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvreldata.c b/usr/src/lib/libnsl/nsl/t_rcvreldata.c index f8fa36774e..493e469089 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvreldata.c +++ b/usr/src/lib/libnsl/nsl/t_rcvreldata.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* @@ -33,7 +33,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <stdlib.h> #include <errno.h> #include <stropts.h> @@ -62,35 +61,27 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) int flg = 0; - trace2(TR_t_rcvreldata, 0, fd); assert(api_semantics == TX_XTI_XNS5_API); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) { - sv_errno = errno; - trace2(TR_t_rcvreldata, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == 0) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_COTS_ORD) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); return (-1); } - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_OUTREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); return (-1); } if ((retval = _t_look_locked(fd, tiptr, 0, api_semantics)) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); errno = sv_errno; return (-1); } @@ -102,7 +93,6 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) */ t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); return (-1); } @@ -114,6 +104,7 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) */ if ((tiptr->ti_lookcnt > 0) && + /* LINTED pointer cast */ (*((t_scalar_t *)tiptr->ti_lookbufs.tl_lookcbuf) == T_ORDREL_IND)) { /* * Current look buffer event is T_ORDREL_IND. @@ -123,13 +114,11 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) _T_TX_NEXTSTATE(T_RCVREL, tiptr, "t_rcvreldata: invalid state event T_RCVREL"); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); return (0); } else { if (retval != T_ORDREL) { t_errno = TNOREL; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); return (-1); } } @@ -144,7 +133,6 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); errno = sv_errno; return (-1); } @@ -159,7 +147,6 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); errno = sv_errno; return (-1); } @@ -186,6 +173,7 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) errno = EIO; goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; if (ctlbuf.len < (int)sizeof (struct T_ordrel_ind)) { @@ -230,7 +218,6 @@ _tx_rcvreldata(int fd, struct t_discon *discon, int api_semantics) else tiptr->ti_rcvbuf = databuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); return (0); err_out: @@ -245,7 +232,6 @@ err_out: else tiptr->ti_rcvbuf = databuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvreldata, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvudata.c b/usr/src/lib/libnsl/nsl/t_rcvudata.c index 0e3d495947..23c44c57fd 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvudata.c +++ b/usr/src/lib/libnsl/nsl/t_rcvudata.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ /* @@ -37,7 +36,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <string.h> #include <stdlib.h> #include <errno.h> @@ -67,19 +65,13 @@ _tx_rcvudata( int didalloc; int flg = 0; - trace2(TR_t_rcvudata, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_rcvudata, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); return (-1); } @@ -91,7 +83,6 @@ _tx_rcvudata( if (tiptr->ti_state != T_IDLE) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); return (-1); } } @@ -102,7 +93,6 @@ _tx_rcvudata( */ if (tiptr->ti_lookcnt > 0) { sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); t_errno = TLOOK; return (-1); } @@ -114,7 +104,6 @@ _tx_rcvudata( if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); errno = sv_errno; return (-1); } @@ -141,7 +130,8 @@ _tx_rcvudata( } sig_mutex_lock(&tiptr->ti_lock); - if (unitdata->udata.len == -1) unitdata->udata.len = 0; + if (((struct strbuf *)&unitdata->udata)->len == -1) + unitdata->udata.len = 0; /* * is there control piece with data? @@ -154,6 +144,7 @@ _tx_rcvudata( goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; switch (pptr->type) { @@ -213,7 +204,6 @@ _tx_rcvudata( tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); return (0); case T_UDERROR_IND: @@ -255,7 +245,6 @@ _tx_rcvudata( else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); return (0); } /* NOTREACHED */ @@ -266,7 +255,6 @@ err_out: else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvudata, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvuderr.c b/usr/src/lib/libnsl/nsl/t_rcvuderr.c index 011eadda95..3a9a297ec4 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvuderr.c +++ b/usr/src/lib/libnsl/nsl/t_rcvuderr.c @@ -19,20 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ #include "mt.h" -#include <rpc/trace.h> #include <errno.h> #include <string.h> #include <stdlib.h> @@ -59,19 +57,13 @@ _tx_rcvuderr(int fd, struct t_uderr *uderr, int api_semantics) int use_lookbufs = 0; - trace2(TR_t_rcvuderr, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_rcvuderr, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvuderr, 1, fd); return (-1); } /* @@ -82,6 +74,7 @@ _tx_rcvuderr(int fd, struct t_uderr *uderr, int api_semantics) ctlbuf.buf = tiptr->ti_lookbufs.tl_lookcbuf; /* Note: cltbuf.maxlen not used in this case */ + /* LINTED pointer cast */ assert(((union T_primitives *)ctlbuf.buf)->type == T_UDERROR_IND); @@ -96,14 +89,12 @@ _tx_rcvuderr(int fd, struct t_uderr *uderr, int api_semantics) api_semantics)) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvuderr, 1, fd); errno = sv_errno; return (-1); } if (retval != T_UDERR) { t_errno = TNOUDERR; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvuderr, 1, fd); return (-1); } @@ -114,7 +105,6 @@ _tx_rcvuderr(int fd, struct t_uderr *uderr, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvuderr, 1, fd); errno = sv_errno; return (-1); } @@ -146,6 +136,7 @@ _tx_rcvuderr(int fd, struct t_uderr *uderr, int api_semantics) } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; if ((ctlbuf.len < (int)sizeof (struct T_uderror_ind)) || @@ -194,7 +185,6 @@ _tx_rcvuderr(int fd, struct t_uderr *uderr, int api_semantics) tiptr->ti_ctlbuf = ctlbuf.buf; } sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvuderr, 1, fd); return (0); err_out: @@ -209,7 +199,6 @@ err_out: tiptr->ti_ctlbuf = ctlbuf.buf; } sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvuderr, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvv.c b/usr/src/lib/libnsl/nsl/t_rcvv.c index 45f95b018f..d8f413bd78 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvv.c +++ b/usr/src/lib/libnsl/nsl/t_rcvv.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -33,7 +34,6 @@ */ #include "mt.h" #include <stdlib.h> -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <stropts.h> @@ -60,19 +60,13 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, unsigned int nbytes; char *dataptr; - trace5(TR_t_rcvv, 0, fd, tiov, tiovcount, flags); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); return (-1); } @@ -81,15 +75,13 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, if (tiovcount == 0 || tiovcount > T_IOV_MAX) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); return (-1); } - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_OUTREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); return (-1); } @@ -127,7 +119,6 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, sv_errno = errno; t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); errno = sv_errno; return (-1); } @@ -145,12 +136,11 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, tlbs = &tiptr->ti_lookbufs; do { + /* LINTED pointer cast */ if (*((t_scalar_t *)tlbs->tl_lookcbuf) == T_DISCON_IND) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, - tiovcount, flags); return (-1); } } while ((tlbs = tlbs->tl_next) != NULL); @@ -163,7 +153,6 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, */ t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); return (-1); } } @@ -175,7 +164,6 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); errno = sv_errno; return (-1); } @@ -190,7 +178,6 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); errno = sv_errno; return (-1); } @@ -231,6 +218,7 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; switch (pptr->type) { @@ -277,7 +265,6 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 0, fd, tiov, tiovcount, flags); return (databuf.len); case T_ORDREL_IND: @@ -405,7 +392,6 @@ _tx_rcvv(int fd, struct t_iovec *tiov, unsigned int tiovcount, int *flags, if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 0, fd, tiov, tiovcount, flags); return (databuf.len); } /* NOTREACHED */ @@ -420,7 +406,6 @@ err_out: free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_rcvv, 1, fd, tiov, tiovcount, flags); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_rcvvudata.c b/usr/src/lib/libnsl/nsl/t_rcvvudata.c index b3662271f4..3027a92dbb 100644 --- a/usr/src/lib/libnsl/nsl/t_rcvvudata.c +++ b/usr/src/lib/libnsl/nsl/t_rcvvudata.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* - * Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* @@ -33,7 +33,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <string.h> #include <stdlib.h> #include <errno.h> @@ -69,7 +68,6 @@ _tx_rcvvudata( int flg = 0; unsigned int nbytes; - trace2(TR_t_rcvvudata, 0, fd); assert(api_semantics == TX_XTI_XNS5_API); if (tiovcount == 0 || tiovcount > T_IOV_MAX) { @@ -77,25 +75,19 @@ _tx_rcvvudata( return (-1); } - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_rcvvudata, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 1, fd); return (-1); } if (tiptr->ti_state != T_IDLE) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 1, fd); return (-1); } @@ -104,7 +96,6 @@ _tx_rcvvudata( */ if (tiptr->ti_lookcnt > 0) { sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 1, fd); t_errno = TLOOK; return (-1); } @@ -116,7 +107,6 @@ _tx_rcvvudata( if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 1, fd); errno = sv_errno; return (-1); } @@ -163,6 +153,7 @@ _tx_rcvvudata( goto err_out; } + /* LINTED pointer cast */ pptr = (union T_primitives *)ctlbuf.buf; switch (pptr->type) { @@ -219,7 +210,6 @@ _tx_rcvvudata( if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 1, fd); return (databuf.len); case T_UDERROR_IND: @@ -263,7 +253,6 @@ _tx_rcvvudata( if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 0, fd); return (databuf.len); } /* NOTREACHED */ @@ -276,7 +265,6 @@ err_out: if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_rcvvudata, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_snd.c b/usr/src/lib/libnsl/nsl/t_snd.c index 1432f9dc5a..bef382b1f8 100644 --- a/usr/src/lib/libnsl/nsl/t_snd.c +++ b/usr/src/lib/libnsl/nsl/t_snd.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3.1.2 */ /* @@ -37,7 +36,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> @@ -65,19 +63,13 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) int doputmsg = 0; int32_t tsdu_limit; - trace4(TR_t_snd, 0, fd, nbytes, flags); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace4(TR_t_snd, 1, fd, nbytes, flags); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); return (-1); } @@ -90,7 +82,6 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) tiptr->ti_state == T_INREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); return (-1); } /* @@ -102,7 +93,6 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) if ((flags & ~(TX_ALL_VALID_FLAGS)) != 0) { t_errno = TBADFLAG; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); return (-1); } if (flags & T_EXPEDITED) @@ -116,7 +106,6 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) (nbytes > (uint32_t)tsdu_limit)) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); return (-1); } @@ -128,7 +117,6 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) if (lookevent < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); errno = sv_errno; return (-1); } @@ -142,7 +130,6 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) lookevent == T_ORDREL)) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); return (-1); } } @@ -151,7 +138,6 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) if (nbytes == 0 && !(tiptr->ti_prov_flag & (SENDZERO|OLD_SENDZERO))) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace4(TR_t_snd, 1, fd, nbytes, flags); return (-1); } @@ -231,31 +217,24 @@ _tx_snd(int fd, char *buf, unsigned nbytes, int flags, int api_semantics) t_errno = TFLOW; else t_errno = TSYSERR; - sv_errno = errno; - trace4(TR_t_snd, 1, fd, nbytes, flags); - errno = sv_errno; return (-1); /* return error */ - } else { - /* - * Not the first putmsg/write - * [ partial completion of t_snd() case. - * - * Error on putmsg/write attempt but - * some data was transmitted so don't - * return error. Don't attempt to - * send more (break from loop) but - * return OK. - */ - break; } + /* + * Not the first putmsg/write + * [ partial completion of t_snd() case. + * + * Error on putmsg/write attempt but + * some data was transmitted so don't + * return error. Don't attempt to + * send more (break from loop) but + * return OK. + */ + break; } bytes_remaining = bytes_remaining - bytes_sent; curptr = curptr + bytes_sent; } while (bytes_remaining != 0); _T_TX_NEXTSTATE(T_SND, tiptr, "t_snd: invalid state event T_SND"); - sv_errno = errno; - trace4(TR_t_snd, 1, fd, nbytes, flags); - errno = sv_errno; return (nbytes - bytes_remaining); } diff --git a/usr/src/lib/libnsl/nsl/t_snddis.c b/usr/src/lib/libnsl/nsl/t_snddis.c index d817e58522..53f405bf7a 100644 --- a/usr/src/lib/libnsl/nsl/t_snddis.c +++ b/usr/src/lib/libnsl/nsl/t_snddis.c @@ -19,20 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4.3.1 */ #include "mt.h" -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <stropts.h> @@ -55,19 +53,13 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) int sv_errno; int retval; - trace2(TR_t_snddis, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_snddis, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); return (-1); } @@ -78,14 +70,13 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) * Note: This is documented in TLI man page but never * done. */ - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_OUTCON || tiptr->ti_state == T_OUTREL || tiptr->ti_state == T_INREL || (tiptr->ti_state == T_INCON && tiptr->ti_ocnt > 0))) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); return (-1); } @@ -107,7 +98,6 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) */ t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); return (-1); } } @@ -120,7 +110,6 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) (call == NULL)) { t_errno = TBADSEQ; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); return (-1); } @@ -131,7 +120,6 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) if (_t_look_locked(fd, tiptr, 0, api_semantics) == T_DISCONNECT) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); return (-1); } @@ -145,7 +133,6 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) sv_errno = errno; t_errno = TSYSERR; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); errno = sv_errno; return (-1); } @@ -168,11 +155,7 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) */ sig_mutex_unlock(&tiptr->ti_lock); if (putmsg(fd, &ctlbuf, (databuf.len? &databuf: NULL), 0) < 0) { - sv_errno = errno; - t_errno = TSYSERR; - trace2(TR_t_snddis, 1, fd); - errno = sv_errno; return (-1); } sig_mutex_lock(&tiptr->ti_lock); @@ -180,7 +163,6 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) if (_t_is_ok(fd, tiptr, T_DISCON_REQ) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); errno = sv_errno; return (-1); } @@ -204,6 +186,5 @@ _tx_snddis(int fd, const struct t_call *call, int api_semantics) } sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_snddis, 1, fd); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_sndrel.c b/usr/src/lib/libnsl/nsl/t_sndrel.c index 27a0495aa2..3952722041 100644 --- a/usr/src/lib/libnsl/nsl/t_sndrel.c +++ b/usr/src/lib/libnsl/nsl/t_sndrel.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4 */ /* @@ -37,7 +36,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <errno.h> #include <stropts.h> #include <sys/stream.h> @@ -53,21 +51,14 @@ _tx_sndrel(int fd, int api_semantics) struct T_ordrel_req orreq; struct strbuf ctlbuf; struct _ti_user *tiptr; - int sv_errno; - trace2(TR_t_sndrel, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_sndrel, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_COTS_ORD) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndrel, 1, fd); return (-1); } @@ -76,11 +67,10 @@ _tx_sndrel(int fd, int api_semantics) * User level state verification only done for XTI * because doing for TLI may break existing applications */ - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_INREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndrel, 1, fd); return (-1); } @@ -88,7 +78,6 @@ _tx_sndrel(int fd, int api_semantics) api_semantics) == T_DISCONNECT) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndrel, 1, fd); return (-1); } @@ -106,20 +95,15 @@ _tx_sndrel(int fd, int api_semantics) */ sig_mutex_unlock(&tiptr->ti_lock); if (putmsg(fd, &ctlbuf, NULL, 0) < 0) { - sv_errno = errno; - if (errno == EAGAIN) t_errno = TFLOW; else t_errno = TSYSERR; - trace2(TR_t_sndrel, 1, fd); - errno = sv_errno; return (-1); } sig_mutex_lock(&tiptr->ti_lock); _T_TX_NEXTSTATE(T_SNDREL, tiptr, "t_sndrel: invalid state on event T_SNDREL"); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndrel, 1, fd); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_sndreldata.c b/usr/src/lib/libnsl/nsl/t_sndreldata.c index fe7aff9bbe..f9428450b4 100644 --- a/usr/src/lib/libnsl/nsl/t_sndreldata.c +++ b/usr/src/lib/libnsl/nsl/t_sndreldata.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* @@ -33,8 +33,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> -#include <rpc/trace.h> #include <errno.h> #include <stropts.h> #include <sys/stream.h> @@ -51,30 +49,22 @@ _tx_sndreldata(int fd, struct t_discon *discon, int api_semantics) struct T_ordrel_req orreq; struct strbuf ctlbuf; struct _ti_user *tiptr; - int sv_errno; - trace2(TR_t_sndreldata, 0, fd); assert(api_semantics == TX_XTI_XNS5_API); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_sndreldata, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_COTS_ORD) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndreldata, 1, fd); return (-1); } - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_INREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndreldata, 1, fd); return (-1); } @@ -82,7 +72,6 @@ _tx_sndreldata(int fd, struct t_discon *discon, int api_semantics) api_semantics) == T_DISCONNECT) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndreldata, 1, fd); return (-1); } @@ -113,20 +102,15 @@ _tx_sndreldata(int fd, struct t_discon *discon, int api_semantics) */ sig_mutex_unlock(&tiptr->ti_lock); if (putmsg(fd, &ctlbuf, NULL, 0) < 0) { - sv_errno = errno; - if (errno == EAGAIN) t_errno = TFLOW; else t_errno = TSYSERR; - trace2(TR_t_sndreldata, 1, fd); - errno = sv_errno; return (-1); } sig_mutex_lock(&tiptr->ti_lock); _T_TX_NEXTSTATE(T_SNDREL, tiptr, "t_sndreldata: invalid state on event T_SNDREL"); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndreldata, 1, fd); return (0); } diff --git a/usr/src/lib/libnsl/nsl/t_sndudata.c b/usr/src/lib/libnsl/nsl/t_sndudata.c index c41e07bfcb..c71a5725ce 100644 --- a/usr/src/lib/libnsl/nsl/t_sndudata.c +++ b/usr/src/lib/libnsl/nsl/t_sndudata.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */ /* @@ -37,7 +36,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <stdlib.h> #include <errno.h> #include <stropts.h> @@ -59,19 +57,13 @@ _tx_sndudata(int fd, const struct t_unitdata *unitdata, int api_semantics) int sv_errno; int didalloc; - trace2(TR_t_sndudata, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_sndudata, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); return (-1); } @@ -83,7 +75,6 @@ _tx_sndudata(int fd, const struct t_unitdata *unitdata, int api_semantics) if (tiptr->ti_state != T_IDLE) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); return (-1); } } @@ -92,7 +83,6 @@ _tx_sndudata(int fd, const struct t_unitdata *unitdata, int api_semantics) !(tiptr->ti_prov_flag & (SENDZERO|OLD_SENDZERO))) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); return (-1); } @@ -105,7 +95,6 @@ _tx_sndudata(int fd, const struct t_unitdata *unitdata, int api_semantics) t_errno = TBADDATA; sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); errno = sv_errno; return (-1); } @@ -117,11 +106,11 @@ _tx_sndudata(int fd, const struct t_unitdata *unitdata, int api_semantics) if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); errno = sv_errno; return (-1); } + /* LINTED pointer cast */ udreq = (struct T_unitdata_req *)ctlbuf.buf; udreq->PRIM_type = T_UNITDATA_REQ; @@ -196,7 +185,6 @@ _tx_sndudata(int fd, const struct t_unitdata *unitdata, int api_semantics) else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); return (0); err_out: sv_errno = errno; @@ -205,7 +193,6 @@ err_out: else tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndudata, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_sndv.c b/usr/src/lib/libnsl/nsl/t_sndv.c index 98eac86010..efde5d64a9 100644 --- a/usr/src/lib/libnsl/nsl/t_sndv.c +++ b/usr/src/lib/libnsl/nsl/t_sndv.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" - #include "mt.h" -#include <rpc/trace.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> @@ -67,35 +66,27 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, int doputmsg = 0; int32_t tsdu_limit; - trace5(TR_t_sndv, 0, fd, tiov, tiovcount, flags); assert(api_semantics == TX_XTI_XNS5_API); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype == T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } if (tiovcount == 0 || tiovcount > T_IOV_MAX) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } - if (! (tiptr->ti_state == T_DATAXFER || + if (!(tiptr->ti_state == T_DATAXFER || tiptr->ti_state == T_INREL)) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } /* @@ -107,7 +98,6 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, if ((flags & ~(TX_ALL_VALID_FLAGS)) != 0) { t_errno = TBADFLAG; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } if (flags & T_EXPEDITED) @@ -128,7 +118,6 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, (nbytes > (uint32_t)tsdu_limit)) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } @@ -140,14 +129,12 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, if (lookevent < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); errno = sv_errno; return (-1); } if (lookevent == T_DISCONNECT) { t_errno = TLOOK; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } @@ -155,7 +142,6 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, if (nbytes == 0 && !(tiptr->ti_prov_flag & (SENDZERO|OLD_SENDZERO))) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, flags); return (-1); } @@ -173,7 +159,7 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, band = TI_NORMAL; /* band 0 */ if (flags & T_EXPEDITED) { datareq.PRIM_type = T_EXDATA_REQ; - if (! (tiptr->ti_prov_flag & EXPINLINE)) + if (!(tiptr->ti_prov_flag & EXPINLINE)) band = TI_EXPEDITED; /* band > 0 */ } else datareq.PRIM_type = T_DATA_REQ; @@ -186,8 +172,6 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, if ((dataptr = malloc((size_t)nbytes)) == NULL) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, - flags); errno = sv_errno; t_errno = TSYSERR; return (-1); /* error */ @@ -283,24 +267,19 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, t_errno = TSYSERR; if (dataptr) free(dataptr); - sv_errno = errno; - trace5(TR_t_sndv, 1, fd, tiov, tiovcount, - flags); - errno = sv_errno; return (-1); /* return error */ - } else { - /* - * Not the first putmsg/write - * [ partial completion of t_snd() case. - * - * Error on putmsg/write attempt but - * some data was transmitted so don't - * return error. Don't attempt to - * send more (break from loop) but - * return OK. - */ - break; } + /* + * Not the first putmsg/write + * [ partial completion of t_snd() case. + * + * Error on putmsg/write attempt but + * some data was transmitted so don't + * return error. Don't attempt to + * send more (break from loop) but + * return OK. + */ + break; } bytes_remaining = bytes_remaining - bytes_sent; } while (bytes_remaining != 0); @@ -308,8 +287,5 @@ _tx_sndv(int fd, const struct t_iovec *tiov, unsigned int tiovcount, if (dataptr != NULL) free(dataptr); _T_TX_NEXTSTATE(T_SND, tiptr, "t_snd: invalid state event T_SND"); - sv_errno = errno; - trace5(TR_t_sndv, 0, fd, tiov, tiovcount, flags); - errno = sv_errno; return (nbytes - bytes_remaining); } diff --git a/usr/src/lib/libnsl/nsl/t_sndvudata.c b/usr/src/lib/libnsl/nsl/t_sndvudata.c index 5093a8fd88..b6c9d4f602 100644 --- a/usr/src/lib/libnsl/nsl/t_sndvudata.c +++ b/usr/src/lib/libnsl/nsl/t_sndvudata.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -32,7 +33,6 @@ * are applicable to the other file. */ #include "mt.h" -#include <rpc/trace.h> #include <stdlib.h> #include <errno.h> #include <stropts.h> @@ -59,34 +59,26 @@ _tx_sndvudata(int fd, const struct t_unitdata *unitdata, struct t_iovec *tiov, char *dataptr; unsigned int nbytes; - trace2(TR_t_sndvudata, 0, fd); assert(api_semantics == TX_XTI_XNS5_API); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_sndvudata, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } sig_mutex_lock(&tiptr->ti_lock); if (tiptr->ti_servtype != T_CLTS) { t_errno = TNOTSUPPORT; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); return (-1); } if (tiovcount == 0 || tiovcount > T_IOV_MAX) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); return (-1); } if (tiptr->ti_state != T_IDLE) { t_errno = TOUTSTATE; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); return (-1); } @@ -96,7 +88,6 @@ _tx_sndvudata(int fd, const struct t_unitdata *unitdata, struct t_iovec *tiov, !(tiptr->ti_prov_flag & (SENDZERO|OLD_SENDZERO))) { t_errno = TBADDATA; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); return (-1); } @@ -104,7 +95,6 @@ _tx_sndvudata(int fd, const struct t_unitdata *unitdata, struct t_iovec *tiov, t_errno = TBADDATA; sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); errno = sv_errno; return (-1); } @@ -116,11 +106,11 @@ _tx_sndvudata(int fd, const struct t_unitdata *unitdata, struct t_iovec *tiov, if (_t_acquire_ctlbuf(tiptr, &ctlbuf, &didalloc) < 0) { sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); errno = sv_errno; return (-1); } + /* LINTED pointer cast */ udreq = (struct T_unitdata_req *)ctlbuf.buf; udreq->PRIM_type = T_UNITDATA_REQ; @@ -205,7 +195,6 @@ _tx_sndvudata(int fd, const struct t_unitdata *unitdata, struct t_iovec *tiov, if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 0, fd); return (0); err_out: sv_errno = errno; @@ -216,7 +205,6 @@ err_out: if (dataptr != NULL) free(dataptr); sig_mutex_unlock(&tiptr->ti_lock); - trace2(TR_t_sndvudata, 1, fd); errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_strerror.c b/usr/src/lib/libnsl/nsl/t_strerror.c index b1fb31e3bf..f37c18ebe6 100644 --- a/usr/src/lib/libnsl/nsl/t_strerror.c +++ b/usr/src/lib/libnsl/nsl/t_strerror.c @@ -19,16 +19,14 @@ * * CDDL HEADER END */ + /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ - -/*LINTLIBRARY*/ #include "mt.h" #include <unistd.h> #include <stdio.h> @@ -89,30 +87,27 @@ _tx_strerror(int errnum, int api_semantics) if (_T_IS_XTI(api_semantics)) { if (errnum <= _xti_nerr && errnum >= 0) return (dgettext(__nsl_dom, _xti_errlist[errnum])); - else { - snprintf(buf, sizeof (buf), "%d: %s", errnum, - dgettext(__nsl_dom, "error unknown")); - return (buf); - } - } else { /* TX_TLI_API */ - /* - * This code for TLI only. It uses "t_nerr" and "t_errlist" - * which are exposed interfaces in the t_error() man page. - * XTI uses different array to avoid binary compatibility - * issues in using the exposed array. [ XTI t_error() does - * not mention the error message list array ] - * - * For the moment we simply index into the t_errlist[] array. - * When the array fills (we cannot allow it to expand in size - * or binary compatibility will be broken), this code will need - * modification. See the comment in _errlst.c. - */ - if (errnum < t_nerr && errnum >= 0) - return (dgettext(__nsl_dom, t_errlist[errnum])); - else { - snprintf(buf, sizeof (buf), "%d: %s", errnum, - dgettext(__nsl_dom, "error unknown")); - return (buf); - } + (void) snprintf(buf, sizeof (buf), "%d: %s", errnum, + dgettext(__nsl_dom, "error unknown")); + return (buf); } + + /* TX_TLI_API */ + /* + * This code for TLI only. It uses "t_nerr" and "t_errlist" + * which are exposed interfaces in the t_error() man page. + * XTI uses different array to avoid binary compatibility + * issues in using the exposed array. [ XTI t_error() does + * not mention the error message list array ] + * + * For the moment we simply index into the t_errlist[] array. + * When the array fills (we cannot allow it to expand in size + * or binary compatibility will be broken), this code will need + * modification. See the comment in _errlst.c. + */ + if (errnum < t_nerr && errnum >= 0) + return (dgettext(__nsl_dom, t_errlist[errnum])); + (void) snprintf(buf, sizeof (buf), "%d: %s", errnum, + dgettext(__nsl_dom, "error unknown")); + return (buf); } diff --git a/usr/src/lib/libnsl/nsl/t_sync.c b/usr/src/lib/libnsl/nsl/t_sync.c index 355505d9bc..f9a73b6eb7 100644 --- a/usr/src/lib/libnsl/nsl/t_sync.c +++ b/usr/src/lib/libnsl/nsl/t_sync.c @@ -19,12 +19,12 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -32,7 +32,6 @@ #include "mt.h" #include <errno.h> -#include <rpc/trace.h> #include <xti.h> #include <stropts.h> #include <sys/timod.h> @@ -42,10 +41,8 @@ int _tx_sync(int fd, int api_semantics) { struct _ti_user *tiptr; - int sv_errno; int force_sync = 0; - trace2(TR_t_sync, 0, fd); /* * In case of fork/exec'd servers, _t_checkfd() has all * the code to synchronize the tli data structures. @@ -58,12 +55,7 @@ _tx_sync(int fd, int api_semantics) if (_T_IS_XTI(api_semantics)) force_sync = 1; - if ((tiptr = _t_checkfd(fd, force_sync, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_sync, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, force_sync, api_semantics)) == NULL) return (-1); - } - trace2(TR_t_sync, 1, fd); return (tiptr->ti_state); } diff --git a/usr/src/lib/libnsl/nsl/t_sysconf.c b/usr/src/lib/libnsl/nsl/t_sysconf.c index 56607c949b..262638dfc5 100644 --- a/usr/src/lib/libnsl/nsl/t_sysconf.c +++ b/usr/src/lib/libnsl/nsl/t_sysconf.c @@ -19,16 +19,15 @@ * * CDDL HEADER END */ + /* - * Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" - #include "mt.h" -#include <rpc/trace.h> #include <unistd.h> #include <errno.h> #include <stropts.h> @@ -42,7 +41,6 @@ _tx_sysconf(int name, int api_semantics) { assert(api_semantics == TX_XTI_XNS5_API); if (name != _SC_T_IOV_MAX) { - trace1(TR_t_sysconf, name); t_errno = TBADFLAG; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/t_unbind.c b/usr/src/lib/libnsl/nsl/t_unbind.c index 93949f9d2d..713ee038ff 100644 --- a/usr/src/lib/libnsl/nsl/t_unbind.c +++ b/usr/src/lib/libnsl/nsl/t_unbind.c @@ -19,19 +19,18 @@ * * CDDL HEADER END */ + /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ - /* - * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3.4.1 */ #include "mt.h" -#include <rpc/trace.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> @@ -54,13 +53,8 @@ _tx_unbind(int fd, int api_semantics) int sv_errno, retval, didalloc; struct strbuf ctlbuf; - trace2(TR_t_unbind, 0, fd); - if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) { - sv_errno = errno; - trace2(TR_t_unbind, 1, fd); - errno = sv_errno; + if ((tiptr = _t_checkfd(fd, 0, api_semantics)) == NULL) return (-1); - } if (_T_IS_XTI(api_semantics)) { /* @@ -69,7 +63,6 @@ _tx_unbind(int fd, int api_semantics) */ if (tiptr->ti_state != T_IDLE) { t_errno = TOUTSTATE; - trace2(TR_t_unbind, 1, fd); return (-1); } } @@ -91,7 +84,6 @@ _tx_unbind(int fd, int api_semantics) sv_errno = errno; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_bind, 1, fd); errno = sv_errno; return (-1); } @@ -105,7 +97,6 @@ _tx_unbind(int fd, int api_semantics) tiptr->ti_ctlbuf = ctlbuf.buf; sig_mutex_unlock(&tiptr->ti_lock); (void) thr_sigsetmask(SIG_SETMASK, &mask, NULL); - trace2(TR_t_unbind, 1, fd); errno = sv_errno; return (retval); } @@ -114,16 +105,12 @@ int _tx_unbind_locked(int fd, struct _ti_user *tiptr, struct strbuf *ctlbufp) { struct T_unbind_req *unbind_reqp; - int sv_errno, retlen; + int retlen; - trace2(TR_t_unbind_locked, 0, fd); - if (_t_is_event(fd, tiptr) < 0) { - sv_errno = errno; - trace2(TR_t_unbind, 1, fd); - errno = sv_errno; + if (_t_is_event(fd, tiptr) < 0) return (-1); - } + /* LINTED pointer cast */ unbind_reqp = (struct T_unbind_req *)ctlbufp->buf; unbind_reqp->PRIM_type = T_UNBIND_REQ; @@ -145,12 +132,8 @@ _tx_unbind_locked(int fd, struct _ti_user *tiptr, struct strbuf *ctlbufp) _T_TX_NEXTSTATE(T_UNBIND, tiptr, "t_unbind: invalid state event T_UNBIND"); - trace2(TR_t_unbind_locked, 1, fd); return (0); err_out: - sv_errno = errno; - trace2(TR_t_unbind_locked, 1, fd); - errno = sv_errno; return (-1); } diff --git a/usr/src/lib/libnsl/nsl/tx.h b/usr/src/lib/libnsl/nsl/tx.h index 01c734ac60..bc0665711b 100644 --- a/usr/src/lib/libnsl/nsl/tx.h +++ b/usr/src/lib/libnsl/nsl/tx.h @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1992-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -285,22 +286,24 @@ extern int t_nerr; * UTILITY ROUTINES FUNCTION PROTOTYPES */ -void _t_adjust_iov(int, struct iovec *, int *); -struct _ti_user *_t_checkfd(int, int, int); -int _t_delete_tilink(int); -int _t_rcv_conn_con(struct _ti_user *, struct t_call *, struct strbuf *, int); -int _t_snd_conn_req(struct _ti_user *, const struct t_call *, struct strbuf *); -int _t_aligned_copy(struct strbuf *, int, int, char *, t_scalar_t *); -struct _ti_user *_t_create(int, struct t_info *, int, int *); -int _t_do_ioctl(int, char *, int, int, int *); -int _t_is_event(int, struct _ti_user *); -int _t_is_ok(int, struct _ti_user *, t_scalar_t); -int _t_look_locked(int, struct _ti_user *, int, int); -int _t_register_lookevent(struct _ti_user *, caddr_t, int, caddr_t, int); -void _t_free_looklist_head(struct _ti_user *); -void _t_flush_lookevents(struct _ti_user *); -int _t_acquire_ctlbuf(struct _ti_user *, struct strbuf *, int *); -int _t_acquire_databuf(struct _ti_user *, struct strbuf *, int *); +extern void _t_adjust_iov(int, struct iovec *, int *); +extern struct _ti_user *_t_checkfd(int, int, int); +extern int _t_delete_tilink(int); +extern int _t_rcv_conn_con(struct _ti_user *, struct t_call *, struct strbuf *, + int); +extern int _t_snd_conn_req(struct _ti_user *, const struct t_call *, + struct strbuf *); +extern int _t_aligned_copy(struct strbuf *, int, int, char *, t_scalar_t *); +extern struct _ti_user *_t_create(int, struct t_info *, int, int *); +extern int _t_do_ioctl(int, char *, int, int, int *); +extern int _t_is_event(int, struct _ti_user *); +extern int _t_is_ok(int, struct _ti_user *, t_scalar_t); +extern int _t_look_locked(int, struct _ti_user *, int, int); +extern int _t_register_lookevent(struct _ti_user *, caddr_t, int, caddr_t, int); +extern void _t_free_looklist_head(struct _ti_user *); +extern void _t_flush_lookevents(struct _ti_user *); +extern int _t_acquire_ctlbuf(struct _ti_user *, struct strbuf *, int *); +extern int _t_acquire_databuf(struct _ti_user *, struct strbuf *, int *); /* * Core function TLI/XTI routines function prototypes diff --git a/usr/src/lib/libnsl/nss/getauthattr.c b/usr/src/lib/libnsl/nss/getauthattr.c index 8f3f234321..bbae54a2ff 100644 --- a/usr/src/lib/libnsl/nss/getauthattr.c +++ b/usr/src/lib/libnsl/nss/getauthattr.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1999-2001 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -29,7 +30,6 @@ #include <stdlib.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <string.h> #include <auth_attr.h> @@ -49,10 +49,8 @@ static DEFINE_NSS_GETENT(context); void _nss_initf_authattr(nss_db_params_t *p) { - trace1(TR__nss_initf_authattr, 0); p->name = NSS_DBNAM_AUTHATTR; p->default_config = NSS_DEFCONF_AUTHATTR; - trace1(TR__nss_initf_authattr, 1); } @@ -65,29 +63,22 @@ _nss_initf_authattr(nss_db_params_t *p) int str2authattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) { - char *str = (char *)NULL; - char *last = (char *)NULL; + char *last = NULL; char *sep = KV_TOKEN_DELIMIT; authstr_t *auth = (authstr_t *)ent; - trace3(TR_str2authattr, 0, lenstr, buflen); if ((instr >= buffer && (buffer + buflen) > instr) || - (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2authattr, 1, lenstr, buflen); + (buffer >= instr && (instr + lenstr) > buffer)) return (NSS_STR_PARSE_PARSE); - } - if (lenstr >= buflen) { - trace3(TR_str2authattr, 1, lenstr, buflen); + if (lenstr >= buflen) return (NSS_STR_PARSE_ERANGE); - } - strncpy(buffer, instr, buflen); + (void) strncpy(buffer, instr, buflen); /* * Remove newline that nis (yp_match) puts at the * end of the entry it retrieves from the map. */ - if (buffer[lenstr] == '\n') { + if (buffer[lenstr] == '\n') buffer[lenstr] = '\0'; - } auth->name = _strtok_escape(buffer, sep, &last); auth->res1 = _strtok_escape(NULL, sep, &last); @@ -103,21 +94,17 @@ str2authattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) void _setauthattr(void) { - trace1(TR_setauthattr, 0); authattr_stayopen = 0; nss_setent(&db_root, _nss_initf_authattr, &context); - trace1(TR_setauthattr, 0); } void _endauthattr(void) { - trace1(TR_endauthattr, 0); authattr_stayopen = 0; nss_endent(&db_root, _nss_initf_authattr, &context); nss_delete(&db_root); - trace1(TR_endauthattr, 0); } @@ -127,12 +114,10 @@ _getauthattr(authstr_t *result, char *buffer, int buflen, int *h_errnop) nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getauthattr, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2authattr); res = nss_getent(&db_root, _nss_initf_authattr, &context, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace2(TR_getauthattr, 1, buflen); return ((authstr_t *)NSS_XbyY_FINI(&arg)); } @@ -144,7 +129,6 @@ _getauthnam(const char *name, authstr_t *result, char *buffer, int buflen, nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getauthnam, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2authattr); arg.key.name = name; arg.stayopen = authattr_stayopen; @@ -152,6 +136,5 @@ _getauthnam(const char *name, authstr_t *result, char *buffer, int buflen, NSS_DBOP_AUTHATTR_BYNAME, &arg); arg.status = res; *errnop = arg.h_errno; - trace2(TR_getauthnam, 1, buflen); return ((authstr_t *)NSS_XbyY_FINI(&arg)); } diff --git a/usr/src/lib/libnsl/nss/getauuser.c b/usr/src/lib/libnsl/nss/getauuser.c index 3d2f00add5..e7520d5517 100644 --- a/usr/src/lib/libnsl/nss/getauuser.c +++ b/usr/src/lib/libnsl/nss/getauuser.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -29,7 +30,6 @@ #include <stdlib.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <string.h> #include <bsm/libbsm.h> #include <secdb.h> @@ -52,11 +52,9 @@ static DEFINE_NSS_GETENT(context); void _nss_initf_auuser(nss_db_params_t *p) { - trace1(TR__nss_initf_auuser, 0); p->name = NSS_DBNAM_AUDITUSER; p->config_name = NSS_DBNAM_PASSWD; /* use config for "passwd" */ p->default_config = NSS_DEFCONF_AUDITUSER; - trace1(TR__nss_initf_auuser, 1); } @@ -69,21 +67,16 @@ _nss_initf_auuser(nss_db_params_t *p) int str2auuser(const char *instr, int lenstr, void *ent, char *buffer, int buflen) { - char *last = (char *)NULL; + char *last = NULL; char *sep = KV_TOKEN_DELIMIT; au_user_str_t *au_user = (au_user_str_t *)ent; - trace3(TR_str2auuser, 0, lenstr, buflen); if ((instr >= buffer && (buffer + buflen) > instr) || - (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2auuser, 1, lenstr, buflen); + (buffer >= instr && (instr + lenstr) > buffer)) return (NSS_STR_PARSE_PARSE); - } - if (lenstr >= buflen) { - trace3(TR_str2auuser, 1, lenstr, buflen); + if (lenstr >= buflen) return (NSS_STR_PARSE_ERANGE); - } - strncpy(buffer, instr, buflen); + (void) strncpy(buffer, instr, buflen); /* * Remove newline that nis (yp_match) puts at the * end of the entry it retrieves from the map. @@ -103,21 +96,17 @@ str2auuser(const char *instr, int lenstr, void *ent, char *buffer, int buflen) void _setauuser(void) { - trace1(TR_setauuser, 0); auuser_stayopen = 0; nss_setent(&db_root, _nss_initf_auuser, &context); - trace1(TR_setauuser, 0); } int _endauuser(void) { - trace1(TR_endauuser, 0); auuser_stayopen = 0; nss_endent(&db_root, _nss_initf_auuser, &context); nss_delete(&db_root); - trace1(TR_endauuser, 0); return (0); } @@ -128,12 +117,10 @@ _getauuserent(au_user_str_t *result, char *buffer, int buflen, int *h_errnop) nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getauuser, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2auuser); res = nss_getent(&db_root, _nss_initf_auuser, &context, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace2(TR_getauuser, 1, buflen); return ((au_user_str_t *)NSS_XbyY_FINI(&arg)); } @@ -145,7 +132,6 @@ _getauusernam(const char *name, au_user_str_t *result, char *buffer, nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getauusernam, 0, buflen); if (result == NULL) { *errnop = AUDITUSER_PARSE_ERANGE; return (NULL); @@ -158,6 +144,5 @@ _getauusernam(const char *name, au_user_str_t *result, char *buffer, NSS_DBOP_AUDITUSER_BYNAME, &arg); arg.status = res; *errnop = arg.h_errno; - trace2(TR_getauusernam, 1, buflen); return ((au_user_str_t *)NSS_XbyY_FINI(&arg)); } diff --git a/usr/src/lib/libnsl/nss/getexecattr.c b/usr/src/lib/libnsl/nss/getexecattr.c index 2ceb0cc29f..1990cea7ed 100644 --- a/usr/src/lib/libnsl/nss/getexecattr.c +++ b/usr/src/lib/libnsl/nss/getexecattr.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -31,7 +32,6 @@ #include <stdlib.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <string.h> #include <strings.h> #include <sys/systeminfo.h> @@ -66,30 +66,24 @@ static DEFINE_NSS_GETENT(context); void _nss_initf_execattr(nss_db_params_t *p) { - trace1(TR__nss_initf_execattr, 0); p->name = NSS_DBNAM_EXECATTR; p->config_name = NSS_DBNAM_PROFATTR; /* use config for "prof_attr" */ - trace1(TR__nss_initf_execattr, 1); } void _nsw_initf_execattr(nss_db_params_t *p) { - trace1(TR__nss_initf_execattr, 0); p->name = NSS_DBNAM_EXECATTR; p->flags |= NSS_USE_DEFAULT_CONFIG; p->default_config = _nsw_search_path; - trace1(TR__nss_initf_execattr, 1); } void _nsw_initf_profattr(nss_db_params_t *p) { - trace1(TR__nss_initf_execattr, 0); p->name = NSS_DBNAM_PROFATTR; p->flags |= NSS_USE_DEFAULT_CONFIG; p->default_config = _nsw_search_path; - trace1(TR__nss_initf_execattr, 1); } /* @@ -101,26 +95,19 @@ _nsw_initf_profattr(nss_db_params_t *p) int str2execattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) { - char *last = (char *)NULL; + char *last = NULL; char *sep = KV_TOKEN_DELIMIT; - char *empty = KV_EMPTY; execstr_t *exec = (execstr_t *)ent; - if (exec == NULL) { + if (exec == NULL) return (NSS_STR_PARSE_PARSE); - } - trace3(TR_str2execattr, 0, lenstr, buflen); if ((instr >= buffer && (buffer + buflen) > instr) || - (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2execattr, 1, lenstr, buflen); + (buffer >= instr && (instr + lenstr) > buffer)) return (NSS_STR_PARSE_PARSE); - } - if (lenstr >= buflen) { - trace3(TR_str2execattr, 1, lenstr, buflen); + if (lenstr >= buflen) return (NSS_STR_PARSE_ERANGE); - } - strncpy(buffer, instr, buflen); + (void) strncpy(buffer, instr, buflen); /* * Remove newline that nis (yp_match) puts at the * end of the entry it retrieves from the map. @@ -136,7 +123,7 @@ str2execattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) exec->res2 = _strtok_escape(NULL, sep, &last); exec->id = _strtok_escape(NULL, sep, &last); exec->attr = _strtok_escape(NULL, sep, &last); - exec->next = (execstr_t *)NULL; + exec->next = NULL; return (NSS_STR_PARSE_SUCCESS); } @@ -145,19 +132,15 @@ str2execattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) void _setexecattr(void) { - trace1(TR_setexecattr, 0); nss_setent(&exec_root, _nss_initf_execattr, &context); - trace1(TR_setexecattr, 0); } void _endexecattr(void) { - trace1(TR_endexecattr, 0); nss_endent(&exec_root, _nss_initf_execattr, &context); nss_delete(&exec_root); - trace1(TR_endexecattr, 0); } @@ -167,12 +150,10 @@ _getexecattr(execstr_t *result, char *buffer, int buflen, int *errnop) nss_status_t res; nss_XbyY_args_t arg; - trace2(TR_getexecattr, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2execattr); res = nss_getent(&exec_root, _nss_initf_execattr, &context, &arg); arg.status = res; *errnop = arg.h_errno; - trace2(TR_getexecattr, 1, buflen); return ((execstr_t *)NSS_XbyY_FINI(&arg)); } @@ -189,13 +170,12 @@ _getexecprof(char *name, { int getby_flag; char policy_buf[BUFSIZ]; - const char *empty = (const char *)NULL; + const char *empty = NULL; nss_status_t res = NSS_NOTFOUND; nss_XbyY_args_t arg; _priv_execattr _priv_exec; static mutex_t _nsw_exec_lock = DEFAULTMUTEX; - trace2(TR_getexecprof, 0, _buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2execattr); _priv_exec.name = (name == NULL) ? empty : (const char *)name; @@ -204,13 +184,13 @@ _getexecprof(char *name, #ifdef SI_SECPOLICY if (sysinfo(SI_SECPOLICY, policy_buf, BUFSIZ) == -1) #endif /* SI_SECPOLICY */ - strncpy(policy_buf, DEFAULT_POLICY, BUFSIZ); + (void) strncpy(policy_buf, DEFAULT_POLICY, BUFSIZ); retry_policy: _priv_exec.policy = policy_buf; _priv_exec.search_flag = search_flag; - _priv_exec.head_exec = (execstr_t *)NULL; - _priv_exec.prev_exec = (execstr_t *)NULL; + _priv_exec.head_exec = NULL; + _priv_exec.prev_exec = NULL; if ((name != NULL) && (id != NULL)) { getby_flag = NSS_DBOP_EXECATTR_BYNAMEID; @@ -291,7 +271,6 @@ out: arg.status = res; *errnop = res; - trace2(TR_getexecprof, 1, buflen); return ((execstr_t *)NSS_XbyY_FINI(&arg)); } @@ -314,7 +293,7 @@ _doexeclist(nss_XbyY_args_t *argp) else status = 0; } - memset(argp->buf.buffer, NULL, argp->buf.buflen); + (void) memset(argp->buf.buffer, NULL, argp->buf.buflen); return (status); @@ -354,7 +333,7 @@ _exec_wild_id(char *id, const char *type) /* * id = /usr/ccs/bin/what */ - strcpy(pchar, KV_WILDCARD); + (void) strcpy(pchar, KV_WILDCARD); return (id); } @@ -366,12 +345,11 @@ _exec_wild_id(char *id, const char *type) execstr_t * _dup_execstr(execstr_t *old_exec) { - execstr_t *new_exec = (execstr_t *)NULL; + execstr_t *new_exec = NULL; - if (old_exec == NULL) { - return ((execstr_t *)NULL); - } - if ((new_exec = (execstr_t *)malloc(sizeof (execstr_t))) != NULL) { + if (old_exec == NULL) + return (NULL); + if ((new_exec = malloc(sizeof (execstr_t))) != NULL) { new_exec->name = _strdup_null(old_exec->name); new_exec->type = _strdup_null(old_exec->type); new_exec->policy = _strdup_null(old_exec->policy); diff --git a/usr/src/lib/libnsl/nss/gethostby_door.c b/usr/src/lib/libnsl/nss/gethostby_door.c index 7db764e007..2cfbfe6e74 100644 --- a/usr/src/lib/libnsl/nss/gethostby_door.c +++ b/usr/src/lib/libnsl/nss/gethostby_door.c @@ -21,7 +21,7 @@ */ /* - * Copyright 1994-2002 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -60,7 +60,7 @@ _door_gethostbyname_r(const char *name, struct hostent *result, char *buffer, int adata; struct hostent *resptr = NULL; - if ((name == (const char *)NULL) || + if ((name == NULL) || (strlen(name) >= (sizeof (space) - sizeof (nsc_data_t)))) { errno = ERANGE; if (h_errnop) @@ -71,7 +71,7 @@ _door_gethostbyname_r(const char *name, struct hostent *result, char *buffer, adata = (sizeof (nsc_call_t) + strlen(name) + 1); ndata = sizeof (space); space.s_d.nsc_call.nsc_callnumber = GETHOSTBYNAME; - strcpy(space.s_d.nsc_call.nsc_u.name, name); + (void) strcpy(space.s_d.nsc_call.nsc_u.name, name); sptr = &space.s_d; switch (_nsc_trydoorcall(&sptr, &ndata, &adata)) { @@ -116,7 +116,7 @@ _door_gethostbyaddr_r(const char *addr, int length, int type, int adata; struct hostent *resptr = NULL; - if (addr == (const char *)NULL) { + if (addr == NULL) { if (h_errnop) *h_errnop = HOST_NOT_FOUND; return (NULL); @@ -129,7 +129,7 @@ _door_gethostbyaddr_r(const char *addr, int length, int type, space.s_d.nsc_call.nsc_callnumber = GETHOSTBYADDR; space.s_d.nsc_call.nsc_u.addr.a_type = type; space.s_d.nsc_call.nsc_u.addr.a_length = length; - memcpy(space.s_d.nsc_call.nsc_u.addr.a_data, addr, length); + (void) memcpy(space.s_d.nsc_call.nsc_u.addr.a_data, addr, length); switch (_nsc_trydoorcall(&sptr, &ndata, &adata)) { case SUCCESS: /* positive cache hit */ @@ -183,7 +183,8 @@ process_gethost(struct hostent *result, char *buffer, int buflen, return (NULL); } - memcpy(buffer, sptr->nsc_ret.nsc_u.buff + sizeof (struct hostent), + (void) memcpy(buffer, + sptr->nsc_ret.nsc_u.buff + sizeof (struct hostent), sptr->nsc_ret.nsc_bufferbytesused - sizeof (struct hostent)); sptr->nsc_ret.nsc_u.hst.h_name += (int)buffer; @@ -274,7 +275,7 @@ process_gethost(struct hostent *result, char *buffer, int buflen, /* fill out h_name */ start = sptr->nsc_ret.nsc_u.buff + sizeof (struct hostent32); - strcpy(dest, sptr->nsc_ret.nsc_u.hst.h_name + start); + (void) strcpy(dest, sptr->nsc_ret.nsc_u.hst.h_name + start); strs = 1 + strlen(sptr->nsc_ret.nsc_u.hst.h_name + start); result->h_name = dest; dest += strs; @@ -284,7 +285,7 @@ process_gethost(struct hostent *result, char *buffer, int buflen, */ for (i = 0; i < numaliases; i++) { alias = (int *)(start + sptr->nsc_ret.nsc_u.hst.h_aliases); - strcpy(dest, start + alias[i]); + (void) strcpy(dest, start + alias[i]); strs = 1 + strlen(start + alias[i]); aliaseslist[i] = dest; dest += strs; @@ -301,7 +302,7 @@ process_gethost(struct hostent *result, char *buffer, int buflen, for (i = 0; i < numaddrs; i++) { address = (int *)(start + sptr->nsc_ret.nsc_u.hst.h_addr_list); - memcpy(dest, start + address[i], + (void) memcpy(dest, start + address[i], sptr->nsc_ret.nsc_u.hst.h_length); strs = sptr->nsc_ret.nsc_u.hst.h_length; addrlist[i] = dest; diff --git a/usr/src/lib/libnsl/nss/gethostbyname_r.c b/usr/src/lib/libnsl/nss/gethostbyname_r.c index 0947879a30..14f44b0214 100644 --- a/usr/src/lib/libnsl/nss/gethostbyname_r.c +++ b/usr/src/lib/libnsl/nss/gethostbyname_r.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -51,7 +52,6 @@ */ #include <netdb.h> -#include <rpc/trace.h> #include <netdir.h> #include <sys/types.h> #include <nss_netdir.h> @@ -111,22 +111,18 @@ gethostbyname_r(const char *nam, struct hostent *result, char *buffer, union nss_netdirbyname_out nssout; int neterr, dummy; - trace2(TR_gethostbyname_r, 0, buflen); - if (h_errnop == NULL) h_errnop = &dummy; if (strlen(nam) == 0) { *h_errnop = HOST_NOT_FOUND; - trace2(TR_gethostbyname_r, 1, buflen); - return ((struct hostent *)NULL); + return (NULL); } if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) { *h_errnop = NO_RECOVERY; - trace2(TR_gethostbyname_r, 1, buflen); - return ((struct hostent *)NULL); + return (NULL); } nssin.op_t = NSS_HOST; @@ -144,11 +140,8 @@ gethostbyname_r(const char *nam, struct hostent *result, char *buffer, neterr = _get_hostserv_inetnetdir_byname(nconf, &nssin, &nssout); (void) freenetconfigent(nconf); - if (neterr != ND_OK) { - trace2(TR_gethostbyname_r, 1, buflen); - return ((struct hostent *)NULL); - } - trace2(TR_gethostbyname_r, 1, buflen); + if (neterr != ND_OK) + return (NULL); return (nssout.nss.host.hent); } @@ -161,18 +154,15 @@ gethostbyaddr_r(const char *addr, int length, int type, union nss_netdirbyaddr_out nssout; int neterr; - trace3(TR_gethostbyaddr_r, 0, length, buflen); - if (type != AF_INET) { *h_errnop = HOST_NOT_FOUND; - return ((struct hostent *)NULL); + return (NULL); } if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) { *h_errnop = NO_RECOVERY; - trace3(TR_gethostbyaddr_r, 0, length, buflen); - return ((struct hostent *)NULL); + return (NULL); } nssin.op_t = NSS_HOST; @@ -192,9 +182,7 @@ gethostbyaddr_r(const char *addr, int length, int type, neterr = _get_hostserv_inetnetdir_byaddr(nconf, &nssin, &nssout); (void) freenetconfigent(nconf); - if (neterr != ND_OK) { - trace3(TR_gethostbyaddr_r, 0, length, buflen); - return ((struct hostent *)NULL); - } + if (neterr != ND_OK) + return (NULL); return (nssout.nss.host.hent); } diff --git a/usr/src/lib/libnsl/nss/gethostent.c b/usr/src/lib/libnsl/nss/gethostent.c index 4964db8512..0bf5b90cd0 100644 --- a/usr/src/lib/libnsl/nss/gethostent.c +++ b/usr/src/lib/libnsl/nss/gethostent.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * Ye olde non-reentrant interface (MT-unsafe, caveat utor) @@ -38,7 +39,6 @@ #include <stdio.h> #include <arpa/inet.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <netinet/in.h> #include <sys/socket.h> @@ -64,51 +64,36 @@ struct hostent * gethostbyname(const char *nam) { nss_XbyY_buf_t *b; - struct hostent *res = 0; - trace1(TR_gethostbyname, 0); - if ((b = GETBUF()) != 0) { - res = gethostbyname_r(nam, - b->result, b->buffer, b->buflen, - &h_errno); - } - trace1(TR_gethostbyname, 1); - return (res); + if ((b = GETBUF()) == 0) + return (NULL); + return (gethostbyname_r(nam, b->result, b->buffer, b->buflen, + &h_errno)); } struct hostent * gethostbyaddr(const void *addr, socklen_t len, int type) { nss_XbyY_buf_t *b; - struct hostent *res = 0; - char *c; - trace2(TR_gethostbyaddr, 0, len); h_errno = 0; if (type == AF_INET6) return (getipnodebyaddr(addr, len, type, &h_errno)); - if ((b = GETBUF()) != 0) { - res = gethostbyaddr_r(addr, len, type, - b->result, b->buffer, b->buflen, - &h_errno); - } - trace2(TR_gethostbyaddr, 1, len); - return (res); + if ((b = GETBUF()) == 0) + return (NULL); + return (gethostbyaddr_r(addr, len, type, + b->result, b->buffer, b->buflen, &h_errno)); } struct hostent * gethostent(void) { nss_XbyY_buf_t *b; - struct hostent *res = 0; - trace1(TR_gethostent, 0); - if ((b = GETBUF()) != 0) { - res = gethostent_r(b->result, b->buffer, b->buflen, &h_errno); - } - trace1(TR_gethostent, 1); - return (res); + if ((b = GETBUF()) == 0) + return (NULL); + return (gethostent_r(b->result, b->buffer, b->buflen, &h_errno)); } /* @@ -130,14 +115,10 @@ __str2hostent(int af, const char *instr, int lenstr, void *ent, char *buffer, struct in6_addr *addrp6; char **addrvec; - trace3(TR_str2hostent, 0, lenstr, buflen); if ((instr >= buffer && (buffer + buflen) > instr) || - (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2hostent, 1, lenstr, buflen); + (buffer >= instr && (instr + lenstr) > buffer)) return (NSS_STR_PARSE_PARSE); - } if (af != AF_INET && af != AF_INET6) { - trace3(TR_str2hostent, 1, lenstr, buflen); /* * XXX - Returning ERANGE here is completely bogus. * Unfortunately, there's no error code identifying @@ -193,10 +174,8 @@ __str2hostent(int af, const char *instr, int lenstr, void *ent, char *buffer, addrvec -= naddr + 1; } - if ((char *)addrvec < buffer) { - trace3(TR_str2hostent, 1, lenstr, buflen); + if ((char *)addrvec < buffer) return (NSS_STR_PARSE_ERANGE); - } /* For each addr, parse and get it */ @@ -208,44 +187,35 @@ __str2hostent(int af, const char *instr, int lenstr, void *ent, char *buffer, if (limit == NULL) limit = instr + lenstr; - while (p < limit && isspace(*p)) { + while (p < limit && isspace(*p)) p++; - } addrstart = p; - while (p < limit && !isspace(*p)) { + while (p < limit && !isspace(*p)) p++; - } - if (p >= limit) { + if (p >= limit) /* Syntax error - no hostname present or truncated line */ - trace3(TR_str2hostent, 1, lenstr, buflen); return (NSS_STR_PARSE_PARSE); - } addrlen = p - addrstart; - if (addrlen >= sizeof (addrbuf)) { + if (addrlen >= sizeof (addrbuf)) /* Syntax error -- supposed IP address is too long */ - trace3(TR_str2hostent, 1, lenstr, buflen); return (NSS_STR_PARSE_PARSE); - } - memcpy(addrbuf, addrstart, addrlen); + (void) memcpy(addrbuf, addrstart, addrlen); addrbuf[addrlen] = '\0'; if (addrlen > ((af == AF_INET6) ? INET6_ADDRSTRLEN - : INET_ADDRSTRLEN)) { + : INET_ADDRSTRLEN)) /* Syntax error -- supposed IP address is too long */ - trace3(TR_str2hostent, 4, lenstr, buflen); return (NSS_STR_PARSE_PARSE); - } if (af == AF_INET) { /* * inet_pton() doesn't handle d.d.d, d.d, or d formats, * so we must use inet_addr() for IPv4 addresses. */ addrvec[i] = (char *)&addrp[i]; - if ((addrp[i].s_addr = inet_addr(addrbuf)) == -1) { + if ((addrp[i].s_addr = inet_addr(addrbuf)) == + 0xffffffffU) /* Syntax error -- bogus IPv4 address */ - trace3(TR_str2hostent, 4, lenstr, buflen); return (NSS_STR_PARSE_PARSE); - } } else { /* * In the case of AF_INET6, we can have both v4 and v6 @@ -254,18 +224,13 @@ __str2hostent(int af, const char *instr, int lenstr, void *ent, char *buffer, */ addrvec[i] = (char *)&addrp6[i]; if (strchr(addrbuf, ':') != 0) { - if (inet_pton(af, addrbuf, &addrp6[i]) != 1) { - trace3(TR_str2hostent, 4, lenstr, - buflen); + if (inet_pton(af, addrbuf, &addrp6[i]) != 1) return (NSS_STR_PARSE_PARSE); - } } else { struct in_addr in4; - if ((in4.s_addr = inet_addr(addrbuf)) == -1) { - trace3(TR_str2hostent, 4, lenstr, - buflen); + if ((in4.s_addr = inet_addr(addrbuf)) == + 0xffffffffU) return (NSS_STR_PARSE_PARSE); - } IN6_INADDR_TO_V4MAPPED(&in4, &addrp6[i]); } } @@ -310,8 +275,6 @@ __str2hostent(int af, const char *instr, int lenstr, void *ent, char *buffer, host->h_addrtype = af; host->h_addr_list = addrvec; - trace3(TR_str2hostent, 1, lenstr, buflen); return (res); } - #endif /* NSS_INCLUDE_UNSAFE */ diff --git a/usr/src/lib/libnsl/nss/gethostent6.c b/usr/src/lib/libnsl/nss/gethostent6.c index 354752aee0..2dd98e4280 100644 --- a/usr/src/lib/libnsl/nss/gethostent6.c +++ b/usr/src/lib/libnsl/nss/gethostent6.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1991-2002 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * lib/libnsl/nss/gethostent6.c @@ -39,7 +40,6 @@ #include <sys/socket.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include "nss.h" static int ipnodes_stayopen; @@ -61,30 +61,24 @@ str2hostent6(const char *instr, int lenstr, void *ent, char *buffer, int buflen) void _nss_initf_ipnodes(nss_db_params_t *p) { - trace1(TR__nss_initf_ipnodes, 0); p->name = NSS_DBNAM_IPNODES; p->default_config = NSS_DEFCONF_IPNODES; - trace1(TR__nss_initf_ipnodes, 1); } int __sethostent6(int stay) { - trace1(TR_sethostent6, 0); ipnodes_stayopen |= stay; nss_setent(&db_root, _nss_initf_ipnodes, &context); - trace1(TR_sethostent6, 1); return (0); } int __endhostent6(void) { - trace1(TR_endhostent6, 0); ipnodes_stayopen = 0; nss_endent(&db_root, _nss_initf_ipnodes, &context); nss_delete(&db_root); - trace1(TR_endhostent6, 1); return (0); } @@ -94,12 +88,10 @@ __gethostent6(struct hostent *result, char *buffer, int buflen, int *h_errnop) nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_gethostent6, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2hostent6); res = nss_getent(&db_root, _nss_initf_ipnodes, &context, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace2(TR_gethostent6, 1, buflen); return ((struct hostent *)NSS_XbyY_FINI(&arg)); } diff --git a/usr/src/lib/libnsl/nss/gethostent_r.c b/usr/src/lib/libnsl/nss/gethostent_r.c index e6ef78ce5c..209d1e67a4 100644 --- a/usr/src/lib/libnsl/nss/gethostent_r.c +++ b/usr/src/lib/libnsl/nss/gethostent_r.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1991-2002 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * lib/libnsl/nss/gethostent_r.c @@ -39,7 +40,6 @@ #include <sys/socket.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include "nss.h" /* @@ -65,30 +65,24 @@ static DEFINE_NSS_GETENT(context); void _nss_initf_hosts(nss_db_params_t *p) { - trace1(TR__nss_initf_hosts, 0); p->name = NSS_DBNAM_HOSTS; p->default_config = NSS_DEFCONF_HOSTS; - trace1(TR__nss_initf_hosts, 1); } int sethostent(int stay) { - trace1(TR_sethostent, 0); hosts_stayopen |= stay; nss_setent(&db_root, _nss_initf_hosts, &context); - trace1(TR_sethostent, 0); return (0); } int endhostent(void) { - trace1(TR_endhostent, 0); hosts_stayopen = 0; nss_endent(&db_root, _nss_initf_hosts, &context); nss_delete(&db_root); - trace1(TR_endhostent, 0); return (0); } @@ -98,12 +92,10 @@ gethostent_r(struct hostent *result, char *buffer, int buflen, int *h_errnop) nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_gethostbyent_r, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2hostent); res = nss_getent(&db_root, _nss_initf_hosts, &context, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace2(TR_gethostbyent_r, 1, buflen); return ((struct hostent *)NSS_XbyY_FINI(&arg)); } diff --git a/usr/src/lib/libnsl/nss/getipnodeby.c b/usr/src/lib/libnsl/nss/getipnodeby.c index ef288fe8c5..0118075180 100644 --- a/usr/src/lib/libnsl/nss/getipnodeby.c +++ b/usr/src/lib/libnsl/nss/getipnodeby.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * This file defines and implements the re-entrant getipnodebyname(), @@ -43,7 +44,6 @@ #include <stdio.h> #include <arpa/inet.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/sockio.h> @@ -109,9 +109,8 @@ struct hostent * _uncached_getipnodebyname(const char *nam, struct hostent *result, char *buffer, int buflen, int af_family, int flags, int *h_errnop) { - return - (_switch_getipnodebyname_r(nam, result, buffer, buflen, af_family, - flags, h_errnop)); + return (_switch_getipnodebyname_r(nam, result, buffer, buflen, + af_family, flags, h_errnop)); } struct hostent * @@ -135,7 +134,6 @@ _uncached_getipnodebyaddr(const char *addr, int length, int type, static uint_t getipnodebyname_processflags(const char *name, int af, int flags) { - int ifnum6, ifnum4; uint_t ipnode_bits = IPNODE_DEFAULT; boolean_t ipv6configured = B_FALSE; boolean_t ipv4configured = B_FALSE; @@ -203,7 +201,7 @@ getipnodebyname_processflags(const char *name, int af, int flags) */ ipnode_bits |= (IPNODE_WANTIPV6 | IPNODE_WANTIPV4); ipnode_bits &= ~IPNODE_LOOKUPHOSTS; - } else if (inet_addr(name) != -1) { + } else if (inet_addr(name) != 0xffffffffU) { /* Literal IPv4 address */ ipnode_bits |= (IPNODE_LITERAL | IPNODE_WANTIPV4); ipnode_bits &= ~IPNODE_WANTIPV6; @@ -224,10 +222,8 @@ getipnodebyname(const char *name, int af, int flags, int *error_num) int ret; uint_t ipnode_bits; - trace1(TR_getipnodebyname, 0); if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) { - trace2(TR_getipnodebyname, 1, buflen); *error_num = NO_RECOVERY; return (NULL); } @@ -409,7 +405,6 @@ cleanup: } (void) freenetconfigent(nconf); - trace1(TR_getipnodebyname, 1); return (hp); } @@ -430,7 +425,6 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) int neterr; char tmpbuf[64]; - trace2(TR_gethostbyaddr, 0, len); if (type == AF_INET6) { if ((addr6 = (struct in6_addr *)src) == NULL) { *error_num = HOST_NOT_FOUND; @@ -464,15 +458,13 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) } if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) { - trace3(TR__getipnodebyaddr, 0, len, buf->buflen); *error_num = NO_RECOVERY; __IPv6_cleanup(buf); return (NULL); } nssin.op_t = NSS_HOST6; if (IN6_IS_ADDR_V4COMPAT(addr6)) { - memcpy((void *)tmpbuf, (void *)addr6, - sizeof (*addr6)); + (void) memcpy(tmpbuf, addr6, sizeof (*addr6)); tmpbuf[10] = 0xffU; tmpbuf[11] = 0xffU; nssin.arg.nss.host.addr = (const char *)tmpbuf; @@ -497,7 +489,6 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) (void) freenetconfigent(nconf); if (neterr != ND_OK) { /* Failover case, try hosts db for v4 address */ - trace3(TR__getipnodebyaddr, 0, len, buf->buflen); if (!gethostbyaddr_r(((char *)addr6) + 12, sizeof (in_addr_t), AF_INET, buf->result, buf->buffer, buf->buflen, error_num)) { @@ -512,7 +503,7 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) } /* Convert IPv4 to mapped/compat address w/name */ hp = res->result; - __mapv4tov6(buf->result, 0, res, + (void) __mapv4tov6(buf->result, 0, res, IN6_IS_ADDR_V4MAPPED(addr6)); __IPv6_cleanup(buf); free(res); @@ -525,6 +516,7 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) */ hp = buf->result; if (IN6_IS_ADDR_V4COMPAT(addr6)) { + /* LINTED pointer cast */ addr6 = (struct in6_addr *)hp->h_addr_list[0]; addr6->s6_addr[10] = 0; addr6->s6_addr[11] = 0; @@ -546,7 +538,6 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) IN6_INADDR_TO_V4MAPPED(addr4, addr6); if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) { - trace3(TR__getipnodebyaddr, 0, len, buf->buflen); *error_num = NO_RECOVERY; return (NULL); } @@ -575,7 +566,6 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) (void) freenetconfigent(nconf); if (neterr != ND_OK) { /* Failover case, try hosts db for v4 address */ - trace3(TR__getipnodebyaddr, 0, len, buf->buflen); hp = buf->result; if (!gethostbyaddr_r(src, len, type, buf->result, buf->buffer, buf->buflen, error_num)) { @@ -598,7 +588,6 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) if (type == AF_INET6) { if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) { - trace3(TR__getipnodebyaddr, 0, len, buf->buflen); *error_num = NO_RECOVERY; return (NULL); } @@ -626,11 +615,9 @@ getipnodebyaddr(const void *src, size_t len, int type, int *error_num) (void) freenetconfigent(nconf); if (neterr != ND_OK) { - trace3(TR__getipnodebyaddr, 0, len, buf->buflen); __IPv6_cleanup(buf); return (NULL); } - trace2(TR_gethostbyaddr, 1, len); free(buf); return (nssout.nss.host.hent); } @@ -761,6 +748,7 @@ __mapv4tov6(struct hostent *he4, struct hostent *he6, nss_XbyY_buf_t *res, */ return (NULL); } + /* LINTED pointer cast */ addr6p = (struct in6_addr *)buff_locp; host->h_addr_list[count] = (char *)addr6p; bzero(addr6p->s6_addr, sizeof (struct in6_addr)); @@ -784,7 +772,7 @@ __mapv4tov6(struct hostent *he4, struct hostent *he6, nss_XbyY_buf_t *res, * V4 mapped literal address string for h_name. */ char tmpstr[128]; - inet_ntop(AF_INET6, host->h_addr_list[0], tmpstr, + (void) inet_ntop(AF_INET6, host->h_addr_list[0], tmpstr, sizeof (tmpstr)); buff_locp -= (len = strlen(tmpstr) + 1); h_namep = tmpstr; @@ -862,6 +850,7 @@ __mapv4tov6(struct hostent *he4, struct hostent *he6, nss_XbyY_buf_t *res, */ return (NULL); } + /* LINTED pointer cast */ addr6p = (struct in6_addr *)buff_locp; host->h_addr_list[count] = (char *)addr6p; bzero(addr6p->s6_addr, sizeof (struct in6_addr)); @@ -991,6 +980,7 @@ __mappedtov4(struct hostent *he, int *extract_error) * which is why there is a inet_addr() call. */ for (i = 0; he->h_addr_list[i] != NULL; i++) { + /* LINTED pointer cast */ if (!IN6_IS_ADDR_V4MAPPED((struct in6_addr *) he->h_addr_list[i])) continue; @@ -1002,10 +992,12 @@ __mappedtov4(struct hostent *he, int *extract_error) if (buff_locp <= (char *)&(host->h_addr_list[count + 1])) goto cleanup; + /* LINTED pointer cast */ addr4p = (struct in_addr *)buff_locp; host->h_addr_list[count] = (char *)addr4p; bzero((char *)&addr4p->s_addr, sizeof (struct in_addr)); + /* LINTED pointer cast */ IN6_V4MAPPED_TO_INADDR( (struct in6_addr *)he->h_addr_list[i], addr4p); @@ -1067,7 +1059,6 @@ __filter_addresses(int af, struct hostent *he) struct in6_addr **in6addrlist, **in6addr; boolean_t isipv4mapped; int i = 0; - char addrstr[INET6_ADDRSTRLEN]; if (he == NULL) return (NULL); @@ -1114,6 +1105,7 @@ __find_mapped(struct hostent *he, int find_both) int v6_found = 0; for (i = 0; he->h_addr_list[i] != NULL; i++) { + /* LINTED pointer cast */ if (IN6_IS_ADDR_V4MAPPED( (struct in6_addr *)he->h_addr_list[i])) { if (find_both) diff --git a/usr/src/lib/libnsl/nss/getipnodeby_door.c b/usr/src/lib/libnsl/nss/getipnodeby_door.c index 57a728276b..782704d927 100644 --- a/usr/src/lib/libnsl/nss/getipnodeby_door.c +++ b/usr/src/lib/libnsl/nss/getipnodeby_door.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -60,7 +61,7 @@ _door_getipnodebyname_r(const char *name, struct hostent *result, char *buffer, int adata; struct hostent *resptr = NULL; - if ((name == (const char *)NULL) || + if ((name == NULL) || (strlen(name) >= (sizeof (space) - sizeof (nsc_data_t) - 2 * sizeof (int)))) { errno = ERANGE; @@ -74,7 +75,7 @@ _door_getipnodebyname_r(const char *name, struct hostent *result, char *buffer, space.s_d.nsc_call.nsc_callnumber = GETIPNODEBYNAME; space.s_d.nsc_call.nsc_u.ipnode.af_family = af_family; space.s_d.nsc_call.nsc_u.ipnode.flags = flags; - strcpy(space.s_d.nsc_call.nsc_u.ipnode.name, name); + (void) strcpy(space.s_d.nsc_call.nsc_u.ipnode.name, name); sptr = &space.s_d; switch (_nsc_trydoorcall(&sptr, &ndata, &adata)) { @@ -119,7 +120,7 @@ _door_getipnodebyaddr_r(const char *addr, int length, int type, int adata; struct hostent *resptr = NULL; - if (addr == (const char *)NULL) { + if (addr == NULL) { if (h_errnop) *h_errnop = HOST_NOT_FOUND; return (NULL); @@ -132,7 +133,7 @@ _door_getipnodebyaddr_r(const char *addr, int length, int type, space.s_d.nsc_call.nsc_callnumber = GETIPNODEBYADDR; space.s_d.nsc_call.nsc_u.addr.a_type = type; space.s_d.nsc_call.nsc_u.addr.a_length = length; - memcpy(space.s_d.nsc_call.nsc_u.addr.a_data, addr, length); + (void) memcpy(space.s_d.nsc_call.nsc_u.addr.a_data, addr, length); switch (_nsc_trydoorcall(&sptr, &ndata, &adata)) { case SUCCESS: /* positive cache hit */ @@ -185,7 +186,8 @@ __process_getipnode(struct hostent *result, char *buffer, int buflen, return (NULL); } - memcpy(buffer, sptr->nsc_ret.nsc_u.buff + sizeof (struct hostent), + (void) memcpy(buffer, + sptr->nsc_ret.nsc_u.buff + sizeof (struct hostent), sptr->nsc_ret.nsc_bufferbytesused - sizeof (struct hostent)); sptr->nsc_ret.nsc_u.hst.h_name += (int)buffer; @@ -292,7 +294,7 @@ __process_getipnode(struct hostent *result, char *buffer, int buflen, * fill out h_name */ start = sptr->nsc_ret.nsc_u.buff + sizeof (struct hostent32); - strcpy(dest, sptr->nsc_ret.nsc_u.hst.h_name + start); + (void) strcpy(dest, sptr->nsc_ret.nsc_u.hst.h_name + start); strs = 1 + strlen(sptr->nsc_ret.nsc_u.hst.h_name + start); result->h_name = dest; dest += strs; @@ -301,7 +303,7 @@ __process_getipnode(struct hostent *result, char *buffer, int buflen, */ alias = (int *)(start + sptr->nsc_ret.nsc_u.hst.h_aliases); for (i = 0; i < numaliases; i++) { - strcpy(dest, start + alias[i]); + (void) strcpy(dest, start + alias[i]); aliaseslist[i] = dest; dest += 1 + strlen(start + alias[i]); } @@ -314,7 +316,7 @@ __process_getipnode(struct hostent *result, char *buffer, int buflen, dest = (char *)ROUND_UP(dest, sizeof (char *)); address = (int *)(start + sptr->nsc_ret.nsc_u.hst.h_addr_list); for (i = 0; i < numaddrs; i++) { - memcpy(dest, start + address[i], + (void) memcpy(dest, start + address[i], sptr->nsc_ret.nsc_u.hst.h_length); addrlist[i] = dest; dest += sptr->nsc_ret.nsc_u.hst.h_length; diff --git a/usr/src/lib/libnsl/nss/getprofattr.c b/usr/src/lib/libnsl/nss/getprofattr.c index d5778626ae..e11de065bd 100644 --- a/usr/src/lib/libnsl/nss/getprofattr.c +++ b/usr/src/lib/libnsl/nss/getprofattr.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1999-2001 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -29,7 +30,6 @@ #include <stdlib.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <string.h> #include <prof_attr.h> @@ -48,10 +48,8 @@ static DEFINE_NSS_GETENT(context); void _nss_initf_profattr(nss_db_params_t *p) { - trace1(TR__nss_initf_profattr, 0); p->name = NSS_DBNAM_PROFATTR; p->default_config = NSS_DEFCONF_PROFATTR; - trace1(TR__nss_initf_profattr, 1); } @@ -64,28 +62,22 @@ _nss_initf_profattr(nss_db_params_t *p) int str2profattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) { - char *last = (char *)NULL; + char *last = NULL; char *sep = KV_TOKEN_DELIMIT; profstr_t *prof = (profstr_t *)ent; - trace3(TR_str2profattr, 0, lenstr, buflen); if ((instr >= buffer && (buffer + buflen) > instr) || - (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2profattr, 1, lenstr, buflen); + (buffer >= instr && (instr + lenstr) > buffer)) return (NSS_STR_PARSE_PARSE); - } - if (lenstr >= buflen) { - trace3(TR_str2profattr, 1, lenstr, buflen); + if (lenstr >= buflen) return (NSS_STR_PARSE_ERANGE); - } - strncpy(buffer, instr, buflen); + (void) strncpy(buffer, instr, buflen); /* * Remove newline that nis (yp_match) puts at the * end of the entry it retrieves from the map. */ - if (buffer[lenstr] == '\n') { + if (buffer[lenstr] == '\n') buffer[lenstr] = '\0'; - } prof->name = _strtok_escape(buffer, sep, &last); prof->res1 = _strtok_escape(NULL, sep, &last); @@ -100,21 +92,17 @@ str2profattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) void _setprofattr(void) { - trace1(TR_setprofattr, 0); profattr_stayopen = 0; nss_setent(&db_root, _nss_initf_profattr, &context); - trace1(TR_setprofattr, 0); } void _endprofattr(void) { - trace1(TR_endprofattr, 0); profattr_stayopen = 0; nss_endent(&db_root, _nss_initf_profattr, &context); nss_delete(&db_root); - trace1(TR_endprofattr, 0); } @@ -124,12 +112,10 @@ _getprofattr(profstr_t *result, char *buffer, int buflen, int *h_errnop) nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getprofattr, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2profattr); res = nss_getent(&db_root, _nss_initf_profattr, &context, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace2(TR_getprofattr, 1, buflen); return ((profstr_t *)NSS_XbyY_FINI(&arg)); } @@ -141,14 +127,12 @@ _getprofnam(const char *name, profstr_t *result, char *buffer, int buflen, nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getprofnam, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2profattr); arg.key.name = name; arg.stayopen = profattr_stayopen; res = nss_search(&db_root, _nss_initf_profattr, - NSS_DBOP_PROFATTR_BYNAME, &arg); + NSS_DBOP_PROFATTR_BYNAME, &arg); arg.status = res; *errnop = arg.h_errno; - trace2(TR_getprofnam, 1, buflen); return ((profstr_t *)NSS_XbyY_FINI(&arg)); } diff --git a/usr/src/lib/libnsl/nss/getrpcent.c b/usr/src/lib/libnsl/nss/getrpcent.c index 4386b8e247..3db08cc425 100644 --- a/usr/src/lib/libnsl/nss/getrpcent.c +++ b/usr/src/lib/libnsl/nss/getrpcent.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -31,7 +32,6 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include <rpc/rpcent.h> -#include <rpc/trace.h> #include <nss_dbdefs.h> #ifdef NSS_INCLUDE_UNSAFE @@ -47,47 +47,32 @@ static nss_XbyY_buf_t *buffer; /* === ?? set ENOMEM on failure? */ struct rpcent * -getrpcbyname(nam) - const char *nam; +getrpcbyname(const char *nam) { nss_XbyY_buf_t *b; - struct rpcent *res = 0; - trace1(TR_getrpcbyname, 0); - if ((b = GETBUF()) != 0) { - res = getrpcbyname_r(nam, b->result, b->buffer, b->buflen); - } - trace1(TR_getrpcbyname, 1); - return (res); + if ((b = GETBUF()) == 0) + return (NULL); + return (getrpcbyname_r(nam, b->result, b->buffer, b->buflen)); } struct rpcent * -getrpcbynumber(num) - const int num; +getrpcbynumber(const int num) { nss_XbyY_buf_t *b; - struct rpcent *res = 0; - trace2(TR_getrpcbynumber, 0, num); - if ((b = GETBUF()) != 0) { - res = getrpcbynumber_r(num, b->result, b->buffer, b->buflen); - } - trace2(TR_getrpcbynumber, 1, num); - return (res); + if ((b = GETBUF()) == 0) + return (NULL); + return (getrpcbynumber_r(num, b->result, b->buffer, b->buflen)); } struct rpcent * -getrpcent() +getrpcent(void) { nss_XbyY_buf_t *b; - struct rpcent *res = 0; - trace1(TR_getrpcent, 0); - if ((b = GETBUF()) != 0) { - res = getrpcent_r(b->result, b->buffer, b->buflen); - } - trace1(TR_getrpcent, 1); - return (res); + if ((b = GETBUF()) == 0) + return (NULL); + return (getrpcent_r(b->result, b->buffer, b->buflen)); } - #endif /* NSS_INCLUDE_UNSAFE */ diff --git a/usr/src/lib/libnsl/nss/getrpcent_r.c b/usr/src/lib/libnsl/nss/getrpcent_r.c index a209b7948a..076e762840 100644 --- a/usr/src/lib/libnsl/nss/getrpcent_r.c +++ b/usr/src/lib/libnsl/nss/getrpcent_r.c @@ -19,8 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1986-1992 by Sun Microsystems Inc. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. * * Rentrant (MT-safe) getrpcYY interfaces. */ @@ -32,10 +34,8 @@ #include <stdlib.h> #include <string.h> #include <rpc/rpcent.h> -#include <rpc/trace.h> -int str2rpcent(const char *, int, void *, - char *, int); +extern int str2rpcent(const char *, int, void *, char *, int); static int rpc_stayopen; /* Unsynchronized, but it affects only */ /* efficiency, not correctness */ @@ -43,105 +43,74 @@ static DEFINE_NSS_DB_ROOT(db_root); static DEFINE_NSS_GETENT(context); void -_nss_initf_rpc(p) - nss_db_params_t *p; +_nss_initf_rpc(nss_db_params_t *p) { - trace1(TR__nss_initf_rpc, 0); p->name = NSS_DBNAM_RPC; p->default_config = NSS_DEFCONF_RPC; - trace1(TR__nss_initf_rpc, 1); } struct rpcent * -getrpcbyname_r(name, result, buffer, buflen) - const char *name; - struct rpcent *result; - char *buffer; - int buflen; +getrpcbyname_r(const char *name, struct rpcent *result, char *buffer, + int buflen) { nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getrpcbyname_r, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2rpcent); arg.key.name = name; arg.stayopen = rpc_stayopen; res = nss_search(&db_root, _nss_initf_rpc, NSS_DBOP_RPC_BYNAME, &arg); arg.status = res; - NSS_XbyY_FINI(&arg); - trace2(TR_getrpcbyname_r, 1, buflen); - return (struct rpcent *) arg.returnval; + return ((struct rpcent *)NSS_XbyY_FINI(&arg)); } struct rpcent * -getrpcbynumber_r(number, result, buffer, buflen) - const int number; - struct rpcent *result; - char *buffer; - int buflen; +getrpcbynumber_r(const int number, struct rpcent *result, char *buffer, + int buflen) { nss_XbyY_args_t arg; nss_status_t res; - trace3(TR_getrpcbyname_r, 0, number, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2rpcent); arg.key.number = number; arg.stayopen = rpc_stayopen; res = nss_search(&db_root, _nss_initf_rpc, NSS_DBOP_RPC_BYNUMBER, &arg); arg.status = res; - NSS_XbyY_FINI(&arg); - trace3(TR_getrpcbyname_r, 1, number, buflen); - return (struct rpcent *) arg.returnval; + return ((struct rpcent *)NSS_XbyY_FINI(&arg)); } void -setrpcent(stay) - const int stay; +setrpcent(const int stay) { - trace1(TR_setrpcent, 0); rpc_stayopen |= stay; nss_setent(&db_root, _nss_initf_rpc, &context); - trace1(TR_setrpcent, 1); } void -endrpcent() +endrpcent(void) { - trace1(TR_endrpcent, 0); rpc_stayopen = 0; nss_endent(&db_root, _nss_initf_rpc, &context); nss_delete(&db_root); - trace1(TR_endrpcent, 1); } struct rpcent * -getrpcent_r(result, buffer, buflen) - struct rpcent *result; - char *buffer; - int buflen; +getrpcent_r(struct rpcent *result, char *buffer, int buflen) { nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getrpcbyent_r, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2rpcent); /* No key, no stayopen */ res = nss_getent(&db_root, _nss_initf_rpc, &context, &arg); arg.status = res; - NSS_XbyY_FINI(&arg); - trace2(TR_getrpcbyent_r, 1, buflen); - return (struct rpcent *) arg.returnval; + return ((struct rpcent *)NSS_XbyY_FINI(&arg)); } int -str2rpcent(instr, lenstr, ent, buffer, buflen) - const char *instr; - int lenstr; - void *ent; - char *buffer; - int buflen; +str2rpcent(const char *instr, int lenstr, void *ent, char *buffer, int buflen) { struct rpcent *rpc = (struct rpcent *)ent; const char *p, *numstart, *limit, *namestart; @@ -149,12 +118,9 @@ str2rpcent(instr, lenstr, ent, buffer, buflen) char numbuf[12]; char *numend; - trace3(TR_str2rpcent, 0, lenstr, buflen); - if ((instr >= buffer && (buffer + buflen) > instr) - || (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_PARSE; - } + if ((instr >= buffer && (buffer + buflen) > instr) || + (buffer >= instr && (instr + lenstr) > buffer)) + return (NSS_STR_PARSE_PARSE); p = instr; limit = p + lenstr; @@ -168,10 +134,8 @@ str2rpcent(instr, lenstr, ent, buffer, buflen) } namelen = p - namestart; - if (buflen <= namelen) { /* not enough buffer */ - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_ERANGE; - } + if (buflen <= namelen) /* not enough buffer */ + return (NSS_STR_PARSE_ERANGE); (void) memcpy(buffer, namestart, namelen); buffer[namelen] = '\0'; rpc->r_name = buffer; @@ -179,11 +143,8 @@ str2rpcent(instr, lenstr, ent, buffer, buflen) while (p < limit && isspace(*p)) { p++; } - if (p >= limit) { - /* Syntax error -- no RPC number */ - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_PARSE; - } + if (p >= limit) /* Syntax error -- no RPC number */ + return (NSS_STR_PARSE_PARSE); numstart = p; do { p++; /* Find the end of the RPC number */ @@ -191,16 +152,13 @@ str2rpcent(instr, lenstr, ent, buffer, buflen) numlen = p - numstart; if (numlen >= sizeof (numbuf)) { /* Syntax error -- supposed number is too long */ - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_PARSE; + return (NSS_STR_PARSE_PARSE); } (void) memcpy(numbuf, numstart, numlen); numbuf[numlen] = '\0'; rpc->r_number = (int)strtol(numbuf, &numend, 10); - if (*numend != '\0') { - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_PARSE; - } + if (*numend != '\0') + return (NSS_STR_PARSE_PARSE); while (p < limit && isspace(*p)) { p++; @@ -213,21 +171,17 @@ str2rpcent(instr, lenstr, ent, buffer, buflen) if (p >= limit || *p == '#') { /* no aliases, no problem */ char **ptr; - ptr = (char **) ROUND_UP(buffer + namelen + 1, + ptr = (char **)ROUND_UP(buffer + namelen + 1, sizeof (char *)); if ((char *)ptr >= buffer + buflen) { rpc->r_aliases = 0; /* hope they don't try to peek in */ - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_ERANGE; - } else { - *ptr = 0; - rpc->r_aliases = ptr; - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_SUCCESS; + return (NSS_STR_PARSE_ERANGE); } + *ptr = 0; + rpc->r_aliases = ptr; + return (NSS_STR_PARSE_SUCCESS); } rpc->r_aliases = _nss_netdb_aliases(p, (int)(lenstr - (p - instr)), buffer + namelen + 1, (int)(buflen - namelen - 1)); - trace3(TR_str2rpcent, 1, lenstr, buflen); - return NSS_STR_PARSE_SUCCESS; + return (NSS_STR_PARSE_SUCCESS); } diff --git a/usr/src/lib/libnsl/nss/getuserattr.c b/usr/src/lib/libnsl/nss/getuserattr.c index 6b46061a97..b1252f4bb4 100644 --- a/usr/src/lib/libnsl/nss/getuserattr.c +++ b/usr/src/lib/libnsl/nss/getuserattr.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1999 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -31,7 +32,6 @@ #include <limits.h> #include <sys/types.h> #include <nss_dbdefs.h> -#include <rpc/trace.h> #include <string.h> #include <user_attr.h> @@ -55,11 +55,9 @@ static DEFINE_NSS_GETENT(context); void _nss_initf_userattr(nss_db_params_t *p) { - trace1(TR__nss_initf_userattr, 0); p->name = NSS_DBNAM_USERATTR; p->config_name = NSS_DBNAM_PASSWD; /* use config for "passwd" */ p->default_config = NSS_DEFCONF_USERATTR; - trace1(TR__nss_initf_userattr, 1); } @@ -72,22 +70,16 @@ _nss_initf_userattr(nss_db_params_t *p) int str2userattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) { - char *str = (char *)NULL; - char *last = (char *)NULL; + char *last = NULL; char *sep = KV_TOKEN_DELIMIT; userstr_t *user = (userstr_t *)ent; - trace3(TR_str2userattr, 0, lenstr, buflen); if ((instr >= buffer && (buffer + buflen) > instr) || - (buffer >= instr && (instr + lenstr) > buffer)) { - trace3(TR_str2userattr, 1, lenstr, buflen); + (buffer >= instr && (instr + lenstr) > buffer)) return (NSS_STR_PARSE_PARSE); - } - if (lenstr >= buflen) { - trace3(TR_str2userattr, 1, lenstr, buflen); + if (lenstr >= buflen) return (NSS_STR_PARSE_ERANGE); - } - strncpy(buffer, instr, buflen); + (void) strncpy(buffer, instr, buflen); /* * Remove newline that nis (yp_match) puts at the * end of the entry it retrieves from the map. @@ -109,21 +101,17 @@ str2userattr(const char *instr, int lenstr, void *ent, char *buffer, int buflen) void _setuserattr(void) { - trace1(TR_setuserattr, 0); userattr_stayopen = 0; nss_setent(&db_root, _nss_initf_userattr, &context); - trace1(TR_setuserattr, 0); } void _enduserattr(void) { - trace1(TR_enduserattr, 0); userattr_stayopen = 0; nss_endent(&db_root, _nss_initf_userattr, &context); nss_delete(&db_root); - trace1(TR_enduserattr, 0); } @@ -133,12 +121,10 @@ _getuserattr(userstr_t *result, char *buffer, int buflen, int *h_errnop) nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getuserattr, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2userattr); res = nss_getent(&db_root, _nss_initf_userattr, &context, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace2(TR_getuserattr, 1, buflen); return ((userstr_t *)NSS_XbyY_FINI(&arg)); } @@ -148,10 +134,8 @@ _fgetuserattr(FILE *f, userstr_t *result, char *buffer, int buflen) { nss_XbyY_args_t arg; - trace2(TR_getuserattr, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2userattr); _nss_XbyY_fgets(f, &arg); - trace2(TR_getuserattr, 1, buflen); return ((userstr_t *)NSS_XbyY_FINI(&arg)); } @@ -164,7 +148,6 @@ _getusernam(const char *name, userstr_t *result, char *buffer, int buflen, nss_XbyY_args_t arg; nss_status_t res; - trace2(TR_getusernam, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2userattr); arg.key.name = name; arg.stayopen = userattr_stayopen; @@ -172,6 +155,5 @@ _getusernam(const char *name, userstr_t *result, char *buffer, int buflen, NSS_DBOP_USERATTR_BYNAME, &arg); arg.status = res; *errnop = arg.h_errno; - trace2(TR_getusernam, 1, buflen); return ((userstr_t *)NSS_XbyY_FINI(&arg)); } diff --git a/usr/src/lib/libnsl/nss/inet_ntop.c b/usr/src/lib/libnsl/nss/inet_ntop.c index a7eb0d8a1d..0d974866cc 100644 --- a/usr/src/lib/libnsl/nss/inet_ntop.c +++ b/usr/src/lib/libnsl/nss/inet_ntop.c @@ -1,9 +1,10 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -/* Copyright (c) 1996 by Internet Software Consortium. +/* + * Copyright (c) 1996 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -18,6 +19,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ + #pragma ident "%Z%%M% %I% %E% SMI" #include <stdlib.h> @@ -31,10 +33,11 @@ #include <sys/socket.h> #include <errno.h> -static const char *inet_ntop4(const u_char *, char *, socklen_t); -static const char *inet_ntop6(const u_char *, char *, socklen_t); +static const char *inet_ntop4(const uchar_t *, char *, socklen_t); +static const char *inet_ntop6(const uchar_t *, char *, socklen_t); -/* char * +/* + * char * * inet_ntop(af, src, dst, size) * convert a network format address to presentation format. * return: @@ -55,45 +58,48 @@ inet_ntop(int af, const void *src, char *dst, socklen_t size) /* NOTREACHED */ } -/* const char * +/* + * const char * * inet_ntop4(src, dst, size) * format an IPv4 address, more or less like inet_ntoa() * return: * `dst' (as a const) * notes: * (1) uses no statics - * (2) takes a u_char* not an in_addr as input + * (2) takes a uchar_t* not an in_addr as input */ #ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) +/* CSTYLED */ +#define SPRINTF(x) strlen(sprintf/**/x) #else -# define SPRINTF(x) ((size_t)sprintf x) +#define SPRINTF(x) ((size_t)sprintf x) #endif static const char * -inet_ntop4(const u_char *src, char *dst, socklen_t size) +inet_ntop4(const uchar_t *src, char *dst, socklen_t size) { static const char fmt[] = "%u.%u.%u.%u"; - char tmp[sizeof "255.255.255.255"]; + char tmp[sizeof ("255.255.255.255")]; if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) > size) { errno = ENOSPC; return (NULL); } - strcpy(dst, tmp); + (void) strcpy(dst, tmp); return (dst); } -/* const char * +/* + * const char * * inet_ntop6(src, dst, size) * convert IPv6 binary address into presentation (printable) format */ -#define INADDRSZ 4 +#define INADDRSZ 4 #define IN6ADDRSZ 16 -#define INT16SZ 2 +#define INT16SZ 2 static const char * -inet_ntop6(const u_char *src, char *dst, socklen_t size) +inet_ntop6(const uchar_t *src, char *dst, socklen_t size) { /* * Note that int32_t and int16_t need only be "at least" large enough @@ -102,9 +108,9 @@ inet_ntop6(const u_char *src, char *dst, socklen_t size) * Keep this in mind if you think this function should have been coded * to use pointer overlays. All the world's not a VAX. */ - char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp; + char tmp[sizeof ("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")], *tp; struct { int base, len; } best, cur; - u_int words[IN6ADDRSZ / INT16SZ]; + uint_t words[IN6ADDRSZ / INT16SZ]; int i; /* @@ -112,7 +118,7 @@ inet_ntop6(const u_char *src, char *dst, socklen_t size) * Copy the input (bytewise) array into a wordwise array. * Find the longest run of 0x00's in src[] for :: shorthanding. */ - memset(words, '\0', sizeof words); + (void) memset(words, '\0', sizeof (words)); for (i = 0; i < IN6ADDRSZ; i++) words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); best.base = -1; @@ -156,7 +162,7 @@ inet_ntop6(const u_char *src, char *dst, socklen_t size) /* Is this address an encapsulated IPv4? */ if (i == 6 && best.base == 0 && (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { - if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp))) + if (!inet_ntop4(src+12, tp, sizeof (tmp) - (tp - tmp))) return (NULL); tp += strlen(tp); break; @@ -175,7 +181,6 @@ inet_ntop6(const u_char *src, char *dst, socklen_t size) errno = ENOSPC; return (NULL); } - strcpy(dst, tmp); + (void) strcpy(dst, tmp); return (dst); } - diff --git a/usr/src/lib/libnsl/nss/inet_pton.c b/usr/src/lib/libnsl/nss/inet_pton.c index f2836782d6..e7d43a5721 100644 --- a/usr/src/lib/libnsl/nss/inet_pton.c +++ b/usr/src/lib/libnsl/nss/inet_pton.c @@ -1,9 +1,10 @@ /* - * Copyright (c) 1998, by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ -/* Copyright (c) 1996 by Internet Software Consortium. +/* + * Copyright (c) 1996 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -18,6 +19,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ + #pragma ident "%Z%%M% %I% %E% SMI" #include <stdlib.h> @@ -31,10 +33,11 @@ #include <sys/socket.h> #include <errno.h> -static int inet_pton4 (const char *src, u_char *dst); -static int inet_pton6 (const char *src, u_char *dst); +static int inet_pton4(const char *src, uchar_t *dst); +static int inet_pton6(const char *src, uchar_t *dst); -/* int +/* + * int * inet_pton(af, src, dst) * convert from presentation format (which usually means ASCII printable) * to network format (which is usually some kind of binary format). @@ -46,10 +49,7 @@ static int inet_pton6 (const char *src, u_char *dst); * Paul Vixie, 1996. Taken from on297-gate:dns stuff */ int -inet_pton(af, src, dst) - int af; - const char *src; - void *dst; +inet_pton(int af, const char *src, void *dst) { switch (af) { case AF_INET: @@ -63,7 +63,8 @@ inet_pton(af, src, dst) /* NOTREACHED */ } -/* int +/* + * int * inet_pton4(src, dst) * like inet_aton() but without all the hexadecimal and shorthand. * return: @@ -72,17 +73,16 @@ inet_pton(af, src, dst) * does not touch `dst' unless it's returning 1. * */ -#define INADDRSZ 4 +#define INADDRSZ 4 #define IN6ADDRSZ 16 -#define INT16SZ 2 +#define INT16SZ 2 + static int -inet_pton4(src, dst) - const char *src; - u_char *dst; +inet_pton4(const char *src, uchar_t *dst) { static const char digits[] = "0123456789"; int saw_digit, octets, ch; - u_char tmp[INADDRSZ], *tp; + uchar_t tmp[INADDRSZ], *tp; saw_digit = 0; octets = 0; @@ -91,12 +91,12 @@ inet_pton4(src, dst) const char *pch; if ((pch = strchr(digits, ch)) != NULL) { - u_int new = *tp * 10 + (pch - digits); + uint_t new = *tp * 10 + (pch - digits); if (new > 255) return (0); *tp = new; - if (! saw_digit) { + if (!saw_digit) { if (++octets > 4) return (0); saw_digit = 1; @@ -112,12 +112,13 @@ inet_pton4(src, dst) if (octets < 4) return (0); - memcpy(dst, tmp, INADDRSZ); + (void) memcpy(dst, tmp, INADDRSZ); return (1); } -/* int +/* + * int * inet_pton6(src, dst) * convert presentation level address to network order binary form. * return: @@ -132,18 +133,16 @@ inet_pton4(src, dst) static int -inet_pton6(src, dst) - const char *src; - u_char *dst; +inet_pton6(const char *src, uchar_t *dst) { static const char xdigits_l[] = "0123456789abcdef", - xdigits_u[] = "0123456789ABCDEF"; - u_char tmp[IN6ADDRSZ], *tp, *endp, *colonp; + xdigits_u[] = "0123456789ABCDEF"; + uchar_t tmp[IN6ADDRSZ], *tp, *endp, *colonp; const char *xdigits, *curtok; int ch, saw_xdigit; - u_int val; + uint_t val; - memset((tp = tmp), '\0', IN6ADDRSZ); + (void) memset((tp = tmp), '\0', IN6ADDRSZ); endp = tp + IN6ADDRSZ; colonp = NULL; /* Leading :: requires some special handling. */ @@ -178,8 +177,8 @@ inet_pton6(src, dst) } if (tp + INT16SZ > endp) return (0); - *tp++ = (u_char) (val >> 8) & 0xff; - *tp++ = (u_char) val & 0xff; + *tp++ = (uchar_t)(val >> 8) & 0xff; + *tp++ = (uchar_t)val & 0xff; saw_xdigit = 0; val = 0; continue; @@ -195,8 +194,8 @@ inet_pton6(src, dst) if (saw_xdigit) { if (tp + INT16SZ > endp) return (0); - *tp++ = (u_char) (val >> 8) & 0xff; - *tp++ = (u_char) val & 0xff; + *tp++ = (uchar_t)(val >> 8) & 0xff; + *tp++ = (uchar_t)val & 0xff; } if (colonp != NULL) { /* @@ -216,6 +215,6 @@ inet_pton6(src, dst) } if (tp != endp) return (0); - memcpy(dst, tmp, IN6ADDRSZ); + (void) memcpy(dst, tmp, IN6ADDRSZ); return (1); } diff --git a/usr/src/lib/libnsl/nss/netdir_inet.c b/usr/src/lib/libnsl/nss/netdir_inet.c index cc9ceaf809..5771c6d716 100644 --- a/usr/src/lib/libnsl/nss/netdir_inet.c +++ b/usr/src/lib/libnsl/nss/netdir_inet.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -82,7 +83,6 @@ #include <sys/dlpi.h> #include <nss_dbdefs.h> #include <nss_netdir.h> -#include <rpc/trace.h> #include <syslog.h> #include <nsswitch.h> #include "nss.h" @@ -92,11 +92,6 @@ #define UDPDEV "/dev/udp" #define UDP6DEV "/dev/udp6" -#define GETHOSTBUF(host_buf) \ - NSS_XbyY_ALLOC(&host_buf, sizeof (struct hostent), NSS_BUFLEN_HOSTS) -#define GETSERVBUF(serv_buf) \ - NSS_XbyY_ALLOC(&serv_buf, sizeof (struct servent), NSS_BUFLEN_SERVICES) - #ifdef PIC #define DOOR_GETHOSTBYNAME_R _door_gethostbyname_r #define DOOR_GETHOSTBYADDR_R _door_gethostbyaddr_r @@ -150,7 +145,6 @@ struct servent *_switch_getservbyport_r(int, const char *, struct servent *, static int __herrno2netdir(int h_errnop); static struct ifinfo *get_local_info(void); -static int islocal(); static int getbroadcastnets(struct netconfig *, struct in_addr **); static int hent2ndaddr(int, char **, int *, struct nd_addrlist **); static int ndaddr2hent(int, const char *, struct nd_addrlist *, @@ -217,13 +211,13 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, */ if (strcmp(args->arg.nss.host.name, LOCALHOST) == 0) { - mutex_lock(&nd_addr_lock); + (void) mutex_lock(&nd_addr_lock); IN_SET_LOOPBACK_ADDR(&sa_con); _nderror = ndaddr2hent(AF_INET, args->arg.nss.host.name, &nd_conaddrlist, res->nss.host.hent, args->arg.nss.host.buf, args->arg.nss.host.buflen); - mutex_unlock(&nd_addr_lock); + (void) mutex_unlock(&nd_addr_lock); if (_nderror != ND_OK) *(res->nss.host.herrno_p) = nd2herrno(_nderror); @@ -236,15 +230,15 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, */ if (_inet_aton(args->arg.nss.host.name, (struct in_addr *)&dotnameaddr)) { - mutex_lock(&nd_addr_lock); - (void) memset((char *)&sa_con, 0, sizeof (sa_con)); + (void) mutex_lock(&nd_addr_lock); + (void) memset(&sa_con, 0, sizeof (sa_con)); sa_con.sin_family = AF_INET; sa_con.sin_addr.s_addr = dotnameaddr; _nderror = ndaddr2hent(AF_INET, args->arg.nss.host.name, &nd_conaddrlist, res->nss.host.hent, args->arg.nss.host.buf, args->arg.nss.host.buflen); - mutex_unlock(&nd_addr_lock); + (void) mutex_unlock(&nd_addr_lock); if (_nderror != ND_OK) *(res->nss.host.herrno_p) = nd2herrno(_nderror); @@ -261,17 +255,17 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, &v6nameaddr) != 0)) { int ret; - mutex_lock(&nd6_addr_lock); - (void) memset((char *)&sa6_con, 0, sizeof (sa6_con)); + (void) mutex_lock(&nd6_addr_lock); + (void) memset(&sa6_con, 0, sizeof (sa6_con)); sa6_con.sin6_family = AF_INET6; - memcpy((char *)&(sa6_con.sin6_addr.s6_addr), + (void) memcpy(&(sa6_con.sin6_addr.s6_addr), &v6nameaddr, sizeof (struct in6_addr)); ret = ndaddr2hent(AF_INET6, args->arg.nss.host6.name, &nd6_conaddrlist, res->nss.host.hent, args->arg.nss.host6.buf, args->arg.nss.host6.buflen); - mutex_unlock(&nd6_addr_lock); + (void) mutex_unlock(&nd6_addr_lock); if (ret != ND_OK) *(res->nss.host.herrno_p) = nd2herrno(ret); else @@ -376,8 +370,7 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, _nderror = ND_NOHOST; return (ND_NOHOST); } - baddrlist = - (char **)malloc((bnets+1)*sizeof (char *)); + baddrlist = malloc((bnets+1)*sizeof (char *)); if (baddrlist == NULL) FREE_return(ND_NOMEM); for (i = 0; i < bnets; i++) @@ -530,10 +523,8 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, args->arg.nss.host6.flags, res->nss.host.herrno_p); - if (he == NULL) { - trace1(TR__get_hostserv_inetnetdir_byname, 12); + if (he == NULL) return (_nderror = ND_NOHOST); - } return (_nderror = ND_OK); case NSS_SERV: @@ -560,7 +551,8 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, * an indexed database of well-known ports in the name * of performance ? */ - GETSERVBUF(ndbuf4switch); + ndbuf4switch = _nss_XbyY_buf_alloc( + sizeof (struct servent), NSS_BUFLEN_SERVICES); if (ndbuf4switch == 0) FREE_return(ND_NOMEM); se = _switch_getservbyname_r(args->arg.nd_hs->h_serv, @@ -577,7 +569,9 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, if (haddrlist == 0) { int h_errnop = 0; - GETHOSTBUF(ndbuf4switch); + ndbuf4switch = _nss_XbyY_buf_alloc( + sizeof (struct hostent), + NSS_BUFLEN_HOSTS); if (ndbuf4switch == 0) { _nderror = ND_NOMEM; return (ND_NOMEM); @@ -655,7 +649,9 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, * ports in the name * of performance ? */ - GETSERVBUF(ndbuf4switch); + ndbuf4switch = _nss_XbyY_buf_alloc( + sizeof (struct servent), + NSS_BUFLEN_SERVICES); if (ndbuf4switch == 0) FREE_return(ND_NOMEM); se = _switch_getservbyname_r( @@ -673,7 +669,9 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, if (haddrlist == 0) { int h_errnop = 0; - GETHOSTBUF(ndbuf4switch); + ndbuf4switch = _nss_XbyY_buf_alloc( + sizeof (struct hostent), + NSS_BUFLEN_HOSTS); if (ndbuf4switch == 0) { _nderror = ND_NOMEM; return (ND_NOMEM); @@ -797,6 +795,7 @@ _get_hostserv_inetnetdir_byname(struct netconfig *nconf, */ _nderror = ndaddr2srent(service.h_serv, args->arg.nss.serv.proto, + /* LINTED pointer cast */ ((struct sockaddr_in *)addrs->n_addrs->buf)->sin_port, res->nss.serv, args->arg.nss.serv.buf, args->arg.nss.serv.buflen); @@ -837,15 +836,16 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, * Worth the performance gain: assuming a lot of inet apps * actively use "127.0.0.1". */ + /* LINTED pointer cast */ if (*(uint32_t *)(args->arg.nss.host.addr) == htonl(INADDR_LOOPBACK)) { - mutex_lock(&nd_addr_lock); + (void) mutex_lock(&nd_addr_lock); IN_SET_LOOPBACK_ADDR(&sa_con); _nderror = ndaddr2hent(AF_INET, LOCALHOST, &nd_conaddrlist, res->nss.host.hent, args->arg.nss.host.buf, args->arg.nss.host.buflen); - mutex_unlock(&nd_addr_lock); + (void) mutex_unlock(&nd_addr_lock); if (_nderror != ND_OK) *(res->nss.host.herrno_p) = nd2herrno(_nderror); @@ -867,6 +867,7 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, * Validate the address which was passed * as the request. */ + /* LINTED pointer cast */ sin = (struct sockaddr_in *)args->arg.nd_nbuf->buf; if ((args->arg.nd_nbuf->len != @@ -892,6 +893,7 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, * Validate the address which was passed * as the request. */ + /* LINTED pointer cast */ sin6 = (struct sockaddr_in6 *)args->arg.nd_nbuf->buf; if ((args->arg.nd_nbuf->len != @@ -966,11 +968,13 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, case NETDIR_BY: case NETDIR_BY_NOSRV: - GETSERVBUF(ndbuf4serv); + ndbuf4serv = _nss_XbyY_buf_alloc(sizeof (struct servent), + NSS_BUFLEN_SERVICES); if (ndbuf4serv == 0) { _nderror = ND_NOMEM; return (_nderror); } + /* LINTED pointer cast */ sa = (struct sockaddr_in *)(args->arg.nd_nbuf->buf); addr4 = (struct in_addr *)&(sa->sin_addr); @@ -998,7 +1002,8 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, } } - GETHOSTBUF(ndbuf4host); + ndbuf4host = _nss_XbyY_buf_alloc(sizeof (struct hostent), + NSS_BUFLEN_HOSTS); if (ndbuf4host == 0) { if (ndbuf4serv) NSS_XbyY_FREE(&ndbuf4serv); @@ -1059,11 +1064,13 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, case NETDIR_BY6: case NETDIR_BY_NOSRV6: - GETSERVBUF(ndbuf4serv); + ndbuf4serv = _nss_XbyY_buf_alloc(sizeof (struct servent), + NSS_BUFLEN_SERVICES); if (ndbuf4serv == 0) { _nderror = ND_NOMEM; return (ND_NOMEM); } + /* LINTED pointer cast */ sin6 = (struct sockaddr_in6 *)(args->arg.nd_nbuf->buf); /* @@ -1089,7 +1096,8 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, } } - GETHOSTBUF(ndbuf4host); + ndbuf4host = _nss_XbyY_buf_alloc(sizeof (struct hostent), + NSS_BUFLEN_HOSTS); if (ndbuf4host == 0) { if (ndbuf4serv) NSS_XbyY_FREE(&ndbuf4serv); @@ -1137,6 +1145,7 @@ _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf, case NSS_HOST: + /* LINTED pointer cast */ sa.sin_addr.s_addr = *(uint32_t *)args->arg.nss.host.addr; sa.sin_family = AF_INET; /* Hopefully, third-parties get this optimization */ @@ -1302,7 +1311,6 @@ _switch_gethostbyname_r(const char *name, struct hostent *result, char *buffer, nss_XbyY_args_t arg; nss_status_t res; - trace2(TR__switch_gethostbyname_r, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2hostent); arg.key.name = name; arg.stayopen = 0; @@ -1312,7 +1320,6 @@ _switch_gethostbyname_r(const char *name, struct hostent *result, char *buffer, *h_errnop = arg.h_errno; if (arg.returnval != NULL) order_haddrlist_af(result->h_addrtype, result->h_addr_list); - trace2(TR__switch_gethostbyname_r, 1, buflen); return ((struct hostent *)NSS_XbyY_FINI(&arg)); } @@ -1323,7 +1330,6 @@ _switch_getipnodebyname_r(const char *name, struct hostent *result, nss_XbyY_args_t arg; nss_status_t res; - trace2(TR__switch_getipnodebyname_r, 0, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2hostent6); arg.key.ipnode.name = name; arg.key.ipnode.af_family = af_family; @@ -1335,7 +1341,6 @@ _switch_getipnodebyname_r(const char *name, struct hostent *result, *h_errnop = arg.h_errno; if (arg.returnval != NULL) order_haddrlist_af(result->h_addrtype, result->h_addr_list); - trace2(TR__switch_getipnodebyname_r, 1, buflen); return ((struct hostent *)NSS_XbyY_FINI(&arg)); } @@ -1346,7 +1351,6 @@ _switch_gethostbyaddr_r(const char *addr, int len, int type, nss_XbyY_args_t arg; nss_status_t res; - trace3(TR__switch_gethostbyaddr_r, 0, len, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2hostent); arg.key.hostaddr.addr = addr; arg.key.hostaddr.len = len; @@ -1356,7 +1360,6 @@ _switch_gethostbyaddr_r(const char *addr, int len, int type, NSS_DBOP_HOSTS_BYADDR, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace3(TR__switch_gethostbyaddr_r, 1, len, buflen); return (struct hostent *)NSS_XbyY_FINI(&arg); } @@ -1367,7 +1370,6 @@ _switch_getipnodebyaddr_r(const char *addr, int len, int type, nss_XbyY_args_t arg; nss_status_t res; - trace3(TR__switch_getipnodebyaddr_r, 0, len, buflen); NSS_XbyY_INIT(&arg, result, buffer, buflen, str2hostent6); arg.key.hostaddr.addr = addr; arg.key.hostaddr.len = len; @@ -1377,14 +1379,12 @@ _switch_getipnodebyaddr_r(const char *addr, int len, int type, NSS_DBOP_IPNODES_BYADDR, &arg); arg.status = res; *h_errnop = arg.h_errno; - trace3(TR__switch_getipnodebyaddr_r, 1, len, buflen); return (struct hostent *)NSS_XbyY_FINI(&arg); } static void _nss_initf_services(nss_db_params_t *p) { - /* === need tracepoints */ p->name = NSS_DBNAM_SERVICES; p->default_config = NSS_DEFCONF_SERVICES; } @@ -1689,7 +1689,9 @@ order_haddrlist_inet(char **haddrlist, size_t addrcount) (sizeof (struct in_addr *) + sizeof (addr_class_t)); if ((sortbuf = malloc(sortbuf_size)) == NULL) return; + /* LINTED pointer cast */ sorted = (struct in_addr **)sortbuf; + /* LINTED pointer cast */ sortclass = (addr_class_t *)(sortbuf + (addrcount * sizeof (struct in_addr *))); @@ -1738,7 +1740,7 @@ order_haddrlist_inet(char **haddrlist, size_t addrcount) * array to keep track of the number of addresses in each * class. */ - memset(classcount, 0, sizeof (classcount)); + (void) memset(classcount, 0, sizeof (classcount)); for (i = 0; i < addrcount; i++) { if (__inet_address_is_local_af(localinfo, AF_INET, inaddrlist[i])) @@ -1783,7 +1785,6 @@ static void order_haddrlist_inet6(char **haddrlist, size_t addrcount) { struct dstinforeq *dinfo, *dinfoptr; - int index; struct in6_addr **in6addrlist = (struct in6_addr **)haddrlist; struct in6_addr **in6addr; @@ -2170,8 +2171,7 @@ hsents2ndhostservs(struct hostent *he, struct servent *se, int hosts, servs, i, j; char **hn, **sn; - if ((result = (struct nd_hostservlist *) - malloc(sizeof (struct nd_hostservlist))) == 0) + if ((result = malloc(sizeof (struct nd_hostservlist))) == 0) return (ND_NOMEM); /* @@ -2184,9 +2184,8 @@ hsents2ndhostservs(struct hostent *he, struct servent *se, else servs = 1; - if ((hs = (struct nd_hostserv *)calloc(hosts * servs, - sizeof (struct nd_hostserv))) == 0) { - free((void *)result); + if ((hs = calloc(hosts * servs, sizeof (struct nd_hostserv))) == 0) { + free(result); return (ND_NOMEM); } @@ -2215,8 +2214,8 @@ hsents2ndhostservs(struct hostent *he, struct servent *se, hs->h_serv = strdup(*sn++); if ((hs->h_host == 0) || (hs->h_serv == 0)) { - free((void *)result->h_hostservs); - free((void *)result); + free(result->h_hostservs); + free(result); return (ND_NOMEM); } hs++; @@ -2271,6 +2270,7 @@ ndaddr2hent(int af, const char *nam, struct nd_addrlist *addrs, for (na = addrs->n_addrs, i = 0; i < count; na++, i++) { --addrp; (void) memcpy(addrp, + /* LINTED pointer cast */ &((struct sockaddr_in *)na->buf)->sin_addr, sizeof (*addrp)); *addrvec++ = (char *)addrp; @@ -2288,6 +2288,7 @@ ndaddr2hent(int af, const char *nam, struct nd_addrlist *addrs, for (na = addrs->n_addrs, i = 0; i < count; na++, i++) { --addr6p; (void) memcpy(addr6p, + /* LINTED pointer cast */ &((struct sockaddr_in6 *)na->buf)->sin6_addr, sizeof (*addr6p)); *addrvec++ = (char *)addr6p; @@ -2352,8 +2353,9 @@ ndhostserv2hent(struct netbuf *nbuf, struct nd_hostservlist *addrs, /* First, give the lonely address a specious home in h_addr_list. */ aliasp = (char *)ROUND_UP(buffer, sizeof (sa->sin_addr)); + /* LINTED pointer cast */ sa = (struct sockaddr_in *)nbuf->buf; - (void) memcpy(aliasp, (char *)&(sa->sin_addr), sizeof (sa->sin_addr)); + (void) memcpy(aliasp, &(sa->sin_addr), sizeof (sa->sin_addr)); aliasvec = (char **)ROUND_UP(aliasp + sizeof (sa->sin_addr), sizeof (*aliasvec)); result->h_addr_list = aliasvec; @@ -2370,7 +2372,7 @@ ndhostserv2hent(struct netbuf *nbuf, struct nd_hostservlist *addrs, result->h_aliases = aliasvec; hs = addrs->h_hostservs; - if (! hs) + if (!hs) return (ND_NOHOST); length = strlen(hs->h_host) + 1; @@ -2433,7 +2435,7 @@ ndhostserv2srent(int port, const char *proto, struct nd_hostservlist *addrs, result->s_aliases = aliasvec; hs = addrs->h_hostservs; - if (! hs) + if (!hs) return (ND_NOHOST); host_cname = hs->h_host; @@ -2477,28 +2479,21 @@ ndhostserv2srent(int port, const char *proto, struct nd_hostservlist *addrs, static int nd2herrno(int nerr) { - trace1(TR_nd2herrno, 0); switch (nerr) { case ND_OK: - trace1(TR_nd2herrno, 1); return (0); case ND_TRY_AGAIN: - trace1(TR_nd2herrno, 1); return (TRY_AGAIN); case ND_NO_RECOVERY: case ND_BADARG: case ND_NOMEM: - trace1(TR_nd2herrno, 1); return (NO_RECOVERY); case ND_NO_DATA: - trace1(TR_nd2herrno, 1); return (NO_DATA); case ND_NOHOST: case ND_NOSERV: - trace1(TR_nd2herrno, 1); return (HOST_NOT_FOUND); default: - trace1(TR_nd2herrno, 1); return (NO_RECOVERY); } } @@ -2531,7 +2526,7 @@ nss_ioctl(int af, int cmd, void *arg) if (errno != EINTR) break; } - close(fd); + (void) close(fd); return (retv); } @@ -2603,9 +2598,10 @@ getifnum: _nderror = ND_SYSTEM; return (NULL); } + /* LINTED pointer cast */ lifr = (struct lifreq *)buf; numifs = lifc.lifc_len/sizeof (lifreq); - localinfo = (struct ifinfo *)malloc(ifinfosize(numifs)); + localinfo = malloc(ifinfosize(numifs)); if (localinfo == NULL) { (void) syslog(LOG_ERR, "n2a get_local_info: malloc failed: %m"); free(buf); @@ -2613,6 +2609,7 @@ getifnum: return (NULL); } + /* LINTED pointer cast */ localinfo->addresses = (struct __ifaddr *) ((char *)localinfo + sizeof (struct ifinfo)); @@ -2682,23 +2679,6 @@ __inet_ifassign(sa_family_t af, struct __ifaddr *ifa, __ifaddr_type type, return (1); } -static int -islocal(struct ifinfo *localinfo, struct in_addr addr) -{ - int i; - - if (!localinfo) - return (0); - - for (i = 0; i < localinfo->count; i++) { - if (ifaf(i) == AF_INET && - ((addr.s_addr & ifmask4(i).s_addr) == - (ifaddr4(i).s_addr & ifmask4(i).s_addr))) - return (1); - } - return (0); -} - /* * Some higher-level routines for determining if an address is * on a local network. @@ -2802,11 +2782,14 @@ __inet_uaddr_is_local(void *p, struct netconfig *nc, char *uaddr) if (taddr == 0) return (0); + /* LINTED pointer cast */ af = ((struct sockaddr *)taddr->buf)->sa_family; ret = __inet_address_is_local_af(p, af, (af == AF_INET6) ? + /* LINTED pointer cast */ (void *)&((struct sockaddr_in6 *)taddr->buf)->sin6_addr : + /* LINTED pointer cast */ (void *)&((struct sockaddr_in *)taddr->buf)->sin_addr); netdir_free(taddr, ND_ADDR); @@ -2855,7 +2838,6 @@ __inet_get_uaddr(void *p, struct netconfig *nc, int n) char *uaddr; struct sockaddr_in sin4; struct sockaddr_in6 sin6; - struct sockaddr *sin; struct netbuf nb; if (localinfo == 0 || nc == 0 || n >= localinfo->count) @@ -2864,7 +2846,7 @@ __inet_get_uaddr(void *p, struct netconfig *nc, int n) if (ifaf(n) == AF_INET6) { if (strcmp(NC_INET6, nc->nc_protofmly) != 0) return (0); - memset(&sin6, 0, sizeof (sin6)); + (void) memset(&sin6, 0, sizeof (sin6)); sin6.sin6_family = AF_INET6; sin6.sin6_addr = ifaddr6(n); nb.buf = (char *)&sin6; @@ -2872,7 +2854,7 @@ __inet_get_uaddr(void *p, struct netconfig *nc, int n) } else { if (strcmp(NC_INET, nc->nc_protofmly) != 0) return (0); - memset(&sin4, 0, sizeof (sin4)); + (void) memset(&sin4, 0, sizeof (sin4)); sin4.sin_family = AF_INET; sin4.sin_addr = ifaddr4(n); nb.buf = (char *)&sin4; @@ -2944,13 +2926,13 @@ getbroadcastnets(struct netconfig *tp, struct in_addr **addrs) } if (ioctl(fd, SIOCGIFNUM, (char *)&numifs) < 0) numifs = MAXIFS; - buf = (char *)malloc(numifs * sizeof (struct ifreq)); + buf = malloc(numifs * sizeof (struct ifreq)); if (buf == NULL) { (void) syslog(LOG_ERR, "broadcast: malloc failed: %m"); (void) close(fd); return (0); } - *addrs = (struct in_addr *)malloc(numifs * sizeof (struct in_addr)); + *addrs = malloc(numifs * sizeof (struct in_addr)); if (*addrs == NULL) { (void) syslog(LOG_ERR, "broadcast: malloc failed: %m"); free(buf); @@ -2973,6 +2955,7 @@ getbroadcastnets(struct netconfig *tp, struct in_addr **addrs) } retry: + /* LINTED pointer cast */ ifr = (struct ifreq *)buf; for (i = 0, n = ifc.ifc_len / (int)sizeof (struct ifreq); n > 0; n--, ifr++) { @@ -2986,6 +2969,7 @@ retry: (ifr->ifr_addr.sa_family != AF_INET)) continue; if (ifreq.ifr_flags & IFF_BROADCAST) { + /* LINTED pointer cast */ sin = (struct sockaddr_in *)&ifr->ifr_addr; if (ioctl(fd, SIOCGIFBRDADDR, (char *)&ifreq) < 0) { /* May not work with other implementation */ @@ -2995,6 +2979,7 @@ retry: if (!in_list(*addrs, i, a)) (*addrs)[i++] = a; } else { + /* LINTED pointer cast */ a = ((struct sockaddr_in *) &ifreq.ifr_addr)->sin_addr; if (!in_list(*addrs, i, a)) @@ -3003,6 +2988,7 @@ retry: continue; } if (use_loopback && (ifreq.ifr_flags & IFF_LOOPBACK)) { + /* LINTED pointer cast */ sin = (struct sockaddr_in *)&ifr->ifr_addr; a = sin->sin_addr; if (!in_list(*addrs, i, a)) @@ -3012,6 +2998,7 @@ retry: if (ifreq.ifr_flags & IFF_POINTOPOINT) { if (ioctl(fd, SIOCGIFDSTADDR, (char *)&ifreq) < 0) continue; + /* LINTED pointer cast */ a = ((struct sockaddr_in *) &ifreq.ifr_addr)->sin_addr; if (!in_list(*addrs, i, a)) @@ -3089,6 +3076,6 @@ _read_nsw_file(void) break; } } - __nsl_fclose(defl); + (void) __nsl_fclose(defl); return (nosort); } diff --git a/usr/src/lib/libnsl/nss/netdir_inet_sundry.c b/usr/src/lib/libnsl/nss/netdir_inet_sundry.c index 981a989a43..742e7408b2 100644 --- a/usr/src/lib/libnsl/nss/netdir_inet_sundry.c +++ b/usr/src/lib/libnsl/nss/netdir_inet_sundry.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * lib/libnsl/nss/netdir_inet_sundry.c @@ -44,6 +45,7 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> +#include <strings.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> @@ -63,7 +65,6 @@ #include <netinet/udp.h> #include <arpa/inet.h> #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/rpc_com.h> #include <syslog.h> #include <values.h> @@ -82,10 +83,9 @@ #define SOV_DEFAULT 1 /* Select based on so_default_version */ #define SOV_SOCKBSD 3 /* Socket with no streams operations */ -extern int _so_socket(); -extern int _so_connect(); -extern int _so_getsockname(); -extern int bzero(); +extern int _so_socket(int, int, int, char *, int); +extern int _so_connect(int, struct sockaddr *, socklen_t, int); +extern int _so_getsockname(int, struct sockaddr *, socklen_t *, int); static char *inet_netdir_mergeaddr(struct netconfig *, char *, char *); @@ -98,11 +98,7 @@ static struct netbuf *ipv6_uaddr2taddr(char *); extern char *inet_ntoa_r(struct in_addr, char *); int -__inet_netdir_options(tp, opts, fd, par) - struct netconfig *tp; - int opts; - int fd; - char *par; +__inet_netdir_options(struct netconfig *tp, int opts, int fd, char *par) { struct nd_mergearg *ma; @@ -111,10 +107,13 @@ __inet_netdir_options(tp, opts, fd, par) /* Every one is allowed to broadcast without asking */ return (ND_OK); case ND_SET_RESERVEDPORT: /* bind to a resered port */ + /* LINTED pointer cast */ return (bindresvport(tp, fd, (struct netbuf *)par)); case ND_CHECK_RESERVEDPORT: /* check if reserved prot */ + /* LINTED pointer cast */ return (checkresvport((struct netbuf *)par)); case ND_MERGEADDR: /* Merge two addresses */ + /* LINTED pointer cast */ ma = (struct nd_mergearg *)(par); ma->m_uaddr = inet_netdir_mergeaddr(tp, ma->c_uaddr, ma->s_uaddr); @@ -132,9 +131,7 @@ __inet_netdir_options(tp, opts, fd, par) * address and p1-p2 are the port number. */ char * -__inet_taddr2uaddr(tp, addr) - struct netconfig *tp; /* the transport provider */ - struct netbuf *addr; /* the netbuf struct */ +__inet_taddr2uaddr(struct netconfig *tp, struct netbuf *addr) { struct sockaddr_in *sa; /* our internal format */ struct sockaddr_in6 *sa6; /* our internal format */ @@ -146,10 +143,12 @@ __inet_taddr2uaddr(tp, addr) return (NULL); } if (strcmp(tp->nc_protofmly, NC_INET) == 0) { + /* LINTED pointer cast */ sa = (struct sockaddr_in *)(addr->buf); myport = ntohs(sa->sin_port); - inet_ntoa_r(sa->sin_addr, tmp); + (void) inet_ntoa_r(sa->sin_addr, tmp); } else { + /* LINTED pointer cast */ sa6 = (struct sockaddr_in6 *)(addr->buf); myport = ntohs(sa6->sin6_port); if (inet_ntop(AF_INET6, (void *)sa6->sin6_addr.s6_addr, @@ -168,9 +167,7 @@ __inet_taddr2uaddr(tp, addr) * to the internal format used by the Sun TLI TCP/IP provider. */ struct netbuf * -__inet_uaddr2taddr(tp, addr) - struct netconfig *tp; /* the transport provider */ - char *addr; /* the address */ +__inet_uaddr2taddr(struct netconfig *tp, char *addr) { if (!addr || !tp) { _nderror = ND_BADARG; @@ -265,7 +262,7 @@ ipv6_uaddr2taddr(char *addr) return (NULL); } - strcpy(tmpaddr, addr); + (void) strcpy(tmpaddr, addr); if ((dot = strrchr(tmpaddr, '.')) != 0) { *dot = '\0'; @@ -332,7 +329,7 @@ static int numifs_last = 0; /* number of interfaces last seen */ * of IPV4 interfaces present. */ static bool_t -get_if_info() +get_if_info(void) { size_t needed; struct lifreq *buf = NULL; @@ -428,7 +425,7 @@ getifnum: * Update the interface cache based on last update time. */ static bool_t -update_if_cache() +update_if_cache(void) { time_t curtime; @@ -455,8 +452,7 @@ update_if_cache() * will not assume that this address belongs to this machine. */ static bool_t -is_my_address(addr) - struct in_addr addr; /* address in network order */ +is_my_address(struct in_addr addr) { time_t curtime; if_info_t *ifn; @@ -485,8 +481,7 @@ is_my_address(addr) * Given a host name, check if it is this host. */ bool_t -__inet_netdir_is_my_host(host) - char *host; +__inet_netdir_is_my_host(const char *host) { int error; char buf[NSS_BUFLEN_HOSTS]; @@ -500,7 +495,7 @@ __inet_netdir_is_my_host(host) if (h->h_addrtype != AF_INET) return (FALSE); for (c = h->h_addr_list; *c != NULL; c++) { - (void) memcpy((char *)&in.s_addr, *c, sizeof (in.s_addr)); + (void) memcpy(&in.s_addr, *c, sizeof (in.s_addr)); if (is_my_address(in)) return (TRUE); } @@ -513,8 +508,7 @@ __inet_netdir_is_my_host(host) * prefix match. Return the address in network order. */ static uint32_t -get_best_match(addr) - struct in_addr addr; +get_best_match(struct in_addr addr) { if_info_t *bestmatch, *ifn; int bestcount, count, limit; @@ -652,17 +646,16 @@ is_myself(struct sockaddr_in6 *sa6) return (0); } - memcpy(&areq.sa_addr, (struct sockaddr_storage *)sa6, - sizeof (struct sockaddr_storage)); + (void) memcpy(&areq.sa_addr, sa6, sizeof (struct sockaddr_storage)); areq.sa_res = -1; if (ioctl(s, SIOCTMYADDR, (caddr_t)&areq) < 0) { syslog(LOG_ERR, "is_myself:SIOCTMYADDR failed: %m"); - close(s); + (void) close(s); return (0); } - close(s); + (void) close(s); return (areq.sa_res); } @@ -675,6 +668,7 @@ union any_in_addr { struct in6_addr addr6; struct in_addr addr; }; + static bool_t select_server_addr(union any_in_addr *dst_addr, int family, union any_in_addr *src_addr) @@ -683,7 +677,7 @@ select_server_addr(union any_in_addr *dst_addr, int family, struct sockaddr_in *sin; struct sockaddr_in6 *sin6; int tmp_fd; - size_t sock_len; + socklen_t sock_len; sock = calloc(1, sizeof (struct sockaddr_in6)); if (sock == NULL) { @@ -691,12 +685,14 @@ select_server_addr(union any_in_addr *dst_addr, int family, } if (family == AF_INET) { + /* LINTED pointer cast */ sin = (struct sockaddr_in *)sock; sin->sin_family = AF_INET; sin->sin_port = 111; sin->sin_addr = dst_addr->addr; sock_len = sizeof (struct sockaddr_in); } else { + /* LINTED pointer cast */ sin6 = (struct sockaddr_in6 *)sock; sin6->sin6_family = AF_INET6; sin6->sin6_port = 111; @@ -727,7 +723,7 @@ select_server_addr(union any_in_addr *dst_addr, int family, * Since in6addr_any is not in the scope * use the following hack */ - memset(src_addr->addr6.s6_addr, + (void) memset(src_addr->addr6.s6_addr, 0, sizeof (struct in6_addr)); (void) close(tmp_fd); free(sock); @@ -743,9 +739,11 @@ select_server_addr(union any_in_addr *dst_addr, int family, } if (family == AF_INET) { + /* LINTED pointer cast */ sin = (struct sockaddr_in *)sock; src_addr->addr = sin->sin_addr; } else { + /* LINTED pointer cast */ sin6 = (struct sockaddr_in6 *)sock; src_addr->addr6 = sin6->sin6_addr; } @@ -760,10 +758,7 @@ select_server_addr(union any_in_addr *dst_addr, int family, * to the one which will make sense to the remote caller. */ static char * -inet_netdir_mergeaddr(tp, ruaddr, uaddr) - struct netconfig *tp; /* the transport provider */ - char *ruaddr; /* remote uaddr of the caller */ - char *uaddr; /* the address */ +inet_netdir_mergeaddr(struct netconfig *tp, char *ruaddr, char *uaddr) { char tmp[SYS_NMLN], *cp; int j; @@ -853,7 +848,6 @@ inet_netdir_mergeaddr(tp, ruaddr, uaddr) /* IPv6 */ char *dot; char *truaddr; - char name2[SYS_NMLN]; struct sockaddr_in6 sa; struct sockaddr_in6 server_addr; union any_in_addr in_addr, out_addr; @@ -866,7 +860,7 @@ inet_netdir_mergeaddr(tp, ruaddr, uaddr) bzero(&sa, sizeof (sa)); bzero(&server_addr, sizeof (server_addr)); truaddr = &tmp[0]; - strcpy(truaddr, ruaddr); + (void) strcpy(truaddr, ruaddr); /* * now extract the server ip address from @@ -903,8 +897,8 @@ inet_netdir_mergeaddr(tp, ruaddr, uaddr) server_addr.sin6_addr = out_addr.addr6; } else - memcpy((char *)&server_addr, (char *)&sa, - sizeof (struct sockaddr_in6)); + (void) memcpy(&server_addr, &sa, + sizeof (struct sockaddr_in6)); #ifdef DEBUG printf("%s\n", inet_ntop(af, out_addr.addr6.s6_addr, tmp, sizeof (tmp))); @@ -924,7 +918,7 @@ inet_netdir_mergeaddr(tp, ruaddr, uaddr) p = --dot; while (*p-- != '.'); p++; - strcat(tmp + strlen(tmp), p); + (void) strcat(tmp + strlen(tmp), p); _nderror = ND_OK; } else { _nderror = ND_NOHOST; @@ -936,10 +930,7 @@ inet_netdir_mergeaddr(tp, ruaddr, uaddr) } static int -bindresvport(nconf, fd, addr) - struct netconfig *nconf; - int fd; - struct netbuf *addr; +bindresvport(struct netconfig *nconf, int fd, struct netbuf *addr) { int res; struct sockaddr_in myaddr; @@ -976,7 +967,7 @@ bindresvport(nconf, fd, addr) if (strcmp(nconf->nc_protofmly, NC_INET) == 0) { if (addr == NULL) { sin = &myaddr; - (void) memset((char *)sin, 0, sizeof (*sin)); + (void) memset(sin, 0, sizeof (*sin)); sin->sin_family = AF_INET; u.buf = (char *)sin; } else @@ -984,7 +975,7 @@ bindresvport(nconf, fd, addr) } else if (strcmp(nconf->nc_protofmly, NC_INET6) == 0) { if (addr == NULL) { sin6 = &myaddr6; - (void) memset((char *)sin6, 0, sizeof (*sin6)); + (void) memset(sin6, 0, sizeof (*sin6)); sin6->sin6_family = AF_INET6; u.buf = (char *)sin6; } else @@ -998,6 +989,7 @@ bindresvport(nconf, fd, addr) /* Transform sockaddr_in to netbuf */ if (t_getinfo(fd, &tinfo) == -1) return (-1); + /* LINTED pointer cast */ tres = (struct t_bind *)t_alloc(fd, T_BIND, T_ADDR); if (tres == NULL) { _nderror = ND_NOMEM; @@ -1029,6 +1021,7 @@ bindresvport(nconf, fd, addr) req.flags = T_NEGOTIATE; req.opt.len = sizeof (struct opthdr) + opt->len; req.opt.buf = (char *)opt; + /* LINTED pointer cast */ optval = (int *)((char *)reqbuf + sizeof (struct opthdr)); *optval = 1; resp.flags = 0; @@ -1075,8 +1068,7 @@ bindresvport(nconf, fd, addr) } static int -checkresvport(addr) - struct netbuf *addr; +checkresvport(struct netbuf *addr) { struct sockaddr_in *sin; unsigned short port; @@ -1089,6 +1081,7 @@ checkresvport(addr) * Still works for IPv6 since the first two memebers of * both address structure point to family and port # respectively */ + /* LINTED pointer cast */ sin = (struct sockaddr_in *)(addr->buf); port = ntohs(sin->sin_port); if (port < IPPORT_RESERVED) diff --git a/usr/src/lib/libnsl/nss/parse.c b/usr/src/lib/libnsl/nss/parse.c index 6c3dc27e22..a0c5c8e775 100644 --- a/usr/src/lib/libnsl/nss/parse.c +++ b/usr/src/lib/libnsl/nss/parse.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1999 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -40,7 +41,7 @@ char *_strpbrk_escape(char *, char *); char * _strtok_escape(char *string, char *sepset, char **lasts) { - char *q, *r; + char *r; /* first or subsequent call */ if (string == NULL) @@ -52,7 +53,8 @@ _strtok_escape(char *string, char *sepset, char **lasts) if (*string == '\0') /* return if no tokens remaining */ return (NULL); - if ((r = _strpbrk_escape(string, sepset)) == NULL)/* move past token */ + /* move past token */ + if ((r = _strpbrk_escape(string, sepset)) == NULL) *lasts = 0; /* indicate this is last token */ else { *r = '\0'; @@ -69,7 +71,6 @@ char * _strpbrk_escape(char *string, char *brkset) { const char *p; - const char *first = string; do { for (p = brkset; *p != '\0' && *p != *string; ++p) @@ -101,7 +102,7 @@ _escape(char *s, char *esc) for (i = 0; i < len_s; i++) if (strchr(esc, s[i])) nescs++; - if ((tmp = (char *) malloc(nescs + len_s + 1)) == NULL) + if ((tmp = malloc(nescs + len_s + 1)) == NULL) return (NULL); for (i = 0, j = 0; i < len_s; i++) { if (strchr(esc, s[i])) { @@ -122,11 +123,11 @@ _unescape(char *s, char *esc) char *tmp; if (s == NULL || esc == NULL) - return ((char *)NULL); + return (NULL); len_s = strlen(s); - if ((tmp = (char *) malloc(len_s + 1)) == NULL) - return ((char *)NULL); + if ((tmp = malloc(len_s + 1)) == NULL) + return (NULL); for (i = 0, j = 0; i < len_s; i++) { if (s[i] == '\\' && strchr(esc, s[i + 1])) tmp[j++] = s[++i]; @@ -157,7 +158,7 @@ _readbufline(char *mapbuf, /* input mmap buffer */ { int linelen; - while (1) { + for (;;) { linelen = 0; while (linelen < buflen - 1) { /* "- 1" saves room for \n\0 */ if (*lastlen >= mapsize) { @@ -196,4 +197,5 @@ _readbufline(char *mapbuf, /* input mmap buffer */ (*lastlen)++; }; } + /* NOTREACHED */ } diff --git a/usr/src/lib/libnsl/rpc/auth_des.c b/usr/src/lib/libnsl/rpc/auth_des.c index 09d9204ec4..4bb4b929c8 100644 --- a/usr/src/lib/libnsl/rpc/auth_des.c +++ b/usr/src/lib/libnsl/rpc/auth_des.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,7 +42,6 @@ #include "mt.h" #include "rpc_mt.h" #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/des_crypt.h> #include <syslog.h> #include <stdlib.h> @@ -52,23 +53,14 @@ #define USEC_PER_SEC 1000000 #define RTIME_TIMEOUT 5 /* seconds to wait for sync */ -#define AUTH_PRIVATE(auth) (struct ad_private *)auth->ah_private -#define ALLOC(object_type) (object_type *)mem_alloc(sizeof (object_type)) -#define FREE(ptr, size) mem_free((char *)(ptr), (int)size) -#define ATTEMPT(xdr_op) if (!(xdr_op)) return (FALSE) - -#ifdef _KERNEL -#define gettimeofday(tvp, tzp) uniqtime(tvp) /* fake system call */ -#endif - extern bool_t xdr_authdes_cred(XDR *, struct authdes_cred *); extern bool_t xdr_authdes_verf(XDR *, struct authdes_verf *); -extern int key_encryptsession_pk(); +extern int key_encryptsession_pk(const char *, netobj *, des_block *); extern bool_t __rpc_get_time_offset(struct timeval *, nis_server *, char *, char **, char **); -static struct auth_ops *authdes_ops(); -static bool_t authdes_refresh(); +static struct auth_ops *authdes_ops(void); +static bool_t authdes_refresh(AUTH *, void *); /* * This struct is pointed to by the ah_private field of an "AUTH *" @@ -93,7 +85,7 @@ struct ad_private { nis_server *ad_nis_srvr; /* NIS+ server struct */ }; -AUTH *authdes_pk_seccreate(const char *, netobj *, uint_t, const char *, +extern AUTH *authdes_pk_seccreate(const char *, netobj *, uint_t, const char *, const des_block *, nis_server *); /* @@ -112,23 +104,19 @@ authdes_seccreate(const char *servername, const uint_t win, { uchar_t pkey_data[1024]; netobj pkey; - AUTH *dummy; - trace1(TR_authdes_seccreate, 0); - if (! getpublickey(servername, (char *)pkey_data)) { + if (!getpublickey(servername, (char *)pkey_data)) { syslog(LOG_ERR, "authdes_seccreate: no public key found for %s", servername); - trace1(TR_authdes_seccreate, 1); return (NULL); } pkey.n_bytes = (char *)pkey_data; pkey.n_len = (uint_t)strlen((char *)pkey_data) + 1; - dummy = authdes_pk_seccreate(servername, &pkey, win, timehost, - ckey, NULL); - return (dummy); + return (authdes_pk_seccreate(servername, &pkey, win, timehost, + ckey, NULL)); } /* @@ -148,14 +136,12 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, uint_t window, /* * Allocate everything now */ - trace2(TR_authdes_pk_seccreate, 0, window); - auth = ALLOC(AUTH); + auth = malloc(sizeof (AUTH)); if (auth == NULL) { syslog(LOG_ERR, "authdes_pk_seccreate: out of memory"); - trace1(TR_authdes_pk_seccreate, 1); return (NULL); } - ad = ALLOC(struct ad_private); + ad = malloc(sizeof (struct ad_private)); if (ad == NULL) { syslog(LOG_ERR, "authdes_pk_seccreate: out of memory"); goto failed; @@ -167,25 +153,25 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, uint_t window, ad->ad_nis_srvr = NULL; ad->ad_timediff.tv_sec = 0; ad->ad_timediff.tv_usec = 0; - memcpy(ad->ad_pkey, pkey->n_bytes, pkey->n_len); + (void) memcpy(ad->ad_pkey, pkey->n_bytes, pkey->n_len); if (!getnetname(namebuf)) goto failed; ad->ad_fullnamelen = RNDUP((uint_t)strlen(namebuf)); - ad->ad_fullname = (char *)mem_alloc(ad->ad_fullnamelen + 1); + ad->ad_fullname = malloc(ad->ad_fullnamelen + 1); ad->ad_servernamelen = strlen(servername); - ad->ad_servername = (char *)mem_alloc(ad->ad_servernamelen + 1); + ad->ad_servername = malloc(ad->ad_servernamelen + 1); if (ad->ad_fullname == NULL || ad->ad_servername == NULL) { syslog(LOG_ERR, "authdes_seccreate: out of memory"); goto failed; } if (timehost != NULL) { - ad->ad_timehost = (char *)mem_alloc(strlen(timehost) + 1); + ad->ad_timehost = malloc(strlen(timehost) + 1); if (ad->ad_timehost == NULL) { syslog(LOG_ERR, "authdes_seccreate: out of memory"); goto failed; } - memcpy(ad->ad_timehost, timehost, strlen(timehost) + 1); + (void) memcpy(ad->ad_timehost, timehost, strlen(timehost) + 1); ad->ad_dosync = TRUE; } else if (srvr != NULL) { ad->ad_nis_srvr = srvr; /* transient */ @@ -193,8 +179,8 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, uint_t window, } else { ad->ad_dosync = FALSE; } - memcpy(ad->ad_fullname, namebuf, ad->ad_fullnamelen + 1); - memcpy(ad->ad_servername, servername, ad->ad_servernamelen + 1); + (void) memcpy(ad->ad_fullname, namebuf, ad->ad_fullnamelen + 1); + (void) memcpy(ad->ad_servername, servername, ad->ad_servernamelen + 1); ad->ad_window = window; if (ckey == NULL) { if (key_gendes(&auth->ah_key) < 0) { @@ -217,26 +203,24 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, uint_t window, goto failed; } ad->ad_nis_srvr = NULL; /* not needed any longer */ - trace1(TR_authdes_pk_seccreate, 1); return (auth); failed: if (auth) - FREE(auth, sizeof (AUTH)); + free(auth); if (ad) { if (ad->ad_fullname) - FREE(ad->ad_fullname, ad->ad_fullnamelen + 1); + free(ad->ad_fullname); if (ad->ad_servername) - FREE(ad->ad_servername, ad->ad_servernamelen + 1); + free(ad->ad_servername); if (ad->ad_timehost) - FREE(ad->ad_timehost, strlen(ad->ad_timehost) + 1); + free(ad->ad_timehost); if (ad->ad_netid) - FREE(ad->ad_netid, strlen(ad->ad_netid) + 1); + free(ad->ad_netid); if (ad->ad_uaddr) - FREE(ad->ad_uaddr, strlen(ad->ad_uaddr) + 1); - FREE(ad, sizeof (struct ad_private)); + free(ad->ad_uaddr); + free(ad); } - trace1(TR_authdes_pk_seccreate, 1); return (NULL); } @@ -251,8 +235,6 @@ failed: static void authdes_nextverf(AUTH *auth) { - trace1(TR_authdes_nextverf, 0); - trace1(TR_authdes_nextverf, 1); /* what the heck am I supposed to do??? */ } @@ -264,7 +246,7 @@ static bool_t authdes_marshal(AUTH *auth, XDR *xdrs) { /* LINTED pointer alignment */ - struct ad_private *ad = AUTH_PRIVATE(auth); + struct ad_private *ad = (struct ad_private *)auth->ah_private; struct authdes_cred *cred = &ad->ad_cred; struct authdes_verf *verf = &ad->ad_verf; des_block cryptbuf[2]; @@ -277,8 +259,7 @@ authdes_marshal(AUTH *auth, XDR *xdrs) * Figure out the "time", accounting for any time difference * with the server if necessary. */ - trace1(TR_authdes_marshal, 0); - (void) gettimeofday(&ad->ad_timestamp, (struct timezone *)NULL); + (void) gettimeofday(&ad->ad_timestamp, NULL); ad->ad_timestamp.tv_sec += ad->ad_timediff.tv_sec; ad->ad_timestamp.tv_usec += ad->ad_timediff.tv_usec; while (ad->ad_timestamp.tv_usec >= USEC_PER_SEC) { @@ -307,7 +288,6 @@ authdes_marshal(AUTH *auth, XDR *xdrs) } if (DES_FAILED(status)) { syslog(LOG_ERR, "authdes_marshal: DES encryption failure"); - trace1(TR_authdes_marshal, 1); return (FALSE); } ad->ad_verf.adv_xtimestamp = cryptbuf[0]; @@ -333,22 +313,25 @@ authdes_marshal(AUTH *auth, XDR *xdrs) IXDR_PUT_INT32(ixdr, AUTH_DES); IXDR_PUT_INT32(ixdr, len); } else { - ATTEMPT(xdr_putint32(xdrs, (int *)&auth->ah_cred.oa_flavor)); - ATTEMPT(xdr_putint32(xdrs, &len)); + if (!xdr_putint32(xdrs, (int *)&auth->ah_cred.oa_flavor)) + return (FALSE); + if (!xdr_putint32(xdrs, &len)) + return (FALSE); } - ATTEMPT(xdr_authdes_cred(xdrs, cred)); + if (!xdr_authdes_cred(xdrs, cred)) + return (FALSE); len = (2 + 1)*BYTES_PER_XDR_UNIT; if (ixdr = xdr_inline(xdrs, 2*BYTES_PER_XDR_UNIT)) { IXDR_PUT_INT32(ixdr, AUTH_DES); IXDR_PUT_INT32(ixdr, len); } else { - ATTEMPT(xdr_putint32(xdrs, (int *)&auth->ah_verf.oa_flavor)); - ATTEMPT(xdr_putint32(xdrs, &len)); + if (!xdr_putint32(xdrs, (int *)&auth->ah_verf.oa_flavor)) + return (FALSE); + if (!xdr_putint32(xdrs, &len)) + return (FALSE); } - ATTEMPT(xdr_authdes_verf(xdrs, verf)); - trace1(TR_authdes_marshal, 1); - return (TRUE); + return (xdr_authdes_verf(xdrs, verf)); } @@ -359,17 +342,14 @@ static bool_t authdes_validate(AUTH *auth, struct opaque_auth *rverf) { /* LINTED pointer alignment */ - struct ad_private *ad = AUTH_PRIVATE(auth); + struct ad_private *ad = (struct ad_private *)auth->ah_private; struct authdes_verf verf; int status; uint32_t *ixdr; des_block buf; - trace1(TR_authdes_validate, 0); - if (rverf->oa_length != (2 + 1) * BYTES_PER_XDR_UNIT) { - trace1(TR_authdes_validate, 1); + if (rverf->oa_length != (2 + 1) * BYTES_PER_XDR_UNIT) return (FALSE); - } /* LINTED pointer alignment */ ixdr = (uint32_t *)rverf->oa_base; buf.key.high = (uint32_t)*ixdr++; @@ -384,7 +364,6 @@ authdes_validate(AUTH *auth, struct opaque_auth *rverf) if (DES_FAILED(status)) { syslog(LOG_ERR, "authdes_validate: DES decryption failure"); - trace1(TR_authdes_validate, 1); return (FALSE); } @@ -399,10 +378,9 @@ authdes_validate(AUTH *auth, struct opaque_auth *rverf) /* * validate */ - if (memcmp((char *)&ad->ad_timestamp, (char *)&verf.adv_timestamp, + if (memcmp(&ad->ad_timestamp, &verf.adv_timestamp, sizeof (struct timeval)) != 0) { syslog(LOG_DEBUG, "authdes_validate: verifier mismatch"); - trace1(TR_authdes_validate, 1); return (FALSE); } @@ -411,7 +389,6 @@ authdes_validate(AUTH *auth, struct opaque_auth *rverf) */ ad->ad_nickname = verf.adv_nickname; ad->ad_cred.adc_namekind = ADN_NICKNAME; - trace1(TR_authdes_validate, 1); return (TRUE); } @@ -423,18 +400,16 @@ static bool_t authdes_refresh(AUTH *auth, void *dummy) { /* LINTED pointer alignment */ - struct ad_private *ad = AUTH_PRIVATE(auth); + struct ad_private *ad = (struct ad_private *)auth->ah_private; struct authdes_cred *cred = &ad->ad_cred; int ok; netobj pkey; - trace1(TR_authdes_refresh, 0); - if (ad->ad_dosync) { ok = __rpc_get_time_offset(&ad->ad_timediff, ad->ad_nis_srvr, ad->ad_timehost, &(ad->ad_uaddr), &(ad->ad_netid)); - if (! ok) { + if (!ok) { /* * Hope the clocks are synced! */ @@ -449,13 +424,11 @@ authdes_refresh(AUTH *auth, void *dummy) if (key_encryptsession_pk(ad->ad_servername, &pkey, &ad->ad_xkey) < 0) { syslog(LOG_INFO, "authdes_refresh: keyserv(1m) is unable to encrypt session key"); - trace1(TR_authdes_refresh, 1); return (FALSE); } cred->adc_fullname.key = ad->ad_xkey; cred->adc_namekind = ADN_FULLNAME; cred->adc_fullname.name = ad->ad_fullname; - trace1(TR_authdes_refresh, 1); return (TRUE); } @@ -467,20 +440,18 @@ static void authdes_destroy(AUTH *auth) { /* LINTED pointer alignment */ - struct ad_private *ad = AUTH_PRIVATE(auth); + struct ad_private *ad = (struct ad_private *)auth->ah_private; - trace1(TR_authdes_destroy, 0); - FREE(ad->ad_fullname, ad->ad_fullnamelen + 1); - FREE(ad->ad_servername, ad->ad_servernamelen + 1); + free(ad->ad_fullname); + free(ad->ad_servername); if (ad->ad_timehost) - FREE(ad->ad_timehost, strlen(ad->ad_timehost) + 1); + free(ad->ad_timehost); if (ad->ad_netid) - FREE(ad->ad_netid, strlen(ad->ad_netid) + 1); + free(ad->ad_netid); if (ad->ad_uaddr) - FREE(ad->ad_uaddr, strlen(ad->ad_uaddr) + 1); - FREE(ad, sizeof (struct ad_private)); - FREE(auth, sizeof (AUTH)); - trace1(TR_authdes_destroy, 1); + free(ad->ad_uaddr); + free(ad); + free(auth); } static struct auth_ops * @@ -491,8 +462,7 @@ authdes_ops(void) /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_authdes_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.ah_nextverf == NULL) { ops.ah_nextverf = authdes_nextverf; ops.ah_marshal = authdes_marshal; @@ -500,7 +470,6 @@ authdes_ops(void) ops.ah_refresh = authdes_refresh; ops.ah_destroy = authdes_destroy; } - mutex_unlock(&ops_lock); - trace1(TR_authdes_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/auth_none.c b/usr/src/lib/libnsl/rpc/auth_none.c index 1f4dae435c..893c4a96e3 100644 --- a/usr/src/lib/libnsl/rpc/auth_none.c +++ b/usr/src/lib/libnsl/rpc/auth_none.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,16 +42,16 @@ #include "mt.h" #include "rpc_mt.h" +#include <stdlib.h> #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/xdr.h> #include <rpc/auth.h> #define MAX_MARSHEL_SIZE 20 -extern bool_t xdr_opaque_auth(); +extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); -static struct auth_ops *authnone_ops(); +static struct auth_ops *authnone_ops(void); static struct authnone_private { AUTH no_client; @@ -57,10 +59,9 @@ static struct authnone_private { uint_t mcnt; } *authnone_private; -char *calloc(); AUTH * -authnone_create() +authnone_create(void) { struct authnone_private *ap; XDR xdr_stream; @@ -69,16 +70,13 @@ authnone_create() /* VARIABLES PROTECTED BY authnone_lock: ap */ - trace1(TR_authnone_create, 0); - mutex_lock(&authnone_lock); + (void) mutex_lock(&authnone_lock); ap = authnone_private; if (ap == NULL) { -/* LINTED pointer alignment */ - ap = (struct authnone_private *)calloc(1, sizeof (*ap)); + ap = calloc(1, sizeof (*ap)); if (ap == NULL) { - mutex_unlock(&authnone_lock); - trace1(TR_authnone_create, 1); - return ((AUTH *)NULL); + (void) mutex_unlock(&authnone_lock); + return (NULL); } authnone_private = ap; } @@ -93,8 +91,7 @@ authnone_create() ap->mcnt = XDR_GETPOS(xdrs); XDR_DESTROY(xdrs); } - mutex_unlock(&authnone_lock); - trace1(TR_authnone_create, 1); + (void) mutex_unlock(&authnone_lock); return (&ap->no_client); } @@ -103,22 +100,19 @@ static bool_t authnone_marshal(AUTH *client, XDR *xdrs) { struct authnone_private *ap; - bool_t dummy; + bool_t res; extern mutex_t authnone_lock; - trace1(TR_authnone_marshal, 0); - mutex_lock(&authnone_lock); + (void) mutex_lock(&authnone_lock); ap = authnone_private; if (ap == NULL) { - mutex_unlock(&authnone_lock); - trace1(TR_authnone_marshal, 1); + (void) mutex_unlock(&authnone_lock); return (FALSE); } - dummy = (*xdrs->x_ops->x_putbytes)(xdrs, + res = (*xdrs->x_ops->x_putbytes)(xdrs, ap->marshalled_client, ap->mcnt); - mutex_unlock(&authnone_lock); - trace1(TR_authnone_marshal, 1); - return (dummy); + (void) mutex_unlock(&authnone_lock); + return (res); } /* All these unused parameters are required to keep ANSI-C from grumbling */ @@ -126,16 +120,12 @@ authnone_marshal(AUTH *client, XDR *xdrs) static void authnone_verf(AUTH *client) { - trace1(TR_authnone_verf, 0); - trace1(TR_authnone_verf, 1); } /*ARGSUSED*/ static bool_t authnone_validate(AUTH *client, struct opaque_auth *opaque) { - trace1(TR_authnone_validate, 0); - trace1(TR_authnone_validate, 1); return (TRUE); } @@ -143,8 +133,6 @@ authnone_validate(AUTH *client, struct opaque_auth *opaque) static bool_t authnone_refresh(AUTH *client, void *dummy) { - trace1(TR_authnone_refresh, 0); - trace1(TR_authnone_refresh, 1); return (FALSE); } @@ -152,20 +140,17 @@ authnone_refresh(AUTH *client, void *dummy) static void authnone_destroy(AUTH *client) { - trace1(TR_authnone_destroy, 0); - trace1(TR_authnone_destroy, 1); } static struct auth_ops * -authnone_ops() +authnone_ops(void) { static struct auth_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_authnone_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.ah_nextverf == NULL) { ops.ah_nextverf = authnone_verf; ops.ah_marshal = authnone_marshal; @@ -173,7 +158,6 @@ authnone_ops() ops.ah_refresh = authnone_refresh; ops.ah_destroy = authnone_destroy; } - mutex_unlock(&ops_lock); - trace1(TR_authnone_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/auth_sys.c b/usr/src/lib/libnsl/rpc/auth_sys.c index ea3c50a67b..4b6485bbfa 100644 --- a/usr/src/lib/libnsl/rpc/auth_sys.c +++ b/usr/src/lib/libnsl/rpc/auth_sys.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -43,31 +45,21 @@ */ #include "mt.h" #include "rpc_mt.h" -#ifdef KERNEL -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/user.h> -#include <sys/kernel.h> -#include <sys/proc.h> -#else #include <stdio.h> #include <syslog.h> #include <stdlib.h> #include <unistd.h> #include <string.h> -#endif /* _KERNEL */ - #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/xdr.h> #include <rpc/auth.h> #include <rpc/auth_sys.h> #include <synch.h> -extern int gethostname(); -extern bool_t xdr_opaque_auth(); +extern int gethostname(char *, int); +extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); -static struct auth_ops *authsys_ops(); +static struct auth_ops *authsys_ops(void); /* * This struct is pointed to by the ah_private field of an auth_handle. @@ -87,14 +79,13 @@ static const char auth_sys_str[] = "%s : %s"; static const char authsys_create_str[] = "authsys_create"; static const char __no_mem_auth[] = "out of memory"; -#ifndef KERNEL /* * Create a (sys) unix style authenticator. * Returns an auth handle with the given stuff in it. */ AUTH * -authsys_create(const char *machname, uid_t uid, gid_t gid, - int len, const gid_t *aup_gids) +authsys_create(const char *machname, const uid_t uid, const gid_t gid, + const int len, const gid_t *aup_gids) { struct authsys_parms aup; char mymem[MAX_AUTH_BYTES]; @@ -103,23 +94,20 @@ authsys_create(const char *machname, uid_t uid, gid_t gid, AUTH *auth; struct audata *au; - trace2(TR_authsys_create, 0, len); /* * Allocate and set up auth handle */ - auth = (AUTH *)mem_alloc(sizeof (*auth)); + auth = malloc(sizeof (*auth)); if (auth == NULL) { (void) syslog(LOG_ERR, auth_sys_str, authsys_create_str, __no_mem_auth); - trace1(TR_authsys_create, 1); return (NULL); } - au = (struct audata *)mem_alloc(sizeof (*au)); + au = malloc(sizeof (*au)); if (au == NULL) { (void) syslog(LOG_ERR, auth_sys_str, authsys_create_str, __no_mem_auth); - (void) mem_free((char *)auth, sizeof (*auth)); - trace1(TR_authsys_create, 1); + free(auth); return (NULL); } auth->ah_ops = authsys_ops(); @@ -142,31 +130,29 @@ authsys_create(const char *machname, uid_t uid, gid_t gid, * Serialize the parameters into origcred */ xdrmem_create(&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE); - if (! xdr_authsys_parms(&xdrs, &aup)) { + if (!xdr_authsys_parms(&xdrs, &aup)) { (void) syslog(LOG_ERR, auth_sys_str, authsys_create_str, ": xdr_authsys_parms failed"); - trace1(TR_authsys_create, 1); return (NULL); } - au->au_origcred.oa_length = len = XDR_GETPOS(&xdrs); + au->au_origcred.oa_length = XDR_GETPOS(&xdrs); au->au_origcred.oa_flavor = AUTH_SYS; - if ((au->au_origcred.oa_base = - (caddr_t)mem_alloc((uint_t)len)) == NULL) { + if ((au->au_origcred.oa_base = malloc(au->au_origcred.oa_length)) == + NULL) { (void) syslog(LOG_ERR, auth_sys_str, authsys_create_str, __no_mem_auth); - (void) mem_free((char *)au, sizeof (*au)); - (void) mem_free((char *)auth, sizeof (*auth)); - trace1(TR_authsys_create, 1); + free(au); + free(auth); return (NULL); } - (void) memcpy(au->au_origcred.oa_base, mymem, (uint_t)len); + (void) memcpy(au->au_origcred.oa_base, mymem, + (size_t)au->au_origcred.oa_length); /* * set auth handle to reflect new cred. */ auth->ah_cred = au->au_origcred; (void) marshal_new_auth(auth); - trace1(TR_authsys_create, 1); return (auth); } @@ -188,12 +174,9 @@ authsys_create_default(void) uid_t uid; gid_t gid; gid_t gids[NGRPS]; - AUTH *dummy; - trace1(TR_authsys_create_default, 0); if (gethostname(machname, MAX_MACHINE_NAME) == -1) { (void) syslog(LOG_ERR, authsys_def_str, "hostname"); - trace1(TR_authsys_create_default, 1); return (NULL); } machname[MAX_MACHINE_NAME] = 0; @@ -201,12 +184,9 @@ authsys_create_default(void) gid = getegid(); if ((len = getgroups(NGRPS, gids)) < 0) { (void) syslog(LOG_ERR, authsys_def_str, "groups"); - trace2(TR_authsys_create_default, 1, len); return (NULL); } - dummy = authsys_create(machname, uid, gid, len, gids); - trace2(TR_authsys_create_default, 1, len); - return (dummy); + return (authsys_create(machname, uid, gid, len, gids)); } /* @@ -245,8 +225,6 @@ authsys_create_ruid(void) return (res); } -#endif /* !KERNEL */ - /* * authsys operations */ @@ -255,9 +233,7 @@ authsys_create_ruid(void) static void authsys_nextverf(AUTH *auth) { - trace1(TR_authsys_nextverf, 0); /* no action necessary */ - trace1(TR_authsys_nextverf, 1); } static bool_t @@ -265,12 +241,8 @@ authsys_marshal(AUTH *auth, XDR *xdrs) { /* LINTED pointer alignment */ struct audata *au = AUTH_PRIVATE(auth); - bool_t dummy; - trace1(TR_authsys_marshal, 0); - dummy = XDR_PUTBYTES(xdrs, au->au_marshed, au->au_mpos); - trace1(TR_authsys_marshal, 1); - return (dummy); + return (XDR_PUTBYTES(xdrs, au->au_marshed, au->au_mpos)); } static bool_t @@ -279,7 +251,6 @@ authsys_validate(AUTH *auth, struct opaque_auth *verf) struct audata *au; XDR xdrs; - trace1(TR_authsys_validate, 0); if (verf->oa_flavor == AUTH_SHORT) { /* LINTED pointer alignment */ au = AUTH_PRIVATE(auth); @@ -287,8 +258,7 @@ authsys_validate(AUTH *auth, struct opaque_auth *verf) verf->oa_length, XDR_DECODE); if (au->au_shcred.oa_base != NULL) { - mem_free(au->au_shcred.oa_base, - au->au_shcred.oa_length); + free(au->au_shcred.oa_base); au->au_shcred.oa_base = NULL; } if (xdr_opaque_auth(&xdrs, &au->au_shcred)) { @@ -301,7 +271,6 @@ authsys_validate(AUTH *auth, struct opaque_auth *verf) } (void) marshal_new_auth(auth); } - trace1(TR_authsys_validate, 1); return (TRUE); } @@ -312,40 +281,30 @@ authsys_refresh(AUTH *auth, void *dummy) /* LINTED pointer alignment */ struct audata *au = AUTH_PRIVATE(auth); struct authsys_parms aup; -#ifndef KERNEL struct timeval now; -#endif XDR xdrs; int stat; - trace1(TR_authsys_refresh, 0); - if (auth->ah_cred.oa_base == au->au_origcred.oa_base) { - /* there is no hope. Punt */ - trace1(TR_authsys_refresh, 1); - return (FALSE); - } + if (auth->ah_cred.oa_base == au->au_origcred.oa_base) + return (FALSE); /* there is no hope. Punt */ au->au_shfaults ++; /* first deserialize the creds back into a struct authsys_parms */ aup.aup_machname = NULL; - aup.aup_gids = (gid_t *)NULL; + aup.aup_gids = NULL; xdrmem_create(&xdrs, au->au_origcred.oa_base, au->au_origcred.oa_length, XDR_DECODE); stat = xdr_authsys_parms(&xdrs, &aup); - if (! stat) + if (!stat) goto done; /* update the time and serialize in place */ -#ifdef KERNEL - aup.aup_time = time.tv_sec; -#else (void) gettimeofday(&now, (struct timezone *)0); aup.aup_time = now.tv_sec; -#endif xdrs.x_op = XDR_ENCODE; XDR_SETPOS(&xdrs, 0); stat = xdr_authsys_parms(&xdrs, &aup); - if (! stat) + if (!stat) goto done; auth->ah_cred = au->au_origcred; (void) marshal_new_auth(auth); @@ -354,7 +313,6 @@ done: xdrs.x_op = XDR_FREE; (void) xdr_authsys_parms(&xdrs, &aup); XDR_DESTROY(&xdrs); - trace1(TR_authsys_refresh, 1); return (stat); } @@ -364,15 +322,13 @@ authsys_destroy(AUTH *auth) /* LINTED pointer alignment */ struct audata *au = AUTH_PRIVATE(auth); - trace1(TR_authsys_destroy, 0); - mem_free(au->au_origcred.oa_base, au->au_origcred.oa_length); + free(au->au_origcred.oa_base); if (au->au_shcred.oa_base != NULL) - mem_free(au->au_shcred.oa_base, au->au_shcred.oa_length); - mem_free(auth->ah_private, sizeof (struct audata)); + free(au->au_shcred.oa_base); + free(auth->ah_private); if (auth->ah_verf.oa_base != NULL) - mem_free(auth->ah_verf.oa_base, auth->ah_verf.oa_length); - mem_free((caddr_t)auth, sizeof (*auth)); - trace1(TR_authsys_destroy, 1); + free(auth->ah_verf.oa_base); + free(auth); } /* @@ -390,21 +346,14 @@ marshal_new_auth(AUTH *auth) /* LINTED pointer alignment */ struct audata *au = AUTH_PRIVATE(auth); - trace1(TR_marshal_new_auth, 0); xdrmem_create(xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE); - if ((! xdr_opaque_auth(xdrs, &(auth->ah_cred))) || - (! xdr_opaque_auth(xdrs, &(auth->ah_verf)))) { -#ifdef KERNEL - printf(marshal_new_auth_str); -#else + if ((!xdr_opaque_auth(xdrs, &(auth->ah_cred))) || + (!xdr_opaque_auth(xdrs, &(auth->ah_verf)))) { (void) syslog(LOG_ERR, marshal_new_auth_str); - -#endif } else { au->au_mpos = XDR_GETPOS(xdrs); } XDR_DESTROY(xdrs); - trace1(TR_marshal_new_auth, 1); } static struct auth_ops * @@ -415,8 +364,7 @@ authsys_ops(void) /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_authsys_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.ah_nextverf == NULL) { ops.ah_nextverf = authsys_nextverf; ops.ah_marshal = authsys_marshal; @@ -424,7 +372,6 @@ authsys_ops(void) ops.ah_refresh = authsys_refresh; ops.ah_destroy = authsys_destroy; } - mutex_unlock(&ops_lock); - trace1(TR_authsys_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/auth_time.c b/usr/src/lib/libnsl/rpc/auth_time.c index 05786a20b8..2022e3fbdb 100644 --- a/usr/src/lib/libnsl/rpc/auth_time.c +++ b/usr/src/lib/libnsl/rpc/auth_time.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1992,1999 by Sun Microsystems Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. * * auth_time.c * @@ -54,6 +55,7 @@ #include <syslog.h> #include <netdir.h> #include <string.h> +#include <strings.h> #include <netconfig.h> #include <netdb.h> #include <signal.h> @@ -75,13 +77,11 @@ extern bool_t __nis_netconfig_matches_ep(struct netconfig *, endpoint *); #define msg(x) #endif -extern int bzero(caddr_t dst, int len); - static int saw_alarm = 0; +/* ARGSUSED */ static void -alarm_hndler(s) - int s; +alarm_hndler(int s) { saw_alarm = 1; } @@ -145,7 +145,7 @@ get_server(char *host, nis_server *srv, endpoint eps[], int maxep) netdir_free((char *)addrs, ND_ADDRLIST); } } - endnetconfig(nch); + (void) endnetconfig(nch); srv->name = (nis_name) host; srv->ep.ep_len = num_ep; @@ -282,7 +282,7 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, } } - endnetconfig(nc_handle); + (void) endnetconfig(nc_handle); /* * epcand[] now contains the candidate transports. If there @@ -353,8 +353,10 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, useua = epcand[i]->uaddr; useid = epcand[i]->proto; if (strcasecmp(nc->nc_protofmly, NC_INET) == 0) { - sscanf(useua, "%d.%d.%d.%d.", &a1, &a2, &a3, &a4); - sprintf(ipuaddr, "%d.%d.%d.%d.0.111", a1, a2, a3, a4); + (void) sscanf(useua, + "%d.%d.%d.%d.", &a1, &a2, &a3, &a4); + (void) sprintf(ipuaddr, "%d.%d.%d.%d.0.111", + a1, a2, a3, a4); useua = &ipuaddr[0]; } else if (strcasecmp(nc->nc_protofmly, NC_INET6) == 0) { size_t len; @@ -367,7 +369,7 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, return (0); } - strcpy(ipuaddr, useua); + (void) strcpy(ipuaddr, useua); /* get the IPv6 address out of the uaddr */ if ((dot = strrchr(ipuaddr, '.')) != 0) { @@ -386,7 +388,7 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, } /* now put in 0.111 */ - strcat(ipuaddr + len, port); + (void) strcat(ipuaddr + len, port); useua = ipuaddr; } @@ -461,9 +463,9 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, useid = epcand[i]->proto; if (strcasecmp(nc->nc_protofmly, NC_INET) == 0) { - sscanf(useua, + (void) sscanf(useua, "%d.%d.%d.%d.", &a1, &a2, &a3, &a4); - sprintf(ut, "%d.%d.%d.%d.0.37", + (void) sprintf(ut, "%d.%d.%d.%d.0.37", a1, a2, a3, a4); } else if (strcasecmp(nc->nc_protofmly, NC_INET6) == 0) { @@ -474,7 +476,7 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, goto error; } - strcpy(ut, useua); + (void) strcpy(ut, useua); /* get the IPv6 address out of the uaddr */ if ((dot = strrchr(ut, '.')) != 0) { @@ -492,7 +494,7 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, goto error; } - strcat(ut + len, port); + (void) strcat(ut + len, port); } @@ -557,7 +559,7 @@ __rpc_get_time_offset(struct timeval *td, nis_server *srv, oldsig = (void (*)())signal(SIGALRM, alarm_hndler); saw_alarm = 0; /* global tracking the alarm */ - alarm(20); /* only wait 20 seconds */ + (void) alarm(20); /* only wait 20 seconds */ if (t_connect(rtime_fd, &sndcall, NULL) == -1) { msg("connect tcp endpoint failedd."); @@ -607,8 +609,8 @@ error: freenetconfigent(nc); if (oldsig) { - alarm(0); /* reset that alarm if its outstanding */ - signal(SIGALRM, oldsig); + (void) alarm(0); /* reset that alarm if its outstanding */ + (void) signal(SIGALRM, oldsig); } /* @@ -636,7 +638,7 @@ error: } } - gettimeofday(&tv, 0); + (void) gettimeofday(&tv, 0); /* Round to the nearest second */ tv.tv_sec += (tv.tv_sec > 500000) ? 1 : 0; diff --git a/usr/src/lib/libnsl/rpc/authdes_prot.c b/usr/src/lib/libnsl/rpc/authdes_prot.c index 9fdadb71ed..b264fe2760 100644 --- a/usr/src/lib/libnsl/rpc/authdes_prot.c +++ b/usr/src/lib/libnsl/rpc/authdes_prot.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1991 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -34,59 +36,48 @@ /* * authdes_prot.c, XDR routines for DES authentication - * */ #include <sys/types.h> #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/xdr.h> #include <rpc/auth.h> #include <rpc/auth_des.h> -#define ATTEMPT(xdr_op) if (!(xdr_op)) return (FALSE) - bool_t xdr_authdes_cred(XDR *xdrs, struct authdes_cred *cred) { /* * Unrolled xdr */ - trace1(TR_xdr_authdes_cred, 0); - ATTEMPT(xdr_enum(xdrs, (enum_t *)&cred->adc_namekind)); + if (!xdr_enum(xdrs, (enum_t *)&cred->adc_namekind)) + return (FALSE); switch (cred->adc_namekind) { case ADN_FULLNAME: - ATTEMPT(xdr_string(xdrs, &cred->adc_fullname.name, - MAXNETNAMELEN)); - ATTEMPT(xdr_opaque(xdrs, (caddr_t)&cred->adc_fullname.key, - (u_int)sizeof (des_block))); - ATTEMPT(xdr_opaque(xdrs, (caddr_t)&cred->adc_fullname.window, - (u_int)sizeof (cred->adc_fullname.window))); - trace1(TR_xdr_authdes_cred, 1); - return (TRUE); + if (!xdr_string(xdrs, &cred->adc_fullname.name, + MAXNETNAMELEN)) + return (FALSE); + if (!xdr_opaque(xdrs, (caddr_t)&cred->adc_fullname.key, + (uint_t)sizeof (des_block))) + return (FALSE); + return (xdr_opaque(xdrs, (caddr_t)&cred->adc_fullname.window, + (uint_t)sizeof (cred->adc_fullname.window))); case ADN_NICKNAME: - ATTEMPT(xdr_opaque(xdrs, (caddr_t)&cred->adc_nickname, - (u_int)sizeof (cred->adc_nickname))); - trace1(TR_xdr_authdes_cred, 1); - return (TRUE); - default: - trace1(TR_xdr_authdes_cred, 1); - return (FALSE); + return (xdr_opaque(xdrs, (caddr_t)&cred->adc_nickname, + (uint_t)sizeof (cred->adc_nickname))); } + return (FALSE); } - bool_t -xdr_authdes_verf(register XDR *xdrs, register struct authdes_verf *verf) +xdr_authdes_verf(XDR *xdrs, struct authdes_verf *verf) { /* * Unrolled xdr */ - trace1(TR_xdr_authdes_verf, 0); - ATTEMPT(xdr_opaque(xdrs, (caddr_t)&verf->adv_xtimestamp, - (u_int)sizeof (des_block))); - ATTEMPT(xdr_opaque(xdrs, (caddr_t)&verf->adv_int_u, - (u_int)sizeof (verf->adv_int_u))); - trace1(TR_xdr_authdes_verf, 1); - return (TRUE); + if (!xdr_opaque(xdrs, (caddr_t)&verf->adv_xtimestamp, + (uint_t)sizeof (des_block))) + return (FALSE); + return (xdr_opaque(xdrs, (caddr_t)&verf->adv_int_u, + (uint_t)sizeof (verf->adv_int_u))); } diff --git a/usr/src/lib/libnsl/rpc/authsys_prot.c b/usr/src/lib/libnsl/rpc/authsys_prot.c index 967889da19..5b86879f1c 100644 --- a/usr/src/lib/libnsl/rpc/authsys_prot.c +++ b/usr/src/lib/libnsl/rpc/authsys_prot.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1991 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -35,17 +37,15 @@ /* * authsys_prot.c * XDR for UNIX style authentication parameters for RPC - * */ #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/xdr.h> #include <rpc/auth.h> #include <rpc/auth_sys.h> -bool_t xdr_uid_t(); -bool_t xdr_gid_t(); +extern bool_t xdr_uid_t(XDR *, uid_t *); +extern bool_t xdr_gid_t(XDR *, gid_t *); /* * XDR for unix authentication parameters. @@ -53,18 +53,14 @@ bool_t xdr_gid_t(); bool_t xdr_authsys_parms(XDR *xdrs, struct authsys_parms *p) { - trace1(TR_xdr_authsys_parms, 0); if (xdr_u_int(xdrs, &(p->aup_time)) && xdr_string(xdrs, &(p->aup_machname), MAX_MACHINE_NAME) && xdr_uid_t(xdrs, (uid_t *)&(p->aup_uid)) && xdr_gid_t(xdrs, (gid_t *)&(p->aup_gid)) && xdr_array(xdrs, (caddr_t *)&(p->aup_gids), - &(p->aup_len), NGRPS, (u_int)sizeof (gid_t), - (xdrproc_t) xdr_gid_t)) { - trace1(TR_xdr_authsys_parms, 1); + &(p->aup_len), NGRPS, (uint_t)sizeof (gid_t), + (xdrproc_t)xdr_gid_t)) return (TRUE); - } - trace1(TR_xdr_authsys_parms, 1); return (FALSE); } @@ -74,18 +70,14 @@ xdr_authsys_parms(XDR *xdrs, struct authsys_parms *p) bool_t xdr_authloopback_parms(XDR *xdrs, struct authsys_parms *p) { - /* trace1(TR_xdr_authsys_parms, 0); */ if (xdr_u_int(xdrs, &(p->aup_time)) && xdr_string(xdrs, &(p->aup_machname), MAX_MACHINE_NAME) && xdr_uid_t(xdrs, (uid_t *)&(p->aup_uid)) && xdr_gid_t(xdrs, (gid_t *)&(p->aup_gid)) && xdr_array(xdrs, (caddr_t *)&(p->aup_gids), - &(p->aup_len), NGRPS_LOOPBACK, sizeof (gid_t), - (xdrproc_t) xdr_gid_t)) { - /* trace1(TR_xdr_authsys_parms, 1); */ + &(p->aup_len), NGRPS_LOOPBACK, (uint_t)sizeof (gid_t), + (xdrproc_t)xdr_gid_t)) return (TRUE); - } - /* trace1(TR_xdr_authsys_parms, 1); */ return (FALSE); } @@ -95,25 +87,10 @@ xdr_authloopback_parms(XDR *xdrs, struct authsys_parms *p) bool_t xdr_uid_t(XDR *xdrs, uid_t *ip) { - bool_t dummy; - - trace1(TR_xdr_uid_t, 0); -#ifdef lint - (void) (xdr_short(xdrs, (short *)ip)); - dummy = xdr_int(xdrs, (int *)ip); - trace1(TR_xdr_uid_t, 1); - return (dummy); -#else - if (sizeof (uid_t) == sizeof (int)) { - dummy = xdr_int(xdrs, (int *)ip); - trace1(TR_xdr_uid_t, 1); - return (dummy); - } else { - dummy = xdr_short(xdrs, (short *)ip); - trace1(TR_xdr_uid_t, 1); - return (dummy); - } -#endif + /* CONSTCOND */ + if (sizeof (uid_t) != sizeof (int)) + return (xdr_short(xdrs, (short *)ip)); + return (xdr_int(xdrs, (int *)ip)); } /* @@ -122,23 +99,8 @@ xdr_uid_t(XDR *xdrs, uid_t *ip) bool_t xdr_gid_t(XDR *xdrs, gid_t *ip) { - bool_t dummy; - - trace1(TR_xdr_gid_t, 0); -#ifdef lint - (void) (xdr_short(xdrs, (short *)ip)); - dummy = xdr_int(xdrs, (int *)ip); - trace1(TR_xdr_gid_t, 1); - return (dummy); -#else - if (sizeof (gid_t) == sizeof (int)) { - dummy = xdr_int(xdrs, (int *)ip); - trace1(TR_xdr_gid_t, 1); - return (dummy); - } else { - dummy = xdr_short(xdrs, (short *)ip); - trace1(TR_xdr_gid_t, 1); - return (dummy); - } -#endif + /* CONSTCOND */ + if (sizeof (gid_t) != sizeof (int)) + return (xdr_short(xdrs, (short *)ip)); + return (xdr_int(xdrs, (int *)ip)); } diff --git a/usr/src/lib/libnsl/rpc/can_use_af.c b/usr/src/lib/libnsl/rpc/can_use_af.c index 56070e3f9b..e75590cf87 100644 --- a/usr/src/lib/libnsl/rpc/can_use_af.c +++ b/usr/src/lib/libnsl/rpc/can_use_af.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1999 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -40,19 +41,19 @@ * family. */ int -__can_use_af(sa_family_t af) { - +__can_use_af(sa_family_t af) +{ struct lifnum lifn; int fd; - if ((fd = open("/dev/udp", O_RDONLY)) < 0) { + if ((fd = open("/dev/udp", O_RDONLY)) < 0) return (0); - } lifn.lifn_family = af; + /* XXX Remove this after fixing 6204567 */ + /* CONSTCOND */ lifn.lifn_flags = IFF_UP & !(IFF_NOXMIT | IFF_DEPRECATED); - if (ioctl(fd, SIOCGLIFNUM, &lifn, sizeof (lifn)) < 0) { + if (ioctl(fd, SIOCGLIFNUM, &lifn, sizeof (lifn)) < 0) lifn.lifn_count = 0; - } (void) close(fd); return (lifn.lifn_count); diff --git a/usr/src/lib/libnsl/rpc/clnt_bcast.c b/usr/src/lib/libnsl/rpc/clnt_bcast.c index 3ea08ff964..d672c1b915 100644 --- a/usr/src/lib/libnsl/rpc/clnt_bcast.c +++ b/usr/src/lib/libnsl/rpc/clnt_bcast.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1999 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -41,8 +43,8 @@ */ #include <string.h> +#include <strings.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/nettype.h> #include <sys/poll.h> #include <netdir.h> @@ -58,6 +60,10 @@ #include <syslog.h> #include <stdlib.h> #include <unistd.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> #define MAXBCAST 20 /* Max no of broadcasting transports */ #define INITTIME 4000 /* Time to wait initially */ @@ -68,9 +74,6 @@ int lowvers = 1; /* by default, broadcast only version 2 over UDP */ #define NETIDLEN 32 #endif -extern int inet_pton(); -extern int bzero(caddr_t dst, int len); - /* * If nettype is NULL, it broadcasts on all the available * datagram_n transports. May potentially lead to broadacst storms @@ -96,34 +99,25 @@ extern int bzero(caddr_t dst, int len); enum clnt_stat -rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, - eachresult, inittime, waittime, netclass) - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ - xdrproc_t xresults; /* xdr routine for results */ - caddr_t resultsp; /* pointer to results */ - resultproc_t eachresult; /* call with each result obtained */ - int inittime; /* how long to wait initially */ - int waittime; /* maximum time to wait */ - const char *netclass; /* transport type */ +rpc_broadcast_exp(const rpcprog_t prog, const rpcvers_t vers, + const rpcproc_t proc, const xdrproc_t xargs, caddr_t argsp, + const xdrproc_t xresults, caddr_t resultsp, const resultproc_t eachresult, + const int inittime, const int waittime, const char *netclass) { enum clnt_stat stat = RPC_SUCCESS; /* Return status */ - XDR xdr_stream; /* XDR stream */ - register XDR *xdrs = &xdr_stream; + XDR xdr_stream; /* XDR stream */ + XDR *xdrs = &xdr_stream; struct rpc_msg msg; /* RPC message */ struct timeval t; - char *outbuf = NULL; /* Broadcast msg buffer */ + char *outbuf = NULL; /* Broadcast msg buffer */ char *inbuf = NULL; /* Reply buf */ uint_t maxbufsize = 0; - AUTH *sys_auth = authsys_create_default(); - register int i, j; + AUTH *sys_auth = authsys_create_default(); + int i, j; void *handle; char uaddress[1024]; /* A self imposed limit */ char *uaddrp = uaddress; - int pmap_reply_flag; /* reply recvd from PORTMAP */ + int pmap_reply_flag; /* reply recvd from PORTMAP */ /* An array of all the suitable broadcast transports */ struct { int fd; /* File descriptor */ @@ -135,7 +129,7 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, struct nd_addrlist *nal; /* Broadcast addrs */ } fdlist[MAXBCAST]; struct pollfd pfd[MAXBCAST]; - register int fdlistno = 0; + int fdlistno = 0; struct r_rpcb_rmtcallargs barg; /* Remote arguments */ struct r_rpcb_rmtcallres bres; /* Remote results */ struct t_unitdata t_udata, t_rdata; @@ -157,11 +151,8 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, int udpbufsz = 0; #endif /* PORTMAP */ - trace4(TR_rpc_broadcast, 0, prog, vers, proc); - if (sys_auth == (AUTH *)NULL) { - trace4(TR_rpc_broadcast, 1, prog, vers, proc); + if (sys_auth == NULL) return (RPC_SYSTEMERROR); - } /* * initialization: create a fd, a broadcast address, and send the * request on the broadcast transport. @@ -173,19 +164,15 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, nettype = NULL; else { size_t len = strlen(netclass); - if (len >= sizeof (nettype_array)) { - trace4(TR_rpc_broadcast, 1, prog, vers, proc); + if (len >= sizeof (nettype_array)) return (RPC_UNKNOWNPROTO); - } - strcpy(nettype, netclass); + (void) strcpy(nettype, netclass); } if (nettype == NULL) nettype = "datagram_n"; - if ((handle = __rpc_setconf((char *)nettype)) == NULL) { - trace4(TR_rpc_broadcast, 1, prog, vers, proc); + if ((handle = __rpc_setconf((char *)nettype)) == NULL) return (RPC_UNKNOWNPROTO); - } while (nconf = __rpc_getconf(handle)) { struct t_info tinfo; int fd; @@ -199,8 +186,7 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, stat = RPC_CANTSEND; continue; } - if (t_bind(fd, (struct t_bind *)NULL, - (struct t_bind *)NULL) == -1) { + if (t_bind(fd, NULL, NULL) == -1) { (void) t_close(fd); stat = RPC_CANTSEND; continue; @@ -216,7 +202,7 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, fdlist[fdlistno].udp_flag = FALSE; if (((addrlen = __rpc_get_a_size(tinfo.addr)) == 0) || ((fdlist[fdlistno].raddr.buf = malloc(addrlen)) == NULL)) { - t_close(fd); + (void) t_close(fd); stat = RPC_SYSTEMERROR; goto done_broad; } @@ -229,7 +215,7 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, if ((fdlist[fdlistno].dsize = __rpc_get_t_size(0, tinfo.tsdu)) == 0) { - t_close(fd); + (void) t_close(fd); free(fdlist[fdlistno].raddr.buf); stat = RPC_SYSTEMERROR; /* XXX */ goto done_broad; @@ -242,7 +228,7 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, strcmp(nconf->nc_proto, NC_UDP) == 0) { udpbufsz = fdlist[fdlistno].dsize; if ((outbuf_pmap = malloc(udpbufsz)) == NULL) { - t_close(fd); + (void) t_close(fd); free(fdlist[fdlistno].raddr.buf); stat = RPC_SYSTEMERROR; goto done_broad; @@ -290,8 +276,8 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, msg.rm_call.cb_cred = sys_auth->ah_cred; msg.rm_call.cb_verf = sys_auth->ah_verf; xdrmem_create(xdrs, outbuf, maxbufsize, XDR_ENCODE); - if ((! xdr_callmsg(xdrs, &msg)) || - (! xdr_rpcb_rmtcallargs(xdrs, &barg))) { + if ((!xdr_callmsg(xdrs, &msg)) || + (!xdr_rpcb_rmtcallargs(xdrs, &barg))) { stat = RPC_CANTENCODEARGS; goto done_broad; } @@ -319,8 +305,8 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, bres_pmap.xdr_res = xresults; bres_pmap.res.res_val = resultsp; xdrmem_create(xdrs, outbuf_pmap, udpbufsz, XDR_ENCODE); - if ((! xdr_callmsg(xdrs, &msg)) || - (! xdr_rmtcallargs(xdrs, &barg_pmap))) { + if ((!xdr_callmsg(xdrs, &msg)) || + (!xdr_rmtcallargs(xdrs, &barg_pmap))) { stat = RPC_CANTENCODEARGS; goto done_broad; } @@ -370,7 +356,7 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, (void) syslog(LOG_ERR, "Cannot send broadcast\ packet: %m"); -#ifdef RPC_DEBUG +#ifdef RPC_DEBUG t_error("rpc_broadcast: t_sndudata"); #endif stat = RPC_CANTSEND; @@ -392,8 +378,10 @@ packet: %m"); } for (j = 0; j < addrlist->n_cnt; j++) { +#ifdef RPC_DEBUG struct netconfig *nconf = fdlist[i].nconf; +#endif t_udata.addr = addrlist->n_addrs[j]; @@ -408,13 +396,13 @@ packet: %m"); (void) syslog(LOG_ERR, "Cannot send broadcast\ packet: %m"); -#ifdef RPC_DEBUG +#ifdef RPC_DEBUG t_error("rpc_broadcast: t_sndudata"); #endif stat = RPC_CANTSEND; continue; }; -#ifdef RPC_DEBUG +#ifdef RPC_DEBUG if (!lowvers || !fdlist[i].udp_flag) fprintf(stderr, "Broadcast\ packet sent for %s\n", nconf->nc_netid); @@ -537,6 +525,7 @@ sent for %s\n", nconf->nc_netid); * If so, decode the results. If return id is xid + 1 * it was a PORTMAP reply */ + /* LINTED pointer cast */ if (*((uint32_t *)(inbuf)) == *((uint32_t *)(outbuf))) { pmap_reply_flag = 0; msg.acpted_rply.ar_verf = _null_auth; @@ -546,8 +535,10 @@ sent for %s\n", nconf->nc_netid); (xdrproc_t)xdr_rpcb_rmtcallres; #ifdef PORTMAP } else if (pmap_flag && + /* LINTED pointer cast */ *((uint32_t *)(inbuf)) == - *((uint32_t *)(outbuf_pmap))) { + /* LINTED pointer cast */ + *((uint32_t *)(outbuf_pmap))) { pmap_reply_flag = 1; msg.acpted_rply.ar_verf = _null_auth; msg.acpted_rply.ar_results.where = @@ -566,6 +557,7 @@ sent for %s\n", nconf->nc_netid); #ifdef PORTMAP if (pmap_flag && pmap_reply_flag) { /* convert port to taddr */ + /* LINTED pointer cast */ ((struct sockaddr_in *) t_rdata.addr.buf)->sin_port = htons((ushort_t)*port); @@ -615,44 +607,29 @@ sent for %s\n", nconf->nc_netid); done_broad: if (inbuf) - (void) free(inbuf); + free(inbuf); if (outbuf) - (void) free(outbuf); + free(outbuf); #ifdef PORTMAP if (outbuf_pmap) - (void) free(outbuf_pmap); + free(outbuf_pmap); #endif for (i = 0; i < fdlistno; i++) { (void) t_close(fdlist[i].fd); - (void) free(fdlist[i].raddr.buf); + free(fdlist[i].raddr.buf); } AUTH_DESTROY(sys_auth); (void) __rpc_endconf(handle); - trace4(TR_rpc_broadcast, 1, prog, vers, proc); return (stat); } - enum clnt_stat -rpc_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, - eachresult, nettype) - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ - xdrproc_t xresults; /* xdr routine for results */ - caddr_t resultsp; /* pointer to results */ - resultproc_t eachresult; /* call with each result obtained */ - const char *nettype; /* transport type */ +rpc_broadcast(const rpcprog_t prog, const rpcvers_t vers, const rpcproc_t proc, + const xdrproc_t xargs, caddr_t argsp, xdrproc_t const xresults, + caddr_t resultsp, const resultproc_t eachresult, const char *nettype) { - enum clnt_stat dummy; - - trace4(TR_rpc_broadcast, 0, prog, vers, proc); - dummy = rpc_broadcast_exp(prog, vers, proc, xargs, argsp, + return (rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult, - INITTIME, WAITTIME, nettype); - trace1(TR_rpc_broadcast, 1); - return (dummy); + INITTIME, WAITTIME, nettype)); } diff --git a/usr/src/lib/libnsl/rpc/clnt_dg.c b/usr/src/lib/libnsl/rpc/clnt_dg.c index 2e1deb2858..ed7c6d02de 100644 --- a/usr/src/lib/libnsl/rpc/clnt_dg.c +++ b/usr/src/lib/libnsl/rpc/clnt_dg.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -37,12 +38,10 @@ * Implements a connectionless client side RPC. */ - #include "mt.h" #include "rpc_mt.h" #include <assert.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <errno.h> #include <sys/poll.h> #include <syslog.h> @@ -56,12 +55,15 @@ #include <strings.h> -extern int __rpc_timeval_to_msec(); -extern bool_t xdr_opaque_auth(); -extern bool_t __rpc_gss_unwrap(); +extern int __rpc_timeval_to_msec(struct timeval *); +extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); +extern bool_t __rpc_gss_wrap(AUTH *, char *, uint_t, XDR *, bool_t (*)(), + caddr_t); +extern bool_t __rpc_gss_unwrap(AUTH *, XDR *, bool_t (*)(), caddr_t); + -static struct clnt_ops *clnt_dg_ops(); -static bool_t time_not_ok(); +static struct clnt_ops *clnt_dg_ops(void); +static bool_t time_not_ok(struct timeval *); /* * This machinery implements per-fd locks for MT-safety. It is not @@ -124,13 +126,8 @@ static int _rcv_unitdata_err(struct cu_data *cu); * If svcaddr is NULL, returns NULL. */ CLIENT * -clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz) - int fd; /* open file descriptor */ - struct netbuf *svcaddr; /* servers address */ - rpcprog_t program; /* program number */ - rpcvers_t version; /* version number */ - uint_t sendsz; /* buffer recv size */ - uint_t recvsz; /* buffer send size */ +clnt_dg_create(const int fd, struct netbuf *svcaddr, const rpcprog_t program, + const rpcvers_t version, const uint_t sendsz, const uint_t recvsz) { CLIENT *cl = NULL; /* client handle */ struct cu_data *cu = NULL; /* private data */ @@ -138,8 +135,8 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz) struct t_info tinfo; struct timeval now; struct rpc_msg call_msg; - - trace5(TR_clnt_dg_create, 0, program, version, sendsz, recvsz); + uint_t ssz; + uint_t rsz; sig_mutex_lock(&dgtbl_lock); if ((dgtbl == NULL) && ((dgtbl = rpc_fd_init()) == NULL)) { @@ -148,17 +145,15 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz) } sig_mutex_unlock(&dgtbl_lock); - if (svcaddr == (struct netbuf *)NULL) { + if (svcaddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace3(TR_clnt_dg_create, 1, program, version); - return ((CLIENT *)NULL); + return (NULL); } if (t_getinfo(fd, &tinfo) == -1) { rpc_createerr.cf_stat = RPC_TLIERROR; rpc_createerr.cf_error.re_errno = 0; rpc_createerr.cf_error.re_terrno = t_errno; - trace3(TR_clnt_dg_create, 1, program, version); - return ((CLIENT *)NULL); + return (NULL); } /* * Setup to rcv datagram error, we ignore any errors returned from @@ -172,44 +167,43 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz) /* * Find the receive and the send size */ - sendsz = __rpc_get_t_size((int)sendsz, tinfo.tsdu); - recvsz = __rpc_get_t_size((int)recvsz, tinfo.tsdu); - if ((sendsz == 0) || (recvsz == 0)) { + ssz = __rpc_get_t_size((int)sendsz, tinfo.tsdu); + rsz = __rpc_get_t_size((int)recvsz, tinfo.tsdu); + if ((ssz == 0) || (rsz == 0)) { rpc_createerr.cf_stat = RPC_TLIERROR; /* XXX */ rpc_createerr.cf_error.re_errno = 0; rpc_createerr.cf_error.re_terrno = 0; - trace3(TR_clnt_dg_create, 1, program, version); - return ((CLIENT *)NULL); + return (NULL); } - if ((cl = (CLIENT *)mem_alloc(sizeof (CLIENT))) == (CLIENT *)NULL) + if ((cl = malloc(sizeof (CLIENT))) == NULL) goto err1; /* * Should be multiple of 4 for XDR. */ - sendsz = ((sendsz + 3) / 4) * 4; - recvsz = ((recvsz + 3) / 4) * 4; - cu = (struct cu_data *)mem_alloc(sizeof (*cu) + sendsz + recvsz); - if (cu == (struct cu_data *)NULL) + ssz = ((ssz + 3) / 4) * 4; + rsz = ((rsz + 3) / 4) * 4; + cu = malloc(sizeof (*cu) + ssz + rsz); + if (cu == NULL) goto err1; - if ((cu->cu_raddr.buf = mem_alloc(svcaddr->len)) == NULL) + if ((cu->cu_raddr.buf = malloc(svcaddr->len)) == NULL) goto err1; - (void) memcpy(cu->cu_raddr.buf, svcaddr->buf, (int)svcaddr->len); + (void) memcpy(cu->cu_raddr.buf, svcaddr->buf, (size_t)svcaddr->len); cu->cu_raddr.len = cu->cu_raddr.maxlen = svcaddr->len; - cu->cu_outbuf_start = &cu->cu_inbuf[recvsz]; + cu->cu_outbuf_start = &cu->cu_inbuf[rsz]; /* Other values can also be set through clnt_control() */ cu->cu_wait.tv_sec = 15; /* heuristically chosen */ cu->cu_wait.tv_usec = 0; cu->cu_total.tv_sec = -1; cu->cu_total.tv_usec = -1; - cu->cu_sendsz = sendsz; - cu->cu_recvsz = recvsz; - (void) gettimeofday(&now, (struct timezone *)NULL); + cu->cu_sendsz = ssz; + cu->cu_recvsz = rsz; + (void) gettimeofday(&now, NULL); call_msg.rm_xid = getpid() ^ now.tv_sec ^ now.tv_usec; call_msg.rm_call.cb_prog = program; call_msg.rm_call.cb_vers = version; - xdrmem_create(&(cu->cu_outxdrs), cu->cu_outbuf, sendsz, XDR_ENCODE); - if (! xdr_callhdr(&(cu->cu_outxdrs), &call_msg)) { + xdrmem_create(&(cu->cu_outxdrs), cu->cu_outbuf, ssz, XDR_ENCODE); + if (!xdr_callhdr(&(cu->cu_outxdrs), &call_msg)) { rpc_createerr.cf_stat = RPC_CANTENCODEARGS; /* XXX */ rpc_createerr.cf_error.re_errno = 0; rpc_createerr.cf_error.re_terrno = 0; @@ -217,12 +211,12 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz) } cu->cu_xdrpos = XDR_GETPOS(&(cu->cu_outxdrs)); XDR_DESTROY(&(cu->cu_outxdrs)); - xdrmem_create(&(cu->cu_outxdrs), cu->cu_outbuf_start, sendsz, + xdrmem_create(&(cu->cu_outxdrs), cu->cu_outbuf_start, ssz, XDR_ENCODE); /* LINTED pointer alignment */ tr_data = (struct t_unitdata *)t_alloc(fd, T_UNITDATA, T_ADDR | T_OPT); - if (tr_data == (struct t_unitdata *)NULL) { + if (tr_data == NULL) { goto err1; } tr_data->udata.maxlen = cu->cu_recvsz; @@ -239,11 +233,10 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz) cl->cl_ops = clnt_dg_ops(); cl->cl_private = (caddr_t)cu; cl->cl_auth = authnone_create(); - cl->cl_tp = (char *)NULL; - cl->cl_netid = (char *)NULL; + cl->cl_tp = NULL; + cl->cl_netid = NULL; cu->pfdp.fd = cu->cu_fd; cu->pfdp.events = MASKVAL; - trace3(TR_clnt_dg_create, 1, program, version); return (cl); err1: (void) syslog(LOG_ERR, mem_err_clnt_dg); @@ -252,25 +245,18 @@ err1: rpc_createerr.cf_error.re_terrno = 0; err2: if (cl) { - mem_free((caddr_t)cl, sizeof (CLIENT)); + free(cl); if (cu) { - mem_free(cu->cu_raddr.buf, cu->cu_raddr.len); - mem_free((caddr_t)cu, sizeof (*cu) + sendsz + recvsz); + free(cu->cu_raddr.buf); + free(cu); } } - trace3(TR_clnt_dg_create, 1, program, version); - return ((CLIENT *)NULL); + return (NULL); } static enum clnt_stat -clnt_dg_call(cl, proc, xargs, argsp, xresults, resultsp, utimeout) - CLIENT *cl; /* client handle */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ - xdrproc_t xresults; /* xdr routine for results */ - caddr_t resultsp; /* pointer to results */ - struct timeval utimeout; /* seconds to wait before giving up */ +clnt_dg_call(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp, + xdrproc_t xresults, caddr_t resultsp, struct timeval utimeout) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; @@ -289,8 +275,6 @@ clnt_dg_call(cl, proc, xargs, argsp, xresults, resultsp, utimeout) int res; /* result of operations */ uint32_t x_id; - trace3(TR_clnt_dg_call, 0, cl, proc); - if (rpc_fd_lock(dgtbl, cu->cu_fd)) { rpc_callerr.re_status = RPC_FAILED; rpc_callerr.re_errno = errno; @@ -314,21 +298,21 @@ call_again: xdrs = &(cu->cu_outxdrs); xdrs->x_op = XDR_ENCODE; XDR_SETPOS(xdrs, 0); -/* LINTED pointer alignment */ /* * Due to little endian byte order, it is necessary to convert to host * format before incrementing xid. */ + /* LINTED pointer cast */ x_id = ntohl(*(uint32_t *)(cu->cu_outbuf)) + 1; /* set XID */ + /* LINTED pointer cast */ *(uint32_t *)cu->cu_outbuf = htonl(x_id); if (cl->cl_auth->ah_cred.oa_flavor != RPCSEC_GSS) { - if ((! XDR_PUTBYTES(xdrs, cu->cu_outbuf, cu->cu_xdrpos)) || - (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || - (! AUTH_MARSHALL(cl->cl_auth, xdrs)) || - (! xargs(xdrs, argsp))) { + if ((!XDR_PUTBYTES(xdrs, cu->cu_outbuf, cu->cu_xdrpos)) || + (!XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (!AUTH_MARSHALL(cl->cl_auth, xdrs)) || + (!xargs(xdrs, argsp))) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_CANTENCODEARGS); } } else { @@ -338,7 +322,6 @@ call_again: if (!__rpc_gss_wrap(cl->cl_auth, cu->cu_outbuf, ((char *)u) - cu->cu_outbuf, xdrs, xargs, argsp)) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_CANTENCODEARGS); } } @@ -352,7 +335,6 @@ send_again: rpc_callerr.re_terrno = t_errno; rpc_callerr.re_errno = errno; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_CANTSEND); } @@ -361,7 +343,6 @@ send_again: */ if (timeout.tv_sec == 0 && timeout.tv_usec == 0) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_TIMEDOUT); } /* @@ -391,7 +372,6 @@ send_again: * this could happen if time_waited >= timeout */ rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_TIMEDOUT); } @@ -412,7 +392,6 @@ send_again: rpc_callerr.re_errno = errno; rpc_callerr.re_terrno = 0; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_CANTRECV); } /*FALLTHROUGH*/ @@ -489,7 +468,6 @@ timeout: (void) gettimeofday(&curtime, NULL); goto send_again; } rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_TIMEDOUT); default: @@ -507,7 +485,6 @@ timeout: (void) gettimeofday(&curtime, NULL); */ rpc_callerr.re_errno = errno = EBADF; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (-1); } @@ -553,14 +530,14 @@ timeout: (void) gettimeofday(&curtime, NULL); if (errnoflag == FALSE) rpc_callerr.re_errno = errno; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status = RPC_CANTRECV); } if (cu->cu_tr_data->udata.len < (uint_t)sizeof (uint32_t)) continue; /* see if reply transaction id matches sent id */ -/* LINTED pointer alignment */ + /* LINTED pointer alignment */ if (*((uint32_t *)(cu->cu_inbuf)) != + /* LINTED pointer alignment */ *((uint32_t *)(cu->cu_outbuf))) goto timeout; /* we now assume we have the proper reply */ @@ -583,7 +560,7 @@ timeout: (void) gettimeofday(&curtime, NULL); __seterr_reply(&reply_msg, &(rpc_callerr)); if (rpc_callerr.re_status == RPC_SUCCESS) { - if (! AUTH_VALIDATE(cl->cl_auth, + if (!AUTH_VALIDATE(cl->cl_auth, &reply_msg.acpted_rply.ar_verf)) { rpc_callerr.re_status = RPC_AUTHERROR; rpc_callerr.re_why = AUTH_INVALIDRESP; @@ -633,16 +610,11 @@ timeout: (void) gettimeofday(&curtime, NULL); } rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_call, 1, cl); return (rpc_callerr.re_status); } static enum clnt_stat -clnt_dg_send(cl, proc, xargs, argsp) - CLIENT *cl; /* client handle */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ +clnt_dg_send(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; @@ -651,8 +623,6 @@ clnt_dg_send(cl, proc, xargs, argsp) struct t_unitdata tu_data; uint32_t x_id; - trace3(TR_clnt_dg_send, 0, cl, proc); - if (rpc_fd_lock(dgtbl, cu->cu_fd)) { rpc_callerr.re_status = RPC_FAILED; rpc_callerr.re_errno = errno; @@ -665,21 +635,21 @@ clnt_dg_send(cl, proc, xargs, argsp) xdrs = &(cu->cu_outxdrs); xdrs->x_op = XDR_ENCODE; XDR_SETPOS(xdrs, 0); -/* LINTED pointer alignment */ /* * Due to little endian byte order, it is necessary to convert to host * format before incrementing xid. */ +/* LINTED pointer alignment */ x_id = ntohl(*(uint32_t *)(cu->cu_outbuf)) + 1; /* set XID */ + /* LINTED pointer cast */ *(uint32_t *)cu->cu_outbuf = htonl(x_id); if (cl->cl_auth->ah_cred.oa_flavor != RPCSEC_GSS) { - if ((! XDR_PUTBYTES(xdrs, cu->cu_outbuf, cu->cu_xdrpos)) || - (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || - (! AUTH_MARSHALL(cl->cl_auth, xdrs)) || - (! xargs(xdrs, argsp))) { + if ((!XDR_PUTBYTES(xdrs, cu->cu_outbuf, cu->cu_xdrpos)) || + (!XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (!AUTH_MARSHALL(cl->cl_auth, xdrs)) || + (!xargs(xdrs, argsp))) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_send, 1, cl); return (rpc_callerr.re_status = RPC_CANTENCODEARGS); } } else { @@ -689,7 +659,6 @@ clnt_dg_send(cl, proc, xargs, argsp) if (!__rpc_gss_wrap(cl->cl_auth, cu->cu_outbuf, ((char *)u) - cu->cu_outbuf, xdrs, xargs, argsp)) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_send, 1, cl); return (rpc_callerr.re_status = RPC_CANTENCODEARGS); } } @@ -702,7 +671,6 @@ clnt_dg_send(cl, proc, xargs, argsp) rpc_callerr.re_terrno = t_errno; rpc_callerr.re_errno = errno; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_send, 1, cl); return (rpc_callerr.re_status = RPC_CANTSEND); } @@ -716,9 +684,7 @@ clnt_dg_geterr(CLIENT *cl, struct rpc_err *errp) /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; - trace2(TR_clnt_dg_geterr, 0, cl); *errp = rpc_callerr; - trace2(TR_clnt_dg_geterr, 1, cl); } static bool_t @@ -727,23 +693,19 @@ clnt_dg_freeres(CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr) /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; XDR *xdrs = &(cu->cu_outxdrs); - bool_t dummy; + bool_t stat; - trace2(TR_clnt_dg_freeres, 0, cl); - rpc_fd_lock(dgtbl, cu->cu_fd); + (void) rpc_fd_lock(dgtbl, cu->cu_fd); xdrs->x_op = XDR_FREE; - dummy = (*xdr_res)(xdrs, res_ptr); + stat = (*xdr_res)(xdrs, res_ptr); rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_freeres, 1, cl); - return (dummy); + return (stat); } +/* ARGSUSED */ static void -clnt_dg_abort(/* h */) - /* CLIENT *h; */ +clnt_dg_abort(CLIENT *h) { - trace1(TR_clnt_dg_abort, 0); - trace1(TR_clnt_dg_abort, 1); } static bool_t @@ -752,8 +714,6 @@ clnt_dg_control(CLIENT *cl, int request, char *info) /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; struct netbuf *addr; - trace3(TR_clnt_dg_control, 0, cl, request); - if (rpc_fd_lock(dgtbl, cu->cu_fd)) { rpc_fd_unlock(dgtbl, cu->cu_fd); return (RPC_FAILED); @@ -763,19 +723,16 @@ clnt_dg_control(CLIENT *cl, int request, char *info) case CLSET_FD_CLOSE: cu->cu_closeit = TRUE; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (TRUE); case CLSET_FD_NCLOSE: cu->cu_closeit = FALSE; rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (TRUE); } /* for other requests which use info */ if (info == NULL) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (FALSE); } switch (request) { @@ -783,7 +740,6 @@ clnt_dg_control(CLIENT *cl, int request, char *info) /* LINTED pointer alignment */ if (time_not_ok((struct timeval *)info)) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (FALSE); } /* LINTED pointer alignment */ @@ -795,13 +751,12 @@ clnt_dg_control(CLIENT *cl, int request, char *info) break; case CLGET_SERVER_ADDR: /* Give him the fd address */ /* Now obsolete. Only for backword compatibility */ - (void) memcpy(info, cu->cu_raddr.buf, (int)cu->cu_raddr.len); + (void) memcpy(info, cu->cu_raddr.buf, (size_t)cu->cu_raddr.len); break; case CLSET_RETRY_TIMEOUT: /* LINTED pointer alignment */ if (time_not_ok((struct timeval *)info)) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (FALSE); } /* LINTED pointer alignment */ @@ -823,10 +778,9 @@ clnt_dg_control(CLIENT *cl, int request, char *info) /* LINTED pointer alignment */ addr = (struct netbuf *)info; if (cu->cu_raddr.maxlen < addr->len) { - mem_free(cu->cu_raddr.buf, cu->cu_raddr.maxlen); - if ((cu->cu_raddr.buf = mem_alloc(addr->len)) == NULL) { + free(cu->cu_raddr.buf); + if ((cu->cu_raddr.buf = malloc(addr->len)) == NULL) { rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (FALSE); } cu->cu_raddr.maxlen = addr->len; @@ -891,11 +845,9 @@ clnt_dg_control(CLIENT *cl, int request, char *info) default: rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (FALSE); } rpc_fd_unlock(dgtbl, cu->cu_fd); - trace2(TR_clnt_dg_control, 1, cl); return (TRUE); } @@ -906,23 +858,20 @@ clnt_dg_destroy(CLIENT *cl) struct cu_data *cu = (struct cu_data *)cl->cl_private; int cu_fd = cu->cu_fd; - trace2(TR_clnt_dg_destroy, 0, cl); - rpc_fd_lock(dgtbl, cu_fd); + (void) rpc_fd_lock(dgtbl, cu_fd); if (cu->cu_closeit) (void) t_close(cu_fd); XDR_DESTROY(&(cu->cu_outxdrs)); cu->cu_tr_data->udata.buf = NULL; (void) t_free((char *)cu->cu_tr_data, T_UNITDATA); - mem_free(cu->cu_raddr.buf, cu->cu_raddr.len); - mem_free((caddr_t)cu, - (sizeof (*cu) + cu->cu_sendsz + cu->cu_recvsz)); + free(cu->cu_raddr.buf); + free(cu); if (cl->cl_netid && cl->cl_netid[0]) - mem_free(cl->cl_netid, strlen(cl->cl_netid) +1); + free(cl->cl_netid); if (cl->cl_tp && cl->cl_tp[0]) - mem_free(cl->cl_tp, strlen(cl->cl_tp) +1); - mem_free((caddr_t)cl, sizeof (CLIENT)); + free(cl->cl_tp); + free(cl); rpc_fd_unlock(dgtbl, cu_fd); - trace2(TR_clnt_dg_destroy, 1, cl); } static struct clnt_ops * @@ -933,7 +882,6 @@ clnt_dg_ops(void) /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_clnt_dg_ops, 0); sig_mutex_lock(&ops_lock); if (ops.cl_call == NULL) { ops.cl_call = clnt_dg_call; @@ -945,7 +893,6 @@ clnt_dg_ops(void) ops.cl_control = clnt_dg_control; } sig_mutex_unlock(&ops_lock); - trace1(TR_clnt_dg_ops, 1); return (&ops); } @@ -955,8 +902,6 @@ clnt_dg_ops(void) static bool_t time_not_ok(struct timeval *t) { - trace1(TR_time_not_ok, 0); - trace1(TR_time_not_ok, 1); return (t->tv_sec < -1 || t->tv_sec > 100000000 || t->tv_usec < -1 || t->tv_usec > 1000000); } @@ -974,6 +919,7 @@ _rcv_unitdata_err(struct cu_data *cu) struct t_uderr *uderr; old = t_errno; + /* LINTED pointer cast */ uderr = (struct t_uderr *) t_alloc(cu->cu_fd, T_UDERROR, T_ADDR); @@ -984,17 +930,16 @@ _rcv_unitdata_err(struct cu_data *cu) if (uderr->addr.len != cu->cu_raddr.len || (memcmp(uderr->addr.buf, cu->cu_raddr.buf, cu->cu_raddr.len))) { - t_free((char *)uderr, T_UDERROR); + (void) t_free((char *)uderr, T_UDERROR); return (0); } rpc_callerr.re_errno = uderr->error; rpc_callerr.re_terrno = TSYSERR; - t_free((char *)uderr, T_UDERROR); + (void) t_free((char *)uderr, T_UDERROR); return (1); - } else { - rpc_callerr.re_terrno = old; - if (uderr) - t_free((char *)uderr, T_UDERROR); - return (-1); } + rpc_callerr.re_terrno = old; + if (uderr) + (void) t_free((char *)uderr, T_UDERROR); + return (-1); } diff --git a/usr/src/lib/libnsl/rpc/clnt_door.c b/usr/src/lib/libnsl/rpc/clnt_door.c index 44606d5075..4b672350f1 100644 --- a/usr/src/lib/libnsl/rpc/clnt_door.c +++ b/usr/src/lib/libnsl/rpc/clnt_door.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -45,9 +46,10 @@ #include <string.h> #include <alloca.h> #include <rpc/svc_mt.h> +#include <sys/mman.h> -extern bool_t xdr_opaque_auth(); +extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); static struct clnt_ops *clnt_door_ops(); @@ -76,10 +78,8 @@ struct cu_data { * 0 will cause default to be used. */ CLIENT * -clnt_door_create(program, version, sendsz) - rpcprog_t program; /* program number */ - rpcvers_t version; /* version number */ - uint_t sendsz; /* buffer recv size */ +clnt_door_create(const rpcprog_t program, const rpcvers_t version, + const uint_t sendsz) { CLIENT *cl = NULL; /* client handle */ struct cu_data *cu = NULL; /* private data */ @@ -89,8 +89,10 @@ clnt_door_create(program, version, sendsz) struct door_info info; XDR xdrs; struct timeval now; + uint_t ssz; - (void) sprintf(rendezvous, RPC_DOOR_RENDEZVOUS, program, version); + (void) sprintf(rendezvous, RPC_DOOR_RENDEZVOUS, (int)program, + (int)version); if ((did = open(rendezvous, O_RDONLY, 0)) < 0) { rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED; rpc_createerr.cf_error.re_errno = errno; @@ -99,7 +101,7 @@ clnt_door_create(program, version, sendsz) } if (door_info(did, &info) < 0 || (info.di_attributes & DOOR_REVOKED)) { - close(did); + (void) close(did); rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED; rpc_createerr.cf_error.re_errno = errno; rpc_createerr.cf_error.re_terrno = 0; @@ -110,13 +112,12 @@ clnt_door_create(program, version, sendsz) * Determine send size */ if (sendsz < __rpc_min_door_buf_size) - sendsz = __rpc_default_door_buf_size; + ssz = __rpc_default_door_buf_size; else - sendsz = RNDUP(sendsz); + ssz = RNDUP(sendsz); - if ((cl = (CLIENT *) mem_alloc(sizeof (CLIENT))) == (CLIENT *)NULL || - (cu = (struct cu_data *)mem_alloc(sizeof (*cu))) == - (struct cu_data *)NULL) { + if ((cl = malloc(sizeof (CLIENT))) == NULL || + (cu = malloc(sizeof (*cu))) == NULL) { rpc_createerr.cf_stat = RPC_SYSTEMERROR; rpc_createerr.cf_error.re_errno = errno; goto err; @@ -125,7 +126,7 @@ clnt_door_create(program, version, sendsz) /* * Precreate RPC header for performance reasons. */ - (void) gettimeofday(&now, (struct timezone *)NULL); + (void) gettimeofday(&now, NULL); call_msg.rm_xid = getpid() ^ now.tv_sec ^ now.tv_usec; call_msg.rm_call.cb_prog = program; call_msg.rm_call.cb_vers = version; @@ -137,7 +138,7 @@ clnt_door_create(program, version, sendsz) } cu->cu_xdrpos = XDR_GETPOS(&xdrs); - cu->cu_sendsz = sendsz; + cu->cu_sendsz = ssz; cu->cu_fd = did; cu->cu_closeit = TRUE; cl->cl_ops = clnt_door_ops(); @@ -163,24 +164,18 @@ clnt_door_create(program, version, sendsz) err: rpc_createerr.cf_error.re_terrno = 0; if (cl) { - mem_free((caddr_t)cl, sizeof (CLIENT)); + free(cl); if (cu) - mem_free((caddr_t)cu, sizeof (*cu)); + free(cu); } - close(did); - return ((CLIENT *)NULL); + (void) close(did); + return (NULL); } /* ARGSUSED */ static enum clnt_stat -clnt_door_call(cl, proc, xargs, argsp, xresults, resultsp, utimeout) - CLIENT *cl; /* client handle */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ - xdrproc_t xresults; /* xdr routine for results */ - caddr_t resultsp; /* pointer to results */ - struct timeval utimeout; /* seconds to wait before giving up */ +clnt_door_call(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp, + xdrproc_t xresults, caddr_t resultsp, struct timeval utimeout) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; @@ -190,19 +185,18 @@ clnt_door_call(cl, proc, xargs, argsp, xresults, resultsp, utimeout) struct rpc_msg reply_msg; bool_t need_to_unmap; int nrefreshes = 2; /* number of times to refresh cred */ - extern int munmap(); rpc_callerr.re_errno = 0; rpc_callerr.re_terrno = 0; - if ((params.rbuf = (char *)alloca(cu->cu_sendsz)) == NULL) { + if ((params.rbuf = alloca(cu->cu_sendsz)) == NULL) { rpc_callerr.re_terrno = 0; rpc_callerr.re_errno = errno; return (rpc_callerr.re_status = RPC_SYSTEMERROR); } outbuf_ref = params.rbuf; params.rsize = cu->cu_sendsz; - if ((params.data_ptr = (char *)alloca(cu->cu_sendsz)) == NULL) { + if ((params.data_ptr = alloca(cu->cu_sendsz)) == NULL) { rpc_callerr.re_terrno = 0; rpc_callerr.re_errno = errno; return (rpc_callerr.re_status = RPC_SYSTEMERROR); @@ -212,7 +206,7 @@ call_again: xdrmem_create(&xdrs, params.data_ptr, cu->cu_sendsz, XDR_ENCODE); /* LINTED pointer alignment */ (*(uint32_t *)cu->cu_header)++; /* increment XID */ - memcpy(params.data_ptr, cu->cu_header, cu->cu_xdrpos); + (void) memcpy(params.data_ptr, cu->cu_header, cu->cu_xdrpos); XDR_SETPOS(&xdrs, cu->cu_xdrpos); if ((!XDR_PUTINT32(&xdrs, (int32_t *)&proc)) || @@ -275,7 +269,8 @@ call_again: if (nrefreshes-- && AUTH_REFRESH(cl->cl_auth, &reply_msg)) { if (need_to_unmap) - munmap(params.rbuf, params.rsize); + (void) munmap(params.rbuf, + params.rsize); goto call_again; } else /* @@ -292,17 +287,13 @@ call_again: done: if (need_to_unmap) - munmap(params.rbuf, params.rsize); + (void) munmap(params.rbuf, params.rsize); return (rpc_callerr.re_status); } /* ARGSUSED */ static enum clnt_stat -clnt_door_send(cl, proc, xargs, argsp) - CLIENT *cl; /* client handle */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ +clnt_door_send(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp) { /* send() call not supported on doors */ @@ -313,9 +304,7 @@ clnt_door_send(cl, proc, xargs, argsp) } static void -clnt_door_geterr(cl, errp) - CLIENT *cl; - struct rpc_err *errp; +clnt_door_geterr(CLIENT *cl, struct rpc_err *errp) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; @@ -325,30 +314,23 @@ clnt_door_geterr(cl, errp) /* ARGSUSED */ static bool_t -clnt_door_freeres(cl, xdr_res, res_ptr) - CLIENT *cl; - xdrproc_t xdr_res; - caddr_t res_ptr; +clnt_door_freeres(CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr) { XDR xdrs; - memset(&xdrs, 0, sizeof (xdrs)); + (void) memset(&xdrs, 0, sizeof (xdrs)); xdrs.x_op = XDR_FREE; return ((*xdr_res)(&xdrs, res_ptr)); } static void -clnt_door_abort(cl) - CLIENT *cl; +clnt_door_abort(CLIENT *cl) { cl = cl; } static bool_t -clnt_door_control(cl, request, info) - CLIENT *cl; - int request; - char *info; +clnt_door_control(CLIENT *cl, int request, char *info) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; @@ -435,25 +417,24 @@ clnt_door_control(cl, request, info) } static void -clnt_door_destroy(cl) - CLIENT *cl; +clnt_door_destroy(CLIENT *cl) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; int cu_fd = cu->cu_fd; if (cu->cu_closeit) - close(cu_fd); - mem_free((caddr_t)cu, sizeof (*cu)); + (void) close(cu_fd); + free(cu); if (cl->cl_netid && cl->cl_netid[0]) - mem_free(cl->cl_netid, strlen(cl->cl_netid) + 1); + free(cl->cl_netid); if (cl->cl_tp && cl->cl_tp[0]) - mem_free(cl->cl_tp, strlen(cl->cl_tp) + 1); - mem_free((caddr_t)cl, sizeof (CLIENT)); + free(cl->cl_tp); + free(cl); } static struct clnt_ops * -clnt_door_ops() +clnt_door_ops(void) { static struct clnt_ops ops; extern mutex_t ops_lock; @@ -473,9 +454,7 @@ clnt_door_ops() } int -_update_did(cl, vers) - CLIENT *cl; - int vers; +_update_did(CLIENT *cl, int vers) { /* LINTED pointer alignment */ struct cu_data *cu = (struct cu_data *)cl->cl_private; @@ -483,10 +462,10 @@ _update_did(cl, vers) char rendezvous[64]; if (cu->cu_fd >= 0) - close(cu->cu_fd); + (void) close(cu->cu_fd); /* Make sure that the right door id is used in door_call. */ clnt_control(cl, CLGET_PROG, (void *)&prog); - (void) sprintf(rendezvous, RPC_DOOR_RENDEZVOUS, prog, vers); + (void) sprintf(rendezvous, RPC_DOOR_RENDEZVOUS, (int)prog, vers); if ((cu->cu_fd = open(rendezvous, O_RDONLY, 0)) < 0) { rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED; rpc_createerr.cf_error.re_errno = errno; diff --git a/usr/src/lib/libnsl/rpc/clnt_generic.c b/usr/src/lib/libnsl/rpc/clnt_generic.c index a307a8d61a..7439299ae4 100644 --- a/usr/src/lib/libnsl/rpc/clnt_generic.c +++ b/usr/src/lib/libnsl/rpc/clnt_generic.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -39,7 +40,6 @@ #include <unistd.h> #include <stdlib.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/nettype.h> #include <netdir.h> #include <string.h> @@ -47,8 +47,8 @@ extern int __td_setnodelay(int); extern bool_t __rpc_is_local_host(const char *); -extern bool_t __rpc_try_doors(char *, bool_t *); -extern CLIENT *_clnt_vc_create_timed(register int, struct netbuf *, rpcprog_t, +extern bool_t __rpc_try_doors(const char *, bool_t *); +extern CLIENT *_clnt_vc_create_timed(int, struct netbuf *, rpcprog_t, rpcvers_t, uint_t, uint_t, const struct timeval *); CLIENT *_clnt_tli_create_timed(int, const struct netconfig *, struct netbuf *, @@ -68,8 +68,9 @@ CLIENT *_clnt_tli_create_timed(int, const struct netconfig *, struct netbuf *, * pointer, which indicates that the default timeout should be used. */ CLIENT * -clnt_create_vers(const char *hostname, rpcprog_t prog, rpcvers_t *vers_out, - rpcvers_t vers_low, rpcvers_t vers_high, const char *nettype) +clnt_create_vers(const char *hostname, const rpcprog_t prog, + rpcvers_t *vers_out, const rpcvers_t vers_low, + const rpcvers_t vers_high, const char *nettype) { return (clnt_create_vers_timed(hostname, prog, vers_out, vers_low, vers_high, nettype, NULL)); @@ -82,21 +83,19 @@ clnt_create_vers(const char *hostname, rpcprog_t prog, rpcvers_t *vers_out, * that the default timeout value should be used. */ CLIENT * -clnt_create_vers_timed(const char *hostname, rpcprog_t prog, - rpcvers_t *vers_out, rpcvers_t vers_low, rpcvers_t vers_high, +clnt_create_vers_timed(const char *hostname, const rpcprog_t prog, + rpcvers_t *vers_out, const rpcvers_t vers_low, const rpcvers_t vers_high, const char *nettype, const struct timeval *tp) { CLIENT *clnt; struct timeval to; enum clnt_stat rpc_stat; struct rpc_err rpcerr; + rpcvers_t v_low, v_high; - trace4(TR_clnt_create_vers_timed, 0, prog, vers_low, vers_high); clnt = clnt_create_timed(hostname, prog, vers_high, nettype, tp); - if (clnt == NULL) { - trace4(TR_clnt_create_vers_timed, 1, prog, vers_low, vers_high); + if (clnt == NULL) return (NULL); - } if (tp == NULL) { to.tv_sec = 10; to.tv_usec = 0; @@ -104,35 +103,34 @@ clnt_create_vers_timed(const char *hostname, rpcprog_t prog, to = *tp; rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void, - (char *)NULL, (xdrproc_t)xdr_void, (char *)NULL, to); + NULL, (xdrproc_t)xdr_void, NULL, to); if (rpc_stat == RPC_SUCCESS) { *vers_out = vers_high; - trace4(TR_clnt_create_vers_timed, 1, prog, vers_low, vers_high); return (clnt); } - while (rpc_stat == RPC_PROGVERSMISMATCH && vers_high > vers_low) { + v_low = vers_low; + v_high = vers_high; + while (rpc_stat == RPC_PROGVERSMISMATCH && v_high > v_low) { unsigned int minvers, maxvers; clnt_geterr(clnt, &rpcerr); minvers = rpcerr.re_vers.low; maxvers = rpcerr.re_vers.high; - if (maxvers < vers_high) - vers_high = maxvers; + if (maxvers < v_high) + v_high = maxvers; else - vers_high--; - if (minvers > vers_low) - vers_low = minvers; - if (vers_low > vers_high) { + v_high--; + if (minvers > v_low) + v_low = minvers; + if (v_low > v_high) { goto error; } - CLNT_CONTROL(clnt, CLSET_VERS, (char *)&vers_high); + CLNT_CONTROL(clnt, CLSET_VERS, (char *)&v_high); rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void, - (char *)NULL, (xdrproc_t)xdr_void, - (char *)NULL, to); + NULL, (xdrproc_t)xdr_void, + NULL, to); if (rpc_stat == RPC_SUCCESS) { - *vers_out = vers_high; - trace4(TR_clnt_create_vers_timed, 1, prog, - vers_low, vers_high); + *vers_out = v_high; return (clnt); } } @@ -142,7 +140,6 @@ error: rpc_createerr.cf_stat = rpc_stat; rpc_createerr.cf_error = rpcerr; clnt_destroy(clnt); - trace4(TR_clnt_create_vers_timed, 1, prog, vers_low, vers_high); return (NULL); } @@ -160,7 +157,7 @@ error: * It calls clnt_create_timed() with the default timeout. */ CLIENT * -clnt_create(const char *hostname, rpcprog_t prog, rpcvers_t vers, +clnt_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers, const char *nettype) { return (clnt_create_timed(hostname, prog, vers, nettype, NULL)); @@ -175,8 +172,8 @@ clnt_create(const char *hostname, rpcprog_t prog, rpcvers_t vers, * This function calls clnt_tp_create_timed(). */ CLIENT * -clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, - const char *netclass, const struct timeval *tp) +clnt_create_timed(const char *hostname, const rpcprog_t prog, + const rpcvers_t vers, const char *netclass, const struct timeval *tp) { struct netconfig *nconf; CLIENT *clnt = NULL; @@ -187,18 +184,15 @@ clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, char *nettype = &nettype_array[0]; bool_t try_others; - trace3(TR_clnt_create, 0, prog, vers); - if (netclass == NULL) nettype = NULL; else { size_t len = strlen(netclass); if (len >= sizeof (nettype_array)) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } - strcpy(nettype, netclass); + (void) strcpy(nettype, netclass); } /* @@ -213,7 +207,7 @@ clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, return (clnt); else { if (rpc_createerr.cf_stat == RPC_SYSTEMERROR) - return ((CLIENT *)NULL); + return (NULL); save_cf_stat = rpc_createerr.cf_stat; save_cf_error = rpc_createerr.cf_error; } @@ -226,11 +220,10 @@ clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, if ((handle = __rpc_setconf((char *)nettype)) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } rpc_createerr.cf_stat = RPC_SUCCESS; - while (clnt == (CLIENT *)NULL) { + while (clnt == NULL) { if ((nconf = __rpc_getconf(handle)) == NULL) { if (rpc_createerr.cf_stat == RPC_SUCCESS) rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; @@ -281,7 +274,6 @@ clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, rpc_createerr.cf_error = save_cf_error; } __rpc_endconf(handle); - trace3(TR_clnt_create, 1, prog, vers); return (clnt); } @@ -326,10 +318,9 @@ clnt_create_service_timed(const char *host, const char *service, size_t len = strlen(netclass); if (len >= sizeof (nettype_array)) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } - strcpy(nettype, netclass); + (void) strcpy(nettype, netclass); } if (tmout == NULL) { @@ -340,7 +331,7 @@ clnt_create_service_timed(const char *host, const char *service, if ((handle = __rpc_setconf(nettype)) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - return ((CLIENT *)NULL); + return (NULL); } /* @@ -350,7 +341,7 @@ clnt_create_service_timed(const char *host, const char *service, rpc_createerr.cf_stat = RPC_SYSTEMERROR; rpc_createerr.cf_error.re_errno = (host ? errno : EINVAL); rpc_createerr.cf_error.re_terrno = 0; - return ((CLIENT *)NULL); + return (NULL); } if (service == NULL) @@ -360,7 +351,7 @@ clnt_create_service_timed(const char *host, const char *service, rpc_createerr.cf_stat = RPC_SYSTEMERROR; rpc_createerr.cf_error.re_errno = errno; rpc_createerr.cf_error.re_terrno = 0; - return ((CLIENT *)NULL); + return (NULL); } hs.h_host = hostname; @@ -386,7 +377,7 @@ clnt_create_service_timed(const char *host, const char *service, goto done; rpc_createerr.cf_stat = RPC_SUCCESS; - while (clnt == (CLIENT *)NULL) { + while (clnt == NULL) { tbind = NULL; if ((nconf = __rpc_getconf(handle)) == NULL) { if (rpc_createerr.cf_stat == RPC_SUCCESS) @@ -410,9 +401,10 @@ clnt_create_service_timed(const char *host, const char *service, if (fd < __rpc_minfd) fd = __rpc_raise_fd(fd); + /* LINTED pointer cast */ if ((tbind = (struct t_bind *)t_alloc(fd, T_BIND, T_ADDR)) == NULL) { - t_close(fd); + (void) t_close(fd); rpc_createerr.cf_stat = RPC_TLIERROR; rpc_createerr.cf_error.re_errno = errno; rpc_createerr.cf_error.re_terrno = t_errno; @@ -423,21 +415,22 @@ clnt_create_service_timed(const char *host, const char *service, if (rpc_createerr.cf_stat == RPC_SUCCESS) rpc_createerr.cf_stat = RPC_UNKNOWNHOST; if (tbind) - t_free((char *)tbind, T_BIND); - t_close(fd); + (void) t_free((char *)tbind, T_BIND); + (void) t_close(fd); continue; } - memcpy(tbind->addr.buf, raddrs->n_addrs->buf, + (void) memcpy(tbind->addr.buf, raddrs->n_addrs->buf, raddrs->n_addrs->len); tbind->addr.len = raddrs->n_addrs->len; netdir_free((void *)raddrs, ND_ADDRLIST); if (port) { - /* LINTED pointer alignment */ if (strcmp(nconf->nc_protofmly, NC_INET) == NULL) + /* LINTED pointer alignment */ ((struct sockaddr_in *) tbind->addr.buf)->sin_port = htons(port); else if (strcmp(nconf->nc_protofmly, NC_INET6) == NULL) + /* LINTED pointer alignment */ ((struct sockaddr_in6 *) tbind->addr.buf)->sin6_port = htons(port); } @@ -447,12 +440,12 @@ clnt_create_service_timed(const char *host, const char *service, if (clnt == NULL) { if (tbind) - t_free((char *)tbind, T_BIND); - t_close(fd); + (void) t_free((char *)tbind, T_BIND); + (void) t_close(fd); continue; } - (void) CLNT_CONTROL(clnt, CLSET_FD_CLOSE, (char *)NULL); + (void) CLNT_CONTROL(clnt, CLSET_FD_CLOSE, NULL); /* * Check if we can reach the server with this clnt handle @@ -471,7 +464,7 @@ clnt_create_service_timed(const char *host, const char *service, clnt_destroy(clnt); clnt = NULL; if (tbind) - t_free((char *)tbind, T_BIND); + (void) t_free((char *)tbind, T_BIND); continue; } else break; @@ -479,7 +472,7 @@ clnt_create_service_timed(const char *host, const char *service, __rpc_endconf(handle); if (tbind) - t_free((char *)tbind, T_BIND); + (void) t_free((char *)tbind, T_BIND); done: if (hostname) @@ -499,7 +492,7 @@ done: * It calls clnt_tp_create_timed() with the default timeout. */ CLIENT * -clnt_tp_create(const char *hostname, rpcprog_t prog, rpcvers_t vers, +clnt_tp_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers, const struct netconfig *nconf) { return (clnt_tp_create_timed(hostname, prog, vers, nconf, NULL)); @@ -512,19 +505,18 @@ clnt_tp_create(const char *hostname, rpcprog_t prog, rpcvers_t vers, * value for the timeout should be used. */ CLIENT * -clnt_tp_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, - const struct netconfig *nconf, const struct timeval *tp) +clnt_tp_create_timed(const char *hostname, const rpcprog_t prog, + const rpcvers_t vers, const struct netconfig *nconf, + const struct timeval *tp) { struct netbuf *svcaddr; /* servers address */ CLIENT *cl = NULL; /* client handle */ extern struct netbuf *__rpcb_findaddr_timed(rpcprog_t, rpcvers_t, struct netconfig *, char *, CLIENT **, struct timeval *); - trace3(TR_clnt_tp_create, 0, prog, vers); - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_tp_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } /* @@ -534,10 +526,9 @@ clnt_tp_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, (struct netconfig *)nconf, (char *)hostname, &cl, (struct timeval *)tp)) == NULL) { /* appropriate error number is set by rpcbind libraries */ - trace3(TR_clnt_tp_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } - if (cl == (CLIENT *)NULL) { + if (cl == NULL) { cl = _clnt_tli_create_timed(RPC_ANYFD, nconf, svcaddr, prog, vers, 0, 0, tp); } else { @@ -551,7 +542,7 @@ clnt_tp_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, syslog(LOG_ERR, "clnt_tp_create_timed: " "strdup failed."); - return ((CLIENT *)NULL); + return (NULL); } } if (cl->cl_tp == NULL) { @@ -564,7 +555,7 @@ clnt_tp_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, syslog(LOG_ERR, "clnt_tp_create_timed: " "strdup failed."); - return ((CLIENT *)NULL); + return (NULL); } } (void) CLNT_CONTROL(cl, CLSET_PROG, (void *)&prog); @@ -576,7 +567,6 @@ clnt_tp_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, } } netdir_free((char *)svcaddr, ND_ADDR); - trace3(TR_clnt_tp_create, 1, prog, vers); return (cl); } @@ -589,8 +579,9 @@ clnt_tp_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers, * If sizes are 0; appropriate defaults will be chosen. */ CLIENT * -clnt_tli_create(int fd, const struct netconfig *nconf, struct netbuf *svcaddr, - rpcprog_t prog, rpcvers_t vers, uint_t sendsz, uint_t recvsz) +clnt_tli_create(const int fd, const struct netconfig *nconf, + struct netbuf *svcaddr, const rpcprog_t prog, const rpcvers_t vers, + const uint_t sendsz, const uint_t recvsz) { return (_clnt_tli_create_timed(fd, nconf, svcaddr, prog, vers, sendsz, recvsz, NULL)); @@ -617,12 +608,10 @@ _clnt_tli_create_timed(int fd, const struct netconfig *nconf, int retval; extern int __rpc_minfd; - trace5(TR_clnt_tli_create, 0, prog, vers, sendsz, recvsz); if (fd == RPC_ANYFD) { - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_tli_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } fd = t_open(nconf->nc_device, O_RDWR, NULL); @@ -631,9 +620,8 @@ _clnt_tli_create_timed(int fd, const struct netconfig *nconf, if (fd < __rpc_minfd) fd = __rpc_raise_fd(fd); madefd = TRUE; - if (t_bind(fd, (struct t_bind *)NULL, - (struct t_bind *)NULL) == -1) - goto err; + if (t_bind(fd, NULL, NULL) == -1) + goto err; switch (nconf->nc_semantics) { case NC_TPI_CLTS: servtype = T_CLTS; @@ -658,8 +646,7 @@ _clnt_tli_create_timed(int fd, const struct netconfig *nconf, * Check whether bound or not, else bind it */ if (((state = t_sync(fd)) == -1) || - ((state == T_UNBND) && (t_bind(fd, (struct t_bind *)NULL, - (struct t_bind *)NULL) == -1)) || + ((state == T_UNBND) && (t_bind(fd, NULL, NULL) == -1)) || (t_getinfo(fd, &tinfo) == -1)) goto err; servtype = tinfo.servtype; @@ -688,7 +675,7 @@ _clnt_tli_create_timed(int fd, const struct netconfig *nconf, goto err; } - if (cl == (CLIENT *)NULL) + if (cl == NULL) goto err1; /* borrow errors from clnt_dg/vc creates */ if (nconf) { cl->cl_netid = strdup(nconf->nc_netid); @@ -749,11 +736,10 @@ _clnt_tli_create_timed(int fd, const struct netconfig *nconf, cl->cl_tp = ""; } if (madefd) { - (void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, (char *)NULL); -/* (void) CLNT_CONTROL(cl, CLSET_POP_TIMOD, (char *)NULL); */ + (void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, NULL); +/* (void) CLNT_CONTROL(cl, CLSET_POP_TIMOD, NULL); */ }; - trace3(TR_clnt_tli_create, 1, prog, vers); return (cl); err: @@ -762,8 +748,7 @@ err: rpc_createerr.cf_error.re_terrno = t_errno; err1: if (madefd) (void) t_close(fd); - trace3(TR_clnt_tli_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } /* @@ -786,7 +771,7 @@ __rpc_raise_fd(int fd) return (fd); if (t_sync(nfd) == -1) { - close(nfd); + (void) close(nfd); return (fd); } diff --git a/usr/src/lib/libnsl/rpc/clnt_perror.c b/usr/src/lib/libnsl/rpc/clnt_perror.c index d533ada296..ed78cedd3d 100644 --- a/usr/src/lib/libnsl/rpc/clnt_perror.c +++ b/usr/src/lib/libnsl/rpc/clnt_perror.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -39,14 +41,10 @@ #include "mt.h" #include "rpc_mt.h" -#ifndef KERNEL #include <stdio.h> #include <libintl.h> #include <string.h> -#endif - #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/auth.h> #include <sys/tiuser.h> #include <rpc/clnt.h> @@ -58,78 +56,58 @@ extern char *netdir_sperror(); const char __nsl_dom[] = "SUNW_OST_NETRPC"; -#ifndef KERNEL - #define ERRBUFSZ 512 static char * -__buf() +__buf(void) { char *buf; static char buf_main[ERRBUFSZ]; static pthread_key_t perror_key; - trace1(TR___buf, 0); buf = thr_main()? buf_main : thr_get_storage(&perror_key, ERRBUFSZ, free); if (buf == NULL) syslog(LOG_WARNING, "clnt_sperror: malloc failed when trying to create buffer\n"); - trace1(TR___buf, 1); return (buf); } static char * -auth_errmsg(stat) - enum auth_stat stat; +auth_errmsg(enum auth_stat stat) { - trace1(TR_auth_errmsg, 0); switch (stat) { case AUTH_OK: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Authentication OK")); case AUTH_BADCRED: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Invalid client credential")); case AUTH_REJECTEDCRED: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Server rejected credential")); case AUTH_BADVERF: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Invalid client verifier")); case AUTH_REJECTEDVERF: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Server rejected verifier")); case AUTH_TOOWEAK: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Client credential too weak")); case AUTH_INVALIDRESP: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Invalid server verifier")); case AUTH_FAILED: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Failed (unspecified error)")); /* kerberos specific */ case AUTH_DECODE: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Could not decode authenticator")); case AUTH_TIMEEXPIRE: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Time of credential expired")); case AUTH_TKT_FILE: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Something wrong with kerberos ticket file")); case AUTH_NET_ADDR: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Incorrect network address in kerberos ticket")); case AUTH_KERB_GENERIC: - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Kerberos generic error")); } - trace1(TR_auth_errmsg, 1); return (dgettext(__nsl_dom, "Unknown authentication error")); } @@ -140,20 +118,15 @@ auth_errmsg(stat) #define REMAINDER (ERRBUFSZ - (str - strstart)) char * -clnt_sperror(cl, s) - const CLIENT *cl; - const char *s; +clnt_sperror(const CLIENT *cl, const char *s) { struct rpc_err e; char *err; char *str = __buf(); char *strstart = str; - trace2(TR_clnt_sperror, 0, cl); - if (str == NULL) { - trace2(TR_clnt_sperror, 1, cl); + if (str == NULL) return (NULL); - } CLNT_GETERR((CLIENT *) cl, &e); (void) snprintf(str, ERRBUFSZ, "%s: ", s); @@ -241,45 +214,33 @@ clnt_sperror(cl, s) str += strlen(str); break; } - trace2(TR_clnt_sperror, 1, cl); return (strstart); } #undef REMAINDER void -clnt_perror(cl, s) - const CLIENT *cl; - const char *s; +clnt_perror(const CLIENT *cl, const char *s) { - trace2(TR_clnt_perror, 0, cl); (void) fprintf(stderr, "%s\n", clnt_sperror(cl, s)); - trace2(TR_clnt_perror, 1, cl); } void -clnt_perrno(num) - enum clnt_stat num; +clnt_perrno(const enum clnt_stat num) { - trace1(TR_clnt_perrno, 0); (void) fprintf(stderr, "%s\n", clnt_sperrno(num)); - trace1(TR_clnt_perrno, 1); } /* * Why a client handle could not be created */ char * -clnt_spcreateerror(s) - const char *s; +clnt_spcreateerror(const char *s) { char *errstr; char *str = __buf(); - trace1(TR_clnt_spcreateerror, 0); - if (str == NULL) { - trace1(TR_clnt_spcreateerror, 1); + if (str == NULL) return (NULL); - } (void) snprintf(str, ERRBUFSZ, "%s: ", s); (void) strlcat(str, clnt_sperrno(rpc_createerr.cf_stat), ERRBUFSZ); @@ -318,9 +279,9 @@ clnt_spcreateerror(s) char *err; err = strerror(rpc_createerr.cf_error.re_errno); if (err) { - strlcat(str, " (", ERRBUFSZ); - strlcat(str, err, ERRBUFSZ); - strlcat(str, ")", ERRBUFSZ); + (void) strlcat(str, " (", ERRBUFSZ); + (void) strlcat(str, err, ERRBUFSZ); + (void) strlcat(str, ")", ERRBUFSZ); } } } else { @@ -344,120 +305,84 @@ clnt_spcreateerror(s) auth_errmsg(rpc_createerr.cf_error.re_why), ERRBUFSZ); break; } - trace1(TR_clnt_spcreateerror, 1); return (str); } void -clnt_pcreateerror(s) - const char *s; +clnt_pcreateerror(const char *s) { - trace1(TR_clnt_pcreateerror, 0); (void) fprintf(stderr, "%s\n", clnt_spcreateerror(s)); - trace1(TR_clnt_pcreateerror, 1); } -#endif /* ! KERNEL */ /* * This interface for use by rpc_call() and rpc_broadcast() */ const char * -clnt_sperrno(stat) - const enum clnt_stat stat; +clnt_sperrno(const enum clnt_stat stat) { - trace1(TR_clnt_sperrno, 0); switch (stat) { case RPC_SUCCESS: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Success")); case RPC_CANTENCODEARGS: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Can't encode arguments")); case RPC_CANTDECODERES: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Can't decode result")); case RPC_CANTSTORE: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Can't store request")); case RPC_CANTSEND: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Unable to send")); case RPC_CANTRECV: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Unable to receive")); case RPC_TIMEDOUT: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Timed out")); case RPC_VERSMISMATCH: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Incompatible versions of RPC")); case RPC_AUTHERROR: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Authentication error")); case RPC_PROGUNAVAIL: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Program unavailable")); case RPC_PROGVERSMISMATCH: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Program/version mismatch")); case RPC_PROCUNAVAIL: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Procedure unavailable")); case RPC_CANTDECODEARGS: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Server can't decode arguments")); case RPC_SYSTEMERROR: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Remote system error")); case RPC_UNKNOWNHOST: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Unknown host")); case RPC_UNKNOWNPROTO: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Unknown protocol")); case RPC_RPCBFAILURE: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Rpcbind failure")); case RPC_N2AXLATEFAILURE: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Name to address translation failed")); case RPC_NOBROADCAST: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Broadcast not supported")); case RPC_PROGNOTREGISTERED: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Program not registered")); case RPC_UNKNOWNADDR: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Remote server address unknown")); case RPC_TLIERROR: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Miscellaneous tli error")); case RPC_FAILED: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Failed (unspecified error)")); case RPC_INPROGRESS: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: RAC call in progress")); case RPC_STALERACHANDLE: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Stale RAC handle")); case RPC_CANTCONNECT: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Couldn't make connection")); case RPC_XPRTFAILED: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Received disconnect from remote")); case RPC_CANTCREATESTREAM: - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: Can't push RPC module")); } - trace1(TR_clnt_sperrno, 1); return (dgettext(__nsl_dom, "RPC: (unknown error code)")); } diff --git a/usr/src/lib/libnsl/rpc/clnt_raw.c b/usr/src/lib/libnsl/rpc/clnt_raw.c index 57b36b2399..8f1766cd73 100644 --- a/usr/src/lib/libnsl/rpc/clnt_raw.c +++ b/usr/src/lib/libnsl/rpc/clnt_raw.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -42,8 +44,8 @@ */ #include "mt.h" #include "rpc_mt.h" +#include <stdlib.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/raw.h> #include <syslog.h> @@ -66,8 +68,6 @@ static struct clnt_raw_private { static struct clnt_ops *clnt_raw_ops(); -extern char *calloc(); -extern void free(); extern void svc_getreq_common(int); extern bool_t xdr_opaque_auth(); @@ -75,7 +75,7 @@ extern bool_t xdr_opaque_auth(); * Create a client handle for memory based rpc. */ CLIENT * -clnt_raw_create(rpcprog_t prog, rpcvers_t vers) +clnt_raw_create(const rpcprog_t prog, const rpcvers_t vers) { struct clnt_raw_private *clp; struct rpc_msg call_msg; @@ -84,27 +84,23 @@ clnt_raw_create(rpcprog_t prog, rpcvers_t vers) /* VARIABLES PROTECTED BY clntraw_lock: clp */ - trace3(TR_clnt_raw_create, 0, prog, vers); - mutex_lock(&clntraw_lock); + (void) mutex_lock(&clntraw_lock); clp = clnt_raw_private; if (clp == NULL) { -/* LINTED pointer alignment */ - clp = (struct clnt_raw_private *)calloc(1, sizeof (*clp)); + clp = calloc(1, sizeof (*clp)); if (clp == NULL) { - mutex_unlock(&clntraw_lock); - trace3(TR_clnt_raw_create, 1, prog, vers); - return ((CLIENT *)NULL); + (void) mutex_unlock(&clntraw_lock); + return (NULL); } if (_rawcombuf == NULL) { - _rawcombuf = (char *)calloc(UDPMSGSIZE, sizeof (char)); + _rawcombuf = calloc(UDPMSGSIZE, sizeof (char)); if (_rawcombuf == NULL) { syslog(LOG_ERR, "clnt_raw_create: " "out of memory."); if (clp) free(clp); - mutex_unlock(&clntraw_lock); - trace3(TR_clnt_raw_create, 1, prog, vers); - return ((CLIENT *)NULL); + (void) mutex_unlock(&clntraw_lock); + return (NULL); } } clp->raw_buf = _rawcombuf; /* Share it with the server */ @@ -121,7 +117,7 @@ clnt_raw_create(rpcprog_t prog, rpcvers_t vers) call_msg.rm_call.cb_prog = prog; call_msg.rm_call.cb_vers = vers; xdrmem_create(xdrs, clp->mashl_callmsg, MCALL_MSG_SIZE, XDR_ENCODE); - if (! xdr_callhdr(xdrs, &call_msg)) + if (!xdr_callhdr(xdrs, &call_msg)) (void) syslog(LOG_ERR, (const char *) "clnt_raw_create : \ Fatal header serialization error."); @@ -139,8 +135,7 @@ clnt_raw_create(rpcprog_t prog, rpcvers_t vers) */ client->cl_ops = clnt_raw_ops(); client->cl_auth = authnone_create(); - mutex_unlock(&clntraw_lock); - trace3(TR_clnt_raw_create, 1, prog, vers); + (void) mutex_unlock(&clntraw_lock); return (client); } @@ -155,16 +150,14 @@ clnt_raw_call(CLIENT *h, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp, enum clnt_stat status; struct rpc_err error; - trace3(TR_clnt_raw_call, 0, h, proc); - mutex_lock(&clntraw_lock); + (void) mutex_lock(&clntraw_lock); clp = clnt_raw_private; xdrs = &clp->xdr_stream; if (clp == NULL) { - mutex_unlock(&clntraw_lock); - trace3(TR_clnt_raw_call, 1, h, proc); + (void) mutex_unlock(&clntraw_lock); return (RPC_FAILED); } - mutex_unlock(&clntraw_lock); + (void) mutex_unlock(&clntraw_lock); call_again: /* @@ -174,13 +167,11 @@ call_again: XDR_SETPOS(xdrs, 0); /* LINTED pointer alignment */ ((struct rpc_msg *)clp->mashl_callmsg)->rm_xid++; - if ((! XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) || - (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || - (! AUTH_MARSHALL(h->cl_auth, xdrs)) || - (! (*xargs)(xdrs, argsp))) { - trace3(TR_clnt_raw_call, 1, h, proc); + if ((!XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) || + (!XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (!AUTH_MARSHALL(h->cl_auth, xdrs)) || + (!(*xargs)(xdrs, argsp))) return (RPC_CANTENCODEARGS); - } (void) XDR_GETPOS(xdrs); /* called just to cause overhead */ /* @@ -198,10 +189,8 @@ call_again: msg.acpted_rply.ar_verf = _null_auth; msg.acpted_rply.ar_results.where = resultsp; msg.acpted_rply.ar_results.proc = xresults; - if (! xdr_replymsg(xdrs, &msg)) { - trace3(TR_clnt_raw_call, 1, h, proc); + if (!xdr_replymsg(xdrs, &msg)) return (RPC_CANTDECODERES); - } if ((msg.rm_reply.rp_stat == MSG_ACCEPTED) && (msg.acpted_rply.ar_stat == SUCCESS)) status = RPC_SUCCESS; @@ -211,7 +200,7 @@ call_again: } if (status == RPC_SUCCESS) { - if (! AUTH_VALIDATE(h->cl_auth, &msg.acpted_rply.ar_verf)) { + if (!AUTH_VALIDATE(h->cl_auth, &msg.acpted_rply.ar_verf)) { status = RPC_AUTHERROR; } /* end successful completion */ @@ -222,7 +211,7 @@ call_again: } if (status == RPC_SUCCESS) { - if (! AUTH_VALIDATE(h->cl_auth, &msg.acpted_rply.ar_verf)) { + if (!AUTH_VALIDATE(h->cl_auth, &msg.acpted_rply.ar_verf)) { status = RPC_AUTHERROR; } if (msg.acpted_rply.ar_verf.oa_base != NULL) { @@ -231,7 +220,6 @@ call_again: &(msg.acpted_rply.ar_verf)); } } - trace3(TR_clnt_raw_call, 1, h, proc); return (status); } @@ -242,17 +230,14 @@ clnt_raw_send(CLIENT *h, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp) struct clnt_raw_private *clp; XDR *xdrs; - trace3(TR_clnt_raw_send, 0, h, proc); - - mutex_lock(&clntraw_lock); + (void) mutex_lock(&clntraw_lock); clp = clnt_raw_private; xdrs = &clp->xdr_stream; if (clp == NULL) { - mutex_unlock(&clntraw_lock); - trace3(TR_clnt_raw_send, 1, h, proc); + (void) mutex_unlock(&clntraw_lock); return (RPC_FAILED); } - mutex_unlock(&clntraw_lock); + (void) mutex_unlock(&clntraw_lock); /* * send request @@ -261,13 +246,11 @@ clnt_raw_send(CLIENT *h, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp) XDR_SETPOS(xdrs, 0); /* LINTED pointer alignment */ ((struct rpc_msg *)clp->mashl_callmsg)->rm_xid++; - if ((! XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) || - (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || - (! AUTH_MARSHALL(h->cl_auth, xdrs)) || - (! (*xargs)(xdrs, argsp))) { - trace3(TR_clnt_raw_send, 1, h, proc); + if ((!XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) || + (!XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (!AUTH_MARSHALL(h->cl_auth, xdrs)) || + (!(*xargs)(xdrs, argsp))) return (RPC_CANTENCODEARGS); - } (void) XDR_GETPOS(xdrs); /* called just to cause overhead */ /* @@ -284,8 +267,6 @@ clnt_raw_send(CLIENT *h, rpcproc_t proc, xdrproc_t xargs, caddr_t argsp) static void clnt_raw_geterr(CLIENT *cl, struct rpc_err *errp) { - trace1(TR_clnt_raw_geterr, 0); - trace1(TR_clnt_raw_geterr, 1); } /*ARGSUSED*/ @@ -294,38 +275,29 @@ clnt_raw_freeres(CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr) { struct clnt_raw_private *clp; XDR *xdrs; - static bool_t dummy; - trace2(TR_clnt_raw_freeres, 0, cl); - mutex_lock(&clntraw_lock); + (void) mutex_lock(&clntraw_lock); clp = clnt_raw_private; xdrs = &clp->xdr_stream; if (clp == NULL) { - mutex_unlock(&clntraw_lock); - trace2(TR_clnt_raw_freeres, 1, cl); + (void) mutex_unlock(&clntraw_lock); return (FALSE); } - mutex_unlock(&clntraw_lock); + (void) mutex_unlock(&clntraw_lock); xdrs->x_op = XDR_FREE; - dummy = (*xdr_res)(xdrs, res_ptr); - trace2(TR_clnt_raw_freeres, 1, cl); - return (dummy); + return ((*xdr_res)(xdrs, res_ptr)); } /*ARGSUSED*/ static void clnt_raw_abort(CLIENT *cl, struct rpc_err *errp) { - trace1(TR_clnt_raw_abort, 0); - trace1(TR_clnt_raw_abort, 1); } /*ARGSUSED*/ static bool_t clnt_raw_control(CLIENT *cl, int request, char *info) { - trace1(TR_clnt_raw_control, 0); - trace1(TR_clnt_raw_control, 1); return (FALSE); } @@ -333,8 +305,6 @@ clnt_raw_control(CLIENT *cl, int request, char *info) static void clnt_raw_destroy(CLIENT *cl) { - trace1(TR_clnt_raw_destroy, 0); - trace1(TR_clnt_raw_destroy, 1); } static struct clnt_ops * @@ -345,8 +315,7 @@ clnt_raw_ops(void) /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_clnt_raw_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.cl_call == NULL) { ops.cl_call = clnt_raw_call; ops.cl_send = clnt_raw_send; @@ -356,7 +325,6 @@ clnt_raw_ops(void) ops.cl_destroy = clnt_raw_destroy; ops.cl_control = clnt_raw_control; } - mutex_unlock(&ops_lock); - trace1(TR_clnt_raw_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/clnt_simple.c b/usr/src/lib/libnsl/rpc/clnt_simple.c index 1801c323e6..b447290b63 100644 --- a/usr/src/lib/libnsl/rpc/clnt_simple.c +++ b/usr/src/lib/libnsl/rpc/clnt_simple.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -43,7 +45,6 @@ #include <stdio.h> #include <errno.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <string.h> #include <sys/param.h> #include <stdlib.h> @@ -87,37 +88,32 @@ rpc_call_destroy(void *vp) * The total time available is 25 seconds. */ enum clnt_stat -rpc_call(const char *host, rpcprog_t prognum, rpcvers_t versnum, - rpcproc_t procnum, xdrproc_t inproc, const char *in, - xdrproc_t outproc, char *out, const char *netclass) +rpc_call(const char *host, const rpcprog_t prognum, const rpcvers_t versnum, + const rpcproc_t procnum, const xdrproc_t inproc, const char *in, + const xdrproc_t outproc, char *out, const char *netclass) { struct rpc_call_private *rcp; enum clnt_stat clnt_stat; struct timeval timeout, tottimeout; static pthread_key_t rpc_call_key; - int main_thread; char nettype_array[NETIDLEN]; char *nettype = &nettype_array[0]; - trace4(TR_rpc_call, 0, prognum, versnum, procnum); - if (netclass == NULL) nettype = NULL; else { size_t len = strlen(netclass); if (len >= sizeof (nettype_array)) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace4(TR_rpc_call, 1, prognum, versnum, procnum); return (rpc_createerr.cf_stat); } - strcpy(nettype, netclass); + (void) strcpy(nettype, netclass); } rcp = thr_get_storage(&rpc_call_key, sizeof (*rcp), rpc_call_destroy); if (rcp == NULL) { rpc_createerr.cf_stat = RPC_SYSTEMERROR; rpc_createerr.cf_error.re_errno = errno; - trace4(TR_rpc_call, 1, prognum, versnum, procnum); return (rpc_createerr.cf_stat); } @@ -139,10 +135,8 @@ rpc_call(const char *host, rpcprog_t prognum, rpcvers_t versnum, */ rcp->client = clnt_create(host, prognum, versnum, nettype); rcp->pid = getpid(); - if (rcp->client == (CLIENT *)NULL) { - trace4(TR_rpc_call, 1, prognum, versnum, procnum); + if (rcp->client == NULL) return (rpc_createerr.cf_stat); - } /* * Set time outs for connectionless case. Do it * unconditionally. Faster than doing a t_getinfo() @@ -174,6 +168,5 @@ rpc_call(const char *host, rpcprog_t prognum, rpcvers_t versnum, */ if (clnt_stat != RPC_SUCCESS) rcp->valid = 0; - trace4(TR_rpc_call, 1, prognum, versnum, procnum); return (clnt_stat); } diff --git a/usr/src/lib/libnsl/rpc/clnt_vc.c b/usr/src/lib/libnsl/rpc/clnt_vc.c index 52e83bfa77..6e72e821a7 100644 --- a/usr/src/lib/libnsl/rpc/clnt_vc.c +++ b/usr/src/lib/libnsl/rpc/clnt_vc.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -55,7 +56,6 @@ #include "rpc_mt.h" #include <assert.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <errno.h> #include <sys/byteorder.h> #include <sys/mkdev.h> @@ -72,29 +72,25 @@ #define MIN(a, b) (((a) < (b)) ? (a) : (b)) #endif -extern int __rpc_timeval_to_msec(); +extern int __rpc_timeval_to_msec(struct timeval *); extern int __rpc_compress_pollfd(int, pollfd_t *, pollfd_t *); -extern bool_t xdr_opaque_auth(); -extern bool_t __rpc_gss_wrap(); -extern bool_t __rpc_gss_unwrap(); - -CLIENT *_clnt_vc_create_timed(int, struct netbuf *, rpcprog_t, +extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); +extern bool_t __rpc_gss_wrap(AUTH *, char *, uint_t, XDR *, bool_t (*)(), + caddr_t); +extern bool_t __rpc_gss_unwrap(AUTH *, XDR *, bool_t (*)(), caddr_t); +extern CLIENT *_clnt_vc_create_timed(int, struct netbuf *, rpcprog_t, rpcvers_t, uint_t, uint_t, const struct timeval *); -static struct clnt_ops *clnt_vc_ops(); -#ifdef __STDC__ +static struct clnt_ops *clnt_vc_ops(void); static int read_vc(void *, caddr_t, int); static int write_vc(void *, caddr_t, int); -#else -static int read_vc(); -static int write_vc(); -#endif -static int t_rcvall(); -static bool_t time_not_ok(); -static bool_t set_up_connection(); +static int t_rcvall(int, char *, int); +static bool_t time_not_ok(struct timeval *); struct ct_data; -static bool_t set_io_mode(struct ct_data *ct, int ioMode); +static bool_t set_up_connection(int, struct netbuf *, + struct ct_data *, const struct timeval *); +static bool_t set_io_mode(struct ct_data *, int); /* * Lock table handle used by various MT sync. routines @@ -161,19 +157,13 @@ static mutex_t nb_list_mutex = DEFAULTMUTEX; /* Default size of the IO buffer used in non blocking mode */ #define DEFAULT_PENDING_ZONE_MAX_SIZE (16*1024) -static int nb_send(struct ct_data *ct, void *buff, - unsigned int nbytes); - -static int do_flush(struct ct_data *ct, uint_t flush_mode); +static int nb_send(struct ct_data *, void *, unsigned int); +static int do_flush(struct ct_data *, uint_t); +static bool_t set_flush_mode(struct ct_data *, int); +static bool_t set_blocking_connection(struct ct_data *, bool_t); -static bool_t set_flush_mode(struct ct_data *ct, - int P_mode); - -static bool_t set_blocking_connection(struct ct_data *ct, - bool_t blocking); - -static int register_nb(struct ct_data *ct); -static int unregister_nb(struct ct_data *ct); +static int register_nb(struct ct_data *); +static int unregister_nb(struct ct_data *); /* @@ -219,13 +209,8 @@ set_blocking_connection(struct ct_data *ct, bool_t blocking) * fd should be open and bound. */ CLIENT * -clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz) - int fd; /* open file descriptor */ - struct netbuf *svcaddr; /* servers address */ - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - uint_t sendsz; /* buffer recv size */ - uint_t recvsz; /* buffer send size */ +clnt_vc_create(const int fd, struct netbuf *svcaddr, const rpcprog_t prog, + const rpcvers_t vers, const uint_t sendsz, const uint_t recvsz) { return (_clnt_vc_create_timed(fd, svcaddr, prog, vers, sendsz, recvsz, NULL)); @@ -243,14 +228,8 @@ clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz) * If tp is NULL, use default timeout to set up the connection. */ CLIENT * -_clnt_vc_create_timed(fd, svcaddr, prog, vers, sendsz, recvsz, tp) - int fd; /* open file descriptor */ - struct netbuf *svcaddr; /* servers address */ - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - uint_t sendsz; /* buffer recv size */ - uint_t recvsz; /* buffer send size */ - const struct timeval *tp; /* connection timeout */ +_clnt_vc_create_timed(int fd, struct netbuf *svcaddr, rpcprog_t prog, + rpcvers_t vers, uint_t sendsz, uint_t recvsz, const struct timeval *tp) { CLIENT *cl; /* client handle */ struct ct_data *ct; /* private data */ @@ -259,11 +238,9 @@ _clnt_vc_create_timed(fd, svcaddr, prog, vers, sendsz, recvsz, tp) struct t_info tinfo; int flag; - trace5(TR_clnt_vc_create, 0, prog, vers, sendsz, recvsz); - - cl = (CLIENT *)mem_alloc(sizeof (*cl)); - ct = (struct ct_data *)mem_alloc(sizeof (*ct)); - if ((cl == (CLIENT *)NULL) || (ct == (struct ct_data *)NULL)) { + cl = malloc(sizeof (*cl)); + ct = malloc(sizeof (*ct)); + if ((cl == NULL) || (ct == NULL)) { (void) syslog(LOG_ERR, clnt_vc_errstr, clnt_vc_str, __no_mem_str); rpc_createerr.cf_stat = RPC_SYSTEMERROR; @@ -302,7 +279,7 @@ _clnt_vc_create_timed(fd, svcaddr, prog, vers, sendsz, recvsz, tp) sig_mutex_unlock(&vctbl_lock); goto err; } - ct->ct_is_blocking = flag&O_NONBLOCK? FALSE:TRUE; + ct->ct_is_blocking = flag & O_NONBLOCK ? FALSE : TRUE; if (set_up_connection(fd, svcaddr, ct, tp) == FALSE) { sig_mutex_unlock(&vctbl_lock); @@ -338,7 +315,7 @@ _clnt_vc_create_timed(fd, svcaddr, prog, vers, sendsz, recvsz, tp) * pre-serialize the static part of the call msg and stash it away */ xdrmem_create(&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE, XDR_ENCODE); - if (! xdr_callhdr(&(ct->ct_xdrs), &call_msg)) { + if (!xdr_callhdr(&(ct->ct_xdrs), &call_msg)) { goto err; } ct->ct_mpos = XDR_GETPOS(&(ct->ct_xdrs)); @@ -378,22 +355,20 @@ _clnt_vc_create_timed(fd, svcaddr, prog, vers, sendsz, recvsz, tp) cl->cl_ops = clnt_vc_ops(); cl->cl_private = (caddr_t)ct; cl->cl_auth = authnone_create(); - cl->cl_tp = (char *)NULL; - cl->cl_netid = (char *)NULL; - trace3(TR_clnt_vc_create, 1, prog, vers); + cl->cl_tp = NULL; + cl->cl_netid = NULL; return (cl); err: if (cl) { if (ct) { if (ct->ct_addr.len) - mem_free(ct->ct_addr.buf, ct->ct_addr.len); - mem_free((caddr_t)ct, sizeof (struct ct_data)); + free(ct->ct_addr.buf); + free(ct); } - mem_free((caddr_t)cl, sizeof (CLIENT)); + free(cl); } - trace3(TR_clnt_vc_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } #define TCPOPT_BUFSIZE 128 @@ -410,6 +385,7 @@ _set_tcp_conntime(int fd, int optval) int *ip; char buf[TCPOPT_BUFSIZE]; + /* LINTED pointer cast */ opt = (struct opthdr *)buf; opt->level = IPPROTO_TCP; opt->name = TCP_CONN_ABORT_THRESHOLD; @@ -418,6 +394,7 @@ _set_tcp_conntime(int fd, int optval) req.flags = T_NEGOTIATE; req.opt.len = sizeof (struct opthdr) + opt->len; req.opt.buf = (char *)opt; + /* LINTED pointer cast */ ip = (int *)((char *)buf + sizeof (struct opthdr)); *ip = optval; @@ -442,6 +419,7 @@ _get_tcp_conntime(int fd) int *ip, retval; char buf[TCPOPT_BUFSIZE]; + /* LINTED pointer cast */ opt = (struct opthdr *)buf; opt->level = IPPROTO_TCP; opt->name = TCP_CONN_ABORT_THRESHOLD; @@ -450,6 +428,7 @@ _get_tcp_conntime(int fd) req.flags = T_CURRENT; req.opt.len = sizeof (struct opthdr) + opt->len; req.opt.buf = (char *)opt; + /* LINTED pointer cast */ ip = (int *)((char *)buf + sizeof (struct opthdr)); *ip = 0; @@ -460,17 +439,15 @@ _get_tcp_conntime(int fd) return (-1); } + /* LINTED pointer cast */ ip = (int *)((char *)buf + sizeof (struct opthdr)); retval = *ip; return (retval); } static bool_t -set_up_connection(fd, svcaddr, ct, tp) - int fd; - struct netbuf *svcaddr; /* servers address */ - struct ct_data *ct; - struct timeval *tp; +set_up_connection(int fd, struct netbuf *svcaddr, struct ct_data *ct, + const struct timeval *tp) { int state; struct t_call sndcallstr, *rcvcall; @@ -492,7 +469,7 @@ set_up_connection(fd, svcaddr, ct, tp) #endif switch (state) { case T_IDLE: - if (svcaddr == (struct netbuf *)NULL) { + if (svcaddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; return (FALSE); } @@ -532,6 +509,7 @@ set_up_connection(fd, svcaddr, ct, tp) ms = tp->tv_sec * SECS_TO_MS + tp->tv_usec * USECS_TO_MS; if (((curr_time = _get_tcp_conntime(fd)) != -1) && (_set_tcp_conntime(fd, ms) == 0)) { + /* EMPTY */ #ifdef DEBUG fprintf(stderr, "set_up_connection: set tcp "); fprintf(stderr, "connection timeout to %d ms\n", ms); @@ -568,7 +546,7 @@ set_up_connection(fd, svcaddr, ct, tp) * Set the connection timeout back to its old value. */ if (curr_time) { - _set_tcp_conntime(fd, curr_time); + (void) _set_tcp_conntime(fd, curr_time); } if (!connected) { @@ -593,7 +571,7 @@ set_up_connection(fd, svcaddr, ct, tp) break; case T_DATAXFER: case T_OUTCON: - if (svcaddr == (struct netbuf *)NULL) { + if (svcaddr == NULL) { /* * svcaddr could also be NULL in cases where the * client is already bound and connected. @@ -601,7 +579,7 @@ set_up_connection(fd, svcaddr, ct, tp) ct->ct_addr.len = 0; } else { ct->ct_addr.buf = malloc(svcaddr->len); - if (ct->ct_addr.buf == (char *)NULL) { + if (ct->ct_addr.buf == NULL) { (void) syslog(LOG_ERR, clnt_vc_errstr, clnt_vc_str, __no_mem_str); rpc_createerr.cf_stat = RPC_SYSTEMERROR; @@ -610,7 +588,7 @@ set_up_connection(fd, svcaddr, ct, tp) return (FALSE); } (void) memcpy(ct->ct_addr.buf, svcaddr->buf, - (int)svcaddr->len); + (size_t)svcaddr->len); ct->ct_addr.len = ct->ct_addr.maxlen = svcaddr->len; } break; @@ -622,14 +600,8 @@ set_up_connection(fd, svcaddr, ct, tp) } static enum clnt_stat -clnt_vc_call(cl, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout) - CLIENT *cl; - rpcproc_t proc; - xdrproc_t xdr_args; - caddr_t args_ptr; - xdrproc_t xdr_results; - caddr_t results_ptr; - struct timeval timeout; +clnt_vc_call(CLIENT *cl, rpcproc_t proc, xdrproc_t xdr_args, caddr_t args_ptr, + xdrproc_t xdr_results, caddr_t results_ptr, struct timeval timeout) { /* LINTED pointer alignment */ struct ct_data *ct = (struct ct_data *)cl->cl_private; @@ -641,8 +613,6 @@ clnt_vc_call(cl, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout) bool_t shipnow; int refreshes = 2; - trace3(TR_clnt_vc_call, 0, cl, proc); - if (rpc_fd_lock(vctbl, ct->ct_fd)) { rpc_callerr.re_status = RPC_FAILED; rpc_callerr.re_errno = errno; @@ -680,15 +650,14 @@ call_again: *msg_x_id = htonl(x_id); if (cl->cl_auth->ah_cred.oa_flavor != RPCSEC_GSS) { - if ((! XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) || - (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || - (! AUTH_MARSHALL(cl->cl_auth, xdrs)) || - (! xdr_args(xdrs, args_ptr))) { + if ((!XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) || + (!XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (!AUTH_MARSHALL(cl->cl_auth, xdrs)) || + (!xdr_args(xdrs, args_ptr))) { if (rpc_callerr.re_status == RPC_SUCCESS) rpc_callerr.re_status = RPC_CANTENCODEARGS; (void) xdrrec_endofrecord(xdrs, TRUE); rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status); } } else { @@ -701,18 +670,15 @@ call_again: rpc_callerr.re_status = RPC_CANTENCODEARGS; (void) xdrrec_endofrecord(xdrs, TRUE); rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status); } } - if (! xdrrec_endofrecord(xdrs, shipnow)) { + if (!xdrrec_endofrecord(xdrs, shipnow)) { rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status = RPC_CANTSEND); } - if (! shipnow) { + if (!shipnow) { rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (RPC_SUCCESS); } /* @@ -720,7 +686,6 @@ call_again: */ if (timeout.tv_sec == 0 && timeout.tv_usec == 0) { rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status = RPC_TIMEDOUT); } @@ -729,22 +694,19 @@ call_again: * Keep receiving until we get a valid transaction id */ xdrs->x_op = XDR_DECODE; - /*CONSTANTCONDITION*/ - while (TRUE) { + for (;;) { reply_msg.acpted_rply.ar_verf = _null_auth; reply_msg.acpted_rply.ar_results.where = NULL; reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void; - if (! xdrrec_skiprecord(xdrs)) { + if (!xdrrec_skiprecord(xdrs)) { rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status); } /* now decode and validate the response header */ - if (! xdr_replymsg(xdrs, &reply_msg)) { + if (!xdr_replymsg(xdrs, &reply_msg)) { if (rpc_callerr.re_status == RPC_SUCCESS) continue; rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status); } if (reply_msg.rm_xid == x_id) @@ -761,7 +723,7 @@ call_again: __seterr_reply(&reply_msg, &(rpc_callerr)); if (rpc_callerr.re_status == RPC_SUCCESS) { - if (! AUTH_VALIDATE(cl->cl_auth, + if (!AUTH_VALIDATE(cl->cl_auth, &reply_msg.acpted_rply.ar_verf)) { rpc_callerr.re_status = RPC_AUTHERROR; rpc_callerr.re_why = AUTH_INVALIDRESP; @@ -800,16 +762,11 @@ call_again: (void) xdr_opaque_auth(xdrs, &(reply_msg.acpted_rply.ar_verf)); } rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status); } static enum clnt_stat -clnt_vc_send(cl, proc, xdr_args, args_ptr) - CLIENT *cl; - rpcproc_t proc; - xdrproc_t xdr_args; - caddr_t args_ptr; +clnt_vc_send(CLIENT *cl, rpcproc_t proc, xdrproc_t xdr_args, caddr_t args_ptr) { /* LINTED pointer alignment */ struct ct_data *ct = (struct ct_data *)cl->cl_private; @@ -818,8 +775,6 @@ clnt_vc_send(cl, proc, xdr_args, args_ptr) /* LINTED pointer alignment */ uint32_t *msg_x_id = (uint32_t *)(ct->ct_mcall); /* yuk */ - trace3(TR_clnt_vc_send, 0, cl, proc); - if (rpc_fd_lock(vctbl, ct->ct_fd)) { rpc_callerr.re_status = RPC_FAILED; rpc_callerr.re_errno = errno; @@ -839,15 +794,14 @@ clnt_vc_send(cl, proc, xdr_args, args_ptr) *msg_x_id = htonl(x_id); if (cl->cl_auth->ah_cred.oa_flavor != RPCSEC_GSS) { - if ((! XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) || - (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || - (! AUTH_MARSHALL(cl->cl_auth, xdrs)) || - (! xdr_args(xdrs, args_ptr))) { + if ((!XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) || + (!XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (!AUTH_MARSHALL(cl->cl_auth, xdrs)) || + (!xdr_args(xdrs, args_ptr))) { if (rpc_callerr.re_status == RPC_SUCCESS) rpc_callerr.re_status = RPC_CANTENCODEARGS; (void) xdrrec_endofrecord(xdrs, TRUE); rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_send, 1, cl, proc); return (rpc_callerr.re_status); } } else { @@ -860,7 +814,6 @@ clnt_vc_send(cl, proc, xdr_args, args_ptr) rpc_callerr.re_status = RPC_CANTENCODEARGS; (void) xdrrec_endofrecord(xdrs, TRUE); rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_send, 1, cl, proc); return (rpc_callerr.re_status); } } @@ -871,63 +824,47 @@ clnt_vc_send(cl, proc, xdr_args, args_ptr) * An error, if any occurs, is reported through * rpc_callerr.re_status. */ - xdrrec_endofrecord(xdrs, TRUE); + (void) xdrrec_endofrecord(xdrs, TRUE); rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_call, 1, cl, proc); return (rpc_callerr.re_status); } +/* ARGSUSED */ static void -clnt_vc_geterr(cl, errp) - CLIENT *cl; - struct rpc_err *errp; +clnt_vc_geterr(CLIENT *cl, struct rpc_err *errp) { - trace2(TR_clnt_vc_geterr, 0, cl); *errp = rpc_callerr; - trace2(TR_clnt_vc_geterr, 1, cl); } static bool_t -clnt_vc_freeres(cl, xdr_res, res_ptr) - CLIENT *cl; - xdrproc_t xdr_res; - caddr_t res_ptr; +clnt_vc_freeres(CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr) { /* LINTED pointer alignment */ struct ct_data *ct = (struct ct_data *)cl->cl_private; XDR *xdrs = &(ct->ct_xdrs); - bool_t dummy; + bool_t stat; - trace2(TR_clnt_vc_freeres, 0, cl); - rpc_fd_lock(vctbl, ct->ct_fd); + (void) rpc_fd_lock(vctbl, ct->ct_fd); xdrs->x_op = XDR_FREE; - dummy = (*xdr_res)(xdrs, res_ptr); + stat = (*xdr_res)(xdrs, res_ptr); rpc_fd_unlock(vctbl, ct->ct_fd); - trace2(TR_clnt_vc_freeres, 1, cl); - return (dummy); + return (stat); } static void clnt_vc_abort(void) { - trace1(TR_clnt_vc_abort, 0); - trace1(TR_clnt_vc_abort, 1); } /*ARGSUSED*/ static bool_t -clnt_vc_control(cl, request, info) - CLIENT *cl; - int request; - char *info; +clnt_vc_control(CLIENT *cl, int request, char *info) { bool_t ret; /* LINTED pointer alignment */ struct ct_data *ct = (struct ct_data *)cl->cl_private; - trace3(TR_clnt_vc_control, 0, cl, request); - if (rpc_fd_lock(vctbl, ct->ct_fd)) { rpc_fd_unlock(vctbl, ct->ct_fd); return (RPC_FAILED); @@ -937,18 +874,18 @@ clnt_vc_control(cl, request, info) case CLSET_FD_CLOSE: ct->ct_closeit = TRUE; rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (TRUE); case CLSET_FD_NCLOSE: ct->ct_closeit = FALSE; rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (TRUE); case CLFLUSH: if (ct->ct_io_mode == RPC_CL_NONBLOCKING) { int res; res = do_flush(ct, (info == NULL || + /* LINTED pointer cast */ *(int *)info == RPC_CL_DEFAULT_FLUSH)? + /* LINTED pointer cast */ ct->ct_blocking_mode: *(int *)info); ret = (0 == res); } @@ -959,7 +896,6 @@ clnt_vc_control(cl, request, info) /* for other requests which use info */ if (info == NULL) { rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (FALSE); } switch (request) { @@ -967,7 +903,6 @@ clnt_vc_control(cl, request, info) /* LINTED pointer alignment */ if (time_not_ok((struct timeval *)info)) { rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (FALSE); } /* LINTED pointer alignment */ @@ -982,7 +917,7 @@ clnt_vc_control(cl, request, info) (ct->ct_wait % 1000) * 1000; break; case CLGET_SERVER_ADDR: /* For compatibility only */ - (void) memcpy(info, ct->ct_addr.buf, (int)ct->ct_addr.len); + (void) memcpy(info, ct->ct_addr.buf, (size_t)ct->ct_addr.len); break; case CLGET_FD: /* LINTED pointer alignment */ @@ -1005,17 +940,14 @@ clnt_vc_control(cl, request, info) rpc_createerr.cf_error.re_terrno = t_errno; rpc_createerr.cf_error.re_errno = errno; rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (FALSE); } ret = set_up_connection(ct->ct_fd, (struct netbuf *)info, ct, NULL)); rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (ret); #else rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (FALSE); #endif case CLGET_XID: @@ -1072,6 +1004,7 @@ clnt_vc_control(cl, request, info) break; case CLSET_IO_MODE: + /* LINTED pointer cast */ if (!set_io_mode(ct, *(int *)info)) { rpc_fd_unlock(vctbl, ct->ct_fd); return (FALSE); @@ -1079,16 +1012,19 @@ clnt_vc_control(cl, request, info) break; case CLSET_FLUSH_MODE: /* Set a specific FLUSH_MODE */ + /* LINTED pointer cast */ if (!set_flush_mode(ct, *(int *)info)) { rpc_fd_unlock(vctbl, ct->ct_fd); return (FALSE); } break; case CLGET_FLUSH_MODE: + /* LINTED pointer cast */ *(rpcflushmode_t *)info = ct->ct_blocking_mode; break; case CLGET_IO_MODE: + /* LINTED pointer cast */ *(rpciomode_t *)info = ct->ct_io_mode; break; @@ -1097,6 +1033,7 @@ clnt_vc_control(cl, request, info) * Returns the current amount of memory allocated * to pending requests */ + /* LINTED pointer cast */ *(int *)info = ct->ct_bufferPendingSize; break; @@ -1110,9 +1047,11 @@ clnt_vc_control(cl, request, info) * If the new size is equal to the current size, * there is nothing to do. */ + /* LINTED pointer cast */ if (ct->ct_bufferSize == *(uint_t *)info) break; + /* LINTED pointer cast */ ct->ct_bufferSize = *(uint_t *)info; if (ct->ct_buffer) { free(ct->ct_buffer); @@ -1126,48 +1065,44 @@ clnt_vc_control(cl, request, info) * Returns the size of buffer allocated * to pending requests */ + /* LINTED pointer cast */ *(uint_t *)info = ct->ct_bufferSize; break; default: rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (FALSE); } rpc_fd_unlock(vctbl, ct->ct_fd); - trace3(TR_clnt_vc_control, 1, cl, request); return (TRUE); } static void -clnt_vc_destroy(cl) - CLIENT *cl; +clnt_vc_destroy(CLIENT *cl) { /* LINTED pointer alignment */ struct ct_data *ct = (struct ct_data *)cl->cl_private; int ct_fd = ct->ct_fd; - trace2(TR_clnt_vc_destroy, 0, cl); - rpc_fd_lock(vctbl, ct_fd); + (void) rpc_fd_lock(vctbl, ct_fd); if (ct->ct_io_mode == RPC_CL_NONBLOCKING) { - do_flush(ct, RPC_CL_BLOCKING_FLUSH); - unregister_nb(ct); + (void) do_flush(ct, RPC_CL_BLOCKING_FLUSH); + (void) unregister_nb(ct); } if (ct->ct_closeit) (void) t_close(ct_fd); XDR_DESTROY(&(ct->ct_xdrs)); if (ct->ct_addr.buf) - (void) free(ct->ct_addr.buf); - mem_free((caddr_t)ct, sizeof (struct ct_data)); + free(ct->ct_addr.buf); + free(ct); if (cl->cl_netid && cl->cl_netid[0]) - mem_free(cl->cl_netid, strlen(cl->cl_netid) +1); + free(cl->cl_netid); if (cl->cl_tp && cl->cl_tp[0]) - mem_free(cl->cl_tp, strlen(cl->cl_tp) +1); - mem_free((caddr_t)cl, sizeof (CLIENT)); + free(cl->cl_tp); + free(cl); rpc_fd_unlock(vctbl, ct_fd); - trace2(TR_clnt_vc_destroy, 1, cl); } /* @@ -1184,17 +1119,11 @@ read_vc(void *ct_tmp, caddr_t buf, int len) struct ct_data *ct = ct_tmp; struct timeval starttime; struct timeval curtime; - struct timeval time_waited; - struct timeval timeout; int poll_time; int delta; - trace2(TR_read_vc, 0, len); - - if (len == 0) { - trace2(TR_read_vc, 1, len); + if (len == 0) return (0); - } /* * Allocate just one the first time. thr_get_storage() may @@ -1209,7 +1138,6 @@ read_vc(void *ct_tmp, caddr_t buf, int len) rpc_callerr.re_status = RPC_SYSTEMERROR; rpc_callerr.re_errno = errno; rpc_callerr.re_terrno = 0; - trace2(TR_read_vc, 1, len); return (-1); } @@ -1222,7 +1150,7 @@ read_vc(void *ct_tmp, caddr_t buf, int len) pfdp[0].events = MASKVAL; pfdp[0].revents = 0; poll_time = ct->ct_wait; - if (gettimeofday(&starttime, (struct timezone *)NULL) == -1) { + if (gettimeofday(&starttime, NULL) == -1) { syslog(LOG_ERR, "Unable to get time of day: %m"); return (-1); } @@ -1250,13 +1178,12 @@ read_vc(void *ct_tmp, caddr_t buf, int len) rpc_callerr.re_status = RPC_SYSTEMERROR; rpc_callerr.re_errno = errno; rpc_callerr.re_terrno = 0; - trace2(TR_read_vc, 1, len); return (-1); } pfdp = tmp_pfdp; npfd = svc_max_pollfd + 1; - pthread_setspecific(pfdp_key, pfdp); + (void) pthread_setspecific(pfdp_key, pfdp); } if (npfd > 1) (void) memcpy(&pfdp[1], svc_pollfd, @@ -1270,7 +1197,6 @@ read_vc(void *ct_tmp, caddr_t buf, int len) switch (fds = poll(pfdp, npfd, poll_time)) { case 0: rpc_callerr.re_status = RPC_TIMEDOUT; - trace2(TR_read_vc, 1, len); return (-1); case -1: @@ -1282,8 +1208,7 @@ read_vc(void *ct_tmp, caddr_t buf, int len) * update time_waited */ - if (gettimeofday(&curtime, - (struct timezone *)NULL) == -1) { + if (gettimeofday(&curtime, NULL) == -1) { syslog(LOG_ERR, "Unable to get time of day: %m"); errno = 0; @@ -1298,7 +1223,6 @@ read_vc(void *ct_tmp, caddr_t buf, int len) rpc_callerr.re_status = RPC_TIMEDOUT; errno = 0; - trace2(TR_read_vc, 1, len); return (-1); } else { errno = 0; /* reset it */ @@ -1323,14 +1247,12 @@ read_vc(void *ct_tmp, caddr_t buf, int len) * instead. */ rpc_callerr.re_errno = errno = EBADF; - trace2(TR_read_vc, 1, len); return (-1); } if (pfdp[0].revents & (POLLERR | POLLHUP)) { rpc_callerr.re_status = RPC_CANTRECV; rpc_callerr.re_errno = errno = EPIPE; - trace2(TR_read_vc, 1, len); return (-1); } break; @@ -1351,23 +1273,17 @@ read_vc(void *ct_tmp, caddr_t buf, int len) rpc_callerr.re_status = RPC_CANTRECV; break; } - trace2(TR_read_vc, 1, len); return (len); } static int -write_vc(ct_tmp, buf, len) - void *ct_tmp; - caddr_t buf; - int len; +write_vc(void *ct_tmp, caddr_t buf, int len) { int i, cnt; struct ct_data *ct = ct_tmp; int flag; int maxsz; - trace2(TR_write_vc, 0, len); - maxsz = ct->ct_tsdu; /* Handle the non-blocking mode */ @@ -1395,7 +1311,6 @@ write_vc(ct_tmp, buf, len) rpc_callerr.re_errno = 0; rpc_callerr.re_status = RPC_CANTSTORE; } - trace2(TR_write_vc, 1, len); return (len); } @@ -1411,7 +1326,6 @@ write_vc(ct_tmp, buf, len) rpc_callerr.re_errno = 0; rpc_callerr.re_status = RPC_CANTSEND; } - trace2(TR_write_vc, 1, len); return (len); } @@ -1425,11 +1339,9 @@ write_vc(ct_tmp, buf, len) rpc_callerr.re_terrno = t_errno; rpc_callerr.re_errno = 0; rpc_callerr.re_status = RPC_CANTSEND; - trace2(TR_write_vc, 1, len); return (-1); } } - trace2(TR_write_vc, 1, len); return (len); } @@ -1437,16 +1349,12 @@ write_vc(ct_tmp, buf, len) * Receive the required bytes of data, even if it is fragmented. */ static int -t_rcvall(fd, buf, len) - int fd; - char *buf; - int len; +t_rcvall(int fd, char *buf, int len) { int moreflag; int final = 0; int res; - trace3(TR_t_rcvall, 0, fd, len); do { moreflag = 0; res = t_rcv(fd, buf, (unsigned)len, &moreflag); @@ -1454,30 +1362,25 @@ t_rcvall(fd, buf, len) if (t_errno == TLOOK) switch (t_look(fd)) { case T_DISCONNECT: - t_rcvdis(fd, NULL); - t_snddis(fd, NULL); - trace3(TR_t_rcvall, 1, fd, len); + (void) t_rcvdis(fd, NULL); + (void) t_snddis(fd, NULL); return (-1); case T_ORDREL: /* Received orderly release indication */ - t_rcvrel(fd); + (void) t_rcvrel(fd); /* Send orderly release indicator */ (void) t_sndrel(fd); - trace3(TR_t_rcvall, 1, fd, len); return (-1); default: - trace3(TR_t_rcvall, 1, fd, len); return (-1); } } else if (res == 0) { - trace3(TR_t_rcvall, 1, fd, len); return (0); } final += res; buf += res; len -= res; } while ((len > 0) && (moreflag & T_MORE)); - trace3(TR_t_rcvall, 1, fd, len); return (final); } @@ -1489,7 +1392,6 @@ clnt_vc_ops(void) /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_clnt_vc_ops, 0); sig_mutex_lock(&ops_lock); if (ops.cl_call == NULL) { ops.cl_call = clnt_vc_call; @@ -1501,7 +1403,6 @@ clnt_vc_ops(void) ops.cl_control = clnt_vc_control; } sig_mutex_unlock(&ops_lock); - trace1(TR_clnt_vc_ops, 1); return (&ops); } @@ -1510,11 +1411,8 @@ clnt_vc_ops(void) * Note this is different from time_not_ok in clnt_dg.c */ static bool_t -time_not_ok(t) - struct timeval *t; +time_not_ok(struct timeval *t) { - trace1(TR_time_not_ok, 0); - trace1(TR_time_not_ok, 1); return (t->tv_sec <= -1 || t->tv_sec > 100000000 || t->tv_usec <= -1 || t->tv_usec > 1000000); } @@ -1530,12 +1428,12 @@ addInBuffer(struct ct_data *ct, char *dataToAdd, unsigned int nBytes) /* Buffer not allocated yet. */ char *buffer; - buffer = (char *)malloc(ct->ct_bufferSize); + buffer = malloc(ct->ct_bufferSize); if (NULL == buffer) { errno = ENOMEM; return (-1); } - memcpy(buffer, dataToAdd, nBytes); + (void) memcpy(buffer, dataToAdd, nBytes); ct->ct_buffer = buffer; ct->ct_bufferReadPtr = buffer; @@ -1553,7 +1451,7 @@ addInBuffer(struct ct_data *ct, char *dataToAdd, unsigned int nBytes) ct->ct_bufferPendingSize += nBytes; - memcpy(ct->ct_bufferWritePtr, dataToAdd, len); + (void) memcpy(ct->ct_bufferWritePtr, dataToAdd, len); ct->ct_bufferWritePtr += len; nBytes -= len; if (0 == nBytes) { @@ -1575,7 +1473,7 @@ addInBuffer(struct ct_data *ct, char *dataToAdd, unsigned int nBytes) * Copy the remaining data to the beginning of the * buffer */ - memcpy(ct->ct_buffer, dataToAdd, nBytes); + (void) memcpy(ct->ct_buffer, dataToAdd, nBytes); ct->ct_bufferWritePtr = ct->ct_buffer + nBytes; } } @@ -1583,14 +1481,6 @@ addInBuffer(struct ct_data *ct, char *dataToAdd, unsigned int nBytes) } static void -getFromBuffer(struct ct_data *ct, char **data, unsigned int *nBytes) -{ - int len = MIN(ct->ct_bufferPendingSize, REMAIN_BYTES(bufferReadPtr)); - *data = ct->ct_bufferReadPtr; - *nBytes = len; -} - -static void consumeFromBuffer(struct ct_data *ct, unsigned int nBytes) { ct->ct_bufferPendingSize -= nBytes; @@ -1662,11 +1552,11 @@ set_io_mode(struct ct_data *ct, int ioMode) * If a buffer was allocated for this * connection, flush it now, and free it. */ - do_flush(ct, RPC_CL_BLOCKING_FLUSH); + (void) do_flush(ct, RPC_CL_BLOCKING_FLUSH); free(ct->ct_buffer); ct->ct_buffer = NULL; } - unregister_nb(ct); + (void) unregister_nb(ct); ct->ct_io_mode = ioMode; } break; @@ -1701,7 +1591,7 @@ do_flush(struct ct_data *ct, uint_t flush_mode) if (REMAIN_BYTES(bufferReadPtr) < ct->ct_bufferPendingSize) { struct iovec iov[2]; - iovFromBuffer(ct, iov); + (void) iovFromBuffer(ct, iov); result = writev(ct->ct_fd, iov, 2); } else { result = t_snd(ct->ct_fd, ct->ct_bufferReadPtr, @@ -1716,10 +1606,10 @@ do_flush(struct ct_data *ct, uint_t flush_mode) break; case RPC_CL_BESTEFFORT_FLUSH: - set_blocking_connection(ct, FALSE); + (void) set_blocking_connection(ct, FALSE); if (REMAIN_BYTES(bufferReadPtr) < ct->ct_bufferPendingSize) { struct iovec iov[2]; - iovFromBuffer(ct, iov); + (void) iovFromBuffer(ct, iov); result = writev(ct->ct_fd, iov, 2); } else { result = t_snd(ct->ct_fd, ct->ct_bufferReadPtr, @@ -1759,14 +1649,14 @@ nb_send(struct ct_data *ct, void *buff, unsigned int nBytes) */ if (nBytes > (ct->ct_bufferSize - ct->ct_bufferPendingSize)) { /* Try to flush (to free some space). */ - do_flush(ct, RPC_CL_BESTEFFORT_FLUSH); + (void) do_flush(ct, RPC_CL_BESTEFFORT_FLUSH); /* Can we store the message now ? */ if (nBytes > (ct->ct_bufferSize - ct->ct_bufferPendingSize)) return (-2); } - set_blocking_connection(ct, FALSE); + (void) set_blocking_connection(ct, FALSE); /* * If there is no data pending, we can simply try @@ -1849,7 +1739,7 @@ nb_send(struct ct_data *ct, void *buff, unsigned int nBytes) } static void -flush_registered_clients() +flush_registered_clients(void) { struct nb_reg_node *node; @@ -1858,15 +1748,15 @@ flush_registered_clients() } LIST_FOR_EACH(nb_first, node) { - do_flush(node->ct, RPC_CL_BLOCKING_FLUSH); + (void) do_flush(node->ct, RPC_CL_BLOCKING_FLUSH); } } static int -allocate_chunk() +allocate_chunk(void) { #define CHUNK_SIZE 16 - struct nb_reg_node *chk = (struct nb_reg_node *) + struct nb_reg_node *chk = malloc(sizeof (struct nb_reg_node) * CHUNK_SIZE); struct nb_reg_node *n; int i; @@ -1889,16 +1779,16 @@ register_nb(struct ct_data *ct) { struct nb_reg_node *node; - mutex_lock(&nb_list_mutex); + (void) mutex_lock(&nb_list_mutex); if (LIST_ISEMPTY(nb_free) && (allocate_chunk() == -1)) { - mutex_unlock(&nb_list_mutex); + (void) mutex_unlock(&nb_list_mutex); errno = ENOMEM; return (-1); } if (!exit_handler_set) { - atexit(flush_registered_clients); + (void) atexit(flush_registered_clients); exit_handler_set = TRUE; } /* Get the first free node */ @@ -1907,7 +1797,7 @@ register_nb(struct ct_data *ct) node->ct = ct; LIST_ADD(nb_first, node); - mutex_unlock(&nb_list_mutex); + (void) mutex_unlock(&nb_list_mutex); return (0); } @@ -1917,8 +1807,8 @@ unregister_nb(struct ct_data *ct) { struct nb_reg_node *node; - mutex_lock(&nb_list_mutex); - assert(! LIST_ISEMPTY(nb_first)); + (void) mutex_lock(&nb_list_mutex); + assert(!LIST_ISEMPTY(nb_first)); node = nb_first; LIST_FOR_EACH(nb_first, node) { @@ -1932,6 +1822,6 @@ unregister_nb(struct ct_data *ct) break; } } - mutex_unlock(&nb_list_mutex); + (void) mutex_unlock(&nb_list_mutex); return (0); } diff --git a/usr/src/lib/libnsl/rpc/fdsync.c b/usr/src/lib/libnsl/rpc/fdsync.c index 64a4c3d108..98e6752544 100644 --- a/usr/src/lib/libnsl/rpc/fdsync.c +++ b/usr/src/lib/libnsl/rpc/fdsync.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,7 +35,6 @@ #include "mt.h" #include "rpc_mt.h" #include <rpc/rpc.h> -#include <rpc/trace.h> #include <errno.h> #include <sys/poll.h> #include <syslog.h> diff --git a/usr/src/lib/libnsl/rpc/getdname.c b/usr/src/lib/libnsl/rpc/getdname.c index b1a2a51806..31fafe637a 100644 --- a/usr/src/lib/libnsl/rpc/getdname.c +++ b/usr/src/lib/libnsl/rpc/getdname.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,8 +41,8 @@ #include "rpc_mt.h" #include <stdio.h> +#include <stdlib.h> #include <sys/types.h> -#include <rpc/trace.h> #include <sys/utsname.h> #include <sys/systeminfo.h> #include <sys/time.h> @@ -56,7 +57,6 @@ char DOMAIN[] = "/etc/domain"; #endif int setdomainname(); -extern char *calloc(); #ifdef use_file static char *domainname; @@ -73,48 +73,39 @@ getdomainname(name, namelen) FILE *domain_fd; char *line; - trace2(TR_getdomainname, 0, namelen); - - mutex_lock(&dname_lock); + (void) mutex_lock(&dname_lock); if (domainname) { - strncpy(name, domainname, namelen); - mutex_unlock(&dname_lock); - trace1(TR_getdomainname, 1); + (void) strncpy(name, domainname, namelen); + (void) mutex_unlock(&dname_lock); return (0); } - domainname = (char *)calloc(1, 256); + domainname = calloc(1, 256); if (domainname == NULL) { syslog(LOG_ERR, "getdomainname : out of memory."); - mutex_unlock(&dname_lock); - trace1(TR_getdomainname, 1); + (void) mutex_unlock(&dname_lock); return (-1); } if ((domain_fd = fopen(DOMAIN, "r")) == NULL) { - mutex_unlock(&dname_lock); - trace1(TR_getdomainname, 1); + (void) mutex_unlock(&dname_lock); return (-1); } if (fscanf(domain_fd, "%s", domainname) == NULL) { - fclose(domain_fd); - mutex_unlock(&dname_lock); - trace1(TR_getdomainname, 1); + (void) fclose(domain_fd); + (void) mutex_unlock(&dname_lock); return (-1); } - fclose(domain_fd); + (void) fclose(domain_fd); (void) strncpy(name, domainname, namelen); - mutex_unlock(&dname_lock); - trace1(TR_getdomainname, 1); + (void) mutex_unlock(&dname_lock); return (0); #else int sysinfostatus; - trace2(TR_getdomainname, 0, namelen); sysinfostatus = sysinfo(SI_SRPC_DOMAIN, name, namelen); - trace1(TR_getdomainname, 1); return ((sysinfostatus < 0) ? -1 : 0); #endif } @@ -128,41 +119,33 @@ setdomainname(domain, len) FILE *domain_fd; - trace2(TR_setdomainname, 0, len); - - mutex_lock(&dname_lock); + (void) mutex_lock(&dname_lock); if (domainname) free(domainname); if ((domain_fd = fopen(DOMAIN, "w")) == NULL) { - mutex_unlock(&dname_lock); - trace1(TR_setdomainname, 1); + (void) mutex_unlock(&dname_lock); return (-1); } if (fputs(domain, domain_fd) == NULL) { - mutex_unlock(&dname_lock); - trace1(TR_setdomainname, 1); + (void) mutex_unlock(&dname_lock); return (-1); } - fclose(domain_fd); - domainname = (char *)calloc(1, 256); + (void) fclose(domain_fd); + domainname = calloc(1, 256); if (domainname == NULL) { syslog(LOG_ERR, "setdomainname : out of memory."); - mutex_unlock(&dname_lock); - trace1(TR_setdomainname, 1); + (void) mutex_unlock(&dname_lock); return (-1); } (void) strncpy(domainname, domain, len); - mutex_unlock(&dname_lock); - trace1(TR_setdomainname, 1); + (void) mutex_unlock(&dname_lock); return (0); #else int sysinfostatus; - trace2(TR_setdomainname, 0, len); sysinfostatus = sysinfo(SI_SET_SRPC_DOMAIN, domain, len + 1); /* add null */ - trace1(TR_setdomainname, 1); return ((sysinfostatus < 0) ? -1 : 0); #endif } diff --git a/usr/src/lib/libnsl/rpc/gethostname.c b/usr/src/lib/libnsl/rpc/gethostname.c index a9612d13aa..11372bcfc4 100644 --- a/usr/src/lib/libnsl/rpc/gethostname.c +++ b/usr/src/lib/libnsl/rpc/gethostname.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -35,7 +36,6 @@ #include <sys/utsname.h> #include <sys/types.h> -#include <rpc/trace.h> #include <string.h> #ifndef i386 @@ -46,22 +46,17 @@ extern int _uname(); * gethostname bsd compatibility */ int -gethostname(hname, hlen) - char *hname; - int hlen; +gethostname(char *hname, int hlen) { struct utsname u; - trace2(TR_gethostname, 0, hlen); #if defined(__i386) && !defined(__amd64) if (_nuname(&u) < 0) { #else if (_uname(&u) < 0) { #endif /* __i386 */ - trace1(TR_gethostname, 1); return (-1); } - strncpy(hname, u.nodename, hlen); - trace1(TR_gethostname, 1); + (void) strncpy(hname, u.nodename, hlen); return (0); } diff --git a/usr/src/lib/libnsl/rpc/inet_ntoa.c b/usr/src/lib/libnsl/rpc/inet_ntoa.c index c394302926..ad4f88e239 100644 --- a/usr/src/lib/libnsl/rpc/inet_ntoa.c +++ b/usr/src/lib/libnsl/rpc/inet_ntoa.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -44,7 +45,6 @@ #include "rpc_mt.h" #include <errno.h> #include <sys/types.h> -#include <rpc/trace.h> #include <ctype.h> #include <netinet/in.h> #include <stdio.h> @@ -60,7 +60,8 @@ inet_ntoa_r(in, b) p = (char *)∈ #define UC(b) (((int)b)&0xff) - sprintf(b, "%d.%d.%d.%d", UC(p[0]), UC(p[1]), UC(p[2]), UC(p[3])); + (void) sprintf(b, "%d.%d.%d.%d", + UC(p[0]), UC(p[1]), UC(p[2]), UC(p[3])); return (b); } @@ -89,15 +90,14 @@ inet_ntoa(in) * cannot distinguish between failure and a local broadcast address. */ int -_inet_aton(char *cp, struct in_addr *addr) +_inet_aton(const char *cp, struct in_addr *addr) { uint32_t val; int base, n; char c; unsigned int parts[4]; - register unsigned int *pp = parts; + unsigned int *pp = parts; - trace1(TR_inet_aton, 0); c = *cp; for (;;) { @@ -180,7 +180,6 @@ _inet_aton(char *cp, struct in_addr *addr) } if (addr) addr->s_addr = htonl(val); - trace1(TR_inet_aton, 1); return (1); } @@ -192,7 +191,7 @@ _inet_aton(char *cp, struct in_addr *addr) * The value returned is in network order. */ in_addr_t -inet_addr(char *cp) +inet_addr(const char *cp) { struct in_addr val; @@ -205,21 +204,14 @@ inet_addr(char *cp) * Return the network number from an internet * address; handles class a/b/c network #'s. */ -int -inet_netof(in) - struct in_addr in; +uint_t +inet_netof(struct in_addr in) { uint32_t i = ntohl(in.s_addr); - trace1(TR_inet_netof, 0); - if (IN_CLASSA(i)) { - trace1(TR_inet_netof, 1); - return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT); - } else if (IN_CLASSB(i)) { - trace1(TR_inet_netof, 1); - return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT); - } else { - trace1(TR_inet_netof, 1); - return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT); - } + if (IN_CLASSA(i)) + return ((i & IN_CLASSA_NET) >> IN_CLASSA_NSHIFT); + if (IN_CLASSB(i)) + return ((i & IN_CLASSB_NET) >> IN_CLASSB_NSHIFT); + return ((i & IN_CLASSC_NET) >> IN_CLASSC_NSHIFT); } diff --git a/usr/src/lib/libnsl/rpc/key_call.c b/usr/src/lib/libnsl/rpc/key_call.c index 97c69a344e..03188f2f3a 100644 --- a/usr/src/lib/libnsl/rpc/key_call.c +++ b/usr/src/lib/libnsl/rpc/key_call.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -46,7 +47,6 @@ #include "rpc_mt.h" #include <errno.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/key_prot.h> #include <stdio.h> #include <syslog.h> @@ -89,21 +89,18 @@ bool_t (*__key_gendes_LOCAL)() = NULL; int -key_setsecret(secretkey) - const char *secretkey; +key_setsecret(const char *secretkey) { - keystatus status; char netName[MAXNETNAMELEN+1]; struct key_netstarg netst; int ret; - trace1(TR_key_setsecret, 0); if (getnetname(netName) == 0) { debug("getnetname failed"); return (-1); } - memcpy(netst.st_priv_key, secretkey, HEXKEYBYTES); + (void) memcpy(netst.st_priv_key, secretkey, HEXKEYBYTES); netst.st_pub_key[0] = 0; netst.st_netname = netName; @@ -115,10 +112,9 @@ key_setsecret(secretkey) * set along with the key. Keylogin also uses KEY_NET_PUT. */ ret = key_setnet(&netst); - trace1(TR_key_setsecret, 1); /* erase our copy of the secret key */ - memset(netst.st_priv_key, '\0', HEXKEYBYTES); + (void) memset(netst.st_priv_key, '\0', HEXKEYBYTES); if (ret == 1) return (0); @@ -136,27 +132,20 @@ key_setsecret_g( setkeyarg3 arg; keystatus status; - trace1(TR_key_setsecret_g, 0); - if (CLASSIC_PK_DH(keylen, algtype)) { - trace1(TR_key_setsecret_g, 1); + if (CLASSIC_PK_DH(keylen, algtype)) return (key_setsecret(secretkey)); - } arg.key.keybuf3_len = keylen/4 + 1; arg.key.keybuf3_val = secretkey; arg.algtype = algtype; arg.keylen = keylen; arg.userkey = userkey; if (!key_call((rpcproc_t)KEY_SET_3, xdr_setkeyarg3, (char *)&arg, - xdr_keystatus, (char *)&status)) { - trace1(TR_key_setsecret_g, 1); + xdr_keystatus, (char *)&status)) return (-1); - } if (status != KEY_SUCCESS) { debug("set3 status is nonzero"); - trace1(TR_key_setsecret_g, 1); return (-1); } - trace1(TR_key_setsecret_g, 1); return (0); } @@ -165,19 +154,15 @@ key_removesecret_g_ext(int use_uid) { keystatus status; - trace1(TR_key_removesecret_g_ext, 0); - if (!key_call_ext((rpcproc_t)KEY_CLEAR_3, xdr_void, (char *)NULL, + if (!key_call_ext((rpcproc_t)KEY_CLEAR_3, xdr_void, NULL, xdr_keystatus, (char *)&status, use_uid)) { debug("remove secret key call failed"); - trace1(TR_key_removesecret_g_ext, 1); return (-1); } if (status != KEY_SUCCESS) { debug("remove secret status is nonzero"); - trace1(TR_key_setsecret_g_ext, 1); return (-1); } - trace1(TR_key_removesecret_g_ext, 1); return (0); } @@ -185,7 +170,7 @@ key_removesecret_g_ext(int use_uid) * Use effective uid. */ int -key_removesecret_g() +key_removesecret_g(void) { return (key_removesecret_g_ext(0)); } @@ -194,7 +179,7 @@ key_removesecret_g() * Use real uid. */ int -key_removesecret_g_ruid() +key_removesecret_g_ruid(void) { return (key_removesecret_g_ext(1)); } @@ -214,19 +199,17 @@ key_secretkey_is_set_ext(int use_ruid) { struct key_netstres kres; - trace1(TR_key_secretkey_is_set_ext, 0); - memset((void*)&kres, 0, sizeof (kres)); - if (key_call_ext((rpcproc_t)KEY_NET_GET, xdr_void, (char *)NULL, + (void) memset(&kres, 0, sizeof (kres)); + if (key_call_ext((rpcproc_t)KEY_NET_GET, xdr_void, NULL, xdr_key_netstres, (char *)&kres, use_ruid) && (kres.status == KEY_SUCCESS) && (kres.key_netstres_u.knet.st_priv_key[0] != 0)) { /* avoid leaving secret key in memory */ - memset(kres.key_netstres_u.knet.st_priv_key, 0, HEXKEYBYTES); + (void) memset(kres.key_netstres_u.knet.st_priv_key, 0, + HEXKEYBYTES); xdr_free(xdr_key_netstres, (char *)&kres); - trace1(TR_key_secretkey_is_set_ext, 1); return (1); } - trace1(TR_key_secretkey_is_set_ext, 1); return (0); } @@ -263,36 +246,29 @@ key_secretkey_is_set_g_ext(keylen_t keylen, algtype_t algtype, int use_ruid) mechtype arg; key_netstres3 kres; - trace1(TR_key_secretkey_is_set_g_ext, 0); /* * key_secretkey_is_set_g_ext is tricky because keylen == 0 * means check if any key exists for the caller (old/new, 192/1024 ...) * Rather than handle this on the server side, we call the old * routine if keylen == 0 and try the newer stuff only if that fails */ - if ((keylen == 0) && key_secretkey_is_set_ext(use_ruid)) { - trace1(TR_key_secretkey_is_set_g_ext, 1); + if ((keylen == 0) && key_secretkey_is_set_ext(use_ruid)) return (1); - } - if (CLASSIC_PK_DH(keylen, algtype)) { - trace1(TR_key_secretkey_is_set_g_ext, 1); + if (CLASSIC_PK_DH(keylen, algtype)) return (key_secretkey_is_set_ext(use_ruid)); - } arg.keylen = keylen; arg.algtype = algtype; - memset((void*)&kres, 0, sizeof (kres)); + (void) memset(&kres, 0, sizeof (kres)); if (key_call_ext((rpcproc_t)KEY_NET_GET_3, xdr_mechtype, (char *)&arg, xdr_key_netstres3, (char *)&kres, use_ruid) && (kres.status == KEY_SUCCESS) && (kres.key_netstres3_u.knet.st_priv_key.keybuf3_len != 0)) { /* avoid leaving secret key in memory */ - memset(kres.key_netstres3_u.knet.st_priv_key.keybuf3_val, 0, - kres.key_netstres3_u.knet.st_priv_key.keybuf3_len); + (void) memset(kres.key_netstres3_u.knet.st_priv_key.keybuf3_val, + 0, kres.key_netstres3_u.knet.st_priv_key.keybuf3_len); xdr_free(xdr_key_netstres3, (char *)&kres); - trace1(TR_key_secretkey_is_set_g_ext, 1); return (1); } - trace1(TR_key_secretkey_is_set_g_ext, 1); return (0); } @@ -316,30 +292,23 @@ key_secretkey_is_set_g_ruid(keylen_t keylen, algtype_t algtype) int -key_encryptsession_pk(remotename, remotekey, deskey) - char *remotename; - netobj *remotekey; - des_block *deskey; +key_encryptsession_pk(const char *remotename, netobj *remotekey, + des_block *deskey) { cryptkeyarg2 arg; cryptkeyres res; - trace1(TR_key_encryptsession_pk, 0); - arg.remotename = remotename; + arg.remotename = (char *)remotename; arg.remotekey = *remotekey; arg.deskey = *deskey; if (!key_call((rpcproc_t)KEY_ENCRYPT_PK, xdr_cryptkeyarg2, (char *)&arg, - xdr_cryptkeyres, (char *)&res)) { - trace1(TR_key_encryptsession_pk, 1); + xdr_cryptkeyres, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("encrypt status is nonzero"); - trace1(TR_key_encryptsession_pk, 1); return (-1); } *deskey = res.cryptkeyres_u.deskey; - trace1(TR_key_encryptsession_pk, 1); return (0); } @@ -356,7 +325,6 @@ key_encryptsession_pk_g( cryptkeyarg3 arg; cryptkeyres3 res; - trace1(TR_key_encryptsession_pk_g, 0); if (CLASSIC_PK_DH(remotekeylen, algtype)) { int i; netobj npk; @@ -364,8 +332,7 @@ key_encryptsession_pk_g( npk.n_len = remotekeylen/4 + 1; npk.n_bytes = (char *)remotekey; for (i = 0; i < keynum; i++) { - if (key_encryptsession_pk((char *)remotename, - &npk, &deskey[i])) + if (key_encryptsession_pk(remotename, &npk, &deskey[i])) return (-1); } return (0); @@ -377,53 +344,41 @@ key_encryptsession_pk_g( arg.algtype = algtype; arg.deskey.deskeyarray_len = keynum; arg.deskey.deskeyarray_val = deskey; - memset(&res, 0, sizeof (res)); + (void) memset(&res, 0, sizeof (res)); res.cryptkeyres3_u.deskey.deskeyarray_val = deskey; if (!key_call((rpcproc_t)KEY_ENCRYPT_PK_3, xdr_cryptkeyarg3, (char *)&arg, - xdr_cryptkeyres3, (char *)&res)) { - trace1(TR_key_encryptsession_pk_g, 1); + xdr_cryptkeyres3, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("encrypt3 status is nonzero"); - trace1(TR_key_encryptsession_pk_g, 1); return (-1); } if (res.cryptkeyres3_u.deskey.deskeyarray_len != keynum) { debug("number of keys don't match"); - trace1(TR_key_encryptsession_pk_g, 1); return (-1); } - trace1(TR_key_encryptsession_pk_g, 1); return (0); } int -key_decryptsession_pk(remotename, remotekey, deskey) - char *remotename; - netobj *remotekey; - des_block *deskey; +key_decryptsession_pk(const char *remotename, netobj *remotekey, + des_block *deskey) { cryptkeyarg2 arg; cryptkeyres res; - trace1(TR_key_decryptsession_pk, 0); - arg.remotename = remotename; + arg.remotename = (char *)remotename; arg.remotekey = *remotekey; arg.deskey = *deskey; if (!key_call((rpcproc_t)KEY_DECRYPT_PK, xdr_cryptkeyarg2, (char *)&arg, - xdr_cryptkeyres, (char *)&res)) { - trace1(TR_key_decryptsession_pk, 1); + xdr_cryptkeyres, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("decrypt status is nonzero"); - trace1(TR_key_decryptsession_pk, 1); return (-1); } *deskey = res.cryptkeyres_u.deskey; - trace1(TR_key_decryptsession_pk, 1); return (0); } @@ -440,7 +395,6 @@ key_decryptsession_pk_g( cryptkeyarg3 arg; cryptkeyres3 res; - trace1(TR_key_decryptsession_pk_g, 0); if (CLASSIC_PK_DH(remotekeylen, algtype)) { int i; netobj npk; @@ -448,7 +402,7 @@ key_decryptsession_pk_g( npk.n_len = remotekeylen/4 + 1; npk.n_bytes = (char *)remotekey; for (i = 0; i < keynum; i++) { - if (key_decryptsession_pk((char *)remotename, + if (key_decryptsession_pk(remotename, &npk, &deskey[i])) return (-1); } @@ -461,51 +415,39 @@ key_decryptsession_pk_g( arg.deskey.deskeyarray_val = deskey; arg.algtype = algtype; arg.keylen = remotekeylen; - memset(&res, 0, sizeof (res)); + (void) memset(&res, 0, sizeof (res)); res.cryptkeyres3_u.deskey.deskeyarray_val = deskey; if (!key_call((rpcproc_t)KEY_DECRYPT_PK_3, xdr_cryptkeyarg3, (char *)&arg, - xdr_cryptkeyres3, (char *)&res)) { - trace1(TR_key_decryptsession_pk_g, 1); + xdr_cryptkeyres3, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("decrypt3 status is nonzero"); - trace1(TR_key_decryptsession_pk_g, 1); return (-1); } if (res.cryptkeyres3_u.deskey.deskeyarray_len != keynum) { debug("number of keys don't match"); - trace1(TR_key_encryptsession_pk_g, 1); return (-1); } - trace1(TR_key_decryptsession_pk_g, 1); return (0); } int -key_encryptsession(remotename, deskey) - const char *remotename; - des_block *deskey; +key_encryptsession(const char *remotename, des_block *deskey) { cryptkeyarg arg; cryptkeyres res; - trace1(TR_key_encryptsession, 0); arg.remotename = (char *)remotename; arg.deskey = *deskey; if (!key_call((rpcproc_t)KEY_ENCRYPT, xdr_cryptkeyarg, (char *)&arg, - xdr_cryptkeyres, (char *)&res)) { - trace1(TR_key_encryptsession, 1); + xdr_cryptkeyres, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("encrypt status is nonzero"); - trace1(TR_key_encryptsession, 1); return (-1); } *deskey = res.cryptkeyres_u.deskey; - trace1(TR_key_encryptsession, 1); return (0); } @@ -521,62 +463,47 @@ key_encryptsession_g( cryptkeyarg3 arg; cryptkeyres3 res; - trace1(TR_key_encryptsession_g, 0); - if (CLASSIC_PK_DH(keylen, algtype)) { - trace1(TR_key_encryptsession, 1); + if (CLASSIC_PK_DH(keylen, algtype)) return (key_encryptsession(remotename, deskey)); - } arg.remotename = (char *)remotename; arg.algtype = algtype; arg.keylen = keylen; arg.deskey.deskeyarray_len = keynum; arg.deskey.deskeyarray_val = deskey; arg.remotekey.keybuf3_len = 0; - memset(&res, 0, sizeof (res)); + (void) memset(&res, 0, sizeof (res)); res.cryptkeyres3_u.deskey.deskeyarray_val = deskey; if (!key_call((rpcproc_t)KEY_ENCRYPT_3, xdr_cryptkeyarg3, (char *)&arg, - xdr_cryptkeyres3, (char *)&res)) { - trace1(TR_key_encryptsession_g, 1); + xdr_cryptkeyres3, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("encrypt3 status is nonzero"); - trace1(TR_key_encryptsession_g, 1); return (-1); } if (res.cryptkeyres3_u.deskey.deskeyarray_len != keynum) { debug("encrypt3 didn't return same number of keys"); - trace1(TR_key_encryptsession_g, 1); return (-1); } - trace1(TR_key_encryptsession_g, 1); return (0); } int -key_decryptsession(remotename, deskey) - const char *remotename; - des_block *deskey; +key_decryptsession(const char *remotename, des_block *deskey) { cryptkeyarg arg; cryptkeyres res; - trace1(TR_key_decryptsession, 0); arg.remotename = (char *)remotename; arg.deskey = *deskey; if (!key_call((rpcproc_t)KEY_DECRYPT, xdr_cryptkeyarg, (char *)&arg, - xdr_cryptkeyres, (char *)&res)) { - trace1(TR_key_decryptsession, 1); + xdr_cryptkeyres, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("decrypt status is nonzero"); - trace1(TR_key_decryptsession, 1); return (-1); } *deskey = res.cryptkeyres_u.deskey; - trace1(TR_key_decryptsession, 1); return (0); } @@ -592,49 +519,36 @@ key_decryptsession_g( cryptkeyarg3 arg; cryptkeyres3 res; - trace1(TR_key_decryptsession_g, 0); - if (CLASSIC_PK_DH(keylen, algtype)) { - trace1(TR_key_decryptsession, 1); + if (CLASSIC_PK_DH(keylen, algtype)) return (key_decryptsession(remotename, deskey)); - } arg.remotename = (char *)remotename; arg.algtype = algtype; arg.keylen = keylen; arg.deskey.deskeyarray_len = keynum; arg.deskey.deskeyarray_val = deskey; arg.remotekey.keybuf3_len = 0; - memset(&res, 0, sizeof (res)); + (void) memset(&res, 0, sizeof (res)); res.cryptkeyres3_u.deskey.deskeyarray_val = deskey; if (!key_call((rpcproc_t)KEY_DECRYPT_3, xdr_cryptkeyarg3, (char *)&arg, - xdr_cryptkeyres3, (char *)&res)) { - trace1(TR_key_decryptsession_g, 1); + xdr_cryptkeyres3, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("decrypt3 status is nonzero"); - trace1(TR_key_decryptsession_g, 1); return (-1); } if (res.cryptkeyres3_u.deskey.deskeyarray_len != keynum) { debug("decrypt3 didn't return same number of keys"); - trace1(TR_key_encryptsession_g, 1); return (-1); } - trace1(TR_key_decryptsession_g, 1); return (0); } int -key_gendes(key) - des_block *key; +key_gendes(des_block *key) { - trace1(TR_key_gendes, 0); - if (!key_call((rpcproc_t)KEY_GEN, xdr_void, (char *)NULL, - xdr_des_block, (char *)key)) { - trace1(TR_key_gendes, 1); + if (!key_call((rpcproc_t)KEY_GEN, xdr_void, NULL, + xdr_des_block, (char *)key)) return (-1); - } - trace1(TR_key_gendes, 1); return (0); } @@ -646,19 +560,14 @@ key_gendes_g( { deskeyarray res; - trace1(TR_key_gendes_g, 0); res.deskeyarray_val = deskey; if (!key_call((rpcproc_t)KEY_GEN_3, xdr_keynum_t, (char *)&keynum, - xdr_deskeyarray, (char *)&res)) { - trace1(TR_key_gendes_g, 1); + xdr_deskeyarray, (char *)&res)) return (-1); - } if (res.deskeyarray_len != keynum) { debug("return length doesn't match\n"); - trace1(TR_key_gendes_g, 1); return (-1); } - trace1(TR_key_gendes_g, 1); return (0); } @@ -673,19 +582,14 @@ key_setnet_ext(struct key_netstarg *arg, int use_ruid) { keystatus status; - trace1(TR_key_setnet_ext, 0); if (!key_call_ext((rpcproc_t)KEY_NET_PUT, xdr_key_netstarg, - (char *)arg, xdr_keystatus, (char *)&status, use_ruid)) { - trace1(TR_key_setnet, 1); + (char *)arg, xdr_keystatus, (char *)&status, use_ruid)) return (-1); - } if (status != KEY_SUCCESS) { debug("key_setnet status is nonzero"); - trace1(TR_key_setnet_ext, 1); return (-1); } - trace1(TR_key_setnet_ext, 1); return (1); } @@ -732,7 +636,6 @@ key_setnet_g_ext( key_netstarg3 arg; keystatus status; - trace1(TR_key_setnet_g_ext, 0); arg.st_netname = (char *)netname; arg.algtype = algtype; if (skeylen == 0) { @@ -750,14 +653,12 @@ key_setnet_g_ext( if (skeylen == 0) { if (pkeylen == 0) { debug("keylens are both 0"); - trace1(TR_key_setnet_g_ext, 1); return (-1); } arg.keylen = pkeylen; } else { if ((pkeylen != 0) && (skeylen != pkeylen)) { debug("keylens don't match"); - trace1(TR_key_setnet_g_ext, 1); return (-1); } arg.keylen = skeylen; @@ -766,33 +667,32 @@ key_setnet_g_ext( key_netstarg tmp; if (skeylen != 0) { - memcpy(&tmp.st_priv_key, skey, + (void) memcpy(&tmp.st_priv_key, skey, sizeof (tmp.st_priv_key)); } else { - memset(&tmp.st_priv_key, 0, sizeof (tmp.st_priv_key)); + (void) memset(&tmp.st_priv_key, 0, + sizeof (tmp.st_priv_key)); } if (pkeylen != 0) { - memcpy(&tmp.st_pub_key, skey, sizeof (tmp.st_pub_key)); + (void) memcpy(&tmp.st_pub_key, skey, + sizeof (tmp.st_pub_key)); } else { - memset(&tmp.st_pub_key, 0, sizeof (tmp.st_pub_key)); + (void) memset(&tmp.st_pub_key, 0, + sizeof (tmp.st_pub_key)); } tmp.st_netname = (char *)netname; - trace1(TR_key_setnet_g_ext, 1); return (key_setnet(&tmp)); } if (!key_call_ext((rpcproc_t)KEY_NET_PUT_3, xdr_key_netstarg3, (char *)&arg, xdr_keystatus, (char *)&status, use_ruid)) { - trace1(TR_key_setnet_g_ext, 1); return (-1); } if (status != KEY_SUCCESS) { debug("key_setnet3 status is nonzero"); - trace1(TR_key_setnet_g_ext, 1); return (-1); } - trace1(TR_key_setnet_g_ext, 1); return (0); } @@ -819,25 +719,18 @@ key_setnet_g_ruid(const char *netname, const char *skey, keylen_t skeylen, } int -key_get_conv(pkey, deskey) - char *pkey; - des_block *deskey; +key_get_conv(char *pkey, des_block *deskey) { cryptkeyres res; - trace1(TR_key_get_conv, 0); if (!key_call((rpcproc_t)KEY_GET_CONV, xdr_keybuf, pkey, - xdr_cryptkeyres, (char *)&res)) { - trace1(TR_key_get_conv, 1); + xdr_cryptkeyres, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("get_conv status is nonzero"); - trace1(TR_key_get_conv, 1); return (-1); } *deskey = res.cryptkeyres_u.deskey; - trace1(TR_key_get_conv, 1); return (0); } @@ -853,34 +746,26 @@ key_get_conv_g( deskeyarg3 arg; cryptkeyres3 res; - trace1(TR_key_get_conv_g, 0); - if (CLASSIC_PK_DH(pkeylen, algtype)) { - trace1(TR_key_get_conv_g, 1); + if (CLASSIC_PK_DH(pkeylen, algtype)) return (key_get_conv((char *)pkey, deskey)); - } arg.pub_key.keybuf3_len = pkeylen/4 + 1; arg.pub_key.keybuf3_val = (char *)pkey; arg.nkeys = keynum; arg.algtype = algtype; arg.keylen = pkeylen; - memset(&res, 0, sizeof (res)); + (void) memset(&res, 0, sizeof (res)); res.cryptkeyres3_u.deskey.deskeyarray_val = deskey; if (!key_call((rpcproc_t)KEY_GET_CONV_3, xdr_deskeyarg3, (char *)&arg, - xdr_cryptkeyres3, (char *)&res)) { - trace1(TR_key_get_conv_g, 1); + xdr_cryptkeyres3, (char *)&res)) return (-1); - } if (res.status != KEY_SUCCESS) { debug("get_conv3 status is nonzero"); - trace1(TR_key_get_conv_g, 1); return (-1); } if (res.cryptkeyres3_u.deskey.deskeyarray_len != keynum) { debug("get_conv3 number of keys dont match"); - trace1(TR_key_get_conv_g, 1); return (-1); } - trace1(TR_key_get_conv_g, 1); return (0); } @@ -900,7 +785,7 @@ key_call_destroy(void *vp) struct key_call_private *kcp = (struct key_call_private *)vp; if (kcp != NULL && kcp->client != NULL) { - check_rdev(kcp); + (void) check_rdev(kcp); clnt_destroy(kcp->client); free(kcp); } @@ -982,13 +867,8 @@ getkeyserv_handle(int vers, int stale) * Returns 0 on failure, 1 on success */ int -key_call_ext(proc, xdr_arg, arg, xdr_rslt, rslt, use_ruid) - rpcproc_t proc; - xdrproc_t xdr_arg; - char *arg; - xdrproc_t xdr_rslt; - char *rslt; - int use_ruid; +key_call_ext(rpcproc_t proc, xdrproc_t xdr_arg, char *arg, xdrproc_t xdr_rslt, + char *rslt, int use_ruid) { CLIENT *clnt; struct timeval wait_time = {0, 0}; @@ -1097,10 +977,8 @@ key_call_ruid(rpcproc_t proc, xdrproc_t xdr_arg, char *arg, return (key_call_ext(proc, xdr_arg, arg, xdr_rslt, rslt, 1)); } -static -void -set_rdev(kcp) - struct key_call_private *kcp; +static void +set_rdev(struct key_call_private *kcp) { int fd; struct stat stbuf; @@ -1115,10 +993,8 @@ set_rdev(kcp) kcp->rdev = stbuf.st_rdev; } -static -int -check_rdev(kcp) - struct key_call_private *kcp; +static int +check_rdev(struct key_call_private *kcp) { struct stat stbuf; @@ -1129,7 +1005,7 @@ check_rdev(kcp) syslog(LOG_DEBUG, "keyserv_client: can't stat %d", kcp->fd); /* could be because file descriptor was closed */ /* it's not our file descriptor, so don't try to close it */ - clnt_control(kcp->client, CLSET_FD_NCLOSE, (char *)NULL); + clnt_control(kcp->client, CLSET_FD_NCLOSE, NULL); return (0); } @@ -1138,7 +1014,7 @@ check_rdev(kcp) "keyserv_client: fd %d changed, old=0x%x, new=0x%x", kcp->fd, kcp->rdev, stbuf.st_rdev); /* it's not our file descriptor, so don't try to close it */ - clnt_control(kcp->client, CLSET_FD_NCLOSE, (char *)NULL); + clnt_control(kcp->client, CLSET_FD_NCLOSE, NULL); return (0); } return (1); /* fd is okay */ diff --git a/usr/src/lib/libnsl/rpc/key_prot.c b/usr/src/lib/libnsl/rpc/key_prot.c new file mode 100644 index 0000000000..6d7e1eefbf --- /dev/null +++ b/usr/src/lib/libnsl/rpc/key_prot.c @@ -0,0 +1,264 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <rpc/rpc.h> +#include <rpc/key_prot.h> + +/* + * Originally ompiled from key_prot.x using rpcgen. + */ + +bool_t +xdr_keystatus(XDR *xdrs, keystatus *objp) +{ + return (xdr_enum(xdrs, (enum_t *)objp)); +} + +bool_t +xdr_keybuf(XDR *xdrs, keybuf objp) +{ + return (xdr_opaque(xdrs, objp, HEXKEYBYTES)); +} + +bool_t +xdr_keybuf3(XDR *xdrs, keybuf3 *objp) +{ + return (xdr_bytes(xdrs, (char **)&objp->keybuf3_val, + (uint_t *)&objp->keybuf3_len, ~0)); +} + +bool_t +xdr_netnamestr(XDR *xdrs, netnamestr *objp) +{ + return (xdr_string(xdrs, objp, MAXNETNAMELEN)); +} + +bool_t +xdr_keylen_t(XDR *xdrs, keylen_t *objp) +{ + return (xdr_int(xdrs, objp)); +} + +bool_t +xdr_algtype_t(XDR *xdrs, algtype_t *objp) +{ + return (xdr_int(xdrs, objp)); +} + +bool_t +xdr_mechtype(XDR *xdrs, mechtype *objp) +{ + if (!xdr_keylen_t(xdrs, &objp->keylen)) + return (FALSE); + return (xdr_algtype_t(xdrs, &objp->algtype)); +} + +bool_t +xdr_keynum_t(XDR *xdrs, keynum_t *objp) +{ + return (xdr_int(xdrs, objp)); +} + +bool_t +xdr_deskeyarray(XDR *xdrs, deskeyarray *objp) +{ + return (xdr_array(xdrs, (char **)&objp->deskeyarray_val, + (uint_t *)&objp->deskeyarray_len, ~0, + sizeof (des_block), (xdrproc_t)xdr_des_block)); +} + +bool_t +xdr_cryptkeyarg(XDR *xdrs, cryptkeyarg *objp) +{ + if (!xdr_netnamestr(xdrs, &objp->remotename)) + return (FALSE); + return (xdr_des_block(xdrs, &objp->deskey)); +} + +bool_t +xdr_cryptkeyarg2(XDR *xdrs, cryptkeyarg2 *objp) +{ + if (!xdr_netnamestr(xdrs, &objp->remotename)) + return (FALSE); + if (!xdr_netobj(xdrs, &objp->remotekey)) + return (FALSE); + return (xdr_des_block(xdrs, &objp->deskey)); +} + +bool_t +xdr_cryptkeyarg3(XDR *xdrs, cryptkeyarg3 *objp) +{ + if (!xdr_netnamestr(xdrs, &objp->remotename)) + return (FALSE); + if (!xdr_keybuf3(xdrs, &objp->remotekey)) + return (FALSE); + if (!xdr_deskeyarray(xdrs, &objp->deskey)) + return (FALSE); + if (!xdr_algtype_t(xdrs, &objp->algtype)) + return (FALSE); + return (xdr_keylen_t(xdrs, &objp->keylen)); +} + +bool_t +xdr_cryptkeyres(XDR *xdrs, cryptkeyres *objp) +{ + if (!xdr_keystatus(xdrs, &objp->status)) + return (FALSE); + if (objp->status != KEY_SUCCESS) + return (TRUE); + return (xdr_des_block(xdrs, &objp->cryptkeyres_u.deskey)); +} + +bool_t +xdr_cryptkeyres3(XDR *xdrs, cryptkeyres3 *objp) +{ + if (!xdr_keystatus(xdrs, &objp->status)) + return (FALSE); + if (objp->status != KEY_SUCCESS) + return (TRUE); + return (xdr_deskeyarray(xdrs, &objp->cryptkeyres3_u.deskey)); +} + +bool_t +xdr_unixcred(XDR *xdrs, unixcred *objp) +{ + if (!xdr_u_int(xdrs, &objp->uid)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->gid)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->gids.gids_val, + (uint_t *)&objp->gids.gids_len, MAXGIDS, + sizeof (uint_t), (xdrproc_t)xdr_u_int)); +} + +bool_t +xdr_unixcred3(XDR *xdrs, unixcred3 *objp) +{ + if (!xdr_u_int(xdrs, &objp->uid)) + return (FALSE); + if (!xdr_u_int(xdrs, &objp->gid)) + return (FALSE); + return (xdr_array(xdrs, (char **)&objp->gids.gids_val, + (uint_t *)&objp->gids.gids_len, ~0, + sizeof (uint_t), (xdrproc_t)xdr_u_int)); +} + +bool_t +xdr_getcredres(XDR *xdrs, getcredres *objp) +{ + if (!xdr_keystatus(xdrs, &objp->status)) + return (FALSE); + if (objp->status != KEY_SUCCESS) + return (TRUE); + return (xdr_unixcred(xdrs, &objp->getcredres_u.cred)); +} + +bool_t +xdr_getcredres3(XDR *xdrs, getcredres3 *objp) +{ + if (!xdr_keystatus(xdrs, &objp->status)) + return (FALSE); + if (objp->status != KEY_SUCCESS) + return (TRUE); + return (xdr_unixcred3(xdrs, &objp->getcredres3_u.cred)); +} + +bool_t +xdr_key_netstarg(XDR *xdrs, key_netstarg *objp) +{ + if (!xdr_keybuf(xdrs, objp->st_priv_key)) + return (FALSE); + if (!xdr_keybuf(xdrs, objp->st_pub_key)) + return (FALSE); + return (xdr_netnamestr(xdrs, &objp->st_netname)); +} + +bool_t +xdr_key_netstarg3(XDR *xdrs, key_netstarg3 *objp) +{ + if (!xdr_keybuf3(xdrs, &objp->st_priv_key)) + return (FALSE); + if (!xdr_keybuf3(xdrs, &objp->st_pub_key)) + return (FALSE); + if (!xdr_netnamestr(xdrs, &objp->st_netname)) + return (FALSE); + if (!xdr_algtype_t(xdrs, &objp->algtype)) + return (FALSE); + if (!xdr_keylen_t(xdrs, &objp->keylen)) + return (FALSE); + return (xdr_des_block(xdrs, &objp->userkey)); +} + +bool_t +xdr_key_netstres(XDR *xdrs, key_netstres *objp) +{ + if (!xdr_keystatus(xdrs, &objp->status)) + return (FALSE); + switch (objp->status) { + case KEY_SUCCESS: + if (!xdr_key_netstarg(xdrs, &objp->key_netstres_u.knet)) + return (FALSE); + break; + } + return (TRUE); +} + +bool_t +xdr_key_netstres3(XDR *xdrs, key_netstres3 *objp) +{ + if (!xdr_keystatus(xdrs, &objp->status)) + return (FALSE); + if (objp->status != KEY_SUCCESS) + return (TRUE); + return (xdr_key_netstarg3(xdrs, &objp->key_netstres3_u.knet)); +} + +bool_t +xdr_deskeyarg3(XDR *xdrs, deskeyarg3 *objp) +{ + if (!xdr_keybuf3(xdrs, &objp->pub_key)) + return (FALSE); + if (!xdr_int(xdrs, &objp->nkeys)) + return (FALSE); + if (!xdr_algtype_t(xdrs, &objp->algtype)) + return (FALSE); + return (xdr_keylen_t(xdrs, &objp->keylen)); +} + +bool_t +xdr_setkeyarg3(XDR *xdrs, setkeyarg3 *objp) +{ + if (!xdr_keybuf3(xdrs, &objp->key)) + return (FALSE); + if (!xdr_des_block(xdrs, &objp->userkey)) + return (FALSE); + if (!xdr_algtype_t(xdrs, &objp->algtype)) + return (FALSE); + return (xdr_keylen_t(xdrs, &objp->keylen)); +} diff --git a/usr/src/lib/libnsl/rpc/mt_misc.c b/usr/src/lib/libnsl/rpc/mt_misc.c index 9590189ffe..a042abb989 100644 --- a/usr/src/lib/libnsl/rpc/mt_misc.c +++ b/usr/src/lib/libnsl/rpc/mt_misc.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1986-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -103,19 +104,19 @@ cond_t svc_thr_fdwait; /* threads wait on this for work */ static void _libnsl_prefork() { - mutex_lock(&_ti_userlock); + (void) mutex_lock(&_ti_userlock); } static void _libnsl_child_atfork() { - mutex_unlock(&_ti_userlock); + (void) mutex_unlock(&_ti_userlock); } static void _libnsl_parent_atfork() { - mutex_unlock(&_ti_userlock); + (void) mutex_unlock(&_ti_userlock); } #pragma init(_libnsl_lock_init) @@ -128,12 +129,12 @@ _libnsl_lock_init() (void) _sigfillset(&fillset); for (i = 0; i < (sizeof (mutex_table) / sizeof (mutex_table[0])); i++) - mutex_init(mutex_table[i], 0, (void *) 0); + (void) mutex_init(mutex_table[i], 0, (void *) 0); for (i = 0; i < (sizeof (rwlock_table) / sizeof (rwlock_table[0])); i++) - rwlock_init(rwlock_table[i], 0, (void *) 0); + (void) rwlock_init(rwlock_table[i], 0, (void *) 0); - cond_init(&svc_thr_fdwait, USYNC_THREAD, 0); + (void) cond_init(&svc_thr_fdwait, USYNC_THREAD, 0); /* * There is no way to unregister these atfork functions, diff --git a/usr/src/lib/libnsl/rpc/netname.c b/usr/src/lib/libnsl/rpc/netname.c index f66d303b1d..21b35f708b 100644 --- a/usr/src/lib/libnsl/rpc/netname.c +++ b/usr/src/lib/libnsl/rpc/netname.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -55,7 +57,6 @@ #include <stdlib.h> #include <unistd.h> #include <sys/types.h> -#include <rpc/trace.h> #include <ctype.h> #include <string.h> #include <syslog.h> @@ -82,7 +83,6 @@ extern int __nis_principal(); extern int getdomainname(); -extern char *strncpy(); extern int key_call(); #define OPSYS_LEN 4 #define PKTABLE_LEN 12 @@ -124,11 +124,8 @@ static mutex_t serialize_netname = DEFAULTMUTEX; */ static int -user2netname_nisplus(err, netname, uid, domain) - int *err; - char netname[MAXNETNAMELEN + 1]; - uid_t uid; - char *domain; +user2netname_nisplus(int *err, char netname[MAXNETNAMELEN + 1], uid_t uid, + char *domain) { key_netstres kres; nis_result *nres; @@ -140,8 +137,6 @@ user2netname_nisplus(err, netname, uid, domain) mechanism_t **mechs; char auth_type[MECH_MAXATNAME+1]; - trace1(TR_user2netname_nisplus, 0); - my_uid = geteuid(); if (my_uid == uid && domain == NULL) { @@ -150,7 +145,7 @@ user2netname_nisplus(err, netname, uid, domain) * netname is stored there. */ kres.key_netstres_u.knet.st_netname = NULL; - if (key_call((rpcproc_t)KEY_NET_GET, xdr_void, (char *)NULL, + if (key_call((rpcproc_t)KEY_NET_GET, xdr_void, NULL, xdr_key_netstres, (char *)&kres) && kres.status == KEY_SUCCESS) { len = strlen(kres.key_netstres_u.knet.st_netname); @@ -158,7 +153,6 @@ user2netname_nisplus(err, netname, uid, domain) kres.key_netstres_u.knet.st_netname, len +1); free(kres.key_netstres_u.knet.st_netname); - trace1(TR_user2netname_nisplus, 1); *err = __NSW_SUCCESS; return (1); } @@ -202,7 +196,6 @@ user2netname_nisplus(err, netname, uid, domain) nis_sperrno(status)); } - trace1(TR_user2netname_nisplus, 1); return (0); } @@ -215,7 +208,6 @@ user2netname_nisplus(err, netname, uid, domain) if ((strlen(principal)+strlen(domain)+PKTABLE_LEN+ 28) > (size_t)NIS_MAXNAMELEN) { *err = __NSW_UNAVAIL; - trace1(TR_user2netname_nisplus, 1); return (0); } @@ -233,14 +225,14 @@ user2netname_nisplus(err, netname, uid, domain) __nis_release_mechanisms(mechs); goto try_auth_des; } - if (! VALID_MECH_ENTRY(mp)) + if (!VALID_MECH_ENTRY(mp)) continue; - if (! __nis_mechalias2authtype(mp->alias, auth_type, + if (!__nis_mechalias2authtype(mp->alias, auth_type, sizeof (auth_type))) continue; - (void) sprintf(buf, + (void) snprintf(buf, sizeof (buf), "[cname=\"%s\",auth_type=\"%s\"],%s.%s", principal, auth_type, PKTABLE, domain); if (buf[strlen(buf)-1] != '.') @@ -264,7 +256,8 @@ user2netname_nisplus(err, netname, uid, domain) * No valid mechs exist or the AUTH_DES compat entry was * found in the security cf. */ - (void) sprintf(buf, "[cname=\"%s\",auth_type=DES],%s.%s", + (void) snprintf(buf, sizeof (buf), + "[cname=\"%s\",auth_type=DES],%s.%s", principal, PKTABLE, domain); if (buf[strlen(buf)-1] != '.') (void) strcat(buf, "."); @@ -284,7 +277,6 @@ user2netname_nisplus(err, netname, uid, domain) case NIS_NOSUCHTABLE: *err = __NSW_NOTFOUND; nis_freeresult(nres); - trace1(TR_user2netname_nisplus, 1); return (0); case NIS_S_NOTFOUND: case NIS_TRYAGAIN: @@ -293,14 +285,12 @@ user2netname_nisplus(err, netname, uid, domain) "user2netname: (nis+ lookup): %s\n", nis_sperrno(nres->status)); nis_freeresult(nres); - trace1(TR_user2netname_nisplus, 1); return (0); default: *err = __NSW_UNAVAIL; syslog(LOG_ERR, "user2netname: (nis+ lookup): %s\n", nis_sperrno(nres->status)); nis_freeresult(nres); - trace1(TR_user2netname_nisplus, 1); return (0); } @@ -321,14 +311,12 @@ user2netname_nisplus(err, netname, uid, domain) syslog(LOG_ERR, "user2netname: netname of '%s' too long", principal); nis_freeresult(nres); - trace1(TR_user2netname_nisplus, 1); return (0); } (void) strncpy(netname, ENTRY_VAL(nres->objects.objects_val, 2), len); netname[len] = '\0'; nis_freeresult(nres); *err = __NSW_SUCCESS; - trace1(TR_user2netname_nisplus, 1); return (1); } @@ -340,17 +328,13 @@ user2netname_nisplus(err, netname, uid, domain) */ static int -user2netname_nis(err, netname, uid, domain) - int *err; - char netname[MAXNETNAMELEN + 1]; - uid_t uid; - char *domain; +user2netname_nis(int *err, char netname[MAXNETNAMELEN + 1], uid_t uid, + char *domain) { int i; char *dfltdom; if (domain == NULL) { if (__rpc_get_default_domain(&dfltdom) != 0) { - trace1(TR_user2netname_nis, 1); *err = __NSW_UNAVAIL; return (0); } @@ -358,15 +342,14 @@ user2netname_nis(err, netname, uid, domain) } if ((strlen(domain) + OPSYS_LEN + 3 + MAXIPRINT) > (size_t)MAXNETNAMELEN) { - trace1(TR_user2netname_nis, 1); *err = __NSW_UNAVAIL; return (0); } - (void) sprintf(netname, "%s.%d@%s", OPSYS, (int)uid, domain); + (void) snprintf(netname, MAXNETNAMELEN + 1, + "%s.%d@%s", OPSYS, (int)uid, domain); i = strlen(netname); if (netname[i-1] == '.') netname[i-1] = '\0'; - trace1(TR_user2netname_nis, 1); *err = __NSW_SUCCESS; return (1); } @@ -375,22 +358,14 @@ user2netname_nis(err, netname, uid, domain) * Figure out my fully qualified network name */ int -getnetname(name) - char name[MAXNETNAMELEN + 1]; +getnetname(char name[MAXNETNAMELEN + 1]) { uid_t uid; - int dummy; - - trace1(TR_getnetname, 0); uid = geteuid(); if (uid == 0) - dummy = host2netname(name, (char *)NULL, (char *)NULL); - else - dummy = user2netname(name, uid, (char *)NULL); - - trace1(TR_getnetname, 1); - return (dummy); + return (host2netname(name, NULL, NULL)); + return (user2netname(name, uid, NULL)); } @@ -399,21 +374,11 @@ getnetname(name) * This is a private interface. */ int -__getnetnamebyuid(name, uid) -char name[MAXNETNAMELEN + 1]; -uid_t uid; +__getnetnamebyuid(char name[MAXNETNAMELEN + 1], uid_t uid) { - int dummy; - - trace1(TR___getnetnamebyuid, 0); - if (uid == 0) - dummy = host2netname(name, (char *)NULL, (char *)NULL); - else - dummy = user2netname(name, uid, (char *)NULL); - - trace1(TR___getnetnamebyuid, 1); - return (dummy); + return (host2netname(name, NULL, NULL)); + return (user2netname(name, uid, NULL)); } /* @@ -428,10 +393,8 @@ uid_t uid; * so only the first entry would be relevant for those cases. */ int -user2netname(netname, uid, domain) - char netname[MAXNETNAMELEN + 1]; - const uid_t uid; - const char *domain; +user2netname(char netname[MAXNETNAMELEN + 1], const uid_t uid, + const char *domain) { struct __nsw_switchconfig *conf; struct __nsw_lookup *look; @@ -439,8 +402,6 @@ user2netname(netname, uid, domain) enum __nsw_parse_err perr; int err; - trace1(TR_user2netname, 0); - /* * Take care of the special case of "nobody". If the uid is * the value assigned by the SVID for nobody, return the string @@ -454,10 +415,10 @@ user2netname(netname, uid, domain) netname[0] = '\0'; /* make null first (no need for memset) */ - mutex_lock(&serialize_netname); + (void) mutex_lock(&serialize_netname); conf = __nsw_getconfig("publickey", &perr); - if (! conf) { + if (!conf) { conf = &publickey_default; needfree = 0; } @@ -485,8 +446,7 @@ user2netname(netname, uid, domain) case __NSW_RETURN : if (needfree) __nsw_freeconfig(conf); - mutex_unlock(&serialize_netname); - trace1(TR_user2netname, 1); + (void) mutex_unlock(&serialize_netname); return (res); default : syslog(LOG_ERR, @@ -496,8 +456,7 @@ user2netname(netname, uid, domain) } if (needfree) __nsw_freeconfig(conf); - mutex_unlock(&serialize_netname); - trace1(TR_user2netname, 1); + (void) mutex_unlock(&serialize_netname); return (0); } @@ -519,10 +478,8 @@ user2netname(netname, uid, domain) * h.w.x a.b unix.h@a.b */ int -host2netname(netname, host, domain) - char netname[MAXNETNAMELEN + 1]; - const char *host; - const char *domain; +host2netname(char netname[MAXNETNAMELEN + 1], const char *host, + const char *domain) { char *p; char hostname[MAXHOSTNAMELEN + 1]; @@ -531,8 +488,6 @@ host2netname(netname, host, domain) int i; size_t len; - trace1(TR_host2netname, 0); - netname[0] = '\0'; /* make null first (no need for memset) */ if (host == NULL) { @@ -589,11 +544,10 @@ host2netname(netname, host, domain) if ((strlen(domainname) + strlen(hostname) + OPSYS_LEN + 3) > (size_t)MAXNETNAMELEN) { - trace1(TR_host2netname, 1); return (0); } - (void) sprintf(netname, "%s.%s@%s", OPSYS, hostname, domainname); - trace1(TR_host2netname, 1); + (void) snprintf(netname, MAXNETNAMELEN + 1, + "%s.%s@%s", OPSYS, hostname, domainname); return (1); } diff --git a/usr/src/lib/libnsl/rpc/netnamer.c b/usr/src/lib/libnsl/rpc/netnamer.c index 87af702934..38f964ca44 100644 --- a/usr/src/lib/libnsl/rpc/netnamer.c +++ b/usr/src/lib/libnsl/rpc/netnamer.c @@ -18,7 +18,9 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * + */ + +/* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -52,7 +54,6 @@ #include <stdio.h> #include <stdlib.h> #include <sys/types.h> -#include <rpc/trace.h> #include <ctype.h> #include <grp.h> #include <pwd.h> @@ -110,18 +111,13 @@ struct netid_userdata { }; static int -parse_uid(s, argp) - char *s; - struct netid_userdata *argp; +parse_uid(char *s, struct netid_userdata *argp) { uid_t u; - trace1(TR_parse_uid, 0); - if (!s || !isdigit(*s)) { syslog(LOG_ERR, "netname2user: expecting uid '%s'", s); - trace1(TR_parse_uid, 1); return (__NSW_NOTFOUND); /* xxx need a better error */ } @@ -130,30 +126,24 @@ parse_uid(s, argp) if (u == 0) { syslog(LOG_ERR, "netname2user: should not have uid 0"); - trace1(TR_parse_uid, 1); return (__NSW_NOTFOUND); } *(argp->uidp) = u; - trace1(TR_parse_uid, 1); return (__NSW_SUCCESS); } /* parse a comma separated gid list */ static int -parse_gidlist(p, argp) - char *p; - struct netid_userdata *argp; +parse_gidlist(char *p, struct netid_userdata *argp) { int len; gid_t g; - trace1(TR_parse_gidlist, 0); - if (! p || (! isdigit(*p))) { + if (!p || (!isdigit(*p))) { syslog(LOG_ERR, "netname2user: missing group id list in '%s'.", p); - trace1(TR_parse_gidlist, 1); return (__NSW_NOTFOUND); } @@ -164,7 +154,6 @@ parse_gidlist(p, argp) while (p = strchr(p, ',')) argp->gidlist[len++] = (gid_t)atoi(++p); *(argp->gidlenp) = len; - trace1(TR_parse_gidlist, 1); return (__NSW_SUCCESS); } @@ -179,59 +168,40 @@ parse_gidlist(p, argp) * */ static int -parse_netid_str(s, argp) - char *s; - struct netid_userdata *argp; +parse_netid_str(char *s, struct netid_userdata *argp) { char *p; int err; - trace1(TR_parse_netid_str, 0); - /* get uid */ err = parse_uid(s, argp); - if (err != __NSW_SUCCESS) { - trace1(TR_parse_netid_str, 1); + if (err != __NSW_SUCCESS) return (err); - } - /* Now get the group list */ p = strchr(s, ':'); if (!p) { syslog(LOG_ERR, - "netname2user: missing group id list in '%s'", - s); - trace1(TR_parse_netid_str, 1); + "netname2user: missing group id list in '%s'", s); return (__NSW_NOTFOUND); } ++p; /* skip ':' */ err = parse_gidlist(p, argp); - trace1(TR_parse_netid_str, 1); return (err); } static int -parse_uid_gidlist(ustr, gstr, argp) - char *ustr; - char *gstr; - struct netid_userdata *argp; +parse_uid_gidlist(char *ustr, char *gstr, struct netid_userdata *argp) { int err; - trace1(TR_parse_uid_gidlist, 0); - /* get uid */ err = parse_uid(ustr, argp); - if (err != __NSW_SUCCESS) { - trace1(TR_parse_uid_gidlist, 1); + if (err != __NSW_SUCCESS) return (err); - } /* Now get the group list */ - err = parse_gidlist(gstr, argp); - trace1(TR_parse_uid_gidlist, 1); - return (err); + return (parse_gidlist(gstr, argp)); } @@ -242,10 +212,7 @@ parse_uid_gidlist(ustr, gstr, argp) * ie /etc/netid. */ static int -netname2user_files(err, netname, argp) -int *err; -char *netname; -struct netid_userdata *argp; +netname2user_files(int *err, char *netname, struct netid_userdata *argp) { char buf[512]; /* one line from the file */ char *name; @@ -253,11 +220,9 @@ struct netid_userdata *argp; char *res; __NSL_FILE *fd; - trace1(TR_netname2user_files, 0); fd = __nsl_fopen(NETIDFILE, "r"); if (fd == (__NSL_FILE *)0) { *err = __NSW_UNAVAIL; - trace1(TR_netname2user_files, 1); return (0); } /* @@ -266,7 +231,7 @@ struct netid_userdata *argp; * netid uid:grp,grp,grp # for users * netid 0:hostname # for hosts */ - while (! __nsl_feof(fd)) { + while (!__nsl_feof(fd)) { res = __nsl_fgets(buf, 512, fd); if (res == NULL) break; @@ -281,7 +246,7 @@ struct netid_userdata *argp; if (*name == '\0') /* blank line continue */ continue; value = name; /* will contain the value eventually */ - while (! isspace(*value)) + while (!isspace(*value)) value++; if (*value == '\0') { syslog(LOG_WARNING, @@ -292,17 +257,15 @@ struct netid_userdata *argp; *value++ = '\0'; /* nul terminate the name */ if (strcasecmp(name, netname) == 0) { - __nsl_fclose(fd); + (void) __nsl_fclose(fd); while (isspace(*value)) value++; *err = parse_netid_str(value, argp); - trace1(TR_netname2user_files, 1); return (*err == __NSW_SUCCESS); } } - __nsl_fclose(fd); + (void) __nsl_fclose(fd); *err = __NSW_NOTFOUND; - trace1(TR_netname2user_files, 1); return (0); } @@ -312,21 +275,16 @@ struct netid_userdata *argp; * This function reads the netid from the NIS (YP) nameservice. */ static int -netname2user_nis(err, netname, argp) - int *err; - char *netname; - struct netid_userdata *argp; +netname2user_nis(int *err, char *netname, struct netid_userdata *argp) { char *domain; int yperr; char *lookup; int len; - trace1(TR_netname2user_nis, 0); domain = strchr(netname, '@'); - if (! domain) { + if (!domain) { *err = __NSW_UNAVAIL; - trace1(TR_netname2user_nis, 1); return (0); } @@ -345,20 +303,16 @@ netname2user_nis(err, netname, argp) * should err be set to NOTFOUND here? */ *err = __NSW_UNAVAIL; - trace1(TR_netname2user_nis, 1); return (0); } if (lookup) { lookup[len] = '\0'; *err = parse_netid_str(lookup, argp); free(lookup); - trace1(TR_netname2user_nis, 1); return (*err == __NSW_SUCCESS); - } else { - trace1(TR_netname2user_nis, 1); - *err = __NSW_NOTFOUND; - return (0); } + *err = __NSW_NOTFOUND; + return (0); } /* @@ -383,10 +337,7 @@ netname2user_nis(err, netname, argp) * secure, so we *must* use authenticated connections. */ static int -netname2user_nisplus(err, netname, argp) - int *err; - char *netname; - struct netid_userdata *argp; +netname2user_nisplus(int *err, char *netname, struct netid_userdata *argp) { char *domain; nis_result *res; @@ -394,14 +345,10 @@ netname2user_nisplus(err, netname, argp) char principal[NIS_MAXNAMELEN+1]; int len; - trace1(TR_netname2user_nisplus, 0); - - /* 1. Get home domain of user. */ domain = strchr(netname, '@'); - if (! domain) { + if (!domain) { *err = __NSW_UNAVAIL; - trace1(TR_netname2user_nisplus, 1); return (0); } domain++; /* skip '@' */ @@ -411,13 +358,13 @@ netname2user_nisplus(err, netname, argp) if ((strlen(netname)+strlen(domain)+PKTABLE_LEN+32) > (size_t)NIS_MAXNAMELEN) { *err = __NSW_UNAVAIL; - trace1(TR_netname2user_nisplus, 1); return (0); } - sprintf(sname, "[auth_name=\"%s\",auth_type=DES],%s.%s", + (void) snprintf(sname, sizeof (sname), + "[auth_name=\"%s\",auth_type=DES],%s.%s", netname, PKTABLE, domain); if (sname[strlen(sname) - 1] != '.') - strcat(sname, "."); + (void) strcat(sname, "."); /* must use authenticated call here */ /* XXX but we cant, for now. XXX */ @@ -433,7 +380,6 @@ netname2user_nisplus(err, netname, argp) case NIS_NOSUCHTABLE: *err = __NSW_NOTFOUND; nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (0); case NIS_S_NOTFOUND: case NIS_TRYAGAIN: @@ -442,14 +388,12 @@ netname2user_nisplus(err, netname, argp) "netname2user: (nis+ lookup): %s\n", nis_sperrno(res->status)); nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (0); default: *err = __NSW_UNAVAIL; syslog(LOG_ERR, "netname2user: (nis+ lookup): %s\n", nis_sperrno(res->status)); nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (0); } @@ -466,13 +410,12 @@ netname2user_nisplus(err, netname, argp) } len = ENTRY_LEN(res->objects.objects_val, 0); - strncpy(principal, ENTRY_VAL(res->objects.objects_val, 0), len); + (void) strncpy(principal, ENTRY_VAL(res->objects.objects_val, 0), len); principal[len] = '\0'; nis_freeresult(res); if (principal[0] == '\0') { *err = __NSW_UNAVAIL; - trace1(TR_netname2user_nisplus, 1); return (0); } @@ -486,13 +429,13 @@ netname2user_nisplus(err, netname, argp) *err = __NSW_UNAVAIL; syslog(LOG_ERR, "netname2user: principal name '%s' too long", principal); - trace1(TR_netname2user_nisplus, 1); return (0); } - sprintf(sname, "[cname=\"%s\",auth_type=LOCAL],%s.%s", + (void) snprintf(sname, sizeof (sname), + "[cname=\"%s\",auth_type=LOCAL],%s.%s", principal, PKTABLE, domain); if (sname[strlen(sname) - 1] != '.') - strcat(sname, "."); + (void) strcat(sname, "."); /* must use authenticated call here */ /* XXX but we cant, for now. XXX */ @@ -505,7 +448,6 @@ netname2user_nisplus(err, netname, argp) case NIS_NOSUCHTABLE: *err = __NSW_NOTFOUND; nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (0); case NIS_S_NOTFOUND: case NIS_TRYAGAIN: @@ -514,7 +456,6 @@ netname2user_nisplus(err, netname, argp) "netname2user: (nis+ lookup): %s\n", nis_sperrno(res->status)); nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (0); case NIS_SUCCESS: case NIS_S_SUCCESS: @@ -524,7 +465,6 @@ netname2user_nisplus(err, netname, argp) syslog(LOG_ERR, "netname2user: (nis+ lookup): %s\n", nis_sperrno(res->status)); nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (0); } @@ -545,7 +485,6 @@ netname2user_nisplus(err, netname, argp) ENTRY_VAL(res->objects.objects_val, 3), /* gids */ argp); nis_freeresult(res); - trace1(TR_netname2user_nisplus, 1); return (*err == __NSW_SUCCESS); } @@ -559,14 +498,10 @@ netname2user_nisplus(err, netname, argp) * resolution for multiple domains. */ static int -netname2user_ldap(err, netname, argp) - int *err; - char *netname; - struct netid_userdata *argp; +netname2user_ldap(int *err, char *netname, struct netid_userdata *argp) { - char buf[NSS_LINELEN_PASSWD]; - char *p1, *p2, *lasts; + char *p2, *lasts; struct passwd pw; uid_t uidnu; int ngroups = 0; @@ -580,7 +515,7 @@ netname2user_ldap(err, netname, argp) } /* get the uid from the netname */ - if ((p1 = strtok_r(buf, ".", &lasts)) == NULL) { + if (strtok_r(buf, ".", &lasts) == NULL) { *err = __NSW_UNAVAIL; return (0); } @@ -629,12 +564,8 @@ netname2user_ldap(err, netname, argp) * Convert network-name into unix credential */ int -netname2user(netname, uidp, gidp, gidlenp, gidlist) - const char netname[MAXNETNAMELEN + 1]; - uid_t *uidp; - gid_t *gidp; - int *gidlenp; - gid_t *gidlist; +netname2user(const char netname[MAXNETNAMELEN + 1], uid_t *uidp, gid_t *gidp, + int *gidlenp, gid_t *gidlist) { struct __nsw_switchconfig *conf; struct __nsw_lookup *look; @@ -643,8 +574,6 @@ netname2user(netname, uidp, gidp, gidlenp, gidlist) struct netid_userdata argp; int err; - trace1(TR_netname2user, 0); - /* * Take care of the special case of nobody. Compare the netname * to the string "nobody". If they are equal, return the SVID @@ -665,23 +594,19 @@ netname2user(netname, uidp, gidp, gidlenp, gidlist) * NOTE: this code only recognizes names of the form : * unix.UID@domainname */ - if (strncmp(netname, OPSYS, OPSYS_LEN) != 0) { - trace1(TR_netname2user, 1); + if (strncmp(netname, OPSYS, OPSYS_LEN) != 0) return (0); - } - if (! isdigit(netname[OPSYS_LEN+1])) { /* check for uid string */ - trace1(TR_netname2user, 1); + if (!isdigit(netname[OPSYS_LEN+1])) /* check for uid string */ return (0); - } argp.uidp = uidp; argp.gidp = gidp; argp.gidlenp = gidlenp; argp.gidlist = gidlist; - mutex_lock(&serialize_netname_r); + (void) mutex_lock(&serialize_netname_r); conf = __nsw_getconfig("publickey", &perr); - if (! conf) { + if (!conf) { conf = &publickey_default; needfree = 0; } else @@ -709,8 +634,7 @@ netname2user(netname, uidp, gidp, gidlenp, gidlist) case __NSW_RETURN : if (needfree) __nsw_freeconfig(conf); - mutex_unlock(&serialize_netname_r); - trace1(TR_netname2user, 1); + (void) mutex_unlock(&serialize_netname_r); return (res); default : syslog(LOG_ERR, @@ -720,8 +644,7 @@ netname2user(netname, uidp, gidp, gidlenp, gidlist) } if (needfree) __nsw_freeconfig(conf); - mutex_unlock(&serialize_netname_r); - trace1(TR_netname2user, 1); + (void) mutex_unlock(&serialize_netname_r); return (0); } @@ -735,16 +658,12 @@ netname2user(netname, uidp, gidp, gidlenp, gidlist) * We just construct the hostname using information from the domainname. */ int -netname2host(netname, hostname, hostlen) - const char netname[MAXNETNAMELEN + 1]; - char *hostname; - int hostlen; +netname2host(const char netname[MAXNETNAMELEN + 1], char *hostname, + const int hostlen) { char *p, *domainname; int len, dlen; - trace1(TR_netname2host, 0); - if (!netname) { syslog(LOG_ERR, "netname2host: null netname"); goto bad_exit; @@ -779,7 +698,7 @@ netname2host(netname, hostname, hostlen) if (*p == '\0') /* check for null hostname */ goto bad_netname; - strncpy(hostname, p, len); + (void) strncpy(hostname, p, len); /* make into fully qualified hostname by concatenating domain part */ dlen = strlen(domainname); @@ -790,18 +709,15 @@ netname2host(netname, hostname, hostlen) } hostname[len] = '.'; - strncpy(hostname+len+1, domainname, dlen); + (void) strncpy(hostname+len+1, domainname, dlen); hostname[len+dlen+1] = '\0'; - trace1(TR_netname2host, 1); return (1); - bad_netname: syslog(LOG_ERR, "netname2host: invalid host netname %s", netname); bad_exit: hostname[0] = '\0'; - trace1(TR_netname2host, 1); return (0); } diff --git a/usr/src/lib/libnsl/rpc/openchild.c b/usr/src/lib/libnsl/rpc/openchild.c index 9eeffe171b..a663cfa4df 100644 --- a/usr/src/lib/libnsl/rpc/openchild.c +++ b/usr/src/lib/libnsl/rpc/openchild.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -43,7 +44,6 @@ #include <stdio.h> #include <sys/types.h> #include <rpc/types.h> -#include <rpc/trace.h> #include <unistd.h> #include <stdlib.h> #include "rpc_mt.h" @@ -53,24 +53,16 @@ * returns pid, or -1 for failure */ int -__rpc_openchild(command, fto, ffrom) - char *command; - FILE **fto; - FILE **ffrom; +__rpc_openchild(char *command, FILE **fto, FILE **ffrom) { - int i; int pid; int pdto[2]; int pdfrom[2]; - trace1(TR___rpc_openchild, 0); - - if (pipe(pdto) < 0) { + if (pipe(pdto) < 0) goto error1; - } - if (pipe(pdfrom) < 0) { + if (pipe(pdfrom) < 0) goto error2; - } switch (pid = fork()) { case -1: goto error3; @@ -79,13 +71,12 @@ __rpc_openchild(command, fto, ffrom) /* * child: read from pdto[0], write into pdfrom[1] */ - dup2(pdto[0], 0); - dup2(pdfrom[1], 1); + (void) dup2(pdto[0], 0); + (void) dup2(pdfrom[1], 1); closefrom(3); - fflush(stderr); - execlp(command, command, 0); + (void) fflush(stderr); + (void) execlp(command, command, 0); perror("exec"); - trace1(TR___rpc_openchild, 1); _exit(~0); default: @@ -98,7 +89,6 @@ __rpc_openchild(command, fto, ffrom) (void) close(pdfrom[1]); break; } - trace1(TR___rpc_openchild, 1); return (pid); /* @@ -111,6 +101,5 @@ error2: (void) close(pdto[0]); (void) close(pdto[1]); error1: - trace1(TR___rpc_openchild, 1); return (-1); } diff --git a/usr/src/lib/libnsl/rpc/pmap_clnt.c b/usr/src/lib/libnsl/rpc/pmap_clnt.c index 73b758d60c..1799fdfc8f 100644 --- a/usr/src/lib/libnsl/rpc/pmap_clnt.c +++ b/usr/src/lib/libnsl/rpc/pmap_clnt.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1999 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -42,7 +44,6 @@ #include "rpc_mt.h" #include <rpc/rpc.h> #include <rpc/nettype.h> -#include <rpc/trace.h> #include <netdir.h> #include <rpc/pmap_prot.h> #include <rpc/pmap_clnt.h> @@ -60,42 +61,28 @@ static const struct timeval rmttimeout = { 3, 0 }; * Calls the pmap service remotely to do the mapping. */ bool_t -#ifdef __STDC__ -pmap_set(rpcprog_t program, rpcvers_t version, rpcprot_t protocol, u_short port) -#else -pmap_set(program, version, protocol, port) - rpcprog_t program; - rpcvers_t version; - rpcprot_t protocol; - u_short port; -#endif +pmap_set(rpcprog_t program, rpcvers_t version, rpcprot_t protocol, + ushort_t port) { bool_t rslt; struct netbuf *na; struct netconfig *nconf; char buf[32]; - trace1(TR_pmap_set, 0); - if ((protocol != IPPROTO_UDP) && (protocol != IPPROTO_TCP)) { - trace1(TR_pmap_set, 1); + if ((protocol != IPPROTO_UDP) && (protocol != IPPROTO_TCP)) return (FALSE); - } nconf = __rpc_getconfip(protocol == IPPROTO_UDP ? "udp" : "tcp"); - if (! nconf) { - trace1(TR_pmap_set, 1); + if (!nconf) return (FALSE); - } - sprintf(buf, "0.0.0.0.%d.%d", port >> 8 & 0xff, port & 0xff); + (void) sprintf(buf, "0.0.0.0.%d.%d", port >> 8 & 0xff, port & 0xff); na = uaddr2taddr(nconf, buf); - if (! na) { + if (!na) { freenetconfigent(nconf); - trace1(TR_pmap_set, 1); return (FALSE); } rslt = rpcb_set(program, version, nconf, na); netdir_free((char *)na, ND_ADDR); freenetconfigent(nconf); - trace1(TR_pmap_set, 1); return (rslt); } @@ -104,15 +91,12 @@ pmap_set(program, version, protocol, port) * Calls the pmap service remotely to do the un-mapping. */ bool_t -pmap_unset(program, version) - rpcprog_t program; - rpcvers_t version; +pmap_unset(rpcprog_t program, rpcvers_t version) { struct netconfig *nconf; bool_t udp_rslt = FALSE; bool_t tcp_rslt = FALSE; - trace1(TR_pmap_unset, 0); nconf = __rpc_getconfip("udp"); if (nconf) { udp_rslt = rpcb_unset(program, version, nconf); @@ -128,7 +112,6 @@ pmap_unset(program, version) * calls succeeded. This was the best that could be * done for backward compatibility. */ - trace1(TR_pmap_unset, 1); return (tcp_rslt || udp_rslt); } @@ -141,30 +124,26 @@ pmap_unset(program, version) * service. There may be implementations out there which do not * run portmapper as a part of rpcbind. */ -u_short -pmap_getport(address, program, version, protocol) - struct sockaddr_in *address; - rpcprog_t program; - rpcvers_t version; - rpcprot_t protocol; +ushort_t +pmap_getport(struct sockaddr_in *address, rpcprog_t program, + rpcvers_t version, rpcprot_t protocol) { - u_short port = 0; + ushort_t port = 0; int fd = RPC_ANYFD; - register CLIENT *client; + CLIENT *client; struct pmap parms; - trace1(TR_pmap_getport, 0); address->sin_port = htons(PMAPPORT); client = clntudp_bufcreate(address, PMAPPROG, PMAPVERS, timeout, &fd, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE); - if (client != (CLIENT *)NULL) { + if (client != NULL) { parms.pm_prog = program; parms.pm_vers = version; parms.pm_prot = protocol; parms.pm_port = 0; /* not needed or used */ - if (CLNT_CALL(client, PMAPPROC_GETPORT, (xdrproc_t) xdr_pmap, - (caddr_t) &parms, (xdrproc_t) xdr_u_short, - (caddr_t) &port, tottimeout) != RPC_SUCCESS) { + if (CLNT_CALL(client, PMAPPROC_GETPORT, (xdrproc_t)xdr_pmap, + (caddr_t)&parms, (xdrproc_t)xdr_u_short, + (caddr_t)&port, tottimeout) != RPC_SUCCESS) { rpc_createerr.cf_stat = RPC_PMAPFAILURE; clnt_geterr(client, &rpc_createerr.cf_error); } else if (port == 0) { @@ -173,7 +152,6 @@ pmap_getport(address, program, version, protocol) CLNT_DESTROY(client); } address->sin_port = 0; - trace1(TR_pmap_getport, 1); return (port); } @@ -182,30 +160,27 @@ pmap_getport(address, program, version, protocol) * Calls the pmap service remotely to do get the maps. */ struct pmaplist * -pmap_getmaps(address) - struct sockaddr_in *address; +pmap_getmaps(struct sockaddr_in *address) { - pmaplist_ptr head = (pmaplist_ptr)NULL; + pmaplist_ptr head = NULL; int fd = RPC_ANYFD; struct timeval minutetimeout; - register CLIENT *client; + CLIENT *client; - trace1(TR_pmap_getmaps, 0); minutetimeout.tv_sec = 60; minutetimeout.tv_usec = 0; address->sin_port = htons(PMAPPORT); client = clnttcp_create(address, PMAPPROG, PMAPVERS, &fd, 50, 500); - if (client != (CLIENT *)NULL) { - if (CLNT_CALL(client, PMAPPROC_DUMP, (xdrproc_t) xdr_void, - (caddr_t) NULL, (xdrproc_t) xdr_pmaplist_ptr, - (caddr_t) &head, minutetimeout) != RPC_SUCCESS) { - (void) syslog(LOG_ERR, + if (client != NULL) { + if (CLNT_CALL(client, PMAPPROC_DUMP, (xdrproc_t)xdr_void, + NULL, (xdrproc_t)xdr_pmaplist_ptr, + (caddr_t)&head, minutetimeout) != RPC_SUCCESS) { + (void) syslog(LOG_ERR, "%s", clnt_sperror(client, "pmap_getmaps rpc problem")); } CLNT_DESTROY(client); } address->sin_port = 0; - trace1(TR_pmap_getmaps, 1); return ((struct pmaplist *)head); } @@ -217,28 +192,20 @@ pmap_getmaps(address) * programs to do a lookup and call in one step. */ enum clnt_stat -pmap_rmtcall(addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, - tout, port_ptr) - struct sockaddr_in *addr; - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; - xdrproc_t xdrargs, xdrres; - caddr_t argsp, resp; - struct timeval tout; - rpcport_t *port_ptr; +pmap_rmtcall(struct sockaddr_in *addr, rpcprog_t prog, rpcvers_t vers, + rpcproc_t proc, xdrproc_t xdrargs, caddr_t argsp, xdrproc_t xdrres, + caddr_t resp, struct timeval tout, rpcport_t *port_ptr) { int fd = RPC_ANYFD; - register CLIENT *client; + CLIENT *client; struct p_rmtcallargs a; struct p_rmtcallres r; enum clnt_stat stat; short tmp = addr->sin_port; - trace1(TR_pmap_rmtcall, 0); addr->sin_port = htons(PMAPPORT); client = clntudp_create(addr, PMAPPROG, PMAPVERS, rmttimeout, &fd); - if (client != (CLIENT *)NULL) { + if (client != NULL) { a.prog = prog; a.vers = vers; a.proc = proc; @@ -248,15 +215,14 @@ pmap_rmtcall(addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, r.xdr_res = xdrres; stat = CLNT_CALL(client, PMAPPROC_CALLIT, (xdrproc_t)xdr_rmtcallargs, - (caddr_t) &a, (xdrproc_t) xdr_rmtcallres, - (caddr_t) &r, tout); + (caddr_t)&a, (xdrproc_t)xdr_rmtcallres, + (caddr_t)&r, tout); CLNT_DESTROY(client); } else { stat = RPC_FAILED; } addr->sin_port = tmp; *port_ptr = r.port; - trace1(TR_pmap_rmtcall, 1); return (stat); } #endif /* PORTMAP */ diff --git a/usr/src/lib/libnsl/rpc/pmap_prot.c b/usr/src/lib/libnsl/rpc/pmap_prot.c index 7a6446edf0..f69d973da4 100644 --- a/usr/src/lib/libnsl/rpc/pmap_prot.c +++ b/usr/src/lib/libnsl/rpc/pmap_prot.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1991 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -36,91 +38,58 @@ * pmap_prot.c * Protocol for the local binder service, or pmap. * All the pmap xdr routines here. - * */ #include <rpc/types.h> -#include <rpc/trace.h> #include <rpc/xdr.h> #include <rpc/pmap_prot.h> #include <rpc/pmap_rmt.h> bool_t -xdr_pmap(xdrs, objp) - XDR *xdrs; - struct pmap *objp; +xdr_pmap(XDR *xdrs, struct pmap *objp) { + rpc_inline_t *buf; - register rpc_inline_t *buf; - bool_t dummy; - - trace1(TR_xdr_pmap, 0); - if (xdrs->x_op == XDR_ENCODE) { + switch (xdrs->x_op) { + case XDR_ENCODE: buf = XDR_INLINE(xdrs, 4 * BYTES_PER_XDR_UNIT); if (buf == NULL) { - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_prog)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_PUTINT32(xdrs, (int32_t *)&objp->pm_prog)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_vers)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_PUTINT32(xdrs, (int32_t *)&objp->pm_vers)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_prot)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_PUTINT32(xdrs, (int32_t *)&objp->pm_prot)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_port)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_PUTINT32(xdrs, (int32_t *)&objp->pm_port)) return (FALSE); - } } else { IXDR_PUT_U_INT32(buf, objp->pm_prog); IXDR_PUT_U_INT32(buf, objp->pm_vers); IXDR_PUT_U_INT32(buf, objp->pm_prot); IXDR_PUT_U_INT32(buf, objp->pm_port); } - - trace1(TR_xdr_pmap, 1); return (TRUE); - } else if (xdrs->x_op == XDR_DECODE) { + case XDR_DECODE: buf = XDR_INLINE(xdrs, 4 * BYTES_PER_XDR_UNIT); if (buf == NULL) { - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_prog)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_GETINT32(xdrs, (int32_t *)&objp->pm_prog)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_vers)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_GETINT32(xdrs, (int32_t *)&objp->pm_vers)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_prot)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_GETINT32(xdrs, (int32_t *)&objp->pm_prot)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->pm_port)) { - trace1(TR_xdr_pmap, 1); + if (!XDR_GETINT32(xdrs, (int32_t *)&objp->pm_port)) return (FALSE); - } - } else { objp->pm_prog = IXDR_GET_U_INT32(buf); objp->pm_vers = IXDR_GET_U_INT32(buf); objp->pm_prot = IXDR_GET_U_INT32(buf); objp->pm_port = IXDR_GET_U_INT32(buf); } - trace1(TR_xdr_pmap, 1); + return (TRUE); + case XDR_FREE: return (TRUE); } - - if (xdr_u_int(xdrs, (u_int *)&objp->pm_prog) && - xdr_u_int(xdrs, (u_int *)&objp->pm_vers) && - xdr_u_int(xdrs, (u_int *)&objp->pm_prot)) { - dummy = xdr_u_int(xdrs, (u_int *)&objp->pm_port); - trace1(TR_xdr_pmap, 1); - return (dummy); - } - trace1(TR_xdr_pmap, 1); return (FALSE); } @@ -147,9 +116,7 @@ xdr_pmap(xdrs, objp) * serialize the pmap elements. */ bool_t -xdr_pmaplist_ptr(xdrs, rp) - register XDR *xdrs; - register pmaplist_ptr *rp; +xdr_pmaplist_ptr(XDR *xdrs, pmaplist_ptr *rp) { /* * more_elements is pre-computed in case the direction is @@ -157,22 +124,16 @@ xdr_pmaplist_ptr(xdrs, rp) * xdr_bool when the direction is XDR_DECODE. */ bool_t more_elements; - register int freeing = (xdrs->x_op == XDR_FREE); + int freeing = (xdrs->x_op == XDR_FREE); pmaplist_ptr next; pmaplist_ptr next_copy; - trace1(TR_xdr_pmaplist_ptr, 0); - /*CONSTANTCONDITION*/ - while (TRUE) { + for (;;) { more_elements = (bool_t)(*rp != NULL); - if (! xdr_bool(xdrs, &more_elements)) { - trace1(TR_xdr_pmaplist_ptr, 1); + if (!xdr_bool(xdrs, &more_elements)) return (FALSE); - } - if (! more_elements) { - trace1(TR_xdr_pmaplist_ptr, 1); + if (!more_elements) return (TRUE); /* we are done */ - } /* * the unfortunate side effect of non-recursion is that in * the case of freeing we must remember the next object @@ -180,11 +141,9 @@ xdr_pmaplist_ptr(xdrs, rp) */ if (freeing) next = (*rp)->pml_next; - if (! xdr_reference(xdrs, (caddr_t *)rp, - (u_int)sizeof (struct pmaplist), (xdrproc_t) xdr_pmap)) { - trace1(TR_xdr_pmaplist_ptr, 1); + if (!xdr_reference(xdrs, (caddr_t *)rp, + (uint_t)sizeof (struct pmaplist), (xdrproc_t)xdr_pmap)) return (FALSE); - } if (freeing) { next_copy = next; rp = &next_copy; @@ -205,14 +164,9 @@ xdr_pmaplist_ptr(xdrs, rp) * functionality to xdr_pmaplist_ptr(). */ bool_t -xdr_pmaplist(xdrs, rp) - register XDR *xdrs; - register PMAPLIST **rp; +xdr_pmaplist(XDR *xdrs, PMAPLIST **rp) { - bool_t dummy; - - dummy = xdr_pmaplist_ptr(xdrs, (pmaplist_ptr *)rp); - return (dummy); + return (xdr_pmaplist_ptr(xdrs, (pmaplist_ptr *)rp)); } @@ -221,23 +175,17 @@ xdr_pmaplist(xdrs, rp) * written for XDR_ENCODE direction only */ bool_t -xdr_rmtcallargs(xdrs, cap) - register XDR *xdrs; - register struct p_rmtcallargs *cap; +xdr_rmtcallargs(XDR *xdrs, struct p_rmtcallargs *cap) { - u_int lenposition, argposition, position; - register rpc_inline_t *buf; - + uint_t lenposition, argposition, position; + rpc_inline_t *buf; - trace1(TR_xdr_rmtcallargs, 0); buf = XDR_INLINE(xdrs, 3 * BYTES_PER_XDR_UNIT); if (buf == NULL) { - if (!xdr_u_int(xdrs, (u_int *)&(cap->prog)) || - !xdr_u_int(xdrs, (u_int *)&(cap->vers)) || - !xdr_u_int(xdrs, (u_int *)&(cap->proc))) { - trace1(TR_xdr_rmtcallargs, 1); + if (!xdr_u_int(xdrs, (uint_t *)&(cap->prog)) || + !xdr_u_int(xdrs, (uint_t *)&(cap->vers)) || + !xdr_u_int(xdrs, (uint_t *)&(cap->proc))) return (FALSE); - } } else { IXDR_PUT_U_INT32(buf, cap->prog); IXDR_PUT_U_INT32(buf, cap->vers); @@ -248,27 +196,18 @@ xdr_rmtcallargs(xdrs, cap) * All the jugglery for just getting the size of the arguments */ lenposition = XDR_GETPOS(xdrs); - if (! xdr_u_int(xdrs, &(cap->args.args_len))) { - trace1(TR_xdr_rmtcallargs, 1); + if (!xdr_u_int(xdrs, &(cap->args.args_len))) return (FALSE); - } argposition = XDR_GETPOS(xdrs); - if (! (*cap->xdr_args)(xdrs, cap->args.args_val)) { - trace1(TR_xdr_rmtcallargs, 1); + if (!(*cap->xdr_args)(xdrs, cap->args.args_val)) return (FALSE); - } position = XDR_GETPOS(xdrs); cap->args.args_len = position - argposition; XDR_SETPOS(xdrs, lenposition); - if (! xdr_u_int(xdrs, &(cap->args.args_len))) { - trace1(TR_xdr_rmtcallargs, 1); + if (!xdr_u_int(xdrs, &(cap->args.args_len))) return (FALSE); - } XDR_SETPOS(xdrs, position); - trace1(TR_xdr_rmtcallargs, 1); return (TRUE); - - } /* @@ -276,20 +215,10 @@ xdr_rmtcallargs(xdrs, cap) * written for XDR_DECODE direction only */ bool_t -xdr_rmtcallres(xdrs, crp) - register XDR *xdrs; - register struct p_rmtcallres *crp; +xdr_rmtcallres(XDR *xdrs, struct p_rmtcallres *crp) { - bool_t dummy; - - trace1(TR_xdr_rmtcallres, 0); - if (xdr_u_int(xdrs, (u_int *)&crp->port) && - xdr_u_int(xdrs, &crp->res.res_len)) { - - dummy = (*(crp->xdr_res))(xdrs, crp->res.res_val); - trace1(TR_xdr_rmtcallres, 1); - return (dummy); - } - trace1(TR_xdr_rmtcallres, 1); + if (xdr_u_int(xdrs, (uint_t *)&crp->port) && + xdr_u_int(xdrs, &crp->res.res_len)) + return ((*(crp->xdr_res))(xdrs, crp->res.res_val)); return (FALSE); } diff --git a/usr/src/lib/libnsl/rpc/rpc_callmsg.c b/usr/src/lib/libnsl/rpc/rpc_callmsg.c index f5cf825ba4..6f6ef3c758 100644 --- a/usr/src/lib/libnsl/rpc/rpc_callmsg.c +++ b/usr/src/lib/libnsl/rpc/rpc_callmsg.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1999 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -37,46 +39,28 @@ * */ +#include <stdlib.h> #include <sys/param.h> -#include <rpc/trace.h> - -#ifdef KERNEL -#include <rpc/types.h> /* spell 'em out for make depend */ -#include <rpc/xdr.h> -#include <rpc/auth.h> -#include <rpc/clnt.h> -#include <rpc/rpc_msg.h> -#else #include <rpc/rpc.h> -#endif #include <syslog.h> #include <sys/byteorder.h> -extern bool_t xdr_opaque_auth(); -extern char *malloc(); +extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); /* * XDR a call message */ bool_t -xdr_callmsg(xdrs, cmsg) - register XDR *xdrs; - register struct rpc_msg *cmsg; +xdr_callmsg(XDR *xdrs, struct rpc_msg *cmsg) { - register rpc_inline_t *buf; - register struct opaque_auth *oa; - bool_t dummy; + rpc_inline_t *buf; + struct opaque_auth *oa; - trace1(TR_xdr_callmsg, 0); if (xdrs->x_op == XDR_ENCODE) { - if (cmsg->rm_call.cb_cred.oa_length > MAX_AUTH_BYTES) { - trace1(TR_xdr_callmsg, 1); + if (cmsg->rm_call.cb_cred.oa_length > MAX_AUTH_BYTES) return (FALSE); - } - if (cmsg->rm_call.cb_verf.oa_length > MAX_AUTH_BYTES) { - trace1(TR_xdr_callmsg, 1); + if (cmsg->rm_call.cb_verf.oa_length > MAX_AUTH_BYTES) return (FALSE); - } buf = XDR_INLINE(xdrs, 8 * BYTES_PER_XDR_UNIT + RNDUP(cmsg->rm_call.cb_cred.oa_length) + 2 * BYTES_PER_XDR_UNIT @@ -84,15 +68,11 @@ xdr_callmsg(xdrs, cmsg) if (buf != NULL) { IXDR_PUT_INT32(buf, cmsg->rm_xid); IXDR_PUT_ENUM(buf, cmsg->rm_direction); - if (cmsg->rm_direction != CALL) { - trace1(TR_xdr_callmsg, 1); + if (cmsg->rm_direction != CALL) return (FALSE); - } IXDR_PUT_INT32(buf, cmsg->rm_call.cb_rpcvers); - if (cmsg->rm_call.cb_rpcvers != RPC_MSG_VERSION) { - trace1(TR_xdr_callmsg, 1); + if (cmsg->rm_call.cb_rpcvers != RPC_MSG_VERSION) return (FALSE); - } IXDR_PUT_INT32(buf, cmsg->rm_call.cb_prog); IXDR_PUT_INT32(buf, cmsg->rm_call.cb_vers); IXDR_PUT_INT32(buf, cmsg->rm_call.cb_proc); @@ -100,23 +80,20 @@ xdr_callmsg(xdrs, cmsg) IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_INT32(buf, oa->oa_length); if (oa->oa_length) { - (void) memcpy((caddr_t)buf, oa->oa_base, - oa->oa_length); + (void) memcpy(buf, oa->oa_base, oa->oa_length); buf += RNDUP(oa->oa_length) / sizeof (int32_t); } oa = &cmsg->rm_call.cb_verf; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_INT32(buf, oa->oa_length); if (oa->oa_length) { - (void) memcpy((caddr_t)buf, oa->oa_base, - oa->oa_length); + (void) memcpy(buf, oa->oa_base, oa->oa_length); /* * no real need.... * buf += RNDUP(oa->oa_length) / sizeof * (int32_t); */ } - trace1(TR_xdr_callmsg, 1); return (TRUE); } } @@ -125,15 +102,11 @@ xdr_callmsg(xdrs, cmsg) if (buf != NULL) { cmsg->rm_xid = IXDR_GET_INT32(buf); cmsg->rm_direction = IXDR_GET_ENUM(buf, enum msg_type); - if (cmsg->rm_direction != CALL) { - trace1(TR_xdr_callmsg, 1); + if (cmsg->rm_direction != CALL) return (FALSE); - } cmsg->rm_call.cb_rpcvers = IXDR_GET_INT32(buf); - if (cmsg->rm_call.cb_rpcvers != RPC_MSG_VERSION) { - trace1(TR_xdr_callmsg, 1); + if (cmsg->rm_call.cb_rpcvers != RPC_MSG_VERSION) return (FALSE); - } cmsg->rm_call.cb_prog = IXDR_GET_INT32(buf); cmsg->rm_call.cb_vers = IXDR_GET_INT32(buf); cmsg->rm_call.cb_proc = IXDR_GET_INT32(buf); @@ -141,35 +114,29 @@ xdr_callmsg(xdrs, cmsg) oa->oa_flavor = IXDR_GET_ENUM(buf, enum_t); oa->oa_length = IXDR_GET_INT32(buf); if (oa->oa_length) { - if (oa->oa_length > MAX_AUTH_BYTES) { - trace1(TR_xdr_callmsg, 1); + if (oa->oa_length > MAX_AUTH_BYTES) return (FALSE); - } if (oa->oa_base == NULL) { - oa->oa_base = (caddr_t) - mem_alloc(oa->oa_length); + oa->oa_base = malloc(oa->oa_length); if (oa->oa_base == NULL) { syslog(LOG_ERR, "xdr_callmsg : " "out of memory."); - trace1(TR_xdr_callmsg, 1); return (FALSE); } } buf = XDR_INLINE(xdrs, RNDUP(oa->oa_length)); if (buf == NULL) { if (xdr_opaque(xdrs, oa->oa_base, - oa->oa_length) == FALSE) { - trace1(TR_xdr_callmsg, 1); + oa->oa_length) == FALSE) return (FALSE); - } } else { (void) memcpy(oa->oa_base, - (caddr_t)buf, (int)oa->oa_length); + buf, (size_t)oa->oa_length); /* * no real need.... * buf += RNDUP(oa->oa_length) / - * (int) sizeof (int32_t); + * (int)sizeof (int32_t); */ } } @@ -177,64 +144,52 @@ xdr_callmsg(xdrs, cmsg) buf = XDR_INLINE(xdrs, 2 * BYTES_PER_XDR_UNIT); if (buf == NULL) { if (xdr_enum(xdrs, &oa->oa_flavor) == FALSE || - xdr_u_int(xdrs, &oa->oa_length) == FALSE) { - trace1(TR_xdr_callmsg, 1); + xdr_u_int(xdrs, &oa->oa_length) == FALSE) return (FALSE); - } } else { oa->oa_flavor = IXDR_GET_ENUM(buf, enum_t); oa->oa_length = IXDR_GET_INT32(buf); } if (oa->oa_length) { - if (oa->oa_length > MAX_AUTH_BYTES) { - trace1(TR_xdr_callmsg, 1); + if (oa->oa_length > MAX_AUTH_BYTES) return (FALSE); - } if (oa->oa_base == NULL) { - oa->oa_base = (caddr_t) - mem_alloc(oa->oa_length); + oa->oa_base = malloc(oa->oa_length); if (oa->oa_base == NULL) { syslog(LOG_ERR, "xdr_callmsg : " "out of memory."); - trace1(TR_xdr_callmsg, 1); return (FALSE); } } buf = XDR_INLINE(xdrs, RNDUP(oa->oa_length)); if (buf == NULL) { if (xdr_opaque(xdrs, oa->oa_base, - oa->oa_length) == FALSE) { - trace1(TR_xdr_callmsg, 1); + oa->oa_length) == FALSE) return (FALSE); - } } else { (void) memcpy(oa->oa_base, - (caddr_t)buf, (int)oa->oa_length); + buf, (size_t)oa->oa_length); /* * no real need... * buf += RNDUP(oa->oa_length) / - * (int) sizeof (int32_t); + * (int)sizeof (int32_t); */ } } - trace1(TR_xdr_callmsg, 1); return (TRUE); } } if (xdr_u_int(xdrs, &(cmsg->rm_xid)) && xdr_enum(xdrs, (enum_t *)&(cmsg->rm_direction)) && (cmsg->rm_direction == CALL) && - xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_rpcvers)) && + xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_rpcvers)) && (cmsg->rm_call.cb_rpcvers == RPC_MSG_VERSION) && - xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_prog)) && - xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_vers)) && - xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_proc)) && + xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_prog)) && + xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_vers)) && + xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_proc)) && xdr_opaque_auth(xdrs, &(cmsg->rm_call.cb_cred))) { - dummy = xdr_opaque_auth(xdrs, &(cmsg->rm_call.cb_verf)); - trace1(TR_xdr_callmsg, 1); - return (dummy); + return (xdr_opaque_auth(xdrs, &(cmsg->rm_call.cb_verf))); } - trace1(TR_xdr_callmsg, 1); return (FALSE); } diff --git a/usr/src/lib/libnsl/rpc/rpc_comdata.c b/usr/src/lib/libnsl/rpc/rpc_comdata.c index 3b28923c3a..fc506cbe55 100644 --- a/usr/src/lib/libnsl/rpc/rpc_comdata.c +++ b/usr/src/lib/libnsl/rpc/rpc_comdata.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1991 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -33,7 +35,6 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include <rpc/rpc.h> -#include <rpc/trace.h> /* * This file should only contain common data (global data) that is exported diff --git a/usr/src/lib/libnsl/rpc/rpc_comdata1.c b/usr/src/lib/libnsl/rpc/rpc_comdata1.c index a8f029d049..072d45cdd0 100644 --- a/usr/src/lib/libnsl/rpc/rpc_comdata1.c +++ b/usr/src/lib/libnsl/rpc/rpc_comdata1.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -35,7 +36,7 @@ #ifdef FD_SETSIZE #undef FD_SETSIZE #endif -#define FD_SETSIZE 65536 +#define FD_SETSIZE 65536 #include <sys/select.h> @@ -55,5 +56,8 @@ fd_set _new_svc_fdset; #else -extern int svc_fdset; /* to avoid "empty translation unit" */ + +#include <sys/select.h> + +extern fd_set svc_fdset; /* to avoid "empty translation unit" */ #endif diff --git a/usr/src/lib/libnsl/rpc/rpc_generic.c b/usr/src/lib/libnsl/rpc/rpc_generic.c index 42a7bebeed..2fb4873eeb 100644 --- a/usr/src/lib/libnsl/rpc/rpc_generic.c +++ b/usr/src/lib/libnsl/rpc/rpc_generic.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -42,7 +43,6 @@ #include "rpc_mt.h" #include <stdio.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/rpc.h> #include <rpc/nettype.h> #include <sys/param.h> @@ -99,18 +99,14 @@ struct _rpcnettype { * maximum of FD_SETSIZE. */ int -__rpc_dtbsize() +__rpc_dtbsize(void) { static int tbsize; struct rlimit rl; - trace1(TR___rpc_dtbsize, 0); - if (tbsize) { - trace1(TR___rpc_dtbsize, 1); + if (tbsize) return (tbsize); - } if (getrlimit(RLIMIT_NOFILE, &rl) == 0) { - trace1(TR___rpc_dtbsize, 1); tbsize = rl.rlim_max; /* * backward compatibility; too many places @@ -125,7 +121,6 @@ __rpc_dtbsize() * Something wrong. I'll try to save face by returning a * pessimistic number. */ - trace1(TR___rpc_dtbsize, 1); return (32); } @@ -137,12 +132,8 @@ __rpc_get_t_size( t_scalar_t size, /* Size requested */ t_scalar_t bufsize) /* Supported by the transport */ { - trace3(TR___rpc_get_t_size, 0, size, bufsize); - if (bufsize == -2) { - /* transfer of data unsupported */ - trace3(TR___rpc_get_t_size, 1, size, bufsize); + if (bufsize == -2) /* transfer of data unsupported */ return ((uint_t)0); - } if (size == 0) { if ((bufsize == -1) || (bufsize == 0)) { /* @@ -150,19 +141,13 @@ __rpc_get_t_size( * bufsize == 0 : Concept of tsdu foreign. Choose * a value. */ - trace3(TR___rpc_get_t_size, 1, size, bufsize); return ((uint_t)RPC_MAXDATASIZE); - } else { - trace3(TR___rpc_get_t_size, 1, size, bufsize); - return ((uint_t)bufsize); } + return ((uint_t)bufsize); } - if ((bufsize == -1) || (bufsize == 0)) { - trace3(TR___rpc_get_t_size, 1, size, bufsize); + if ((bufsize == -1) || (bufsize == 0)) return ((uint_t)size); - } /* Check whether the value is within the upper max limit */ - trace3(TR___rpc_get_t_size, 1, size, bufsize); return (size > bufsize ? (uint_t)bufsize : (uint_t)size); } @@ -173,57 +158,31 @@ uint_t __rpc_get_a_size( t_scalar_t size) /* normally tinfo.addr */ { - trace2(TR___rpc_get_a_size, 0, size); - if (size >= 0) { - trace2(TR___rpc_get_a_size, 1, size); + if (size >= 0) return ((uint_t)size); - } - if (size <= -2) { - trace2(TR___rpc_get_a_size, 1, size); + if (size <= -2) return ((uint_t)0); - } /* * (size == -1) No limit on the size. we impose a limit here. */ - trace2(TR___rpc_get_a_size, 1, size); return ((uint_t)RPC_MAXADDRSIZE); } -static char * -strlocase(char *p) -{ - char *t = p; - - trace1(TR_strlocase, 0); - for (; *p; p++) - if (isupper(*p)) - *p = tolower(*p); - trace1(TR_strlocase, 1); - return (t); -} - /* * Returns the type of the network as defined in <rpc/nettype.h> * If nettype is NULL, it defaults to NETPATH. */ static int -getnettype(char *nettype) +getnettype(const char *nettype) { int i; - trace1(TR_getnettype, 0); - if ((nettype == NULL) || (nettype[0] == NULL)) { - trace1(TR_getnettype, 1); + if ((nettype == NULL) || (nettype[0] == NULL)) return (_RPC_NETPATH); /* Default */ - } - nettype = strlocase(nettype); for (i = 0; _rpctypelist[i].name; i++) - if (strcmp(nettype, _rpctypelist[i].name) == 0) { - trace1(TR_getnettype, 1); + if (strcasecmp(nettype, _rpctypelist[i].name) == 0) return (_rpctypelist[i].type); - } - trace1(TR_getnettype, 1); return (_rpctypelist[i].type); } @@ -235,32 +194,30 @@ struct netconfig * __rpc_getconfip(char *nettype) { char *netid; - char *netid_tcp = (char *)NULL; - char *netid_udp = (char *)NULL; + char *netid_tcp = NULL; + char *netid_udp = NULL; static char *netid_tcp_main; static char *netid_udp_main; static pthread_key_t tcp_key, udp_key; int main_thread; - struct netconfig *dummy; extern mutex_t tsd_lock; - trace1(TR___rpc_getconfip, 0); if ((main_thread = thr_main())) { netid_udp = netid_udp_main; netid_tcp = netid_tcp_main; } else { if (tcp_key == 0) { - mutex_lock(&tsd_lock); + (void) mutex_lock(&tsd_lock); if (tcp_key == 0) - pthread_key_create(&tcp_key, free); - mutex_unlock(&tsd_lock); + (void) pthread_key_create(&tcp_key, free); + (void) mutex_unlock(&tsd_lock); } netid_tcp = pthread_getspecific(tcp_key); if (udp_key == 0) { - mutex_lock(&tsd_lock); + (void) mutex_lock(&tsd_lock); if (udp_key == 0) - pthread_key_create(&udp_key, free); - mutex_unlock(&tsd_lock); + (void) pthread_key_create(&udp_key, free); + (void) mutex_unlock(&tsd_lock); } netid_udp = pthread_getspecific(udp_key); } @@ -268,10 +225,8 @@ __rpc_getconfip(char *nettype) struct netconfig *nconf; void *confighandle; - if (!(confighandle = setnetconfig())) { - trace1(TR___rpc_getconfip, 1); + if (!(confighandle = setnetconfig())) return (NULL); - } while (nconf = getnetconfig(confighandle)) { if (strcmp(nconf->nc_protofmly, NC_INET) == 0) { if (strcmp(nconf->nc_proto, NC_TCP) == 0) { @@ -280,14 +235,13 @@ __rpc_getconfip(char *nettype) syslog(LOG_ERR, "__rpc_getconfip : " "strdup failed"); - trace1(TR___rpc_getconfip, 1); - return ((struct netconfig *) - NULL); + return (NULL); } if (main_thread) netid_tcp_main = netid_tcp; else - pthread_setspecific(tcp_key, + (void) pthread_setspecific( + tcp_key, (void *)netid_tcp); } else if (strcmp(nconf->nc_proto, NC_UDP) == 0) { @@ -296,35 +250,28 @@ __rpc_getconfip(char *nettype) syslog(LOG_ERR, "__rpc_getconfip : " "strdup failed"); - trace1(TR___rpc_getconfip, 1); - return ((struct netconfig *) - NULL); + return (NULL); } if (main_thread) netid_udp_main = netid_udp; else - pthread_setspecific(udp_key, + (void) pthread_setspecific( + udp_key, (void *)netid_udp); } } } - endnetconfig(confighandle); + (void) endnetconfig(confighandle); } if (strcmp(nettype, "udp") == 0) netid = netid_udp; else if (strcmp(nettype, "tcp") == 0) netid = netid_tcp; - else { - trace1(TR___rpc_getconfip, 1); - return ((struct netconfig *)NULL); - } - if ((netid == NULL) || (netid[0] == NULL)) { - trace1(TR___rpc_getconfip, 1); - return ((struct netconfig *)NULL); - } - dummy = getnetconfigent(netid); - trace1(TR___rpc_getconfip, 1); - return (dummy); + else + return (NULL); + if ((netid == NULL) || (netid[0] == NULL)) + return (NULL); + return (getnetconfigent(netid)); } @@ -337,12 +284,9 @@ __rpc_setconf(char *nettype) { struct handle *handle; - trace1(TR___rpc_setconf, 0); - handle = (struct handle *)malloc(sizeof (struct handle)); - if (handle == NULL) { - trace1(TR___rpc_setconf, 1); + handle = malloc(sizeof (struct handle)); + if (handle == NULL) return (NULL); - } switch (handle->nettype = getnettype(nettype)) { case _RPC_DOOR_NETPATH: case _RPC_NETPATH: @@ -350,7 +294,6 @@ __rpc_setconf(char *nettype) case _RPC_DATAGRAM_N: if (!(handle->nhandle = setnetpath())) { free(handle); - trace1(TR___rpc_setconf, 1); return (NULL); } handle->nflag = TRUE; @@ -364,18 +307,15 @@ __rpc_setconf(char *nettype) case _RPC_DOOR_LOCAL: if (!(handle->nhandle = setnetconfig())) { free(handle); - trace1(TR___rpc_setconf, 1); return (NULL); } handle->nflag = FALSE; break; default: free(handle); - trace1(TR___rpc_setconf, 1); return (NULL); } - trace1(TR___rpc_setconf, 1); return (handle); } @@ -389,19 +329,15 @@ __rpc_getconf(void *vhandle) struct handle *handle; struct netconfig *nconf; - trace1(TR___rpc_getconf, 0); handle = (struct handle *)vhandle; - if (handle == NULL) { - trace1(TR___rpc_getconf, 1); + if (handle == NULL) return (NULL); - } - /*CONSTANTCONDITION*/ - while (1) { + for (;;) { if (handle->nflag) nconf = getnetpath(handle->nhandle); else nconf = getnetconfig(handle->nhandle); - if (nconf == (struct netconfig *)NULL) + if (nconf == NULL) break; if ((nconf->nc_semantics != NC_TPI_CLTS) && (nconf->nc_semantics != NC_TPI_COTS) && @@ -458,7 +394,6 @@ __rpc_getconf(void *vhandle) } break; } - trace1(TR___rpc_getconf, 1); return (nconf); } @@ -467,19 +402,15 @@ __rpc_endconf(void *vhandle) { struct handle *handle; - trace1(TR___rpc_endconf, 0); handle = (struct handle *)vhandle; - if (handle == NULL) { - trace1(TR___rpc_endconf, 1); + if (handle == NULL) return; - } if (handle->nflag) { - endnetpath(handle->nhandle); + (void) endnetpath(handle->nhandle); } else { - endnetconfig(handle->nhandle); + (void) endnetconfig(handle->nhandle); } free(handle); - trace1(TR___rpc_endconf, 1); } /* @@ -491,13 +422,9 @@ rpc_nullproc(CLIENT *clnt) { struct timeval TIMEOUT = {25, 0}; - trace2(TR_rpc_nullproc, 0, clnt); - if (clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void, (char *)NULL, - (xdrproc_t)xdr_void, (char *)NULL, TIMEOUT) != RPC_SUCCESS) { - trace2(TR_rpc_nullproc, 1, clnt); - return ((void *)NULL); - } - trace2(TR_rpc_nullproc, 1, clnt); + if (clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void, NULL, + (xdrproc_t)xdr_void, NULL, TIMEOUT) != RPC_SUCCESS) + return (NULL); return ((void *)clnt); } @@ -516,11 +443,8 @@ __rpcfd_to_nconf(int fd, int servtype) major_t fdmajor; struct t_info tinfo; - trace2(TR___rpcfd_to_nconf, 0, fd); - if (_FSTAT(fd, &statbuf) == -1) { - trace2(TR___rpcfd_to_nconf, 1, fd); + if (_FSTAT(fd, &statbuf) == -1) return (NULL); - } fdmajor = major(statbuf.st_rdev); if (servtype == 0) { @@ -532,17 +456,14 @@ __rpcfd_to_nconf(int fd, int servtype) (void) syslog(LOG_ERR, "__rpcfd_to_nconf : %s : %s", "could not get transport information", errorstr); - trace2(TR___rpcfd_to_nconf, 1, fd); return (NULL); } servtype = tinfo.servtype; } hndl = setnetconfig(); - if (hndl == NULL) { - trace2(TR___rpcfd_to_nconf, 1, fd); + if (hndl == NULL) return (NULL); - } /* * Go through all transports listed in /etc/netconfig looking for * transport device in use on fd. @@ -567,8 +488,7 @@ __rpcfd_to_nconf(int fd, int servtype) } if (nconf) newnconf = getnetconfigent(nconf->nc_netid); - endnetconfig(hndl); - trace2(TR___rpcfd_to_nconf, 1, fd); + (void) endnetconfig(hndl); return (newnconf); } @@ -603,11 +523,10 @@ __rpc_matchserv(int servtype, unsigned int nc_semantics) * Routines for RPC/Doors support. */ -extern bool_t __inet_netdir_is_my_host(); +extern bool_t __inet_netdir_is_my_host(const char *); bool_t -__rpc_is_local_host(host) - char *host; +__rpc_is_local_host(const char *host) { char buf[MAXHOSTNAMELEN + 1]; @@ -624,9 +543,7 @@ __rpc_is_local_host(host) } bool_t -__rpc_try_doors(nettype, try_others) - char *nettype; - bool_t *try_others; +__rpc_try_doors(const char *nettype, bool_t *try_others) { switch (getnettype(nettype)) { case _RPC_DOOR: diff --git a/usr/src/lib/libnsl/rpc/rpc_prot.c b/usr/src/lib/libnsl/rpc/rpc_prot.c index 7fe24cb4de..a911ac7820 100644 --- a/usr/src/lib/libnsl/rpc/rpc_prot.c +++ b/usr/src/lib/libnsl/rpc/rpc_prot.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1999 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -44,19 +46,9 @@ */ #include <sys/param.h> -#include <rpc/trace.h> #include <syslog.h> - -#ifdef KERNEL -#include <rpc/types.h> /* spell 'em out for make depend */ -#include <rpc/xdr.h> -#include <rpc/auth.h> -#include <rpc/clnt.h> -#include <rpc/rpc_msg.h> -#else #include <rpc/rpc.h> #include <malloc.h> -#endif /* * * * * * * * * * * * * * XDR Authentication * * * * * * * * * * * */ @@ -67,20 +59,11 @@ struct opaque_auth _null_auth; * (see auth.h) */ bool_t -xdr_opaque_auth(xdrs, ap) - register XDR *xdrs; - register struct opaque_auth *ap; +xdr_opaque_auth(XDR *xdrs, struct opaque_auth *ap) { - bool_t dummy; - - trace1(TR_xdr_opaque_auth, 0); - if (xdr_enum(xdrs, &(ap->oa_flavor))) { - dummy = xdr_bytes(xdrs, &ap->oa_base, - &ap->oa_length, MAX_AUTH_BYTES); - trace1(TR_xdr_opaque_auth, 1); - return (dummy); - } - trace1(TR_xdr_opaque_auth, 1); + if (xdr_enum(xdrs, &(ap->oa_flavor))) + return (xdr_bytes(xdrs, &ap->oa_base, + &ap->oa_length, MAX_AUTH_BYTES)); return (FALSE); } @@ -88,16 +71,9 @@ xdr_opaque_auth(xdrs, ap) * XDR a DES block */ bool_t -xdr_des_block(xdrs, blkp) - register XDR *xdrs; - register des_block *blkp; +xdr_des_block(XDR *xdrs, des_block *blkp) { - bool_t dummy; - - trace1(TR_xdr_des_block, 0); - dummy = xdr_opaque(xdrs, (caddr_t)blkp, (u_int) sizeof (des_block)); - trace1(TR_xdr_des_block, 1); - return (dummy); + return (xdr_opaque(xdrs, (caddr_t)blkp, sizeof (des_block))); } /* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */ @@ -106,39 +82,22 @@ xdr_des_block(xdrs, blkp) * XDR the MSG_ACCEPTED part of a reply message union */ bool_t -xdr_accepted_reply(xdrs, ar) - register XDR *xdrs; - register struct accepted_reply *ar; +xdr_accepted_reply(XDR *xdrs, struct accepted_reply *ar) { - bool_t dummy; - /* personalized union, rather than calling xdr_union */ - trace1(TR_xdr_accepted_reply, 0); - if (! xdr_opaque_auth(xdrs, &(ar->ar_verf))) { - trace1(TR_xdr_accepted_reply, 1); + if (!xdr_opaque_auth(xdrs, &(ar->ar_verf))) return (FALSE); - } - if (! xdr_enum(xdrs, (enum_t *)&(ar->ar_stat))) { - trace1(TR_xdr_accepted_reply, 1); + if (!xdr_enum(xdrs, (enum_t *)&(ar->ar_stat))) return (FALSE); - } switch (ar->ar_stat) { case SUCCESS: - dummy = (*(ar->ar_results.proc))(xdrs, ar->ar_results.where); - trace1(TR_xdr_accepted_reply, 1); - return (dummy); - + return ((*(ar->ar_results.proc))(xdrs, ar->ar_results.where)); case PROG_MISMATCH: - if (!xdr_u_int(xdrs, (u_int *)&(ar->ar_vers.low))) { - trace1(TR_xdr_accepted_reply, 1); + if (!xdr_u_int(xdrs, (uint_t *)&(ar->ar_vers.low))) return (FALSE); - } - dummy = xdr_u_int(xdrs, (u_int *)&(ar->ar_vers.high)); - trace1(TR_xdr_accepted_reply, 1); - return (dummy); + return (xdr_u_int(xdrs, (uint_t *)&(ar->ar_vers.high))); } - trace1(TR_xdr_accepted_reply, 1); return (TRUE); /* TRUE => open ended set of problems */ } @@ -146,34 +105,19 @@ xdr_accepted_reply(xdrs, ar) * XDR the MSG_DENIED part of a reply message union */ bool_t -xdr_rejected_reply(xdrs, rr) - register XDR *xdrs; - register struct rejected_reply *rr; +xdr_rejected_reply(XDR *xdrs, struct rejected_reply *rr) { - bool_t dummy; - /* personalized union, rather than calling xdr_union */ - trace1(TR_xdr_rejected_reply, 0); - if (! xdr_enum(xdrs, (enum_t *)&(rr->rj_stat))) { - trace1(TR_xdr_rejected_reply, 1); + if (!xdr_enum(xdrs, (enum_t *)&(rr->rj_stat))) return (FALSE); - } switch (rr->rj_stat) { case RPC_MISMATCH: - if (! xdr_u_int(xdrs, (u_int *)&(rr->rj_vers.low))) { - trace1(TR_xdr_rejected_reply, 1); + if (!xdr_u_int(xdrs, (uint_t *)&(rr->rj_vers.low))) return (FALSE); - } - dummy = xdr_u_int(xdrs, (u_int *)&(rr->rj_vers.high)); - trace1(TR_xdr_rejected_reply, 1); - return (dummy); - + return (xdr_u_int(xdrs, (uint_t *)&(rr->rj_vers.high))); case AUTH_ERROR: - dummy = xdr_enum(xdrs, (enum_t *)&(rr->rj_why)); - trace1(TR_xdr_rejected_reply, 1); - return (dummy); + return (xdr_enum(xdrs, (enum_t *)&(rr->rj_why))); } - trace1(TR_xdr_rejected_reply, 1); return (FALSE); } @@ -181,18 +125,14 @@ xdr_rejected_reply(xdrs, rr) * XDR a reply message */ bool_t -xdr_replymsg(xdrs, rmsg) - register XDR *xdrs; - register struct rpc_msg *rmsg; +xdr_replymsg(XDR *xdrs, struct rpc_msg *rmsg) { struct xdr_discrim reply_dscrm[3]; - register rpc_inline_t *buf; - register struct accepted_reply *ar; - register struct opaque_auth *oa; - register u_int rndup; - bool_t dummy; + rpc_inline_t *buf; + struct accepted_reply *ar; + struct opaque_auth *oa; + uint_t rndup; - trace1(TR_xdr_replymsg, 0); if (xdrs->x_op == XDR_ENCODE && rmsg->rm_reply.rp_stat == MSG_ACCEPTED && rmsg->rm_direction == REPLY && @@ -206,7 +146,7 @@ xdr_replymsg(xdrs, rmsg) IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_INT32(buf, oa->oa_length); if (oa->oa_length) { - (void) memcpy((caddr_t)buf, oa->oa_base, oa->oa_length); + (void) memcpy(buf, oa->oa_base, oa->oa_length); /* LINTED pointer alignment */ buf = (rpc_inline_t *)(((caddr_t)buf) + oa->oa_length); } @@ -221,40 +161,26 @@ xdr_replymsg(xdrs, rmsg) IXDR_PUT_ENUM(buf, ar->ar_stat); switch (ar->ar_stat) { case SUCCESS: - dummy = (*(ar->ar_results.proc)) - (xdrs, ar->ar_results.where); - trace1(TR_xdr_replymsg, 1); - return (dummy); - + return ((*(ar->ar_results.proc)) + (xdrs, ar->ar_results.where)); case PROG_MISMATCH: - if (! xdr_u_int(xdrs, (u_int *)&(ar->ar_vers.low))) { - trace1(TR_xdr_replymsg, 1); + if (!xdr_u_int(xdrs, (uint_t *)&(ar->ar_vers.low))) return (FALSE); - } - dummy = xdr_u_int(xdrs, (u_int *)&(ar->ar_vers.high)); - trace1(TR_xdr_replymsg, 1); - return (dummy); + return (xdr_u_int(xdrs, (uint_t *)&(ar->ar_vers.high))); } - trace1(TR_xdr_replymsg, 1); return (TRUE); } if (xdrs->x_op == XDR_DECODE && (buf = XDR_INLINE(xdrs, 3 * BYTES_PER_XDR_UNIT)) != NULL) { rmsg->rm_xid = IXDR_GET_INT32(buf); rmsg->rm_direction = IXDR_GET_ENUM(buf, enum msg_type); - if (rmsg->rm_direction != REPLY) { - trace1(TR_xdr_replymsg, 1); + if (rmsg->rm_direction != REPLY) return (FALSE); - } rmsg->rm_reply.rp_stat = IXDR_GET_ENUM(buf, enum reply_stat); if (rmsg->rm_reply.rp_stat != MSG_ACCEPTED) { - if (rmsg->rm_reply.rp_stat == MSG_DENIED) { - dummy = xdr_rejected_reply(xdrs, - &rmsg->rm_reply.rp_rjct); - trace1(TR_xdr_replymsg, 1); - return (dummy); - } - trace1(TR_xdr_replymsg, 1); + if (rmsg->rm_reply.rp_stat == MSG_DENIED) + return (xdr_rejected_reply(xdrs, + &rmsg->rm_reply.rp_rjct)); return (FALSE); } ar = &rmsg->rm_reply.rp_acpt; @@ -265,84 +191,61 @@ xdr_replymsg(xdrs, rmsg) oa->oa_length = IXDR_GET_INT32(buf); } else { if (xdr_enum(xdrs, &oa->oa_flavor) == FALSE || - xdr_u_int(xdrs, &oa->oa_length) == FALSE) { - trace1(TR_xdr_replymsg, 1); + xdr_u_int(xdrs, &oa->oa_length) == FALSE) return (FALSE); - } } if (oa->oa_length) { - if (oa->oa_length > MAX_AUTH_BYTES) { - trace1(TR_xdr_replymsg, 1); + if (oa->oa_length > MAX_AUTH_BYTES) return (FALSE); - } if (oa->oa_base == NULL) { - oa->oa_base = (caddr_t) - mem_alloc(oa->oa_length); + oa->oa_base = malloc(oa->oa_length); if (oa->oa_base == NULL) { syslog(LOG_ERR, "xdr_replymsg : " "out of memory."); rpc_callerr.re_status = RPC_SYSTEMERROR; - trace1(TR_xdr_callmsg, 1); return (FALSE); } } buf = XDR_INLINE(xdrs, RNDUP(oa->oa_length)); if (buf == NULL) { if (xdr_opaque(xdrs, oa->oa_base, - oa->oa_length) == FALSE) { - trace1(TR_xdr_replymsg, 1); + oa->oa_length) == FALSE) return (FALSE); - } } else { - (void) memcpy(oa->oa_base, - (caddr_t)buf, oa->oa_length); + (void) memcpy(oa->oa_base, buf, oa->oa_length); } } /* * stat and rest of reply, copied from * xdr_accepted_reply */ - if (! xdr_enum(xdrs, (enum_t *)&ar->ar_stat)) { - trace1(TR_xdr_replymsg, 1); + if (!xdr_enum(xdrs, (enum_t *)&ar->ar_stat)) return (FALSE); - } switch (ar->ar_stat) { case SUCCESS: - dummy = (*(ar->ar_results.proc)) - (xdrs, ar->ar_results.where); - trace1(TR_xdr_replymsg, 1); - return (dummy); - + return ((*(ar->ar_results.proc)) + (xdrs, ar->ar_results.where)); case PROG_MISMATCH: - if (! xdr_u_int(xdrs, (u_int *)&(ar->ar_vers.low))) { - trace1(TR_xdr_replymsg, 1); + if (!xdr_u_int(xdrs, (uint_t *)&(ar->ar_vers.low))) return (FALSE); - } - dummy = xdr_u_int(xdrs, (u_int *)&(ar->ar_vers.high)); - trace1(TR_xdr_replymsg, 1); - return (dummy); + return (xdr_u_int(xdrs, (uint_t *)&(ar->ar_vers.high))); } - trace1(TR_xdr_replymsg, 1); return (TRUE); } reply_dscrm[0].value = (int)MSG_ACCEPTED; - reply_dscrm[0].proc = (xdrproc_t) xdr_accepted_reply; + reply_dscrm[0].proc = (xdrproc_t)xdr_accepted_reply; reply_dscrm[1].value = (int)MSG_DENIED; - reply_dscrm[1].proc = (xdrproc_t) xdr_rejected_reply; + reply_dscrm[1].proc = (xdrproc_t)xdr_rejected_reply; reply_dscrm[2].value = __dontcare__; reply_dscrm[2].proc = NULL_xdrproc_t; if (xdr_u_int(xdrs, &(rmsg->rm_xid)) && xdr_enum(xdrs, (enum_t *)&(rmsg->rm_direction)) && - (rmsg->rm_direction == REPLY)) { - dummy = xdr_union(xdrs, (enum_t *)&(rmsg->rm_reply.rp_stat), + (rmsg->rm_direction == REPLY)) + return (xdr_union(xdrs, (enum_t *)&(rmsg->rm_reply.rp_stat), (caddr_t)&(rmsg->rm_reply.ru), - reply_dscrm, NULL_xdrproc_t); - trace1(TR_xdr_replymsg, 1); - return (dummy); - } - trace1(TR_xdr_replymsg, 1); + reply_dscrm, NULL_xdrproc_t)); return (FALSE); } @@ -352,115 +255,86 @@ xdr_replymsg(xdrs, rmsg) * The rm_xid is not really static, but the user can easily munge on the fly. */ bool_t -xdr_callhdr(xdrs, cmsg) - register XDR *xdrs; - register struct rpc_msg *cmsg; +xdr_callhdr(XDR *xdrs, struct rpc_msg *cmsg) { - bool_t dummy; - - trace1(TR_xdr_callhdr, 0); cmsg->rm_direction = CALL; cmsg->rm_call.cb_rpcvers = RPC_MSG_VERSION; if (xdrs->x_op == XDR_ENCODE && xdr_u_int(xdrs, &(cmsg->rm_xid)) && xdr_enum(xdrs, (enum_t *)&(cmsg->rm_direction)) && - xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_rpcvers)) && - xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_prog))) { - dummy = xdr_u_int(xdrs, (u_int *)&(cmsg->rm_call.cb_vers)); - trace1(TR_xdr_callhdr, 1); - return (dummy); + xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_rpcvers)) && + xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_prog))) { + return (xdr_u_int(xdrs, (uint_t *)&(cmsg->rm_call.cb_vers))); } - trace1(TR_xdr_callhdr, 1); return (FALSE); } /* ************************** Client utility routine ************* */ static void -accepted(acpt_stat, error) - register enum accept_stat acpt_stat; - register struct rpc_err *error; +accepted(enum accept_stat acpt_stat, struct rpc_err *error) { - trace1(TR_accepted, 0); switch (acpt_stat) { case PROG_UNAVAIL: error->re_status = RPC_PROGUNAVAIL; - trace1(TR_accepted, 1); return; case PROG_MISMATCH: error->re_status = RPC_PROGVERSMISMATCH; - trace1(TR_accepted, 1); return; case PROC_UNAVAIL: error->re_status = RPC_PROCUNAVAIL; - trace1(TR_accepted, 1); return; case GARBAGE_ARGS: error->re_status = RPC_CANTDECODEARGS; - trace1(TR_accepted, 1); return; case SYSTEM_ERR: error->re_status = RPC_SYSTEMERROR; - trace1(TR_accepted, 1); return; case SUCCESS: error->re_status = RPC_SUCCESS; - trace1(TR_accepted, 1); return; } /* something's wrong, but we don't know what ... */ error->re_status = RPC_FAILED; error->re_lb.s1 = (int32_t)MSG_ACCEPTED; error->re_lb.s2 = (int32_t)acpt_stat; - trace1(TR_accepted, 1); } static void -rejected(rjct_stat, error) - register enum reject_stat rjct_stat; - register struct rpc_err *error; +rejected(enum reject_stat rjct_stat, struct rpc_err *error) { - - trace1(TR_rejected, 0); switch (rjct_stat) { case RPC_MISMATCH: error->re_status = RPC_VERSMISMATCH; - trace1(TR_rejected, 1); return; case AUTH_ERROR: error->re_status = RPC_AUTHERROR; - trace1(TR_rejected, 1); return; } /* something's wrong, but we don't know what ... */ error->re_status = RPC_FAILED; error->re_lb.s1 = (int32_t)MSG_DENIED; error->re_lb.s2 = (int32_t)rjct_stat; - trace1(TR_rejected, 1); } /* * given a reply message, fills in the error */ void -__seterr_reply(msg, error) - register struct rpc_msg *msg; - register struct rpc_err *error; +__seterr_reply(struct rpc_msg *msg, struct rpc_err *error) { /* optimized for normal, SUCCESSful case */ - trace1(TR___seterr_reply, 0); switch (msg->rm_reply.rp_stat) { case MSG_ACCEPTED: if (msg->acpted_rply.ar_stat == SUCCESS) { error->re_status = RPC_SUCCESS; - trace1(TR___seterr_reply, 1); return; }; accepted(msg->acpted_rply.ar_stat, error); @@ -491,5 +365,4 @@ __seterr_reply(msg, error) error->re_vers.high = msg->acpted_rply.ar_vers.high; break; } - trace1(TR___seterr_reply, 1); } diff --git a/usr/src/lib/libnsl/rpc/rpc_sel2poll.c b/usr/src/lib/libnsl/rpc/rpc_sel2poll.c index ab77ba72ef..30b7ee66b7 100644 --- a/usr/src/lib/libnsl/rpc/rpc_sel2poll.c +++ b/usr/src/lib/libnsl/rpc/rpc_sel2poll.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1988 AT&T */ @@ -29,7 +31,6 @@ #include <sys/select.h> #include <sys/types.h> -#include <rpc/trace.h> #include <sys/time.h> #include <sys/poll.h> #include "rpc_mt.h" @@ -47,16 +48,14 @@ __rpc_select_to_poll( fd_set *fdset, /* source fd_set array */ struct pollfd *p0) /* target pollfd array */ { - /* register declarations ordered by expected frequency of use */ - register int j; /* loop counter */ - register int n; - register struct pollfd *p = p0; + int j; /* loop counter */ + int n; + struct pollfd *p = p0; /* * For each fd, if the appropriate bit is set convert it into * the appropriate pollfd struct. */ - trace2(TR___rpc_select_to_poll, 0, fdmax); j = ((fdmax >= FD_SETSIZE) ? FD_SETSIZE : fdmax); for (n = 0; n < j; n++) { if (FD_ISSET(n, fdset)) { @@ -66,7 +65,6 @@ __rpc_select_to_poll( p++; } } - trace2(TR___rpc_select_to_poll, 1, fdmax); return (p - p0); } @@ -87,8 +85,6 @@ __rpc_compress_pollfd(int pollfdmax, pollfd_t *srcp, pollfd_t *p0) int n; pollfd_t *p = p0; - trace2(TR___rpc_compress_pollfd, 0, p0); - for (n = 0; n < pollfdmax; n++) { if (POLLFD_ISSET(n, srcp)) { p->fd = srcp[n].fd; @@ -97,8 +93,6 @@ __rpc_compress_pollfd(int pollfdmax, pollfd_t *srcp, pollfd_t *p0) p++; } } - - trace2(TR___rpc_compress_pollfd, 1, pollfdmax); return (p - p0); } @@ -114,7 +108,6 @@ __rpc_timeval_to_msec(struct timeval *t) * We're really returning t->tv_sec * 1000 + (t->tv_usec / 1000) * but try to do so efficiently. Note: 1000 = 1024 - 16 - 8. */ - trace1(TR___rpc_timeval_to_msec, 0); tmp = (int)t->tv_sec << 3; t1 = -tmp; t1 += t1 << 1; @@ -122,6 +115,5 @@ __rpc_timeval_to_msec(struct timeval *t) if (t->tv_usec) t1 += t->tv_usec / 1000; - trace1(TR___rpc_timeval_to_msec, 1); return (t1); } diff --git a/usr/src/lib/libnsl/rpc/rpc_soc.c b/usr/src/lib/libnsl/rpc/rpc_soc.c index 468ad742af..2dbf168273 100644 --- a/usr/src/lib/libnsl/rpc/rpc_soc.c +++ b/usr/src/lib/libnsl/rpc/rpc_soc.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -47,7 +48,6 @@ #include "rpc_mt.h" #include <stdio.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/rpc.h> #include <netinet/in.h> #include <sys/socket.h> @@ -73,14 +73,8 @@ extern mutex_t rpcsoc_lock; * A common clnt create routine */ static CLIENT * -clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp) - struct sockaddr_in *raddr; - rpcprog_t prog; - rpcvers_t vers; - int *sockp; - uint_t sendsz; - uint_t recvsz; - char *tp; +clnt_com_create(struct sockaddr_in *raddr, rpcprog_t prog, rpcvers_t vers, + int *sockp, uint_t sendsz, uint_t recvsz, char *tp) { CLIENT *cl; int madefd = FALSE; @@ -92,13 +86,11 @@ clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp) extern int __rpc_minfd; bool_t locked = TRUE; - trace5(TR_clnt_com_create, 0, prog, vers, sendsz, recvsz); - mutex_lock(&rpcsoc_lock); + (void) mutex_lock(&rpcsoc_lock); if ((nconf = __rpc_getconfip(tp)) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - mutex_unlock(&rpcsoc_lock); - trace3(TR_clnt_com_create, 1, prog, vers); - return ((CLIENT *)NULL); + (void) mutex_unlock(&rpcsoc_lock); + return (NULL); } if (fd == RPC_ANYSOCK) { fd = t_open(nconf->nc_device, O_RDWR, &tinfo); @@ -116,7 +108,8 @@ clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp) uint_t proto; ushort_t sport; - mutex_unlock(&rpcsoc_lock); /* pmap_getport is recursive */ + /* pmap_getport is recursive */ + (void) mutex_unlock(&rpcsoc_lock); proto = strcmp(tp, "udp") == 0 ? IPPROTO_UDP : IPPROTO_TCP; sport = pmap_getport(raddr, prog, vers, proto); if (sport == 0) { @@ -124,14 +117,15 @@ clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp) goto err; } raddr->sin_port = htons(sport); - mutex_lock(&rpcsoc_lock); /* pmap_getport is recursive */ + /* pmap_getport is recursive */ + (void) mutex_lock(&rpcsoc_lock); } /* Transform sockaddr_in to netbuf */ bindaddr.maxlen = bindaddr.len = __rpc_get_a_size(tinfo.addr); bindaddr.buf = (char *)raddr; - (void) __rpc_bindresvport(fd, (struct sockaddr_in *)NULL, &port, 0); + (void) __rpc_bindresvport(fd, NULL, &port, 0); cl = clnt_tli_create(fd, nconf, &bindaddr, prog, vers, sendsz, recvsz); if (cl) { @@ -139,12 +133,11 @@ clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp) /* * The fd should be closed while destroying the handle. */ - (void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, (char *)NULL); + (void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, NULL); *sockp = fd; } (void) freenetconfigent(nconf); - mutex_unlock(&rpcsoc_lock); - trace3(TR_clnt_com_create, 1, prog, vers); + (void) mutex_unlock(&rpcsoc_lock); return (cl); } goto err; @@ -158,91 +151,50 @@ err: if (madefd == TRUE) (void) t_close(fd); (void) freenetconfigent(nconf); if (locked == TRUE) - mutex_unlock(&rpcsoc_lock); - trace3(TR_clnt_com_create, 1, prog, vers); - return ((CLIENT *)NULL); + (void) mutex_unlock(&rpcsoc_lock); + return (NULL); } CLIENT * -clntudp_bufcreate(raddr, prog, vers, wait, sockp, sendsz, recvsz) - struct sockaddr_in *raddr; - rpcprog_t prog; - rpcvers_t vers; - struct timeval wait; - int *sockp; - uint_t sendsz; - uint_t recvsz; +clntudp_bufcreate(struct sockaddr_in *raddr, rpcprog_t prog, rpcvers_t vers, + struct timeval wait, int *sockp, uint_t sendsz, uint_t recvsz) { CLIENT *cl; - trace5(TR_clntudp_bufcreate, 0, prog, vers, sendsz, recvsz); cl = clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, "udp"); - if (cl == (CLIENT *)NULL) { - trace3(TR_clntudp_bufcreate, 1, prog, vers); - return ((CLIENT *)NULL); - } + if (cl == NULL) + return (NULL); (void) CLNT_CONTROL(cl, CLSET_RETRY_TIMEOUT, (char *)&wait); - trace3(TR_clntudp_bufcreate, 1, prog, vers); return (cl); } CLIENT * -clntudp_create(raddr, program, version, wait, sockp) - struct sockaddr_in *raddr; - rpcprog_t program; - rpcvers_t version; - struct timeval wait; - int *sockp; +clntudp_create(struct sockaddr_in *raddr, rpcprog_t program, rpcvers_t version, + struct timeval wait, int *sockp) { - CLIENT *dummy; - - trace3(TR_clntudp_create, 0, program, version); - dummy = clntudp_bufcreate(raddr, program, version, wait, sockp, - UDPMSGSIZE, UDPMSGSIZE); - trace3(TR_clntudp_create, 1, program, version); - return (dummy); + return (clntudp_bufcreate(raddr, program, version, wait, sockp, + UDPMSGSIZE, UDPMSGSIZE)); } CLIENT * -clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz) - struct sockaddr_in *raddr; - rpcprog_t prog; - rpcvers_t vers; - int *sockp; - uint_t sendsz; - uint_t recvsz; +clnttcp_create(struct sockaddr_in *raddr, rpcprog_t prog, rpcvers_t vers, + int *sockp, uint_t sendsz, uint_t recvsz) { - CLIENT *dummy; - - trace5(TR_clnttcp_create, 0, prog, vers, sendsz, recvsz); - dummy = clnt_com_create(raddr, prog, vers, sockp, sendsz, - recvsz, "tcp"); - trace3(TR_clnttcp_create, 1, prog, vers); - return (dummy); + return (clnt_com_create(raddr, prog, vers, sockp, sendsz, + recvsz, "tcp")); } CLIENT * -clntraw_create(prog, vers) - rpcprog_t prog; - rpcvers_t vers; +clntraw_create(rpcprog_t prog, rpcvers_t vers) { - CLIENT *dummy; - - trace3(TR_clntraw_create, 0, prog, vers); - dummy = clnt_raw_create(prog, vers); - trace3(TR_clntraw_create, 1, prog, vers); - return (dummy); + return (clnt_raw_create(prog, vers)); } /* * A common server create routine */ static SVCXPRT * -svc_com_create(fd, sendsize, recvsize, netid) - int fd; - uint_t sendsize; - uint_t recvsize; - char *netid; +svc_com_create(int fd, uint_t sendsize, uint_t recvsize, char *netid) { struct netconfig *nconf; SVCXPRT *svc; @@ -250,14 +202,12 @@ svc_com_create(fd, sendsize, recvsize, netid) int port; int res; - trace4(TR_svc_com_create, 0, fd, sendsize, recvsize); if ((nconf = __rpc_getconfip(netid)) == NULL) { (void) syslog(LOG_ERR, "Could not get %s transport", netid); - trace2(TR_svc_com_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } if (fd == RPC_ANYSOCK) { - fd = t_open(nconf->nc_device, O_RDWR, (struct t_info *)NULL); + fd = t_open(nconf->nc_device, O_RDWR, NULL); if (fd == -1) { char errorstr[100]; @@ -267,93 +217,56 @@ svc_com_create(fd, sendsize, recvsize, netid) "svc%s_create: could not open connection : %s", netid, errorstr); (void) freenetconfigent(nconf); - trace2(TR_svc_com_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } madefd = TRUE; } - res = __rpc_bindresvport(fd, (struct sockaddr_in *)NULL, &port, 8); - svc = svc_tli_create(fd, nconf, (struct t_bind *)NULL, + res = __rpc_bindresvport(fd, NULL, &port, 8); + svc = svc_tli_create(fd, nconf, NULL, sendsize, recvsize); (void) freenetconfigent(nconf); - if (svc == (SVCXPRT *)NULL) { + if (svc == NULL) { if (madefd) (void) t_close(fd); - trace2(TR_svc_com_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } - if (res == -1) { + if (res == -1) + /* LINTED pointer cast */ port = (((struct sockaddr_in *)svc->xp_ltaddr.buf)->sin_port); - } svc->xp_port = ntohs(port); - trace2(TR_svc_com_create, 1, fd); return (svc); } SVCXPRT * -svctcp_create(fd, sendsize, recvsize) - int fd; - uint_t sendsize; - uint_t recvsize; +svctcp_create(int fd, uint_t sendsize, uint_t recvsize) { - SVCXPRT *dummy; - - trace4(TR_svctcp_create, 0, fd, sendsize, recvsize); - dummy = svc_com_create(fd, sendsize, recvsize, "tcp"); - trace4(TR_svctcp_create, 1, fd, sendsize, recvsize); - return (dummy); + return (svc_com_create(fd, sendsize, recvsize, "tcp")); } SVCXPRT * -svcudp_bufcreate(fd, sendsz, recvsz) - int fd; - uint_t sendsz, recvsz; +svcudp_bufcreate(int fd, uint_t sendsz, uint_t recvsz) { - SVCXPRT *dummy; - - trace4(TR_svcudp_bufcreate, 0, fd, sendsz, recvsz); - dummy = svc_com_create(fd, sendsz, recvsz, "udp"); - trace4(TR_svcudp_bufcreate, 1, fd, sendsz, recvsz); - return (dummy); + return (svc_com_create(fd, sendsz, recvsz, "udp")); } SVCXPRT * -svcfd_create(fd, sendsize, recvsize) - int fd; - uint_t sendsize; - uint_t recvsize; +svcfd_create(int fd, uint_t sendsize, uint_t recvsize) { - SVCXPRT *dummy; - - trace4(TR_svcfd_create, 0, fd, sendsize, recvsize); - dummy = svc_fd_create(fd, sendsize, recvsize); - trace4(TR_svcfd_create, 1, fd, sendsize, recvsize); - return (dummy); + return (svc_fd_create(fd, sendsize, recvsize)); } SVCXPRT * -svcudp_create(fd) - int fd; +svcudp_create(int fd) { - SVCXPRT *dummy; - - trace2(TR_svcudp_create, 0, fd); - dummy = svc_com_create(fd, UDPMSGSIZE, UDPMSGSIZE, "udp"); - trace2(TR_svcudp_create, 1, fd); - return (dummy); + return (svc_com_create(fd, UDPMSGSIZE, UDPMSGSIZE, "udp")); } SVCXPRT * -svcraw_create() +svcraw_create(void) { - SVCXPRT *dummy; - - trace1(TR_svcraw_create, 0); - dummy = svc_raw_create(); - trace1(TR_svcraw_create, 1); - return (dummy); + return (svc_raw_create()); } /* @@ -381,15 +294,12 @@ __rpc_bindresvport_ipv6(int fd, struct sockaddr *sin, int *portp, int qlen, #define ENDPORT (IPPORT_RESERVED - 1) #define NPORTS (ENDPORT - STARTPORT + 1) - trace3(TR_bindresvport, 0, fd, qlen); if (sin == 0 && fmly == 0) { errno = EINVAL; - trace2(TR_bindresvport, 1, fd); return (-1); } if (geteuid()) { errno = EACCES; - trace2(TR_bindresvport, 1, fd); return (-1); } if ((i = t_getstate(fd)) != T_UNBND) { @@ -397,7 +307,6 @@ __rpc_bindresvport_ipv6(int fd, struct sockaddr *sin, int *portp, int qlen, errno = EBADF; if (i != -1) errno = EISCONN; - trace2(TR_bindresvport, 1, fd); return (-1); } if (sin == 0) { @@ -405,33 +314,33 @@ __rpc_bindresvport_ipv6(int fd, struct sockaddr *sin, int *portp, int qlen, get_myaddress_ipv6(fmly, sin); } if (sin->sa_family == AF_INET) { + /* LINTED pointer cast */ sinport = &((struct sockaddr_in *)sin)->sin_port; } else if (sin->sa_family == AF_INET6) { + /* LINTED pointer cast */ sinport = &((struct sockaddr_in6 *)sin)->sin6_port; } else { errno = EPFNOSUPPORT; - trace2(TR_bindresvport, 1, fd); return (-1); } /* Transform sockaddr to netbuf */ if (t_getinfo(fd, &tinfo) == -1) { - trace2(TR_bindresvport, 1, fd); return (-1); } + /* LINTED pointer cast */ tres = (struct t_bind *)t_alloc(fd, T_BIND, T_ADDR); - if (tres == NULL) { - trace2(TR_bindresvport, 1, fd); + if (tres == NULL) return (-1); - } tbindstr.qlen = qlen; tbindstr.addr.buf = (char *)sin; tbindstr.addr.len = tbindstr.addr.maxlen = __rpc_get_a_size(tinfo.addr); + /* LINTED pointer cast */ sin = (struct sockaddr *)tbindstr.addr.buf; res = -1; - mutex_lock(&portnum_lock); + (void) mutex_lock(&portnum_lock); if (port == 0) port = (getpid() % NPORTS) + STARTPORT; for (i = 0; i < NPORTS; i++) { @@ -449,12 +358,11 @@ __rpc_bindresvport_ipv6(int fd, struct sockaddr *sin, int *portp, int qlen, } else if (t_errno != TSYSERR || errno != EADDRINUSE) break; } - mutex_unlock(&portnum_lock); + (void) mutex_unlock(&portnum_lock); if ((portp != NULL) && (res == 0)) *portp = *sinport; (void) t_free((char *)tres, T_BIND); - trace2(TR_bindresvport, 1, fd); return (res); } @@ -475,10 +383,10 @@ __rpc_bindresvport(int fd, struct sockaddr_in *sin, int *portp, int qlen) void get_myaddress_ipv6(char *fmly, struct sockaddr *addr) { - trace1(TR_get_myaddress, 0); if (fmly != 0 && strcmp(fmly, NC_INET6) == 0) { + /* LINTED pointer cast */ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)addr; - memset(sin6, 0, sizeof (*sin6)); + (void) memset(sin6, 0, sizeof (*sin6)); sin6->sin6_family = AF_INET6; sin6->sin6_port = htons(PMAPPORT); if (__can_use_af(AF_INET6)) { @@ -491,13 +399,13 @@ get_myaddress_ipv6(char *fmly, struct sockaddr *addr) IN6_INADDR_TO_V4MAPPED(&in4, &sin6->sin6_addr); } } else { + /* LINTED pointer cast */ struct sockaddr_in *sin = (struct sockaddr_in *)addr; - memset(sin, 0, sizeof (*sin)); + (void) memset(sin, 0, sizeof (*sin)); sin->sin_family = AF_INET; sin->sin_port = htons(PMAPPORT); sin->sin_addr.s_addr = INADDR_ANY; } - trace1(TR_get_myaddress, 1); } void @@ -520,7 +428,7 @@ getrpcport(char *host, rpcprog_t prognum, rpcvers_t versnum, if ((hp = gethostbyname(host)) == NULL) return (0); - memcpy((char *)&addr.sin_addr, hp->h_addr, hp->h_length); + (void) memcpy(&addr.sin_addr, hp->h_addr, hp->h_length); addr.sin_family = AF_INET; addr.sin_port = 0; return (pmap_getport(&addr, prognum, versnum, proto)); @@ -530,41 +438,22 @@ getrpcport(char *host, rpcprog_t prognum, rpcvers_t versnum, * For connectionless "udp" transport. Obsoleted by rpc_call(). */ int -callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out) - char *host; - rpcprog_t prognum; - rpcvers_t versnum; - rpcproc_t procnum; - xdrproc_t inproc, outproc; - char *in, *out; +callrpc(char *host, rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum, + xdrproc_t inproc, char *in, xdrproc_t outproc, char *out) { - int dummy; - - trace4(TR_callrpc, 0, prognum, versnum, procnum); - dummy = (int)rpc_call(host, prognum, versnum, procnum, inproc, - in, outproc, out, "udp"); - trace4(TR_callrpc, 1, prognum, versnum, procnum); - return (dummy); + return ((int)rpc_call(host, prognum, versnum, procnum, inproc, + in, outproc, out, "udp")); } /* * For connectionless kind of transport. Obsoleted by rpc_reg() */ int -registerrpc(prognum, versnum, procnum, progname, inproc, outproc) - rpcprog_t prognum; - rpcvers_t versnum; - rpcproc_t procnum; - char *(*progname)(); - xdrproc_t inproc, outproc; +registerrpc(rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum, + char *(*progname)(), xdrproc_t inproc, xdrproc_t outproc) { - int dummy; - - trace4(TR_registerrpc, 0, prognum, versnum, procnum); - dummy = rpc_reg(prognum, versnum, procnum, progname, inproc, - outproc, "udp"); - trace4(TR_registerrpc, 1, prognum, versnum, procnum); - return (dummy); + return (rpc_reg(prognum, versnum, procnum, progname, inproc, + outproc, "udp")); } /* @@ -578,57 +467,44 @@ static resultproc_t clnt_broadcast_result_main; * Need to translate the netbuf address into sockaddr_in address. * Dont care about netid here. */ +/* ARGSUSED2 */ static bool_t -rpc_wrap_bcast(resultp, addr, nconf) - char *resultp; /* results of the call */ - struct netbuf *addr; /* address of the guy who responded */ - struct netconfig *nconf; /* Netconf of the transport */ +rpc_wrap_bcast(char *resultp, struct netbuf *addr, struct netconfig *nconf) { - bool_t dummy; resultproc_t clnt_broadcast_result; - trace1(TR_rpc_wrap_bcast, 0); clnt_broadcast_result = thr_main()? clnt_broadcast_result_main : (resultproc_t)pthread_getspecific(clnt_broadcast_key); - dummy = (*clnt_broadcast_result)(resultp, - (struct sockaddr_in *)addr->buf); - trace1(TR_rpc_wrap_bcast, 1); - return (dummy); + return ((*clnt_broadcast_result)(resultp, + /* LINTED pointer cast */ + (struct sockaddr_in *)addr->buf)); } /* * Broadcasts on UDP transport. Obsoleted by rpc_broadcast(). */ enum clnt_stat -clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult) - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - rpcproc_t proc; /* procedure number */ - xdrproc_t xargs; /* xdr routine for args */ - caddr_t argsp; /* pointer to args */ - xdrproc_t xresults; /* xdr routine for results */ - caddr_t resultsp; /* pointer to results */ - resultproc_t eachresult; /* call with each result obtained */ +clnt_broadcast(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc, xdrproc_t xargs, + caddr_t argsp, xdrproc_t xresults, + caddr_t resultsp, resultproc_t eachresult) { - enum clnt_stat dummy; extern mutex_t tsd_lock; - trace4(TR_clnt_broadcast, 0, prog, vers, proc); - if (thr_main()) + if (thr_main()) { clnt_broadcast_result_main = eachresult; - else { + } else { if (clnt_broadcast_key == 0) { - mutex_lock(&tsd_lock); + (void) mutex_lock(&tsd_lock); if (clnt_broadcast_key == 0) - pthread_key_create(&clnt_broadcast_key, NULL); - mutex_unlock(&tsd_lock); + (void) pthread_key_create(&clnt_broadcast_key, + NULL); + (void) mutex_unlock(&tsd_lock); } - pthread_setspecific(clnt_broadcast_key, (void *) eachresult); + (void) pthread_setspecific(clnt_broadcast_key, + (void *)eachresult); } - dummy = rpc_broadcast(prog, vers, proc, xargs, argsp, xresults, - resultsp, (resultproc_t)rpc_wrap_bcast, "udp"); - trace4(TR_clnt_broadcast, 1, prog, vers, proc); - return (dummy); + return (rpc_broadcast(prog, vers, proc, xargs, argsp, xresults, + resultsp, (resultproc_t)rpc_wrap_bcast, "udp")); } /* @@ -636,16 +512,11 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult) * authdes_seccreate(). */ AUTH * -authdes_create(servername, window, syncaddr, ckey) - char *servername; /* network name of server */ - uint_t window; /* time to live */ - struct sockaddr_in *syncaddr; /* optional hostaddr to sync with */ - des_block *ckey; /* optional conversation key to use */ +authdes_create(char *servername, uint_t window, struct sockaddr_in *syncaddr, + des_block *ckey) { char *hostname = NULL; - AUTH *dummy; - trace2(TR_authdes_create, 0, window); if (syncaddr) { /* * Change addr to hostname, because that is the way @@ -680,13 +551,9 @@ authdes_create(servername, window, syncaddr, ckey) nauth = authdes_seccreate(servername, window, hostname, ckey); (void) netdir_free((char *)hlist, ND_HOSTSERVLIST); (void) freenetconfigent(nconf); - trace2(TR_authdes_create, 1, window); return (nauth); } fallback: - dummy = authdes_seccreate(servername, window, hostname, ckey); - trace2(TR_authdes_create, 1, window); - return (dummy); + return (authdes_seccreate(servername, window, hostname, ckey)); } - #endif /* PORTMAP */ diff --git a/usr/src/lib/libnsl/rpc/rpc_td.c b/usr/src/lib/libnsl/rpc/rpc_td.c index 63dace7e79..f1d542582e 100644 --- a/usr/src/lib/libnsl/rpc/rpc_td.c +++ b/usr/src/lib/libnsl/rpc/rpc_td.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -26,15 +27,10 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)rpc_td.c 1.32 89/03/16 Copyr 1988 Sun Micro"; -#endif - #include "mt.h" #include "rpc_mt.h" #include <stdio.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <errno.h> #include <tiuser.h> #include <string.h> @@ -45,8 +41,7 @@ static char sccsid[] = "@(#)rpc_td.c 1.32 89/03/16 Copyr 1988 Sun Micro"; #define MAXOPTSIZE 64 int -__td_setnodelay(fd) - int fd; +__td_setnodelay(int fd) { int rval = 0; static mutex_t td_opt_lock = DEFAULTMUTEX; @@ -56,24 +51,23 @@ __td_setnodelay(fd) /* VARIABLES PROTECTED BY td_opt_lock: t_optreq, t_optret */ - trace2(TR__td_setnodelay, 0, fd); - if ((state = t_getstate(fd)) == -1) return (-1); - mutex_lock(&td_opt_lock); + (void) mutex_lock(&td_opt_lock); if ((state == T_IDLE) && (t_optreq.flags != T_NEGOTIATE)) { int i = 1; struct opthdr *opt; t_optreq.flags = T_NEGOTIATE; t_optreq.opt.maxlen = MAXOPTSIZE; - t_optreq.opt.buf = (char *)malloc(MAXOPTSIZE); + t_optreq.opt.buf = malloc(MAXOPTSIZE); if (t_optreq.opt.buf == NULL) { - mutex_unlock(&td_opt_lock); + (void) mutex_unlock(&td_opt_lock); t_errno = TSYSERR; return (-1); } + /* LINTED pointer cast */ opt = (struct opthdr *)(t_optreq.opt.buf); opt->name = TCP_NODELAY; opt->len = 4; @@ -85,9 +79,9 @@ __td_setnodelay(fd) t_optret.opt.maxlen = MAXOPTSIZE; t_optret.opt.len = 0; - t_optret.opt.buf = (char *)malloc(MAXOPTSIZE); + t_optret.opt.buf = malloc(MAXOPTSIZE); if (t_optret.opt.buf == NULL) { - mutex_unlock(&td_opt_lock); + (void) mutex_unlock(&td_opt_lock); free(t_optreq.opt.buf); t_errno = TSYSERR; return (-1); @@ -97,7 +91,6 @@ __td_setnodelay(fd) if (state == T_IDLE) rval = t_optmgmt(fd, &t_optreq, &t_optret); - mutex_unlock(&td_opt_lock); - trace2(TR__td_setnodelay, 1, fd); + (void) mutex_unlock(&td_opt_lock); return (rval); } diff --git a/usr/src/lib/libnsl/rpc/rpcb_clnt.c b/usr/src/lib/libnsl/rpc/rpcb_clnt.c index b9074b87b6..451bbb4c1c 100644 --- a/usr/src/lib/libnsl/rpc/rpcb_clnt.c +++ b/usr/src/lib/libnsl/rpc/rpcb_clnt.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -36,14 +37,12 @@ /* * rpcb_clnt.c * interface to rpcbind rpc service. - * */ #include "mt.h" #include "rpc_mt.h" #include <assert.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/rpcb_prot.h> #include <netconfig.h> #include <netdir.h> @@ -70,11 +69,7 @@ static struct timeval tottimeout = { 60, 0 }; static const struct timeval rmttimeout = { 3, 0 }; static struct timeval rpcbrmttime = { 15, 0 }; -#ifdef __STDC__ -bool_t xdr_wrapstring(XDR *, char **); -#else -extern bool_t xdr_wrapstring(); -#endif +extern bool_t xdr_wrapstring(XDR *, char **); static const char nullstring[] = "\000"; @@ -116,9 +111,7 @@ extern int authdes_cachesz; * These are private routines that may not be provided in future releases. */ bool_t -__rpc_control(request, info) - int request; - void *info; +__rpc_control(int request, void *info) { switch (request) { case CLCR_GET_RPCB_TIMEOUT: @@ -170,14 +163,12 @@ extern rwlock_t rpcbaddr_cache_lock; */ static struct address_cache * -check_cache(host, netid) - char *host, *netid; +check_cache(char *host, char *netid) { struct address_cache *cptr; /* READ LOCK HELD ON ENTRY: rpcbaddr_cache_lock */ - trace1(TR_check_cache, 0); assert(RW_READ_HELD(&rpcbaddr_cache_lock)); for (cptr = front; cptr != NULL; cptr = cptr->ac_next) { if ((strcmp(cptr->ac_host, host) == 0) && @@ -187,22 +178,18 @@ check_cache(host, netid) fprintf(stderr, "Found cache entry for %s: %s\n", host, netid); #endif - trace1(TR_check_cache, 1); return (cptr); } } - trace1(TR_check_cache, 1); - return ((struct address_cache *)NULL); + return (NULL); } static void -delete_cache(addr) - struct netbuf *addr; +delete_cache(struct netbuf *addr) { struct address_cache *cptr, *prevptr = NULL; /* WRITE LOCK HELD ON ENTRY: rpcbaddr_cache_lock */ - trace1(TR_delete_cache, 0); assert(RW_WRITE_HELD(&rpcbaddr_cache_lock)); for (cptr = front; cptr != NULL; cptr = cptr->ac_next) { if (!memcmp(cptr->ac_taddr->buf, addr->buf, addr->len)) { @@ -222,19 +209,14 @@ delete_cache(addr) } prevptr = cptr; } - trace1(TR_delete_cache, 1); } static void -add_cache(host, netid, taddr, uaddr) - char *host, *netid, *uaddr; - struct netbuf *taddr; +add_cache(char *host, char *netid, struct netbuf *taddr, char *uaddr) { struct address_cache *ad_cache, *cptr, *prevptr; - trace1(TR_add_cache, 0); - ad_cache = (struct address_cache *) - malloc(sizeof (struct address_cache)); + ad_cache = malloc(sizeof (struct address_cache)); if (!ad_cache) { goto memerr; } @@ -242,26 +224,26 @@ add_cache(host, netid, taddr, uaddr) ad_cache->ac_host = strdup(host); ad_cache->ac_netid = strdup(netid); ad_cache->ac_uaddr = uaddr ? strdup(uaddr) : NULL; - ad_cache->ac_taddr = (struct netbuf *)malloc(sizeof (struct netbuf)); + ad_cache->ac_taddr = malloc(sizeof (struct netbuf)); if (!ad_cache->ac_host || !ad_cache->ac_netid || !ad_cache->ac_taddr || (uaddr && !ad_cache->ac_uaddr)) { goto memerr1; } ad_cache->ac_taddr->len = ad_cache->ac_taddr->maxlen = taddr->len; - ad_cache->ac_taddr->buf = (char *)malloc(taddr->len); + ad_cache->ac_taddr->buf = malloc(taddr->len); if (ad_cache->ac_taddr->buf == NULL) { goto memerr1; } - memcpy(ad_cache->ac_taddr->buf, taddr->buf, taddr->len); + (void) memcpy(ad_cache->ac_taddr->buf, taddr->buf, taddr->len); #ifdef ND_DEBUG - fprintf(stderr, "Added to cache: %s : %s\n", host, netid); + (void) fprintf(stderr, "Added to cache: %s : %s\n", host, netid); #endif /* VARIABLES PROTECTED BY rpcbaddr_cache_lock: cptr */ - rw_wrlock(&rpcbaddr_cache_lock); + (void) rw_wrlock(&rpcbaddr_cache_lock); if (cachesize < CACHESIZE) { ad_cache->ac_next = front; front = ad_cache; @@ -296,8 +278,7 @@ add_cache(host, netid, taddr, uaddr) } free(cptr); } - rw_unlock(&rpcbaddr_cache_lock); - trace1(TR_add_cache, 1); + (void) rw_unlock(&rpcbaddr_cache_lock); return; memerr1: if (ad_cache->ac_host) @@ -318,10 +299,7 @@ memerr: * rpcbind. Returns NULL on error and free's everything. */ static CLIENT * -getclnthandle(host, nconf, targaddr) - char *host; - struct netconfig *nconf; - char **targaddr; +getclnthandle(char *host, struct netconfig *nconf, char **targaddr) { return (_getclnthandle_timed(host, nconf, targaddr, NULL)); } @@ -333,11 +311,8 @@ getclnthandle(host, nconf, targaddr) * If tp is NULL, use default timeout to get a client handle. */ static CLIENT * -_getclnthandle_timed(host, nconf, targaddr, tp) - char *host; - struct netconfig *nconf; - char **targaddr; - struct timeval *tp; +_getclnthandle_timed(char *host, struct netconfig *nconf, char **targaddr, + struct timeval *tp) { CLIENT *client = NULL; struct netbuf *addr; @@ -351,10 +326,9 @@ _getclnthandle_timed(host, nconf, targaddr, tp) /* VARIABLES PROTECTED BY rpcbaddr_cache_lock: ad_cache */ - trace1(TR_getclnthandle_timed, 0); /* Get the address of the rpcbind. Check cache first */ addr_to_delete.len = 0; - rw_rdlock(&rpcbaddr_cache_lock); + (void) rw_rdlock(&rpcbaddr_cache_lock); ad_cache = check_cache(host, nconf->nc_netid); if (ad_cache != NULL) { addr = ad_cache->ac_taddr; @@ -375,42 +349,38 @@ _getclnthandle_timed(host, nconf, targaddr, tp) "failed."); rpc_createerr.cf_stat = RPC_SYSTEMERROR; - rw_unlock(&rpcbaddr_cache_lock); - trace1(TR_getclnthandle_timed, - 1); - return ((CLIENT *)NULL); + (void) rw_unlock( + &rpcbaddr_cache_lock); + return (NULL); } - } - else + } else { *targaddr = NULL; + } } - rw_unlock(&rpcbaddr_cache_lock); - trace1(TR_getclnthandle_timed, 1); + (void) rw_unlock(&rpcbaddr_cache_lock); return (client); - } else { - if (rpc_createerr.cf_stat == RPC_SYSTEMERROR) { - rw_unlock(&rpcbaddr_cache_lock); - trace1(TR_getclnthandle_timed, 1); - return ((CLIENT *)NULL); - } + } + if (rpc_createerr.cf_stat == RPC_SYSTEMERROR) { + (void) rw_unlock(&rpcbaddr_cache_lock); + return (NULL); } addr_to_delete.len = addr->len; - addr_to_delete.buf = (char *)malloc(addr->len); + addr_to_delete.buf = malloc(addr->len); if (addr_to_delete.buf == NULL) { addr_to_delete.len = 0; } else { - memcpy(addr_to_delete.buf, addr->buf, addr->len); + (void) memcpy(addr_to_delete.buf, addr->buf, addr->len); } } - rw_unlock(&rpcbaddr_cache_lock); + (void) rw_unlock(&rpcbaddr_cache_lock); if (addr_to_delete.len != 0) { /* * Assume this may be due to cache data being * outdated */ - rw_wrlock(&rpcbaddr_cache_lock); + (void) rw_wrlock(&rpcbaddr_cache_lock); delete_cache(&addr_to_delete); - rw_unlock(&rpcbaddr_cache_lock); + (void) rw_unlock(&rpcbaddr_cache_lock); free(addr_to_delete.buf); } rpcbind_hs.h_host = host; @@ -426,8 +396,7 @@ _getclnthandle_timed(host, nconf, targaddr, tp) rpc_createerr.cf_stat = RPC_UNKNOWNHOST; else rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; - trace1(TR_getclnthandle_timed, 1); - return ((CLIENT *)NULL); + return (NULL); } /* XXX nas should perhaps be cached for better performance */ @@ -456,7 +425,7 @@ _getclnthandle_timed(host, nconf, targaddr, tp) break; } #ifdef ND_DEBUG - if (! client) { + if (!client) { clnt_pcreateerror("rpcbind clnt interface"); } #endif @@ -469,7 +438,6 @@ _getclnthandle_timed(host, nconf, targaddr, tp) } } netdir_free((char *)nas, ND_ADDRLIST); - trace1(TR_getclnthandle_timed, 1); return (client); } @@ -478,22 +446,20 @@ _getclnthandle_timed(host, nconf, targaddr, tp) * rpcbind. Returns NULL on error and free's everything. */ static CLIENT * -local_rpcb() +local_rpcb(void) { - CLIENT *client; static struct netconfig *loopnconf; static char *hostname; extern mutex_t loopnconf_lock; /* VARIABLES PROTECTED BY loopnconf_lock: loopnconf */ - trace1(TR_local_rpcb, 0); - mutex_lock(&loopnconf_lock); + (void) mutex_lock(&loopnconf_lock); if (loopnconf == NULL) { struct utsname utsname; struct netconfig *nconf, *tmpnconf = NULL; void *nc_handle; - if (hostname == (char *)NULL) { + if (hostname == NULL) { #if defined(__i386) && !defined(__amd64) if ((_nuname(&utsname) == -1) || #else @@ -502,17 +468,15 @@ local_rpcb() ((hostname = strdup(utsname.nodename)) == NULL)) { syslog(LOG_ERR, "local_rpcb : strdup failed."); rpc_createerr.cf_stat = RPC_UNKNOWNHOST; - mutex_unlock(&loopnconf_lock); - trace1(TR_local_rpcb, 1); - return ((CLIENT *) NULL); + (void) mutex_unlock(&loopnconf_lock); + return (NULL); } } nc_handle = setnetconfig(); if (nc_handle == NULL) { /* fails to open netconfig file */ rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - mutex_unlock(&loopnconf_lock); - trace1(TR_local_rpcb, 1); + (void) mutex_unlock(&loopnconf_lock); return (NULL); } while (nconf = getnetconfig(nc_handle)) { @@ -524,18 +488,15 @@ local_rpcb() } if (tmpnconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - mutex_unlock(&loopnconf_lock); - trace1(TR_local_rpcb, 1); + (void) mutex_unlock(&loopnconf_lock); return (NULL); } loopnconf = getnetconfigent(tmpnconf->nc_netid); /* loopnconf is never freed */ - endnetconfig(nc_handle); + (void) endnetconfig(nc_handle); } - mutex_unlock(&loopnconf_lock); - client = getclnthandle(hostname, loopnconf, (char **)NULL); - trace1(TR_local_rpcb, 1); - return (client); + (void) mutex_unlock(&loopnconf_lock); + return (getclnthandle(hostname, loopnconf, NULL)); } /* @@ -543,40 +504,31 @@ local_rpcb() * Calls the rpcbind service to do the mapping. */ bool_t -rpcb_set(program, version, nconf, address) - rpcprog_t program; - rpcvers_t version; - const struct netconfig *nconf; /* Network structure of transport */ - const struct netbuf *address; /* Services netconfig address */ +rpcb_set(const rpcprog_t program, const rpcvers_t version, + const struct netconfig *nconf, const struct netbuf *address) { CLIENT *client; bool_t rslt = FALSE; RPCB parms; char uidbuf[32]; - trace3(TR_rpcb_set, 0, program, version); /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_set, 1, program, version); return (FALSE); } if (address == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace3(TR_rpcb_set, 1, program, version); return (FALSE); } client = local_rpcb(); - if (! client) { - trace3(TR_rpcb_set, 1, program, version); + if (!client) return (FALSE); - } - parms.r_addr = taddr2uaddr((struct netconfig *)nconf, (struct netbuf - *) address); /* convert to universal */ + parms.r_addr = taddr2uaddr((struct netconfig *)nconf, + (struct netbuf *)address); /* convert to universal */ if (!parms.r_addr) { rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; - trace3(TR_rpcb_set, 1, program, version); return (FALSE); /* no universal address */ } parms.r_prog = program; @@ -587,7 +539,7 @@ rpcb_set(program, version, nconf, address) * completeness. For non-unix platforms, perhaps some other * string or an empty string can be sent. */ - (void) sprintf(uidbuf, "%d", geteuid()); + (void) sprintf(uidbuf, "%d", (int)geteuid()); parms.r_owner = uidbuf; CLNT_CALL(client, RPCBPROC_SET, (xdrproc_t)xdr_rpcb, (char *)&parms, @@ -595,7 +547,6 @@ rpcb_set(program, version, nconf, address) CLNT_DESTROY(client); free(parms.r_addr); - trace3(TR_rpcb_set, 1, program, version); return (rslt); } @@ -606,22 +557,17 @@ rpcb_set(program, version, nconf, address) * only for the given transport. */ bool_t -rpcb_unset(program, version, nconf) - rpcprog_t program; - rpcvers_t version; - const struct netconfig *nconf; +rpcb_unset(const rpcprog_t program, const rpcvers_t version, + const struct netconfig *nconf) { CLIENT *client; bool_t rslt = FALSE; RPCB parms; char uidbuf[32]; - trace3(TR_rpcb_unset, 0, program, version); client = local_rpcb(); - if (! client) { - trace3(TR_rpcb_unset, 1, program, version); + if (!client) return (FALSE); - } parms.r_prog = program; parms.r_vers = version; @@ -630,14 +576,13 @@ rpcb_unset(program, version, nconf) else parms.r_netid = (char *)&nullstring[0]; /* unsets all */ parms.r_addr = (char *)&nullstring[0]; - (void) sprintf(uidbuf, "%d", geteuid()); + (void) sprintf(uidbuf, "%d", (int)geteuid()); parms.r_owner = uidbuf; CLNT_CALL(client, RPCBPROC_UNSET, (xdrproc_t)xdr_rpcb, (char *)&parms, (xdrproc_t)xdr_bool, (char *)&rslt, tottimeout); CLNT_DESTROY(client); - trace3(TR_rpcb_unset, 1, program, version); return (rslt); } @@ -645,15 +590,12 @@ rpcb_unset(program, version, nconf) * From the merged list, find the appropriate entry */ static struct netbuf * -got_entry(relp, nconf) - rpcb_entry_list_ptr relp; - struct netconfig *nconf; +got_entry(rpcb_entry_list_ptr relp, struct netconfig *nconf) { struct netbuf *na = NULL; rpcb_entry_list_ptr sp; rpcb_entry *rmap; - trace1(TR_got_entry, 0); for (sp = relp; sp != NULL; sp = sp->rpcb_entry_next) { rmap = &sp->rpcb_entry_map; if ((strcmp(nconf->nc_proto, rmap->r_nc_proto) == 0) && @@ -671,7 +613,6 @@ got_entry(relp, nconf) break; } } - trace1(TR_got_entry, 1); return (na); } @@ -680,7 +621,7 @@ got_entry(relp, nconf) * local transport. */ bool_t -__rpcbind_is_up() +__rpcbind_is_up(void) { struct utsname name; char uaddr[SYS_NMLN]; @@ -701,30 +642,31 @@ __rpcbind_is_up() return (TRUE); if (t_bind(fd, NULL, NULL) == -1) { - t_close(fd); + (void) t_close(fd); return (TRUE); } + /* LINTED pointer cast */ if ((sndcall = (struct t_call *)t_alloc(fd, T_CALL, 0)) == NULL) { - t_close(fd); + (void) t_close(fd); return (TRUE); } uaddr[0] = '\0'; - strcpy(uaddr, name.nodename); - strcat(uaddr, ".rpc"); + (void) strcpy(uaddr, name.nodename); + (void) strcat(uaddr, ".rpc"); if ((netconf = getnetconfigent("ticotsord")) == NULL) { - t_free((char *)sndcall, T_CALL); - t_close(fd); + (void) t_free((char *)sndcall, T_CALL); + (void) t_close(fd); return (FALSE); } addr = uaddr2taddr(netconf, uaddr); freenetconfigent(netconf); if (addr == NULL || addr->buf == NULL) { if (addr) - free((char *)addr); - t_free((char *)sndcall, T_CALL); - t_close(fd); + free(addr); + (void) t_free((char *)sndcall, T_CALL); + (void) t_close(fd); return (FALSE); } sndcall->addr.maxlen = addr->maxlen; @@ -738,10 +680,10 @@ __rpcbind_is_up() sndcall->addr.maxlen = sndcall->addr.len = 0; sndcall->addr.buf = NULL; - t_free((char *)sndcall, T_CALL); - free((char *)addr->buf); - free((char *)addr); - t_close(fd); + (void) t_free((char *)sndcall, T_CALL); + free(addr->buf); + free(addr); + (void) t_close(fd); return (res); } @@ -766,13 +708,8 @@ __rpcbind_is_up() * starts working properly. Also look under clnt_vc.c. */ struct netbuf * -__rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) - rpcprog_t program; - rpcvers_t version; - struct netconfig *nconf; - char *host; - CLIENT **clpp; - struct timeval *tp; +__rpcb_findaddr_timed(rpcprog_t program, rpcvers_t version, + struct netconfig *nconf, char *host, CLIENT **clpp, struct timeval *tp) { static bool_t check_rpcbind = TRUE; CLIENT *client = NULL; @@ -783,11 +720,9 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) struct netbuf *address = NULL; uint_t start_vers = RPCBVERS4; - trace3(TR_rpcb_findaddr, 0, program, version); /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_findaddr, 1, program, version); return (NULL); } @@ -817,7 +752,6 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) if ((handle = __rpc_setconf("udp")) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_findaddr, 1, program, version); return (NULL); } @@ -831,14 +765,12 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) * The mergeaddr in rpcbind can't handle * this. */ - while (1) { + for (;;) { if ((newnconf = __rpc_getconf(handle)) - == NULL) { + == NULL) { __rpc_endconf(handle); - rpc_createerr.cf_stat =\ + rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_findaddr, - 1, program, version); return (NULL); } /* @@ -848,7 +780,6 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) if (strcmp(newnconf->nc_protofmly, nconf->nc_protofmly) == NULL) break; - } client = _getclnthandle_timed(host, newnconf, @@ -858,10 +789,8 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) client = _getclnthandle_timed(host, nconf, &parms.r_addr, tp); } - if (client == (CLIENT *)NULL) { - trace3(TR_rpcb_findaddr, 1, program, version); + if (client == NULL) return (NULL); - } /* * Set version and retry timeout. @@ -892,10 +821,8 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) } port = htons(port); CLNT_CONTROL(client, CLGET_SVC_ADDR, (char *)&remote); - if (((address = (struct netbuf *) - malloc(sizeof (struct netbuf))) == NULL) || - ((address->buf = (char *) - malloc(remote.len)) == NULL)) { + if (((address = malloc(sizeof (struct netbuf))) == NULL) || + ((address->buf = malloc(remote.len)) == NULL)) { rpc_createerr.cf_stat = RPC_SYSTEMERROR; clnt_geterr(client, &rpc_createerr.cf_error); if (address) { @@ -904,9 +831,9 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) } goto error; } - memcpy(address->buf, remote.buf, remote.len); - memcpy((char *)&address->buf[sizeof (short)], - (char *)&port, sizeof (short)); + (void) memcpy(address->buf, remote.buf, remote.len); + (void) memcpy(&address->buf[sizeof (short)], &port, + sizeof (short)); address->len = address->maxlen = remote.len; goto done; } @@ -965,7 +892,7 @@ try_rpcbind: } __rpc_endconf(handle); } - if (client == (CLIENT *)NULL) + if (client == NULL) goto regular_rpcbind; /* Go the regular way */ } else { /* This is a UDP PORTMAP handle. Change to version 4 */ @@ -1073,13 +1000,14 @@ regular_rpcbind: #endif xdr_free((xdrproc_t)xdr_wrapstring, (char *)&ua); - if (! address) { + if (!address) { /* We don't know about your universal address */ rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; goto error; } goto done; - } else if (clnt_st == RPC_PROGVERSMISMATCH) { + } + if (clnt_st == RPC_PROGVERSMISMATCH) { struct rpc_err rpcerr; clnt_geterr(client, &rpcerr); @@ -1116,7 +1044,6 @@ done: } if (parms.r_addr) free(parms.r_addr); - trace3(TR_rpcb_findaddr, 1, program, version); return (address); } @@ -1130,32 +1057,24 @@ done: * Assuming that the address is all properly allocated */ int -rpcb_getaddr(program, version, nconf, address, host) - rpcprog_t program; - rpcvers_t version; - const struct netconfig *nconf; - struct netbuf *address; - const char *host; +rpcb_getaddr(const rpcprog_t program, const rpcvers_t version, + const struct netconfig *nconf, struct netbuf *address, const char *host) { struct netbuf *na; - trace3(TR_rpcb_getaddr, 0, program, version); if ((na = __rpcb_findaddr_timed(program, version, - (struct netconfig *)nconf, (char *)host, - (CLIENT **)NULL, (struct timeval *)NULL)) == NULL) + (struct netconfig *)nconf, (char *)host, NULL, NULL)) == NULL) return (FALSE); if (na->len > address->maxlen) { /* Too long address */ netdir_free((char *)na, ND_ADDR); rpc_createerr.cf_stat = RPC_FAILED; - trace3(TR_rpcb_getaddr, 1, program, version); return (FALSE); } - memcpy(address->buf, na->buf, (int)na->len); + (void) memcpy(address->buf, na->buf, (int)na->len); address->len = na->len; netdir_free((char *)na, ND_ADDR); - trace3(TR_rpcb_getaddr, 1, program, version); return (TRUE); } @@ -1167,22 +1086,17 @@ rpcb_getaddr(program, version, nconf, address, host) * It returns NULL on failure. */ rpcblist * -rpcb_getmaps(nconf, host) - const struct netconfig *nconf; - const char *host; +rpcb_getmaps(const struct netconfig *nconf, const char *host) { - rpcblist_ptr head = (rpcblist_ptr)NULL; + rpcblist_ptr head = NULL; CLIENT *client; enum clnt_stat clnt_st; int vers = 0; - trace1(TR_rpcb_getmaps, 0); client = getclnthandle((char *)host, - (struct netconfig *)nconf, (char **)NULL); - if (client == (CLIENT *)NULL) { - trace1(TR_rpcb_getmaps, 1); - return (head); - } + (struct netconfig *)nconf, NULL); + if (client == NULL) + return (NULL); clnt_st = CLNT_CALL(client, RPCBPROC_DUMP, (xdrproc_t)xdr_void, NULL, @@ -1205,7 +1119,7 @@ rpcb_getmaps(nconf, host) CLNT_CONTROL(client, CLSET_VERS, (char *)&vers); if (CLNT_CALL(client, RPCBPROC_DUMP, (xdrproc_t)xdr_void, - (char *)NULL, (xdrproc_t)xdr_rpcblist_ptr, + NULL, (xdrproc_t)xdr_rpcblist_ptr, (char *)&head, tottimeout) == RPC_SUCCESS) goto done; } @@ -1214,7 +1128,6 @@ rpcb_getmaps(nconf, host) done: CLNT_DESTROY(client); - trace1(TR_rpcb_getmaps, 1); return (head); } @@ -1226,17 +1139,10 @@ done: * programs to do a lookup and call in one step. */ enum clnt_stat -rpcb_rmtcall(nconf, host, prog, vers, proc, xdrargs, argsp, - xdrres, resp, tout, addr_ptr) - const struct netconfig *nconf; /* Netconfig structure */ - const char *host; /* Remote host name */ - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; /* Remote proc identifiers */ - xdrproc_t xdrargs, xdrres; /* XDR routines */ - caddr_t argsp, resp; /* Argument and Result */ - struct timeval tout; /* Timeout value for this call */ - struct netbuf *addr_ptr; /* Preallocated netbuf address */ +rpcb_rmtcall(const struct netconfig *nconf, const char *host, + const rpcprog_t prog, const rpcvers_t vers, const rpcproc_t proc, + const xdrproc_t xdrargs, const caddr_t argsp, const xdrproc_t xdrres, + const caddr_t resp, const struct timeval tout, struct netbuf *addr_ptr) { CLIENT *client; enum clnt_stat stat; @@ -1244,14 +1150,9 @@ rpcb_rmtcall(nconf, host, prog, vers, proc, xdrargs, argsp, struct r_rpcb_rmtcallres r; int rpcb_vers; - trace4(TR_rpcb_rmtcall, 0, prog, vers, proc); - - client = getclnthandle((char *)host, - (struct netconfig *)nconf, (char **)NULL); - if (client == (CLIENT *)NULL) { - trace4(TR_rpcb_rmtcall, 1, prog, vers, proc); + client = getclnthandle((char *)host, (struct netconfig *)nconf, NULL); + if (client == NULL) return (RPC_FAILED); - } CLNT_CONTROL(client, CLSET_RETRY_TIMEOUT, (char *)&rmttimeout); a.prog = prog; a.vers = vers; @@ -1271,7 +1172,7 @@ rpcb_rmtcall(nconf, host, prog, vers, proc, xdrargs, argsp, struct netbuf *na; na = uaddr2taddr((struct netconfig *)nconf, r.addr); - if (! na) { + if (!na) { stat = RPC_N2AXLATEFAILURE; ((struct netbuf *)addr_ptr)->len = 0; goto error; @@ -1283,20 +1184,19 @@ rpcb_rmtcall(nconf, host, prog, vers, proc, xdrargs, argsp, ((struct netbuf *)addr_ptr)->len = 0; goto error; } - memcpy(addr_ptr->buf, na->buf, (int)na->len); + (void) memcpy(addr_ptr->buf, na->buf, (int)na->len); ((struct netbuf *)addr_ptr)->len = na->len; netdir_free((char *)na, ND_ADDR); break; - } else if ((stat != RPC_PROGVERSMISMATCH) && - (stat != RPC_PROGUNAVAIL)) { - goto error; } + if ((stat != RPC_PROGVERSMISMATCH) && + (stat != RPC_PROGUNAVAIL)) + goto error; } error: CLNT_DESTROY(client); if (r.addr) xdr_free((xdrproc_t)xdr_wrapstring, (char *)&r.addr); - trace4(TR_rpcb_rmtcall, 1, prog, vers, proc); return (stat); } @@ -1305,9 +1205,7 @@ error: * Returns 1 if succeeds else 0. */ bool_t -rpcb_gettime(host, timep) - const char *host; - time_t *timep; +rpcb_gettime(const char *host, time_t *timep) { CLIENT *client = NULL; void *handle; @@ -1315,38 +1213,32 @@ rpcb_gettime(host, timep) int vers; enum clnt_stat st; - trace1(TR_rpcb_gettime, 0); - if ((host == NULL) || (host[0] == NULL)) { - time(timep); - trace1(TR_rpcb_gettime, 1); + (void) time(timep); return (TRUE); } if ((handle = __rpc_setconf("netpath")) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_rpcb_gettime, 1); return (FALSE); } rpc_createerr.cf_stat = RPC_SUCCESS; - while (client == (CLIENT *)NULL) { + while (client == NULL) { if ((nconf = __rpc_getconf(handle)) == NULL) { if (rpc_createerr.cf_stat == RPC_SUCCESS) rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; break; } - client = getclnthandle((char *)host, nconf, (char **)NULL); + client = getclnthandle((char *)host, nconf, NULL); if (client) break; } __rpc_endconf(handle); - if (client == (CLIENT *) NULL) { - trace1(TR_rpcb_gettime, 1); + if (client == NULL) return (FALSE); - } st = CLNT_CALL(client, RPCBPROC_GETTIME, - (xdrproc_t)xdr_void, (char *)NULL, + (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_time_t, (char *)timep, tottimeout); if ((st == RPC_PROGVERSMISMATCH) || (st == RPC_PROGUNAVAIL)) { @@ -1356,14 +1248,13 @@ rpcb_gettime(host, timep) vers = RPCBVERS; CLNT_CONTROL(client, CLSET_VERS, (char *)&vers); st = CLNT_CALL(client, RPCBPROC_GETTIME, - (xdrproc_t)xdr_void, (char *)NULL, + (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_time_t, (char *)timep, tottimeout); } } - trace1(TR_rpcb_gettime, 1); CLNT_DESTROY(client); - return (st == RPC_SUCCESS? TRUE: FALSE); + return (st == RPC_SUCCESS? TRUE : FALSE); } /* @@ -1371,37 +1262,28 @@ rpcb_gettime(host, timep) * really be called because local n2a libraries are always provided. */ char * -rpcb_taddr2uaddr(nconf, taddr) - struct netconfig *nconf; - struct netbuf *taddr; +rpcb_taddr2uaddr(struct netconfig *nconf, struct netbuf *taddr) { CLIENT *client; char *uaddr = NULL; - trace1(TR_rpcb_taddr2uaddr, 0); - /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_rpcb_taddr2uaddr, 1); return (NULL); } if (taddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace1(TR_rpcb_taddr2uaddr, 1); return (NULL); } client = local_rpcb(); - if (! client) { - trace1(TR_rpcb_taddr2uaddr, 1); + if (!client) return (NULL); - } CLNT_CALL(client, RPCBPROC_TADDR2UADDR, (xdrproc_t)xdr_netbuf, (char *)taddr, (xdrproc_t)xdr_wrapstring, (char *)&uaddr, tottimeout); CLNT_DESTROY(client); - trace1(TR_rpcb_taddr2uaddr, 1); return (uaddr); } @@ -1410,36 +1292,27 @@ rpcb_taddr2uaddr(nconf, taddr) * really be called because local n2a libraries are always provided. */ struct netbuf * -rpcb_uaddr2taddr(nconf, uaddr) - struct netconfig *nconf; - char *uaddr; +rpcb_uaddr2taddr(struct netconfig *nconf, char *uaddr) { CLIENT *client; struct netbuf *taddr; - trace1(TR_rpcb_uaddr2taddr, 0); - /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_rpcb_uaddr2taddr, 1); return (NULL); } if (uaddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace1(TR_rpcb_uaddr2taddr, 1); return (NULL); } client = local_rpcb(); - if (! client) { - trace1(TR_rpcb_uaddr2taddr, 1); + if (!client) return (NULL); - } - taddr = (struct netbuf *)calloc(1, sizeof (struct netbuf)); + taddr = calloc(1, sizeof (struct netbuf)); if (taddr == NULL) { CLNT_DESTROY(client); - trace1(TR_rpcb_uaddr2taddr, 1); return (NULL); } @@ -1450,6 +1323,5 @@ rpcb_uaddr2taddr(nconf, uaddr) taddr = NULL; } CLNT_DESTROY(client); - trace1(TR_rpcb_uaddr2taddr, 1); return (taddr); } diff --git a/usr/src/lib/libnsl/rpc/rpcb_prot.c b/usr/src/lib/libnsl/rpc/rpcb_prot.c index b5d2cb4fc0..777823e930 100644 --- a/usr/src/lib/libnsl/rpc/rpcb_prot.c +++ b/usr/src/lib/libnsl/rpc/rpcb_prot.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1991 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -35,43 +37,26 @@ /* * rpcb_prot.c * XDR routines for the rpcbinder version 3. - * */ #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/types.h> #include <rpc/xdr.h> #include <rpc/rpcb_prot.h> bool_t -xdr_rpcb(xdrs, objp) - XDR *xdrs; - RPCB *objp; +xdr_rpcb(XDR *xdrs, RPCB *objp) { - trace1(TR_xdr_rpcb, 0); - if (!xdr_u_int(xdrs, (u_int *)&objp->r_prog)) { - trace1(TR_xdr_rpcb, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->r_prog)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->r_vers)) { - trace1(TR_xdr_rpcb, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->r_vers)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->r_netid, ~0)) { + if (!xdr_string(xdrs, &objp->r_netid, ~0)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->r_addr, ~0)) { - trace1(TR_xdr_rpcb, 1); - return (FALSE); - } - if (!xdr_string(xdrs, &objp->r_owner, ~0)) { - trace1(TR_xdr_rpcb, 1); + if (!xdr_string(xdrs, &objp->r_addr, ~0)) return (FALSE); - } - trace1(TR_xdr_rpcb, 1); - return (TRUE); + return (xdr_string(xdrs, &objp->r_owner, ~0)); } /* @@ -98,9 +83,7 @@ xdr_rpcb(xdrs, objp) */ bool_t -xdr_rpcblist_ptr(xdrs, rp) - register XDR *xdrs; - register rpcblist_ptr *rp; +xdr_rpcblist_ptr(XDR *xdrs, rpcblist_ptr *rp) { /* * more_elements is pre-computed in case the direction is @@ -108,22 +91,16 @@ xdr_rpcblist_ptr(xdrs, rp) * xdr_bool when the direction is XDR_DECODE. */ bool_t more_elements; - register int freeing = (xdrs->x_op == XDR_FREE); + int freeing = (xdrs->x_op == XDR_FREE); rpcblist_ptr next; rpcblist_ptr next_copy; - trace1(TR_xdr_rpcblist_ptr, 0); - /*CONSTANTCONDITION*/ - while (TRUE) { + for (;;) { more_elements = (bool_t)(*rp != NULL); - if (! xdr_bool(xdrs, &more_elements)) { - trace1(TR_xdr_rpcblist_ptr, 1); + if (!xdr_bool(xdrs, &more_elements)) return (FALSE); - } - if (! more_elements) { - trace1(TR_xdr_rpcblist_ptr, 1); + if (!more_elements) return (TRUE); /* we are done */ - } /* * the unfortunate side effect of non-recursion is that in * the case of freeing we must remember the next object @@ -131,11 +108,9 @@ xdr_rpcblist_ptr(xdrs, rp) */ if (freeing) next = (*rp)->rpcb_next; - if (! xdr_reference(xdrs, (caddr_t *)rp, - (u_int) sizeof (rpcblist), (xdrproc_t)xdr_rpcb)) { - trace1(TR_xdr_rpcblist_ptr, 1); + if (!xdr_reference(xdrs, (caddr_t *)rp, + (uint_t)sizeof (rpcblist), (xdrproc_t)xdr_rpcb)) return (FALSE); - } if (freeing) { next_copy = next; rp = &next_copy; @@ -156,51 +131,28 @@ xdr_rpcblist_ptr(xdrs, rp) * functionality to xdr_rpcblist_ptr(). */ bool_t -xdr_rpcblist(xdrs, rp) - register XDR *xdrs; - register RPCBLIST **rp; +xdr_rpcblist(XDR *xdrs, RPCBLIST **rp) { - bool_t dummy; - - dummy = xdr_rpcblist_ptr(xdrs, (rpcblist_ptr *)rp); - return (dummy); + return (xdr_rpcblist_ptr(xdrs, (rpcblist_ptr *)rp)); } bool_t -xdr_rpcb_entry(xdrs, objp) - XDR *xdrs; - rpcb_entry *objp; +xdr_rpcb_entry(XDR *xdrs, rpcb_entry *objp) { - trace1(TR_xdr_rpcb_entry, 0); - if (!xdr_string(xdrs, &objp->r_maddr, ~0)) { - trace1(TR_xdr_rpcb_entry, 1); + if (!xdr_string(xdrs, &objp->r_maddr, ~0)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->r_nc_netid, ~0)) { - trace1(TR_xdr_rpcb_entry, 1); + if (!xdr_string(xdrs, &objp->r_nc_netid, ~0)) return (FALSE); - } - if (!xdr_u_int(xdrs, &objp->r_nc_semantics)) { - trace1(TR_xdr_rpcb_entry, 1); + if (!xdr_u_int(xdrs, &objp->r_nc_semantics)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->r_nc_protofmly, ~0)) { - trace1(TR_xdr_rpcb_entry, 1); + if (!xdr_string(xdrs, &objp->r_nc_protofmly, ~0)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->r_nc_proto, ~0)) { - trace1(TR_xdr_rpcb_entry, 1); - return (FALSE); - } - trace1(TR_xdr_rpcb_entry, 1); - return (TRUE); + return (xdr_string(xdrs, &objp->r_nc_proto, ~0)); } bool_t -xdr_rpcb_entry_list_ptr(xdrs, rp) - register XDR *xdrs; - register rpcb_entry_list_ptr *rp; +xdr_rpcb_entry_list_ptr(XDR *xdrs, rpcb_entry_list_ptr *rp) { /* * more_elements is pre-computed in case the direction is @@ -208,22 +160,16 @@ xdr_rpcb_entry_list_ptr(xdrs, rp) * xdr_bool when the direction is XDR_DECODE. */ bool_t more_elements; - register int freeing = (xdrs->x_op == XDR_FREE); + int freeing = (xdrs->x_op == XDR_FREE); rpcb_entry_list_ptr next; rpcb_entry_list_ptr next_copy; - trace1(TR_xdr_rpcb_entry_list_ptr, 0); - /*CONSTANTCONDITION*/ - while (TRUE) { + for (;;) { more_elements = (bool_t)(*rp != NULL); - if (! xdr_bool(xdrs, &more_elements)) { - trace1(TR_xdr_rpcb_entry_list, 1); + if (!xdr_bool(xdrs, &more_elements)) return (FALSE); - } - if (! more_elements) { - trace1(TR_xdr_rpcb_entry_list, 1); + if (!more_elements) return (TRUE); /* we are done */ - } /* * the unfortunate side effect of non-recursion is that in * the case of freeing we must remember the next object @@ -231,12 +177,10 @@ xdr_rpcb_entry_list_ptr(xdrs, rp) */ if (freeing) next = (*rp)->rpcb_entry_next; - if (! xdr_reference(xdrs, (caddr_t *)rp, - (u_int) sizeof (rpcb_entry_list), - (xdrproc_t)xdr_rpcb_entry)) { - trace1(TR_xdr_rpcb_entry_list, 1); + if (!xdr_reference(xdrs, (caddr_t *)rp, + (uint_t)sizeof (rpcb_entry_list), + (xdrproc_t)xdr_rpcb_entry)) return (FALSE); - } if (freeing) { next_copy = next; rp = &next_copy; @@ -257,28 +201,19 @@ xdr_rpcb_entry_list_ptr(xdrs, rp) * written for XDR_ENCODE direction only */ bool_t -xdr_rpcb_rmtcallargs(xdrs, objp) - XDR *xdrs; - struct r_rpcb_rmtcallargs *objp; +xdr_rpcb_rmtcallargs(XDR *xdrs, struct r_rpcb_rmtcallargs *objp) { - u_int lenposition, argposition, position; - register rpc_inline_t *buf; + uint_t lenposition, argposition, position; + rpc_inline_t *buf; - trace1(TR_xdr_rpcb_rmtcallargs, 0); buf = XDR_INLINE(xdrs, 3 * BYTES_PER_XDR_UNIT); if (buf == NULL) { - if (!xdr_u_int(xdrs, (u_int *)&objp->prog)) { - trace1(TR_xdr_rpcb_rmtcallargs, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->vers)) { - trace1(TR_xdr_rpcb_rmtcallargs, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) return (FALSE); - } - if (!xdr_u_int(xdrs, (u_int *)&objp->proc)) { - trace1(TR_xdr_rpcb_rmtcallargs, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) return (FALSE); - } } else { IXDR_PUT_U_INT32(buf, objp->prog); IXDR_PUT_U_INT32(buf, objp->vers); @@ -289,24 +224,17 @@ xdr_rpcb_rmtcallargs(xdrs, objp) * All the jugglery for just getting the size of the arguments */ lenposition = XDR_GETPOS(xdrs); - if (! xdr_u_int(xdrs, &(objp->args.args_len))) { - trace1(TR_xdr_rpcb_rmtcallargs, 1); + if (!xdr_u_int(xdrs, &(objp->args.args_len))) return (FALSE); - } argposition = XDR_GETPOS(xdrs); - if (! (*objp->xdr_args)(xdrs, objp->args.args_val)) { - trace1(TR_xdr_rpcb_rmtcallargs, 1); + if (!(*objp->xdr_args)(xdrs, objp->args.args_val)) return (FALSE); - } position = XDR_GETPOS(xdrs); - objp->args.args_len = (u_int)position - (u_int)argposition; + objp->args.args_len = (uint_t)position - (uint_t)argposition; XDR_SETPOS(xdrs, lenposition); - if (! xdr_u_int(xdrs, &(objp->args.args_len))) { - trace1(TR_xdr_rpcb_rmtcallargs, 1); + if (!xdr_u_int(xdrs, &(objp->args.args_len))) return (FALSE); - } XDR_SETPOS(xdrs, position); - trace1(TR_xdr_rpcb_rmtcallargs, 1); return (TRUE); } @@ -315,40 +243,20 @@ xdr_rpcb_rmtcallargs(xdrs, objp) * written for XDR_DECODE direction only */ bool_t -xdr_rpcb_rmtcallres(xdrs, objp) - XDR *xdrs; - struct r_rpcb_rmtcallres *objp; +xdr_rpcb_rmtcallres(XDR *xdrs, struct r_rpcb_rmtcallres *objp) { - bool_t dummy; - - trace1(TR_xdr_rpcb_rmtcallres, 0); - if (!xdr_string(xdrs, &objp->addr, ~0)) { - trace1(TR_xdr_rpcb_rmtcallres, 1); + if (!xdr_string(xdrs, &objp->addr, ~0)) return (FALSE); - } - if (!xdr_u_int(xdrs, &objp->results.results_len)) { - trace1(TR_xdr_rpcb_rmtcallres, 1); + if (!xdr_u_int(xdrs, &objp->results.results_len)) return (FALSE); - } - dummy = (*(objp->xdr_res))(xdrs, objp->results.results_val); - trace1(TR_xdr_rpcb_rmtcallres, 1); - return (dummy); + return ((*(objp->xdr_res))(xdrs, objp->results.results_val)); } bool_t -xdr_netbuf(xdrs, objp) - XDR *xdrs; - struct netbuf *objp; +xdr_netbuf(XDR *xdrs, struct netbuf *objp) { - bool_t dummy; - - trace1(TR_xdr_netbuf, 0); - if (!xdr_u_int(xdrs, (u_int *) &objp->maxlen)) { - trace1(TR_xdr_netbuf, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->maxlen)) return (FALSE); - } - dummy = xdr_bytes(xdrs, (char **)&(objp->buf), - (u_int *)&(objp->len), objp->maxlen); - trace1(TR_xdr_netbuf, 1); - return (dummy); + return (xdr_bytes(xdrs, (char **)&(objp->buf), + (uint_t *)&(objp->len), objp->maxlen)); } diff --git a/usr/src/lib/libnsl/rpc/rpcb_st_xdr.c b/usr/src/lib/libnsl/rpc/rpcb_st_xdr.c index 1f07a9ff7f..854aeed79c 100644 --- a/usr/src/lib/libnsl/rpc/rpcb_st_xdr.c +++ b/usr/src/lib/libnsl/rpc/rpcb_st_xdr.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1991, 1997-2002 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -32,217 +33,128 @@ */ #include <rpc/rpc.h> -#include <rpc/trace.h> /* Link list of all the stats about getport and getaddr */ bool_t -xdr_rpcbs_addrlist(xdrs, objp) - XDR *xdrs; - rpcbs_addrlist *objp; +xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp) { - trace1(TR_xdr_rpcbs_addrlist, 0); - - if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) { - trace1(TR_xdr_rpcbs_addrlist, 1); - return (FALSE); - } - if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) { - trace1(TR_xdr_rpcbs_addrlist, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->success)) { - trace1(TR_xdr_rpcbs_addrlist, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - trace1(TR_xdr_rpcbs_addrlist, 1); + if (!xdr_int(xdrs, &objp->success)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->netid, ~0)) { - trace1(TR_xdr_rpcbs_addrlist, 1); + if (!xdr_int(xdrs, &objp->failure)) return (FALSE); - } - - return (TRUE); + return (xdr_string(xdrs, &objp->netid, ~0)); } /* Link list of all the stats about rmtcall */ bool_t -xdr_rpcbs_rmtcalllist(xdrs, objp) - XDR *xdrs; - rpcbs_rmtcalllist *objp; +xdr_rpcbs_rmtcalllist(XDR *xdrs, rpcbs_rmtcalllist *objp) { - register rpc_inline_t *buf; - - trace1(TR_xdr_rpcbs_rmtcalllist, 0); - if (xdrs->x_op == XDR_ENCODE) { - buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); - if (buf == NULL) { - if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); + rpc_inline_t *buf; + + switch (xdrs->x_op) { + case XDR_ENCODE: + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) + return (FALSE); + if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) + return (FALSE); + if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) + return (FALSE); + if (!xdr_int(xdrs, &objp->success)) + return (FALSE); + if (!xdr_int(xdrs, &objp->failure)) + return (FALSE); + if (!xdr_int(xdrs, &objp->indirect)) + return (FALSE); + } else { + IXDR_PUT_U_INT32(buf, objp->prog); + IXDR_PUT_U_INT32(buf, objp->vers); + IXDR_PUT_U_INT32(buf, objp->proc); + IXDR_PUT_INT32(buf, objp->success); + IXDR_PUT_INT32(buf, objp->failure); + IXDR_PUT_INT32(buf, objp->indirect); } - if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_string(xdrs, &objp->netid, ~0)) return (FALSE); + return (xdr_pointer(xdrs, (char **)&objp->next, + (uint_t)sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)); + case XDR_DECODE: + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) + return (FALSE); + if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) + return (FALSE); + if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) + return (FALSE); + if (!xdr_int(xdrs, &objp->success)) + return (FALSE); + if (!xdr_int(xdrs, &objp->failure)) + return (FALSE); + if (!xdr_int(xdrs, &objp->indirect)) + return (FALSE); + } else { + objp->prog = IXDR_GET_U_INT32(buf); + objp->vers = IXDR_GET_U_INT32(buf); + objp->proc = IXDR_GET_U_INT32(buf); + objp->success = IXDR_GET_INT32(buf); + objp->failure = IXDR_GET_INT32(buf); + objp->indirect = IXDR_GET_INT32(buf); } - if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_string(xdrs, &objp->netid, ~0)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->success)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + return (xdr_pointer(xdrs, (char **)&objp->next, + (uint_t)sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)); + case XDR_FREE: + if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - } else { - IXDR_PUT_U_INT32(buf, objp->prog); - IXDR_PUT_U_INT32(buf, objp->vers); - IXDR_PUT_U_INT32(buf, objp->proc); - IXDR_PUT_INT32(buf, objp->success); - IXDR_PUT_INT32(buf, objp->failure); - IXDR_PUT_INT32(buf, objp->indirect); - } - if (!xdr_string(xdrs, &objp->netid, ~0)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->next, - (uint_t)sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (TRUE); - } else if (xdrs->x_op == XDR_DECODE) { - buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); - if (buf == NULL) { - if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) return (FALSE); - } - if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) return (FALSE); - } - if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_int(xdrs, &objp->success)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->success)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_int(xdrs, &objp->failure)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_int(xdrs, &objp->indirect)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + if (!xdr_string(xdrs, &objp->netid, ~0)) return (FALSE); - } - } else { - objp->prog = IXDR_GET_U_INT32(buf); - objp->vers = IXDR_GET_U_INT32(buf); - objp->proc = IXDR_GET_U_INT32(buf); - objp->success = IXDR_GET_INT32(buf); - objp->failure = IXDR_GET_INT32(buf); - objp->indirect = IXDR_GET_INT32(buf); - } - if (!xdr_string(xdrs, &objp->netid, ~0)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->next, - (uint_t)sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (TRUE); - } - if (!xdr_u_int(xdrs, (uint_t *)&objp->prog)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_u_int(xdrs, (uint_t *)&objp->vers)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); + return (xdr_pointer(xdrs, (char **)&objp->next, + (uint_t)sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)); + default: return (FALSE); } - if (!xdr_u_int(xdrs, (uint_t *)&objp->proc)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_int(xdrs, &objp->success)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_string(xdrs, &objp->netid, ~0)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->next, - (uint_t)sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (FALSE); - } - trace1(TR_xdr_rpcbs_rmtcalllist, 1); - return (TRUE); } bool_t -xdr_rpcbs_proc(xdrs, objp) - XDR *xdrs; - rpcbs_proc objp; +xdr_rpcbs_proc(XDR *xdrs, rpcbs_proc objp) { - trace1(TR_xdr_rpcbs_proc, 0); - if (!xdr_vector(xdrs, (char *)objp, RPCBSTAT_HIGHPROC, sizeof (int), - (xdrproc_t)xdr_int)) { - trace1(TR_xdr_rpcbs_proc, 1); - return (FALSE); - } - trace1(TR_xdr_rpcbs_proc, 1); - return (TRUE); + return (xdr_vector(xdrs, (char *)objp, RPCBSTAT_HIGHPROC, sizeof (int), + (xdrproc_t)xdr_int)); } bool_t -xdr_rpcbs_addrlist_ptr(xdrs, objp) - XDR *xdrs; - rpcbs_addrlist_ptr *objp; +xdr_rpcbs_addrlist_ptr(XDR *xdrs, rpcbs_addrlist_ptr *objp) { bool_t more_data; rpcbs_addrlist_ptr *nextp; - trace1(TR_xdr_rpcbs_addrlist_ptr, 0); - for (;;) { - more_data = (*objp != NULL); - if (!xdr_bool(xdrs, &more_data)) { - trace1(TR_xdr_rpcbs_addrlist_ptr, 1); + if (!xdr_bool(xdrs, &more_data)) return (FALSE); - } if (!more_data) break; @@ -252,63 +164,35 @@ xdr_rpcbs_addrlist_ptr(xdrs, objp) if (!xdr_reference(xdrs, (char **)objp, (uint_t)sizeof (rpcbs_addrlist), - (xdrproc_t)xdr_rpcbs_addrlist)) { - trace1(TR_xdr_rpcbs_addrlist_ptr, 1); + (xdrproc_t)xdr_rpcbs_addrlist)) return (FALSE); - } objp = (xdrs->x_op == XDR_FREE) ? nextp : &(*objp)->next; } *objp = NULL; - trace1(TR_xdr_rpcbs_addrlist_ptr, 1); return (TRUE); } bool_t -xdr_rpcbs_rmtcalllist_ptr(xdrs, objp) - XDR *xdrs; - rpcbs_rmtcalllist_ptr *objp; +xdr_rpcbs_rmtcalllist_ptr(XDR *xdrs, rpcbs_rmtcalllist_ptr *objp) { - trace1(TR_xdr_rpcbs_rmtcalllist_ptr, 0); - if (!xdr_pointer(xdrs, (char **)objp, sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - trace1(TR_xdr_rpcbs_rmtcalllist_ptr, 1); - return (FALSE); - } - trace1(TR_xdr_rpcbs_rmtcalllist_ptr, 1); - return (TRUE); + return (xdr_pointer(xdrs, (char **)objp, sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)); } bool_t -xdr_rpcb_stat(xdrs, objp) - XDR *xdrs; - rpcb_stat *objp; +xdr_rpcb_stat(XDR *xdrs, rpcb_stat *objp) { - - trace1(TR_xdr_rpcb_stat, 0); - if (!xdr_rpcbs_proc(xdrs, objp->info)) { - trace1(TR_xdr_rpcb_stat, 1); + if (!xdr_rpcbs_proc(xdrs, objp->info)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->setinfo)) { - trace1(TR_xdr_rpcb_stat, 1); + if (!xdr_int(xdrs, &objp->setinfo)) return (FALSE); - } - if (!xdr_int(xdrs, &objp->unsetinfo)) { - trace1(TR_xdr_rpcb_stat, 1); + if (!xdr_int(xdrs, &objp->unsetinfo)) return (FALSE); - } - if (!xdr_rpcbs_addrlist_ptr(xdrs, &objp->addrinfo)) { - trace1(TR_xdr_rpcb_stat, 1); - return (FALSE); - } - if (!xdr_rpcbs_rmtcalllist_ptr(xdrs, &objp->rmtinfo)) { - trace1(TR_xdr_rpcb_stat, 1); + if (!xdr_rpcbs_addrlist_ptr(xdrs, &objp->addrinfo)) return (FALSE); - } - trace1(TR_xdr_rpcb_stat, 1); - return (TRUE); + return (xdr_rpcbs_rmtcalllist_ptr(xdrs, &objp->rmtinfo)); } /* @@ -316,16 +200,8 @@ xdr_rpcb_stat(xdrs, objp) * being monitored. */ bool_t -xdr_rpcb_stat_byvers(xdrs, objp) - XDR *xdrs; - rpcb_stat_byvers objp; +xdr_rpcb_stat_byvers(XDR *xdrs, rpcb_stat_byvers objp) { - trace1(TR_xdr_rpcb_stat_byvers, 0); - if (!xdr_vector(xdrs, (char *)objp, RPCBVERS_STAT, sizeof (rpcb_stat), - (xdrproc_t)xdr_rpcb_stat)) { - trace1(TR_xdr_rpcb_stat_byvers, 1); - return (FALSE); - } - trace1(TR_xdr_rpcb_stat_byvers, 1); - return (TRUE); + return (xdr_vector(xdrs, (char *)objp, RPCBVERS_STAT, + sizeof (rpcb_stat), (xdrproc_t)xdr_rpcb_stat)); } diff --git a/usr/src/lib/libnsl/rpc/rpcdname.c b/usr/src/lib/libnsl/rpc/rpcdname.c index 27071d25ae..4ec0bab788 100644 --- a/usr/src/lib/libnsl/rpc/rpcdname.c +++ b/usr/src/lib/libnsl/rpc/rpcdname.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,7 +42,6 @@ #include "rpc_mt.h" #include <sys/types.h> #include <sys/time.h> -#include <rpc/trace.h> #include <string.h> #include <syslog.h> @@ -49,36 +50,31 @@ extern char *strdup(); static char *default_domain = 0; static char * -get_default_domain() +get_default_domain(void) { char temp[256]; extern mutex_t dname_lock; /* VARIABLES PROTECTED BY dname_lock: default_domain */ - trace1(TR_get_default_domain, 0); - mutex_lock(&dname_lock); + (void) mutex_lock(&dname_lock); if (default_domain) { - mutex_unlock(&dname_lock); - trace1(TR_get_default_domain, 1); + (void) mutex_unlock(&dname_lock); return (default_domain); } if (getdomainname(temp, (size_t)sizeof (temp)) < 0) { - mutex_unlock(&dname_lock); - trace1(TR_get_default_domain, 1); + (void) mutex_unlock(&dname_lock); return (0); } if ((int)strlen(temp) > 0) { default_domain = strdup(temp); if (default_domain == NULL) { syslog(LOG_ERR, "get_default_domain : strdup failed."); - mutex_unlock(&dname_lock); - trace1(TR_get_default_domain, 1); + (void) mutex_unlock(&dname_lock); return (0); } } - mutex_unlock(&dname_lock); - trace1(TR_get_default_domain, 1); + (void) mutex_unlock(&dname_lock); return (default_domain); } @@ -89,14 +85,9 @@ get_default_domain() * get rejected elsewhere in the yp client package. */ int -__rpc_get_default_domain(domain) - char **domain; +__rpc_get_default_domain(char **domain) { - trace1(TR___rpc_get_default_domain, 0); - if ((*domain = get_default_domain()) != 0) { - trace1(TR___rpc_get_default_domain, 1); + if ((*domain = get_default_domain()) != 0) return (0); - } - trace1(TR___rpc_get_default_domain, 1); return (-1); } diff --git a/usr/src/lib/libnsl/rpc/rpcsec_gss_if.c b/usr/src/lib/libnsl/rpc/rpcsec_gss_if.c index e4f8696d0f..8d85db69c7 100644 --- a/usr/src/lib/libnsl/rpc/rpcsec_gss_if.c +++ b/usr/src/lib/libnsl/rpc/rpcsec_gss_if.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1986-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -61,12 +62,12 @@ static mutex_t rpcgss_calls_mutex = DEFAULTMUTEX; static bool_t initialized = FALSE; static bool_t -rpcgss_calls_init() +rpcgss_calls_init(void) { void *handle = NULL; bool_t ret = FALSE; - mutex_lock(&rpcgss_calls_mutex); + (void) mutex_lock(&rpcgss_calls_mutex); if (initialized) { ret = TRUE; goto done; @@ -134,10 +135,10 @@ rpcgss_calls_init() done: if (!ret) { if (handle != NULL) - dlclose(handle); + (void) dlclose(handle); } initialized = ret; - mutex_unlock(&rpcgss_calls_mutex); + (void) mutex_unlock(&rpcgss_calls_mutex); return (ret); } @@ -152,16 +153,13 @@ rpc_gss_seccreate( rpc_gss_options_ret_t *options_ret) /* returned options */ { if (!initialized && !rpcgss_calls_init()) - return ((AUTH *)NULL); + return (NULL); return ((*calls.rpc_gss_seccreate)(clnt, principal, mechanism, service_type, qop, options_req, options_ret)); } bool_t -rpc_gss_set_defaults(auth, service, qop) - AUTH *auth; - rpc_gss_service_t service; - char *qop; +rpc_gss_set_defaults(AUTH *auth, rpc_gss_service_t service, char *qop) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -183,27 +181,23 @@ rpc_gss_get_principal_name( } char ** -rpc_gss_get_mechanisms() +rpc_gss_get_mechanisms(void) { if (!initialized && !rpcgss_calls_init()) - return ((char **)NULL); + return (NULL); return ((*calls.rpc_gss_get_mechanisms)()); } char ** -rpc_gss_get_mech_info(mechanism, service) - char *mechanism; - rpc_gss_service_t *service; +rpc_gss_get_mech_info(char *mechanism, rpc_gss_service_t *service) { if (!initialized && !rpcgss_calls_init()) - return ((char **)NULL); + return (NULL); return ((*calls.rpc_gss_get_mech_info)(mechanism, service)); } bool_t -rpc_gss_get_versions(vers_hi, vers_lo) - uint_t *vers_hi; - uint_t *vers_lo; +rpc_gss_get_versions(uint_t *vers_hi, uint_t *vers_lo) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -211,8 +205,7 @@ rpc_gss_get_versions(vers_hi, vers_lo) } bool_t -rpc_gss_is_installed(mechanism) - char *mechanism; +rpc_gss_is_installed(char *mechanism) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -234,8 +227,7 @@ rpc_gss_set_svc_name( } bool_t -rpc_gss_set_callback(cb) - rpc_gss_callback_t *cb; +rpc_gss_set_callback(rpc_gss_callback_t *cb) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -243,11 +235,8 @@ rpc_gss_set_callback(cb) } bool_t -rpc_gss_getcred(req, rcred, ucred, cookie) - struct svc_req *req; - rpc_gss_rawcred_t **rcred; - rpc_gss_ucred_t **ucred; - void **cookie; +rpc_gss_getcred(struct svc_req *req, rpc_gss_rawcred_t **rcred, + rpc_gss_ucred_t **ucred, void **cookie) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -255,9 +244,7 @@ rpc_gss_getcred(req, rcred, ucred, cookie) } bool_t -rpc_gss_mech_to_oid(mech, oid) - char *mech; - rpc_gss_OID *oid; +rpc_gss_mech_to_oid(char *mech, rpc_gss_OID *oid) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -265,10 +252,7 @@ rpc_gss_mech_to_oid(mech, oid) } bool_t -rpc_gss_qop_to_num(qop, mech, num) - char *qop; - char *mech; - uint_t *num; +rpc_gss_qop_to_num(char *qop, char *mech, uint_t *num) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -276,10 +260,7 @@ rpc_gss_qop_to_num(qop, mech, num) } enum auth_stat -__svcrpcsec_gss(rqst, msg, no_dispatch) - struct svc_req *rqst; - struct rpc_msg *msg; - bool_t *no_dispatch; +__svcrpcsec_gss(struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch) { if (!initialized && !rpcgss_calls_init()) return (AUTH_FAILED); @@ -287,13 +268,8 @@ __svcrpcsec_gss(rqst, msg, no_dispatch) } bool_t -__rpc_gss_wrap(auth, buf, buflen, out_xdrs, xdr_func, xdr_ptr) - AUTH *auth; - char *buf; /* encoded header */ - uint_t buflen; /* encoded header length */ - XDR *out_xdrs; - bool_t (*xdr_func)(); - caddr_t xdr_ptr; +__rpc_gss_wrap(AUTH *auth, char *buf, uint_t buflen, XDR *out_xdrs, + bool_t (*xdr_func)(), caddr_t xdr_ptr) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -302,11 +278,8 @@ __rpc_gss_wrap(auth, buf, buflen, out_xdrs, xdr_func, xdr_ptr) } bool_t -__rpc_gss_unwrap(auth, in_xdrs, xdr_func, xdr_ptr) - AUTH *auth; - XDR *in_xdrs; - bool_t (*xdr_func)(); - caddr_t xdr_ptr; +__rpc_gss_unwrap(AUTH *auth, XDR *in_xdrs, bool_t (*xdr_func)(), + caddr_t xdr_ptr) { if (!initialized && !rpcgss_calls_init()) return (FALSE); @@ -314,9 +287,7 @@ __rpc_gss_unwrap(auth, in_xdrs, xdr_func, xdr_ptr) } int -rpc_gss_max_data_length(rpcgss_handle, max_tp_unit_len) - AUTH *rpcgss_handle; - int max_tp_unit_len; +rpc_gss_max_data_length(AUTH *rpcgss_handle, int max_tp_unit_len) { if (!initialized && !rpcgss_calls_init()) return (0); @@ -325,9 +296,7 @@ rpc_gss_max_data_length(rpcgss_handle, max_tp_unit_len) } int -rpc_gss_svc_max_data_length(req, max_tp_unit_len) - struct svc_req *req; - int max_tp_unit_len; +rpc_gss_svc_max_data_length(struct svc_req *req, int max_tp_unit_len) { if (!initialized && !rpcgss_calls_init()) return (0); @@ -335,8 +304,7 @@ rpc_gss_svc_max_data_length(req, max_tp_unit_len) } void -rpc_gss_get_error(error) - rpc_gss_error_t *error; +rpc_gss_get_error(rpc_gss_error_t *error) { if (!initialized && !rpcgss_calls_init()) { error->rpc_gss_error = RPC_GSS_ER_SYSTEMERROR; diff --git a/usr/src/lib/libnsl/rpc/rtime_tli.c b/usr/src/lib/libnsl/rpc/rtime_tli.c index cc88de7969..4c9d7b0ed5 100644 --- a/usr/src/lib/libnsl/rpc/rtime_tli.c +++ b/usr/src/lib/libnsl/rpc/rtime_tli.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -43,7 +44,6 @@ * what unix uses. */ #include <rpc/rpc.h> -#include <rpc/trace.h> #include <errno.h> #include <sys/poll.h> #include <rpc/nettype.h> @@ -59,17 +59,14 @@ extern int __rpc_timeval_to_msec(); #endif #define NYEARS (1970 - 1900) -#define TOFFSET ((u_int)60*60*24*(365*NYEARS + (NYEARS/4))) +#define TOFFSET ((uint_t)60*60*24*(365*NYEARS + (NYEARS/4))) /* * This is based upon the internet time server, but it contacts it by * using TLI instead of socket. */ int -rtime_tli(host, timep, timeout) - char *host; - struct timeval *timep; - struct timeval *timeout; +rtime_tli(char *host, struct timeval *timep, struct timeval *timeout) { uint32_t thetime; int flag; @@ -79,16 +76,15 @@ rtime_tli(host, timep, timeout) int foundit = 0; int fd = -1; - trace1(TR_rtime_tli, 0); nconf = __rpc_getconfip(timeout == NULL ? "tcp" : "udp"); - if (nconf == (struct netconfig *)NULL) + if (nconf == NULL) goto error; if ((fd = t_open(nconf->nc_device, O_RDWR, NULL)) == -1) { debug("open"); goto error; } - if (t_bind(fd, (struct t_bind *) NULL, (struct t_bind *) NULL) < 0) { + if (t_bind(fd, NULL, NULL) < 0) { debug("bind"); goto error; } @@ -108,7 +104,7 @@ rtime_tli(host, timep, timeout) tu_data.addr = *nlist->n_addrs; tu_data.udata.buf = (char *)&thetime; - tu_data.udata.len = (u_int) sizeof (thetime); + tu_data.udata.len = (uint_t)sizeof (thetime); tu_data.udata.maxlen = tu_data.udata.len; tu_data.opt.len = 0; tu_data.opt.maxlen = 0; @@ -141,8 +137,8 @@ rtime_tli(host, timep, timeout) debug("tcp"); goto error; } - if (t_rcv(fd, (char *)&thetime, (u_int) sizeof (thetime), &flag) - != (u_int) sizeof (thetime)) { + if (t_rcv(fd, (char *)&thetime, (uint_t)sizeof (thetime), &flag) + != (uint_t)sizeof (thetime)) { debug("tcp"); goto error; } @@ -162,6 +158,5 @@ error: netdir_free((char *)nlist, ND_ADDRLIST); } } - trace1(TR_rtime_tli, 1); return (foundit); } diff --git a/usr/src/lib/libnsl/rpc/svc.c b/usr/src/lib/libnsl/rpc/svc.c index 29b043339d..228bd29774 100644 --- a/usr/src/lib/libnsl/rpc/svc.c +++ b/usr/src/lib/libnsl/rpc/svc.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* @@ -53,7 +54,6 @@ #include <sys/types.h> #include <stropts.h> #include <sys/conf.h> -#include <rpc/trace.h> #include <rpc/rpc.h> #ifdef PORTMAP #include <rpc/pmap_clnt.h> @@ -133,14 +133,12 @@ static void __svc_remove_input_of_fd(int fd); struct _svc_user_fd_head; -typedef struct -{ +typedef struct { struct _svc_user_fd_node *next; struct _svc_user_fd_node *previous; } _svc_user_link; -typedef struct _svc_user_fd_node -{ +typedef struct _svc_user_fd_node { /* The lnk field must be the first field. */ _svc_user_link lnk; svc_input_id_t id; @@ -150,8 +148,7 @@ typedef struct _svc_user_fd_node void* cookie; } _svc_user_fd_node; -typedef struct _svc_user_fd_head -{ +typedef struct _svc_user_fd_head { /* The lnk field must be the first field. */ _svc_user_link lnk; unsigned int mask; /* logical OR of all sub-masks */ @@ -188,8 +185,7 @@ static mutex_t svc_userfds_lock = DEFAULTMUTEX; * correct index to the user. */ -typedef struct _svc_management_user_fd -{ +typedef struct _svc_management_user_fd { bool_t free; union { svc_input_id_t next_free; @@ -245,7 +241,6 @@ _svc_attribute_new_id(_svc_user_fd_node *node) /* Allocate new entries */ int L_inOldSize = svc_nmgtuserfds; int i; - _svc_management_user_fd* alloc_array; svc_nmgtuserfds += USER_FD_INCREMENT; @@ -289,10 +284,10 @@ __svc_getreq_user(struct pollfd *pfd) bool_t invalHandled = FALSE; _svc_user_fd_node *node; - mutex_lock(&svc_userfds_lock); + (void) mutex_lock(&svc_userfds_lock); if ((fd < 0) || (fd >= svc_nuserfds)) { - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return; } @@ -300,7 +295,7 @@ __svc_getreq_user(struct pollfd *pfd) /* check if at least one mask fits */ if (0 == (revents & svc_userfds[fd].mask)) { - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return; } @@ -323,7 +318,7 @@ __svc_getreq_user(struct pollfd *pfd) * user function, as this function can call * svc_remove_input() for example. */ - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); node->callback(node->id, node->fd, node->events & revents, node->cookie); /* @@ -331,7 +326,7 @@ __svc_getreq_user(struct pollfd *pfd) * could have been deallocated by the previous * callback. */ - mutex_lock(&svc_userfds_lock); + (void) mutex_lock(&svc_userfds_lock); } } node = next; @@ -339,7 +334,7 @@ __svc_getreq_user(struct pollfd *pfd) if ((revents & POLLNVAL) && !invalHandled) __svc_remove_input_of_fd(fd); - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); } @@ -361,7 +356,7 @@ __is_a_userfd(int fd) /* used in svc_run.c => no static */ void -__destroy_userfd() +__destroy_userfd(void) { int one_fd; /* Clean user fd */ @@ -435,13 +430,13 @@ svc_add_input(int user_fd, unsigned int events, return ((svc_input_id_t)-1); } - mutex_lock(&svc_userfds_lock); + (void) mutex_lock(&svc_userfds_lock); if ((user_fd < svc_nuserfds) && (svc_userfds[user_fd].mask & events) != 0) { /* Already registrated call-back */ errno = EEXIST; - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return ((svc_input_id_t)-1); } @@ -459,7 +454,7 @@ svc_add_input(int user_fd, unsigned int events, if (svc_userfds == NULL) { syslog(LOG_ERR, "svc_add_input: out of memory"); errno = ENOMEM; - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return ((svc_input_id_t)-1); } @@ -469,11 +464,11 @@ svc_add_input(int user_fd, unsigned int events, } } - new_node = (_svc_user_fd_node *)malloc(sizeof (_svc_user_fd_node)); + new_node = malloc(sizeof (_svc_user_fd_node)); if (new_node == NULL) { syslog(LOG_ERR, "svc_add_input: out of memory"); errno = ENOMEM; - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return ((svc_input_id_t)-1); } @@ -500,7 +495,7 @@ svc_add_input(int user_fd, unsigned int events, /* refresh mask for the poll */ add_pollfd(user_fd, (svc_userfds[user_fd].mask)); - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return (new_node->id); } @@ -513,13 +508,13 @@ svc_remove_input(svc_input_id_t id) _svc_user_fd_node* previous; int fd; /* caching optim */ - mutex_lock(&svc_userfds_lock); + (void) mutex_lock(&svc_userfds_lock); /* Immediately update data for id management */ if (user_fd_mgt_array == NULL || id >= svc_nmgtuserfds || is_free_id(id)) { errno = EINVAL; - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return (-1); } @@ -546,7 +541,7 @@ svc_remove_input(svc_input_id_t id) } /* <=> CLEAN NEEDED TO SHRINK MEMORY USAGE */ - mutex_unlock(&svc_userfds_lock); + (void) mutex_unlock(&svc_userfds_lock); return (0); } @@ -558,11 +553,7 @@ svc_remove_input(svc_input_id_t id) /*ARGSUSED*/ static int -authany_wrap(auth, xdrs, xfunc, xwhere) - AUTH *auth; - XDR *xdrs; - xdrproc_t xfunc; - caddr_t xwhere; +authany_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere) { return (*xfunc)(xdrs, xwhere); } @@ -576,8 +567,7 @@ struct svc_auth_ops svc_auth_any_ops = { * Return pointer to server authentication structure. */ SVCAUTH * -__svc_get_svcauth(xprt) - SVCXPRT *xprt; +__svc_get_svcauth(SVCXPRT *xprt) { /* LINTED pointer alignment */ return (&SVC_XP_AUTH(xprt)); @@ -589,8 +579,7 @@ __svc_get_svcauth(xprt) void (*__proc_cleanup_cb)() = NULL; void * -__svc_set_proc_cleanup_cb(cb) - void *cb; +__svc_set_proc_cleanup_cb(void *cb) { void *tmp = (void *)__proc_cleanup_cb; @@ -708,8 +697,7 @@ set_pollfd(int fd, short events) * remove a svc_pollfd entry; it does not shrink the memory */ static void -remove_pollfd(fd) - int fd; +remove_pollfd(int fd) { clear_pollfd(fd); if (fd == (svc_max_fd - 1)) @@ -747,8 +735,7 @@ delete_pollfd(int fd) * Activate a transport handle. */ void -xprt_register(xprt) - const SVCXPRT *xprt; +xprt_register(const SVCXPRT *xprt) { int fd = xprt->xp_fd; #ifdef CALLBACK @@ -756,8 +743,7 @@ xprt_register(xprt) #endif /* VARIABLES PROTECTED BY svc_fd_lock: svc_xports, svc_fdset */ - trace1(TR_xprt_register, 0); - rw_wrlock(&svc_fd_lock); + (void) rw_wrlock(&svc_fd_lock); if (svc_xports == NULL) { /* allocate some small amount first */ svc_xports = calloc(FD_INCREMENT, sizeof (SVCXPRT *)); @@ -809,16 +795,16 @@ xprt_register(xprt) * This happens only in one of the MT modes. * Wake up poller. */ - write(svc_pipe[1], &dummy, sizeof (dummy)); + (void) write(svc_pipe[1], &dummy, sizeof (dummy)); } /* * If already dispatching door based services, start * dispatching TLI based services now. */ - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); if (svc_ndoorfds > 0) - cond_signal(&svc_door_waitcv); - mutex_unlock(&svc_door_mutex); + (void) cond_signal(&svc_door_waitcv); + (void) mutex_unlock(&svc_door_mutex); if (svc_xdrs == NULL) { /* allocate initial chunk */ @@ -830,9 +816,7 @@ xprt_register(xprt) _exit(1); } } - rw_unlock(&svc_fd_lock); - - trace1(TR_xprt_register, 1); + (void) rw_unlock(&svc_fd_lock); } /* @@ -843,22 +827,19 @@ __xprt_unregister_private(const SVCXPRT *xprt, bool_t lock_not_held) { int fd = xprt->xp_fd; - trace1(TR_xprt_unregister, 0); if (lock_not_held) - rw_wrlock(&svc_fd_lock); + (void) rw_wrlock(&svc_fd_lock); if ((fd < nsvc_xports) && (svc_xports[fd] == xprt)) { - svc_xports[fd] = (SVCXPRT *)NULL; + svc_xports[fd] = NULL; delete_pollfd(fd); } if (lock_not_held) - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); __svc_rm_from_xlist(&_svc_xprtlist, xprt, &xprtlist_lock); - trace1(TR_xprt_unregister, 1); } void -xprt_unregister(xprt) - const SVCXPRT *xprt; +xprt_unregister(const SVCXPRT *xprt) { __xprt_unregister_private(xprt, TRUE); } @@ -871,14 +852,9 @@ xprt_unregister(xprt) * program number comes in. */ bool_t -svc_reg(xprt, prog, vers, dispatch, nconf) - const SVCXPRT *xprt; - rpcprog_t prog; - rpcvers_t vers; - void (*dispatch)(); - const struct netconfig *nconf; +svc_reg(const SVCXPRT *xprt, const rpcprog_t prog, const rpcvers_t vers, + void (*dispatch)(), const struct netconfig *nconf) { - bool_t dummy; struct svc_callout *prev; struct svc_callout *s, **s2; struct netconfig *tnconf; @@ -887,7 +863,6 @@ svc_reg(xprt, prog, vers, dispatch, nconf) /* VARIABLES PROTECTED BY svc_lock: s, prev, svc_head */ - trace3(TR_svc_reg, 0, prog, vers); if (xprt->xp_netid) { netid = strdup(xprt->xp_netid); flag = 1; @@ -900,27 +875,23 @@ svc_reg(xprt, prog, vers, dispatch, nconf) flag = 1; freenetconfigent(tnconf); } /* must have been created with svc_raw_create */ - if ((netid == NULL) && (flag == 1)) { - trace3(TR_svc_reg, 1, prog, vers); + if ((netid == NULL) && (flag == 1)) return (FALSE); - } - rw_wrlock(&svc_lock); + (void) rw_wrlock(&svc_lock); if ((s = svc_find(prog, vers, &prev, netid)) != NULL_SVC) { if (netid) free(netid); if (s->sc_dispatch == dispatch) goto rpcb_it; /* he is registering another xptr */ - trace3(TR_svc_reg, 1, prog, vers); - rw_unlock(&svc_lock); + (void) rw_unlock(&svc_lock); return (FALSE); } - s = (struct svc_callout *)mem_alloc(sizeof (struct svc_callout)); - if (s == (struct svc_callout *)NULL) { + s = malloc(sizeof (struct svc_callout)); + if (s == NULL) { if (netid) free(netid); - trace3(TR_svc_reg, 1, prog, vers); - rw_unlock(&svc_lock); + (void) rw_unlock(&svc_lock); return (FALSE); } @@ -942,23 +913,17 @@ svc_reg(xprt, prog, vers, dispatch, nconf) if ((((SVCXPRT *)xprt)->xp_netid = strdup(netid)) == NULL) { syslog(LOG_ERR, "svc_reg : strdup failed."); free(netid); - mem_free((char *)s, - (uint_t)sizeof (struct svc_callout)); + free(s); *s2 = NULL; - rw_unlock(&svc_lock); - trace3(TR_svc_reg, 1, prog, vers); + (void) rw_unlock(&svc_lock); return (FALSE); } rpcb_it: - rw_unlock(&svc_lock); + (void) rw_unlock(&svc_lock); /* now register the information with the local binder service */ - if (nconf) { - dummy = rpcb_set(prog, vers, nconf, &xprt->xp_ltaddr); - trace3(TR_svc_reg, 1, prog, vers); - return (dummy); - } - trace3(TR_svc_reg, 1, prog, vers); + if (nconf) + return (rpcb_set(prog, vers, nconf, &xprt->xp_ltaddr)); return (TRUE); } @@ -966,17 +931,14 @@ rpcb_it: * Remove a service program from the callout list. */ void -svc_unreg(prog, vers) - rpcprog_t prog; - rpcvers_t vers; +svc_unreg(const rpcprog_t prog, const rpcvers_t vers) { struct svc_callout *prev; struct svc_callout *s; - trace3(TR_svc_unreg, 0, prog, vers); /* unregister the information anyway */ (void) rpcb_unset(prog, vers, NULL); - rw_wrlock(&svc_lock); + (void) rw_wrlock(&svc_lock); while ((s = svc_find(prog, vers, &prev, NULL)) != NULL_SVC) { if (prev == NULL_SVC) { svc_head = s->sc_next; @@ -985,12 +947,10 @@ svc_unreg(prog, vers) } s->sc_next = NULL_SVC; if (s->sc_netid) - mem_free((char *)s->sc_netid, - (uint_t)sizeof (s->sc_netid) + 1); - mem_free((char *)s, (uint_t)sizeof (struct svc_callout)); + free(s->sc_netid); + free(s); } - rw_unlock(&svc_lock); - trace3(TR_svc_unreg, 1, prog, vers); + (void) rw_unlock(&svc_lock); } #ifdef PORTMAP @@ -1000,25 +960,16 @@ svc_unreg(prog, vers) * program number comes in. * For version 2 portmappers. */ -#ifdef KERNEL -/*ARGSUSED*/ -#endif bool_t -svc_register(xprt, prog, vers, dispatch, protocol) - SVCXPRT *xprt; - rpcprog_t prog; - rpcvers_t vers; - void (*dispatch)(); - int protocol; +svc_register(SVCXPRT *xprt, rpcprog_t prog, rpcvers_t vers, + void (*dispatch)(), int protocol) { - bool_t dummy; struct svc_callout *prev; struct svc_callout *s; struct netconfig *nconf; char *netid = NULL; int flag = 0; - trace4(TR_svc_register, 0, prog, vers, protocol); if (xprt->xp_netid) { netid = strdup(xprt->xp_netid); flag = 1; @@ -1030,31 +981,25 @@ svc_register(xprt, prog, vers, dispatch, protocol) freenetconfigent(nconf); } /* must be svc_raw_create */ - if ((netid == NULL) && (flag == 1)) { - trace4(TR_svc_register, 1, prog, vers, protocol); + if ((netid == NULL) && (flag == 1)) return (FALSE); - } - rw_wrlock(&svc_lock); + (void) rw_wrlock(&svc_lock); if ((s = svc_find(prog, vers, &prev, netid)) != NULL_SVC) { if (netid) free(netid); if (s->sc_dispatch == dispatch) goto pmap_it; /* he is registering another xptr */ - rw_unlock(&svc_lock); - trace4(TR_svc_register, 1, prog, vers, protocol); + (void) rw_unlock(&svc_lock); return (FALSE); } - s = (struct svc_callout *)mem_alloc(sizeof (struct svc_callout)); -#ifndef KERNEL + s = malloc(sizeof (struct svc_callout)); if (s == (struct svc_callout *)0) { if (netid) free(netid); - trace4(TR_svc_register, 1, prog, vers, protocol); - rw_unlock(&svc_lock); + (void) rw_unlock(&svc_lock); return (FALSE); } -#endif s->sc_prog = prog; s->sc_vers = vers; s->sc_dispatch = dispatch; @@ -1067,24 +1012,16 @@ svc_register(xprt, prog, vers, dispatch, protocol) syslog(LOG_ERR, "svc_register : strdup failed."); free(netid); svc_head = s->sc_next; - mem_free((char *)s, - (uint_t)sizeof (struct svc_callout)); - rw_unlock(&svc_lock); - trace4(TR_svc_register, 1, prog, vers, protocol); + free(s); + (void) rw_unlock(&svc_lock); return (FALSE); } pmap_it: - rw_unlock(&svc_lock); -#ifndef KERNEL + (void) rw_unlock(&svc_lock); /* now register the information with the local binder service */ - if (protocol) { - dummy = pmap_set(prog, vers, protocol, xprt->xp_port); - trace4(TR_svc_register, 1, prog, vers, protocol); - return (dummy); - } -#endif - trace4(TR_svc_register, 1, prog, vers, protocol); + if (protocol) + return (pmap_set(prog, vers, protocol, xprt->xp_port)); return (TRUE); } @@ -1093,15 +1030,12 @@ pmap_it: * For version 2 portmappers. */ void -svc_unregister(prog, vers) - rpcprog_t prog; - rpcvers_t vers; +svc_unregister(rpcprog_t prog, rpcvers_t vers) { struct svc_callout *prev; struct svc_callout *s; - trace3(TR_svc_unregister, 0, prog, vers); - rw_wrlock(&svc_lock); + (void) rw_wrlock(&svc_lock); while ((s = svc_find(prog, vers, &prev, NULL)) != NULL_SVC) { if (prev == NULL_SVC) { svc_head = s->sc_next; @@ -1110,19 +1044,15 @@ svc_unregister(prog, vers) } s->sc_next = NULL_SVC; if (s->sc_netid) - mem_free((char *)s->sc_netid, - (uint_t)sizeof (s->sc_netid) + 1); - mem_free((char *)s, (uint_t)sizeof (struct svc_callout)); -#ifndef KERNEL + free(s->sc_netid); + free(s); /* unregister the information with the local binder service */ (void) pmap_unset(prog, vers); -#endif } - rw_unlock(&svc_lock); - trace3(TR_svc_unregister, 1, prog, vers); + (void) rw_unlock(&svc_lock); } - #endif /* PORTMAP */ + /* * Search the callout list for a program number, return the callout * struct. @@ -1131,16 +1061,10 @@ svc_unregister(prog, vers) * netid == NULL */ static struct svc_callout * -svc_find(prog, vers, prev, netid) - rpcprog_t prog; - rpcvers_t vers; - struct svc_callout **prev; - char *netid; +svc_find(rpcprog_t prog, rpcvers_t vers, struct svc_callout **prev, char *netid) { struct svc_callout *s, *p; - trace3(TR_svc_find, 0, prog, vers); - /* WRITE LOCK HELD ON ENTRY: svc_lock */ /* assert(RW_WRITE_HELD(&svc_lock)); */ @@ -1153,7 +1077,6 @@ svc_find(prog, vers, prev, netid) p = s; } *prev = p; - trace3(TR_svc_find, 1, prog, vers); return (s); } @@ -1164,78 +1087,63 @@ svc_find(prog, vers, prev, netid) * Send a reply to an rpc request */ bool_t -svc_sendreply(xprt, xdr_results, xdr_location) - const SVCXPRT *xprt; - xdrproc_t xdr_results; - caddr_t xdr_location; +svc_sendreply(const SVCXPRT *xprt, const xdrproc_t xdr_results, + const caddr_t xdr_location) { - bool_t dummy; struct rpc_msg rply; - trace1(TR_svc_sendreply, 0); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = SUCCESS; rply.acpted_rply.ar_results.where = xdr_location; rply.acpted_rply.ar_results.proc = xdr_results; - dummy = SVC_REPLY((SVCXPRT *)xprt, &rply); - trace1(TR_svc_sendreply, 1); - return (dummy); + return (SVC_REPLY((SVCXPRT *)xprt, &rply)); } /* * No procedure error reply */ void -svcerr_noproc(xprt) - const SVCXPRT *xprt; +svcerr_noproc(const SVCXPRT *xprt) { struct rpc_msg rply; - trace1(TR_svcerr_noproc, 0); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = PROC_UNAVAIL; SVC_REPLY((SVCXPRT *)xprt, &rply); - trace1(TR_svcerr_noproc, 1); } /* * Can't decode args error reply */ void -svcerr_decode(xprt) - const SVCXPRT *xprt; +svcerr_decode(const SVCXPRT *xprt) { struct rpc_msg rply; - trace1(TR_svcerr_decode, 0); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = GARBAGE_ARGS; SVC_REPLY((SVCXPRT *)xprt, &rply); - trace1(TR_svcerr_decode, 1); } /* * Some system error */ void -svcerr_systemerr(xprt) - const SVCXPRT *xprt; +svcerr_systemerr(const SVCXPRT *xprt) { struct rpc_msg rply; - trace1(TR_svcerr_systemerr, 0); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = SYSTEM_ERR; SVC_REPLY((SVCXPRT *)xprt, &rply); - trace1(TR_svcerr_systemerr, 1); } /* @@ -1245,40 +1153,28 @@ svcerr_systemerr(xprt) * protocol: the portmapper (or rpc binder). */ void -__svc_versquiet_on(xprt) - SVCXPRT *xprt; +__svc_versquiet_on(const SVCXPRT *xprt) { - trace1(TR___svc_versquiet_on, 0); /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_VERSQUIET; - trace1(TR___svc_versquiet_on, 1); } void -__svc_versquiet_off(xprt) - SVCXPRT *xprt; +__svc_versquiet_off(const SVCXPRT *xprt) { - trace1(TR___svc_versquiet_off, 0); /* LINTED pointer alignment */ svc_flags(xprt) &= ~SVC_VERSQUIET; - trace1(TR___svc_versquiet_off, 1); } void -svc_versquiet(xprt) - SVCXPRT *xprt; +svc_versquiet(const SVCXPRT *xprt) { - trace1(TR_svc_versquiet, 0); __svc_versquiet_on(xprt); - trace1(TR_svc_versquiet, 1); } int -__svc_versquiet_get(xprt) - SVCXPRT *xprt; +__svc_versquiet_get(const SVCXPRT *xprt) { - trace1(TR___svc_versquiet_get, 0); - trace2(TR___svc_versquiet_get, 1, tmp); /* LINTED pointer alignment */ return (svc_flags(xprt) & SVC_VERSQUIET); } @@ -1287,63 +1183,50 @@ __svc_versquiet_get(xprt) * Authentication error reply */ void -svcerr_auth(xprt, why) - const SVCXPRT *xprt; - enum auth_stat why; +svcerr_auth(const SVCXPRT *xprt, const enum auth_stat why) { struct rpc_msg rply; - trace1(TR_svcerr_auth, 0); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_DENIED; rply.rjcted_rply.rj_stat = AUTH_ERROR; rply.rjcted_rply.rj_why = why; SVC_REPLY((SVCXPRT *)xprt, &rply); - trace1(TR_svcerr_auth, 1); } /* * Auth too weak error reply */ void -svcerr_weakauth(xprt) - const SVCXPRT *xprt; +svcerr_weakauth(const SVCXPRT *xprt) { - trace1(TR_svcerr_weakauth, 0); svcerr_auth(xprt, AUTH_TOOWEAK); - trace1(TR_svcerr_weakauth, 1); } /* * Program unavailable error reply */ void -svcerr_noprog(xprt) - const SVCXPRT *xprt; +svcerr_noprog(const SVCXPRT *xprt) { struct rpc_msg rply; - trace1(TR_svcerr_noprog, 0); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = PROG_UNAVAIL; SVC_REPLY((SVCXPRT *)xprt, &rply); - trace1(TR_svcerr_noprog, 1); } /* * Program version mismatch error reply */ void -svcerr_progvers(xprt, low_vers, high_vers) - const SVCXPRT *xprt; - rpcvers_t low_vers; - rpcvers_t high_vers; +svcerr_progvers(const SVCXPRT *xprt, const rpcvers_t low_vers, + const rpcvers_t high_vers) { struct rpc_msg rply; - trace3(TR_svcerr_progvers, 0, low_vers, high_vers); rply.rm_direction = REPLY; rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; @@ -1351,7 +1234,6 @@ svcerr_progvers(xprt, low_vers, high_vers) rply.acpted_rply.ar_vers.low = low_vers; rply.acpted_rply.ar_vers.high = high_vers; SVC_REPLY((SVCXPRT *)xprt, &rply); - trace3(TR_svcerr_progvers, 1, low_vers, high_vers); } /* ******************* SERVER INPUT STUFF ******************* */ @@ -1373,42 +1255,33 @@ svcerr_progvers(xprt, low_vers, high_vers) */ void -svc_getreq(rdfds) - int rdfds; +svc_getreq(int rdfds) { fd_set readfds; - trace2(TR_svc_getreq, 0, rdfds); FD_ZERO(&readfds); readfds.fds_bits[0] = rdfds; svc_getreqset(&readfds); - trace2(TR_svc_getreq, 1, rdfds); } void -svc_getreqset(readfds) - fd_set *readfds; +svc_getreqset(fd_set *readfds) { int i; - trace1(TR_svc_getreqset, 0); for (i = 0; i < svc_max_fd; i++) { /* fd has input waiting */ if (FD_ISSET(i, readfds)) svc_getreq_common(i); } - trace1(TR_svc_getreqset, 1); } void -svc_getreq_poll(pfdp, pollretval) - struct pollfd *pfdp; - int pollretval; +svc_getreq_poll(struct pollfd *pfdp, const int pollretval) { int i; int fds_found; - trace2(TR_svc_getreq_poll, 0, pollretval); for (i = fds_found = 0; fds_found < pollretval; i++) { struct pollfd *p = &pfdp[i]; @@ -1428,25 +1301,24 @@ svc_getreq_poll(pfdp, pollretval) */ /* Handle user callback */ if (__is_a_userfd(p->fd) == TRUE) { - rw_rdlock(&svc_fd_lock); + (void) rw_rdlock(&svc_fd_lock); __svc_getreq_user(p); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); } else { if (p->revents & POLLNVAL) { - rw_wrlock(&svc_fd_lock); + (void) rw_wrlock(&svc_fd_lock); remove_pollfd(p->fd); /* XXX */ - rw_unlock(&svc_fd_lock); - } else + (void) rw_unlock(&svc_fd_lock); + } else { svc_getreq_common(p->fd); + } } } } - trace2(TR_svc_getreq_poll, 1, pollretval); } void -svc_getreq_common(fd) - int fd; +svc_getreq_common(const int fd) { SVCXPRT *xprt; enum xprt_stat stat; @@ -1454,9 +1326,7 @@ svc_getreq_common(fd) struct svc_req *r; char *cred_area; - trace2(TR_svc_getreq_common, 0, fd); - - rw_rdlock(&svc_fd_lock); + (void) rw_rdlock(&svc_fd_lock); /* HANDLE USER CALLBACK */ if (__is_a_userfd(fd) == TRUE) { @@ -1465,7 +1335,7 @@ svc_getreq_common(fd) virtual_fd.events = virtual_fd.revents = (short)0xFFFF; virtual_fd.fd = fd; __svc_getreq_user(&virtual_fd); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); return; } @@ -1480,11 +1350,10 @@ svc_getreq_common(fd) * xprt associated with the fd that had the original read event. */ if ((fd >= nsvc_xports) || (xprt = svc_xports[fd]) == NULL) { - rw_unlock(&svc_fd_lock); - trace2(TR_svc_getreq_common, 1, fd); + (void) rw_unlock(&svc_fd_lock); return; } - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); /* LINTED pointer alignment */ msg = SVCEXT(xprt)->msg; /* LINTED pointer alignment */ @@ -1505,12 +1374,12 @@ svc_getreq_common(fd) * Check if the xprt has been disconnected in a recursive call * in the service dispatch routine. If so, then break */ - rw_rdlock(&svc_fd_lock); + (void) rw_rdlock(&svc_fd_lock); if (xprt != svc_xports[fd]) { - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); break; } - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); /* * Call cleanup procedure if set. @@ -1523,14 +1392,10 @@ svc_getreq_common(fd) break; } } while (stat == XPRT_MOREREQS); - trace2(TR_svc_getreq_common, 1, fd); } int -_svc_prog_dispatch(xprt, msg, r) - SVCXPRT *xprt; - struct rpc_msg *msg; - struct svc_req *r; +_svc_prog_dispatch(SVCXPRT *xprt, struct rpc_msg *msg, struct svc_req *r) { struct svc_callout *s; enum auth_stat why; @@ -1539,7 +1404,6 @@ _svc_prog_dispatch(xprt, msg, r) rpcvers_t high_vers; void (*disp_fn)(); - trace1(TR_prog_dispatch, 0); r->rq_xprt = xprt; r->rq_prog = msg->rm_call.cb_prog; r->rq_vers = msg->rm_call.cb_vers; @@ -1562,7 +1426,6 @@ _svc_prog_dispatch(xprt, msg, r) if ((why = __gss_authenticate(r, msg, &no_dispatch)) != AUTH_OK) { svcerr_auth(xprt, why); - trace1(TR_prog_dispatch, 1); return (0); } if (no_dispatch) @@ -1572,7 +1435,7 @@ _svc_prog_dispatch(xprt, msg, r) prog_found = FALSE; low_vers = (rpcvers_t)(0 - 1); high_vers = 0; - rw_rdlock(&svc_lock); + (void) rw_rdlock(&svc_lock); for (s = svc_head; s != NULL_SVC; s = s->sc_next) { if (s->sc_prog == r->rq_prog) { prog_found = TRUE; @@ -1582,13 +1445,11 @@ _svc_prog_dispatch(xprt, msg, r) (strcmp(xprt->xp_netid, s->sc_netid) == 0)) { disp_fn = (*s->sc_dispatch); - rw_unlock(&svc_lock); + (void) rw_unlock(&svc_lock); disp_fn(r, xprt); - trace1(TR_prog_dispatch, 1); return (1); - } else { - prog_found = FALSE; } + prog_found = FALSE; } if (s->sc_vers < low_vers) low_vers = s->sc_vers; @@ -1596,7 +1457,7 @@ _svc_prog_dispatch(xprt, msg, r) high_vers = s->sc_vers; } /* found correct program */ } - rw_unlock(&svc_lock); + (void) rw_unlock(&svc_lock); /* * if we got here, the program or version @@ -1609,7 +1470,6 @@ _svc_prog_dispatch(xprt, msg, r) } else { svcerr_noprog(xprt); } - trace1(TR_prog_dispatch, 1); return (0); } @@ -1619,7 +1479,7 @@ _svc_prog_dispatch(xprt, msg, r) * svc_xprt_alloc() - allocate a service transport handle */ SVCXPRT * -svc_xprt_alloc() +svc_xprt_alloc(void) { SVCXPRT *xprt = NULL; SVCXPRT_EXT *xt = NULL; @@ -1628,33 +1488,32 @@ svc_xprt_alloc() struct svc_req *req = NULL; char *cred_area = NULL; - if ((xprt = (SVCXPRT *)calloc(1, sizeof (SVCXPRT))) == NULL) + if ((xprt = calloc(1, sizeof (SVCXPRT))) == NULL) goto err_exit; - if ((xt = (SVCXPRT_EXT *)calloc(1, sizeof (SVCXPRT_EXT))) == NULL) + if ((xt = calloc(1, sizeof (SVCXPRT_EXT))) == NULL) goto err_exit; xprt->xp_p3 = (caddr_t)xt; /* SVCEXT(xprt) = xt */ - if ((xlist = (SVCXPRT_LIST *)calloc(1, sizeof (SVCXPRT_LIST))) == NULL) + if ((xlist = calloc(1, sizeof (SVCXPRT_LIST))) == NULL) goto err_exit; xt->my_xlist = xlist; xlist->xprt = xprt; - if ((msg = (struct rpc_msg *)malloc(sizeof (struct rpc_msg))) == NULL) + if ((msg = malloc(sizeof (struct rpc_msg))) == NULL) goto err_exit; xt->msg = msg; - if ((req = (struct svc_req *)malloc(sizeof (struct svc_req))) == NULL) + if ((req = malloc(sizeof (struct svc_req))) == NULL) goto err_exit; xt->req = req; - if ((cred_area = (char *)malloc(2*MAX_AUTH_BYTES + - RQCRED_SIZE)) == NULL) + if ((cred_area = malloc(2*MAX_AUTH_BYTES + RQCRED_SIZE)) == NULL) goto err_exit; xt->cred_area = cred_area; /* LINTED pointer alignment */ - mutex_init(&svc_send_mutex(xprt), USYNC_THREAD, (void *)0); + (void) mutex_init(&svc_send_mutex(xprt), USYNC_THREAD, (void *)0); return (xprt); err_exit: @@ -1667,8 +1526,7 @@ err_exit: * svc_xprt_free() - free a service handle */ void -svc_xprt_free(xprt) - SVCXPRT *xprt; +svc_xprt_free(SVCXPRT *xprt) { /* LINTED pointer alignment */ SVCXPRT_EXT *xt = xprt ? SVCEXT(xprt) : NULL; @@ -1678,17 +1536,17 @@ svc_xprt_free(xprt) char *cred_area = xt ? xt->cred_area : NULL; if (xprt) - free((char *)xprt); + free(xprt); if (xt) - free((char *)xt); + free(xt); if (my_xlist) - free((char *)my_xlist); + free(my_xlist); if (msg) - free((char *)msg); + free(msg); if (req) - free((char *)req); + free(req); if (cred_area) - free((char *)cred_area); + free(cred_area); } @@ -1696,8 +1554,7 @@ svc_xprt_free(xprt) * svc_xprt_destroy() - free parent and child xprt list */ void -svc_xprt_destroy(xprt) - SVCXPRT *xprt; +svc_xprt_destroy(SVCXPRT *xprt) { SVCXPRT_LIST *xlist, *xnext = NULL; int type; @@ -1734,8 +1591,7 @@ svc_xprt_destroy(xprt) * svc_copy() - make a copy of parent */ SVCXPRT * -svc_copy(xprt) - SVCXPRT *xprt; +svc_copy(SVCXPRT *xprt) { /* LINTED pointer alignment */ switch (svc_type(xprt)) { @@ -1746,7 +1602,7 @@ svc_copy(xprt) case SVC_CONNECTION: return (svc_fd_xprtcopy(xprt)); } - return ((SVCXPRT *)NULL); + return (NULL); } @@ -1754,8 +1610,7 @@ svc_copy(xprt) * _svc_destroy_private() - private SVC_DESTROY interface */ void -_svc_destroy_private(xprt) - SVCXPRT *xprt; +_svc_destroy_private(SVCXPRT *xprt) { /* LINTED pointer alignment */ switch (svc_type(xprt)) { @@ -1776,9 +1631,7 @@ _svc_destroy_private(xprt) * call has been invoked to enable this feature. */ bool_t -svc_get_local_cred(xprt, lcred) - SVCXPRT *xprt; - svc_local_cred_t *lcred; +svc_get_local_cred(SVCXPRT *xprt, svc_local_cred_t *lcred) { /* LINTED pointer alignment */ if (svc_type(xprt) == SVC_DOOR) @@ -1803,8 +1656,7 @@ svc_get_local_cred(xprt, lcred) /* dupcache header contains xprt specific information */ -struct dupcache -{ +struct dupcache { rwlock_t dc_lock; time_t dc_time; int dc_buckets; @@ -1846,24 +1698,24 @@ __svc_dupcache_init(void *condition, int basis, char **xprt_cache) int i; struct dupcache *dc; - mutex_lock(&initdc_lock); + (void) mutex_lock(&initdc_lock); if (*xprt_cache != NULL) { /* do only once per xprt */ - mutex_unlock(&initdc_lock); + (void) mutex_unlock(&initdc_lock); syslog(LOG_ERR, - "__svc_dupcache_init: multiply defined dup cache"); + "__svc_dupcache_init: multiply defined dup cache"); return (FALSE); } switch (basis) { case DUPCACHE_FIXEDTIME: - dc = (struct dupcache *)mem_alloc(sizeof (struct dupcache)); + dc = malloc(sizeof (struct dupcache)); if (dc == NULL) { - mutex_unlock(&initdc_lock); + (void) mutex_unlock(&initdc_lock); syslog(LOG_ERR, "__svc_dupcache_init: memory alloc failed"); return (FALSE); } - rwlock_init(&(dc->dc_lock), USYNC_THREAD, NULL); + (void) rwlock_init(&(dc->dc_lock), USYNC_THREAD, NULL); if (condition != NULL) dc->dc_time = *((time_t *)condition); else @@ -1872,11 +1724,11 @@ __svc_dupcache_init(void *condition, int basis, char **xprt_cache) dc->dc_maxsz = DUPCACHE_MAXSZ; dc->dc_basis = basis; dc->dc_mru = NULL; - dc->dc_hashtbl = (struct dupreq **)mem_alloc(dc->dc_buckets * + dc->dc_hashtbl = malloc(dc->dc_buckets * sizeof (struct dupreq *)); if (dc->dc_hashtbl == NULL) { - mem_free(dc, sizeof (struct dupcache)); - mutex_unlock(&initdc_lock); + free(dc); + (void) mutex_unlock(&initdc_lock); syslog(LOG_ERR, "__svc_dupcache_init: memory alloc failed"); return (FALSE); @@ -1886,13 +1738,13 @@ __svc_dupcache_init(void *condition, int basis, char **xprt_cache) *xprt_cache = (char *)dc; break; default: - mutex_unlock(&initdc_lock); + (void) mutex_unlock(&initdc_lock); syslog(LOG_ERR, - "__svc_dupcache_init: undefined dup cache basis"); + "__svc_dupcache_init: undefined dup cache basis"); return (FALSE); } - mutex_unlock(&initdc_lock); + (void) mutex_unlock(&initdc_lock); return (TRUE); } @@ -1960,7 +1812,7 @@ __svc_dupcache_check(struct svc_req *req, caddr_t *resp_buf, uint_t *resp_bufsz, { struct dupreq *dr = NULL; - rw_rdlock(&(dc->dc_lock)); + (void) rw_rdlock(&(dc->dc_lock)); dr = dc->dc_hashtbl[drhash]; while (dr != NULL) { if (dr->dr_xid == drxid && @@ -1968,12 +1820,12 @@ __svc_dupcache_check(struct svc_req *req, caddr_t *resp_buf, uint_t *resp_bufsz, dr->dr_prog == req->rq_prog && dr->dr_vers == req->rq_vers && dr->dr_addr.len == req->rq_xprt->xp_rtaddr.len && - memcmp((caddr_t)dr->dr_addr.buf, - (caddr_t)req->rq_xprt->xp_rtaddr.buf, + memcmp(dr->dr_addr.buf, + req->rq_xprt->xp_rtaddr.buf, dr->dr_addr.len) == 0) { /* entry found */ if (dr->dr_hash != drhash) { /* sanity check */ - rw_unlock((&dc->dc_lock)); + (void) rw_unlock((&dc->dc_lock)); syslog(LOG_ERR, "\n__svc_dupdone: hashing error"); return (DUP_ERROR); @@ -1991,17 +1843,15 @@ __svc_dupcache_check(struct svc_req *req, caddr_t *resp_buf, uint_t *resp_bufsz, (dr->dr_status == DUP_DROP)) && resp_buf != NULL && dr->dr_resp.buf != NULL) { - *resp_buf = (caddr_t)mem_alloc - (dr->dr_resp.len); + *resp_buf = malloc(dr->dr_resp.len); if (*resp_buf == NULL) { syslog(LOG_ERR, "__svc_dupcache_check: malloc failed"); - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); return (DUP_ERROR); } - memset((caddr_t)*resp_buf, 0, - dr->dr_resp.len); - memcpy(*resp_buf, (caddr_t)dr->dr_resp.buf, + (void) memset(*resp_buf, 0, dr->dr_resp.len); + (void) memcpy(*resp_buf, dr->dr_resp.buf, dr->dr_resp.len); *resp_bufsz = dr->dr_resp.len; } else { @@ -2011,12 +1861,12 @@ __svc_dupcache_check(struct svc_req *req, caddr_t *resp_buf, uint_t *resp_bufsz, if (resp_bufsz) *resp_bufsz = 0; } - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); return (dr->dr_status); } dr = dr->dr_chain; } - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); return (DUP_NEW); } @@ -2039,7 +1889,7 @@ __svc_dupcache_victim(struct dupcache *dc, time_t timenow) * Note that only DONE or DROPPED entries are on the lru * list but we do a sanity check anyway. */ - rw_wrlock(&(dc->dc_lock)); + (void) rw_wrlock(&(dc->dc_lock)); while ((dc->dc_mru) && (dr = dc->dc_mru->dr_next) && ((timenow - dr->dr_time) > dc->dc_time)) { /* clean and then free the entry */ @@ -2051,7 +1901,7 @@ __svc_dupcache_victim(struct dupcache *dc, time_t timenow) * DUP_DONE or DUP_DROP. */ syslog(LOG_ERR, - "__svc_dupcache_victim: bad victim"); + "__svc_dupcache_victim: bad victim"); #ifdef DUP_DEBUG /* * Need to hold the reader/writers lock to @@ -2061,16 +1911,16 @@ __svc_dupcache_victim(struct dupcache *dc, time_t timenow) */ __svc_dupcache_debug(dc); #endif /* DUP_DEBUG */ - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); return (NULL); } /* free buffers */ if (dr->dr_resp.buf) { - mem_free(dr->dr_resp.buf, dr->dr_resp.len); + free(dr->dr_resp.buf); dr->dr_resp.buf = NULL; } if (dr->dr_addr.buf) { - mem_free(dr->dr_addr.buf, dr->dr_addr.len); + free(dr->dr_addr.buf); dr->dr_addr.buf = NULL; } @@ -2083,30 +1933,30 @@ __svc_dupcache_victim(struct dupcache *dc, time_t timenow) dc->dc_hashtbl[dr->dr_hash] = dr->dr_chain; /* modify the lru pointers */ - if (dc->dc_mru == dr) + if (dc->dc_mru == dr) { dc->dc_mru = NULL; - else { + } else { dc->dc_mru->dr_next = dr->dr_next; dr->dr_next->dr_prev = dc->dc_mru; } - mem_free(dr, sizeof (struct dupreq)); + free(dr); dr = NULL; } - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); /* * Allocate and return new clean entry as victim */ - if ((dr = (struct dupreq *)mem_alloc(sizeof (*dr))) == NULL) { + if ((dr = malloc(sizeof (*dr))) == NULL) { syslog(LOG_ERR, - "__svc_dupcache_victim: mem_alloc failed"); + "__svc_dupcache_victim: malloc failed"); return (NULL); } - memset((caddr_t)dr, 0, sizeof (*dr)); + (void) memset(dr, 0, sizeof (*dr)); return (dr); default: syslog(LOG_ERR, - "__svc_dupcache_victim: undefined dup cache_basis"); + "__svc_dupcache_victim: undefined dup cache_basis"); return (NULL); } } @@ -2126,15 +1976,14 @@ __svc_dupcache_enter(struct svc_req *req, struct dupreq *dr, dr->dr_proc = req->rq_proc; dr->dr_addr.maxlen = req->rq_xprt->xp_rtaddr.len; dr->dr_addr.len = dr->dr_addr.maxlen; - if ((dr->dr_addr.buf = (caddr_t)mem_alloc(dr->dr_addr.maxlen)) - == NULL) { - syslog(LOG_ERR, "__svc_dupcache_enter: mem_alloc failed"); - mem_free(dr, sizeof (struct dupreq)); + if ((dr->dr_addr.buf = malloc(dr->dr_addr.maxlen)) == NULL) { + syslog(LOG_ERR, "__svc_dupcache_enter: malloc failed"); + free(dr); return (DUP_ERROR); } - memset(dr->dr_addr.buf, 0, dr->dr_addr.len); - memcpy((caddr_t)dr->dr_addr.buf, - (caddr_t)req->rq_xprt->xp_rtaddr.buf, dr->dr_addr.len); + (void) memset(dr->dr_addr.buf, 0, dr->dr_addr.len); + (void) memcpy(dr->dr_addr.buf, req->rq_xprt->xp_rtaddr.buf, + dr->dr_addr.len); dr->dr_resp.buf = NULL; dr->dr_resp.maxlen = 0; dr->dr_resp.len = 0; @@ -2143,13 +1992,13 @@ __svc_dupcache_enter(struct svc_req *req, struct dupreq *dr, dr->dr_hash = drhash; /* needed for efficient victim cleanup */ /* place entry at head of hash table */ - rw_wrlock(&(dc->dc_lock)); + (void) rw_wrlock(&(dc->dc_lock)); dr->dr_chain = dc->dc_hashtbl[drhash]; dr->dr_prevchain = NULL; if (dc->dc_hashtbl[drhash] != NULL) dc->dc_hashtbl[drhash]->dr_prevchain = dr; dc->dc_hashtbl[drhash] = dr; - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); return (DUP_NEW); } @@ -2213,7 +2062,7 @@ __svc_dupcache_update(struct svc_req *req, caddr_t resp_buf, uint_t resp_bufsz, struct dupreq *dr = NULL; time_t timenow = time(NULL); - rw_wrlock(&(dc->dc_lock)); + (void) rw_wrlock(&(dc->dc_lock)); dr = dc->dc_hashtbl[drhash]; while (dr != NULL) { if (dr->dr_xid == drxid && @@ -2221,12 +2070,12 @@ __svc_dupcache_update(struct svc_req *req, caddr_t resp_buf, uint_t resp_bufsz, dr->dr_prog == req->rq_prog && dr->dr_vers == req->rq_vers && dr->dr_addr.len == req->rq_xprt->xp_rtaddr.len && - memcmp((caddr_t)dr->dr_addr.buf, - (caddr_t)req->rq_xprt->xp_rtaddr.buf, + memcmp(dr->dr_addr.buf, + req->rq_xprt->xp_rtaddr.buf, dr->dr_addr.len) == 0) { /* entry found */ if (dr->dr_hash != drhash) { /* sanity check */ - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); syslog(LOG_ERR, "\n__svc_dupdone: hashing error"); return (DUP_ERROR); @@ -2234,15 +2083,15 @@ __svc_dupcache_update(struct svc_req *req, caddr_t resp_buf, uint_t resp_bufsz, /* store the results if bufer is not NULL */ if (resp_buf != NULL) { - if ((dr->dr_resp.buf = (caddr_t) - mem_alloc(resp_bufsz)) == NULL) { - rw_unlock(&(dc->dc_lock)); + if ((dr->dr_resp.buf = + malloc(resp_bufsz)) == NULL) { + (void) rw_unlock(&(dc->dc_lock)); syslog(LOG_ERR, - "__svc_dupdone: mem_alloc failed"); + "__svc_dupdone: malloc failed"); return (DUP_ERROR); } - memset(dr->dr_resp.buf, 0, resp_bufsz); - memcpy((caddr_t)dr->dr_resp.buf, resp_buf, + (void) memset(dr->dr_resp.buf, 0, resp_bufsz); + (void) memcpy(dr->dr_resp.buf, resp_buf, (uint_t)resp_bufsz); dr->dr_resp.len = resp_bufsz; } @@ -2263,12 +2112,12 @@ __svc_dupcache_update(struct svc_req *req, caddr_t resp_buf, uint_t resp_bufsz, } dc->dc_mru = dr; - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); return (status); } dr = dr->dr_chain; } - rw_unlock(&(dc->dc_lock)); + (void) rw_unlock(&(dc->dc_lock)); syslog(LOG_ERR, "__svc_dupdone: entry not in dup cache"); return (DUP_ERROR); } diff --git a/usr/src/lib/libnsl/rpc/svc_auth.c b/usr/src/lib/libnsl/rpc/svc_auth.c index 4ee21f4314..14895558d6 100644 --- a/usr/src/lib/libnsl/rpc/svc_auth.c +++ b/usr/src/lib/libnsl/rpc/svc_auth.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -41,7 +43,6 @@ #include "rpc_mt.h" #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <stdlib.h> /* @@ -97,19 +98,15 @@ static struct authsvc *Auths = NULL; * invalid. */ enum auth_stat -__gss_authenticate(rqst, msg, no_dispatch) - struct svc_req *rqst; - struct rpc_msg *msg; - bool_t *no_dispatch; +__gss_authenticate(struct svc_req *rqst, struct rpc_msg *msg, + bool_t *no_dispatch) { int cred_flavor; struct authsvc *asp; - enum auth_stat dummy; extern mutex_t authsvc_lock; /* VARIABLES PROTECTED BY authsvc_lock: asp, Auths */ - trace1(TR___gss_authenticate, 0); rqst->rq_cred = msg->rm_call.cb_cred; rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor; rqst->rq_xprt->xp_verf.oa_length = 0; @@ -117,46 +114,32 @@ __gss_authenticate(rqst, msg, no_dispatch) *no_dispatch = FALSE; switch (cred_flavor) { case AUTH_NULL: - dummy = __svcauth_null(rqst, msg); - trace1(TR___gss_authenticate, 1); - return (dummy); + return (__svcauth_null(rqst, msg)); case AUTH_SYS: - dummy = __svcauth_sys(rqst, msg); - trace1(TR___gss_authenticate, 1); - return (dummy); + return (__svcauth_sys(rqst, msg)); case AUTH_SHORT: - dummy = __svcauth_short(rqst, msg); - trace1(TR___gss_authenticate, 1); - return (dummy); + return (__svcauth_short(rqst, msg)); case AUTH_DES: - dummy = __svcauth_des(rqst, msg); - trace1(TR___gss_authenticate, 1); - return (dummy); + return (__svcauth_des(rqst, msg)); case AUTH_LOOPBACK: - dummy = __svcauth_loopback(rqst, msg); - trace1(TR___gss_authenticate, 1); - return (dummy); + return (__svcauth_loopback(rqst, msg)); case RPCSEC_GSS: - dummy = __svcrpcsec_gss(rqst, msg, no_dispatch); - trace1(TR___gss_authenticate, 1); - return (dummy); + return (__svcrpcsec_gss(rqst, msg, no_dispatch)); } /* flavor doesn't match any of the builtin types, so try new ones */ - mutex_lock(&authsvc_lock); + (void) mutex_lock(&authsvc_lock); for (asp = Auths; asp; asp = asp->next) { if (asp->flavor == cred_flavor) { enum auth_stat as; as = (*asp->handler)(rqst, msg); - mutex_unlock(&authsvc_lock); - trace1(TR___gss_authenticate, 1); + (void) mutex_unlock(&authsvc_lock); return (as); } } - mutex_unlock(&authsvc_lock); + (void) mutex_unlock(&authsvc_lock); - trace1(TR___gss_authenticate, 1); return (AUTH_REJECTEDCRED); } @@ -165,29 +148,17 @@ __gss_authenticate(rqst, msg, no_dispatch) * backward compatibility. */ enum auth_stat -__authenticate(rqst, msg) - struct svc_req *rqst; - struct rpc_msg *msg; +__authenticate(struct svc_req *rqst, struct rpc_msg *msg) { bool_t no_dispatch; - enum auth_stat st; - - trace1(TR___authenticate, 0); - st = __gss_authenticate(rqst, msg, &no_dispatch); - - trace1(TR___authenticate, 1); - return (st); + return (__gss_authenticate(rqst, msg, &no_dispatch)); } /*ARGSUSED*/ enum auth_stat -__svcauth_null(rqst, msg) - struct svc_req *rqst; - struct rpc_msg *msg; +__svcauth_null(struct svc_req *rqst, struct rpc_msg *msg) { - trace1(TR___svcauth_null, 0); - trace1(TR___svcauth_null, 1); return (AUTH_OK); } @@ -206,50 +177,40 @@ __svcauth_null(rqst, msg) */ int -svc_auth_reg(cred_flavor, handler) - int cred_flavor; - enum auth_stat (*handler)(); +svc_auth_reg(int cred_flavor, enum auth_stat (*handler)()) { struct authsvc *asp; extern mutex_t authsvc_lock; - trace2(TR_svc_auth_reg, 0, cred_flavor); switch (cred_flavor) { - case AUTH_NULL: - case AUTH_SYS: - case AUTH_SHORT: - case AUTH_DES: - case AUTH_LOOPBACK: - case RPCSEC_GSS: + case AUTH_NULL: + case AUTH_SYS: + case AUTH_SHORT: + case AUTH_DES: + case AUTH_LOOPBACK: + case RPCSEC_GSS: /* already registered */ - trace1(TR_svc_auth_reg, 1); return (1); - - default: - mutex_lock(&authsvc_lock); - for (asp = Auths; asp; asp = asp->next) { - if (asp->flavor == cred_flavor) { - /* already registered */ - mutex_unlock(&authsvc_lock); - trace1(TR_svc_auth_reg, 1); - return (1); - } + } + (void) mutex_lock(&authsvc_lock); + for (asp = Auths; asp; asp = asp->next) { + if (asp->flavor == cred_flavor) { + /* already registered */ + (void) mutex_unlock(&authsvc_lock); + return (1); } + } - /* this is a new one, so go ahead and register it */ - asp = (struct authsvc *)mem_alloc(sizeof (*asp)); - if (asp == NULL) { - mutex_unlock(&authsvc_lock); - trace1(TR_svc_auth_reg, 1); - return (-1); - } - asp->flavor = cred_flavor; - asp->handler = handler; - asp->next = Auths; - Auths = asp; - mutex_unlock(&authsvc_lock); - break; + /* this is a new one, so go ahead and register it */ + asp = malloc(sizeof (*asp)); + if (asp == NULL) { + (void) mutex_unlock(&authsvc_lock); + return (-1); } - trace1(TR_svc_auth_reg, 1); + asp->flavor = cred_flavor; + asp->handler = handler; + asp->next = Auths; + Auths = asp; + (void) mutex_unlock(&authsvc_lock); return (0); } diff --git a/usr/src/lib/libnsl/rpc/svc_auth_loopb.c b/usr/src/lib/libnsl/rpc/svc_auth_loopb.c index d9bdfa525d..9c05dcaa3a 100644 --- a/usr/src/lib/libnsl/rpc/svc_auth_loopb.c +++ b/usr/src/lib/libnsl/rpc/svc_auth_loopb.c @@ -19,12 +19,13 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1997-2000, by Sun Microsystems Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" +#pragma ident "%Z%%M% %I% %E% SMI" /* * svc_auth_loopb.c @@ -56,6 +57,7 @@ __svcauth_loopback(struct svc_req *rqst, struct rpc_msg *msg) size_t str_len, gid_len; int i; + /* LINTED pointer cast */ area = (struct area *)rqst->rq_clntcred; aup = &area->area_aup; aup->aup_machname = area->area_machname; @@ -93,14 +95,9 @@ __svcauth_loopback(struct svc_req *rqst, struct rpc_msg *msg) * timestamp, hostname len (0), uid, gid, and gids len (0). */ if ((5 + gid_len) * BYTES_PER_XDR_UNIT + str_len > auth_len) { -#ifdef KERNEL - printf("bad auth_len gid %lu str %lu auth %lu", - gid_len, str_len, auth_len); -#else (void) syslog(LOG_ERR, "bad auth_len gid %lu str %lu auth %lu", gid_len, str_len, auth_len); -#endif stat = AUTH_BADCRED; goto done; } diff --git a/usr/src/lib/libnsl/rpc/svc_auth_sys.c b/usr/src/lib/libnsl/rpc/svc_auth_sys.c index e4c112c960..634a6345e3 100644 --- a/usr/src/lib/libnsl/rpc/svc_auth_sys.c +++ b/usr/src/lib/libnsl/rpc/svc_auth_sys.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2000 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -43,57 +45,39 @@ * */ -#ifdef KERNEL -#include <sys/param.h> -#include <sys/time.h> -#include <sys/kernel.h> -#include <rpc/types.h> -#include <rpc/xdr.h> -#include <rpc/auth.h> -#include <rpc/clnt.h> -#include <rpc/rpc_msg.h> -#include <rpc/svc.h> -#include <rpc/auth_sys.h> -#include <rpc/svc_auth.h> -#else #include <stdio.h> #include <rpc/rpc.h> #include <syslog.h> -#endif #include <sys/types.h> -#include <rpc/trace.h> +#include <string.h> /* * System (Unix) longhand authenticator */ enum auth_stat -__svcauth_sys(rqst, msg) - register struct svc_req *rqst; - register struct rpc_msg *msg; +__svcauth_sys(struct svc_req *rqst, struct rpc_msg *msg) { - register enum auth_stat stat; + enum auth_stat stat; XDR xdrs; - register struct authsys_parms *aup; - register rpc_inline_t *buf; + struct authsys_parms *aup; + rpc_inline_t *buf; struct area { struct authsys_parms area_aup; char area_machname[MAX_MACHINE_NAME+1]; gid_t area_gids[NGRPS]; } *area; - u_int auth_len; - u_int str_len, gid_len; - register int i; + uint_t auth_len; + uint_t str_len, gid_len; + int i; - trace1(TR___svcauth_sys, 0); - area = (struct area *) rqst->rq_clntcred; + /* LINTED pointer cast */ + area = (struct area *)rqst->rq_clntcred; aup = &area->area_aup; aup->aup_machname = area->area_machname; aup->aup_gids = area->area_gids; - auth_len = (u_int)msg->rm_call.cb_cred.oa_length; - if (auth_len == 0) { - trace1(TR___svcauth_sys, 1); + auth_len = (uint_t)msg->rm_call.cb_cred.oa_length; + if (auth_len == 0) return (AUTH_BADCRED); - } xdrmem_create(&xdrs, msg->rm_call.cb_cred.oa_base, auth_len, XDR_DECODE); buf = XDR_INLINE(&xdrs, auth_len); @@ -104,10 +88,10 @@ __svcauth_sys(rqst, msg) stat = AUTH_BADCRED; goto done; } - (void) memcpy(aup->aup_machname, (caddr_t)buf, str_len); + (void) memcpy(aup->aup_machname, buf, str_len); aup->aup_machname[str_len] = 0; str_len = RNDUP(str_len); - buf += str_len / (int) sizeof (int32_t); + buf += str_len / (int)sizeof (int32_t); aup->aup_uid = IXDR_GET_INT32(buf); aup->aup_gid = IXDR_GET_INT32(buf); gid_len = IXDR_GET_U_INT32(buf); @@ -117,21 +101,16 @@ __svcauth_sys(rqst, msg) } aup->aup_len = gid_len; for (i = 0; i < gid_len; i++) { - aup->aup_gids[i] = (gid_t) IXDR_GET_INT32(buf); + aup->aup_gids[i] = (gid_t)IXDR_GET_INT32(buf); } /* * five is the smallest unix credentials structure - * timestamp, hostname len (0), uid, gid, and gids len (0). */ if ((5 + gid_len) * BYTES_PER_XDR_UNIT + str_len > auth_len) { -#ifdef KERNEL - printf("bad auth_len gid %d str %d auth %d", - gid_len, str_len, auth_len); -#else (void) syslog(LOG_ERR, "bad auth_len gid %d str %d auth %d", gid_len, str_len, auth_len); -#endif stat = AUTH_BADCRED; goto done; } @@ -146,7 +125,6 @@ __svcauth_sys(rqst, msg) stat = AUTH_OK; done: XDR_DESTROY(&xdrs); - trace1(TR___svcauth_sys, 1); return (stat); } @@ -156,12 +134,8 @@ done: */ /*ARGSUSED*/ enum auth_stat -__svcauth_short(rqst, msg) - struct svc_req *rqst; - struct rpc_msg *msg; +__svcauth_short(struct svc_req *rqst, struct rpc_msg *msg) { - trace1(TR___svcauth_short, 0); - trace1(TR___svcauth_short, 1); return (AUTH_REJECTEDCRED); } @@ -169,14 +143,7 @@ __svcauth_short(rqst, msg) * Unix longhand authenticator. Will be obsoleted */ enum auth_stat -__svcauth_unix(rqst, msg) - register struct svc_req *rqst; - register struct rpc_msg *msg; +__svcauth_unix(struct svc_req *rqst, struct rpc_msg *msg) { - enum auth_stat dummy; - - trace1(TR___svcauth_unix, 0); - dummy = __svcauth_sys(rqst, msg); - trace1(TR___svcauth_unix, 1); - return (dummy); + return (__svcauth_sys(rqst, msg)); } diff --git a/usr/src/lib/libnsl/rpc/svc_dg.c b/usr/src/lib/libnsl/rpc/svc_dg.c index 9ecd7e63d5..8a73cb8faa 100644 --- a/usr/src/lib/libnsl/rpc/svc_dg.c +++ b/usr/src/lib/libnsl/rpc/svc_dg.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -33,7 +34,6 @@ #pragma ident "%Z%%M% %I% %E% SMI" - /* * svc_dg.c, Server side for connectionless RPC. * @@ -44,7 +44,6 @@ #include "rpc_mt.h" #include <stdio.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/rpc.h> #include <errno.h> #include <syslog.h> @@ -104,8 +103,7 @@ extern struct svc_auth_ops svc_auth_any_ops; extern int __rpc_get_ltaddr(struct netbuf *, struct netbuf *); void -svc_dg_xprtfree(xprt) - SVCXPRT *xprt; +svc_dg_xprtfree(SVCXPRT *xprt) { /* LINTED pointer alignment */ SVCXPRT_EXT *xt = xprt ? SVCEXT(xprt) : NULL; @@ -115,9 +113,9 @@ svc_dg_xprtfree(xprt) if (xprt == NULL) return; if (xprt->xp_netid) - free((char *)xprt->xp_netid); + free(xprt->xp_netid); if (xprt->xp_tp) - free((char *)xprt->xp_tp); + free(xprt->xp_tp); if (xt->parent == NULL) if (xprt->xp_ltaddr.buf) free(xprt->xp_ltaddr.buf); @@ -125,36 +123,30 @@ svc_dg_xprtfree(xprt) free(xprt->xp_rtaddr.buf); if (su != NULL) { XDR_DESTROY(&(su->su_xdrs)); - free((char *)su); + free(su); } if (rpc_buffer(xprt)) - free((char *)rpc_buffer(xprt)); + free(rpc_buffer(xprt)); svc_xprt_free(xprt); } SVCXPRT * -svc_dg_create_private(fd, sendsize, recvsize) - int fd; - uint_t sendsize; - uint_t recvsize; +svc_dg_create_private(int fd, uint_t sendsize, uint_t recvsize) { SVCXPRT *xprt; struct svc_dg_data *su = NULL; struct t_info tinfo; - trace4(TR_svc_dg_create, 0, fd, sendsize, recvsize); if (RPC_FD_NOTIN_FDSET(fd)) { errno = EBADF; t_errno = TBADF; syslog(LOG_ERR, svc_dg_str, svc_dg_err3); - trace2(TR_svc_dg_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } if (t_getinfo(fd, &tinfo) == -1) { syslog(LOG_ERR, svc_dg_str, svc_dg_err1); - trace2(TR_svc_dg_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* * Find the receive and the send size @@ -163,8 +155,7 @@ svc_dg_create_private(fd, sendsize, recvsize) recvsize = __rpc_get_t_size((int)recvsize, tinfo.tsdu); if ((sendsize == 0) || (recvsize == 0)) { syslog(LOG_ERR, svc_dg_str, svc_dg_err2); - trace2(TR_svc_dg_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } if ((xprt = svc_xprt_alloc()) == NULL) @@ -172,11 +163,11 @@ svc_dg_create_private(fd, sendsize, recvsize) /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_DGRAM; - su = (struct svc_dg_data *)mem_alloc(sizeof (*su)); + su = malloc(sizeof (*su)); if (su == NULL) goto freedata; su->su_iosz = ((MAX(sendsize, recvsize) + 3) / 4) * 4; - if ((rpc_buffer(xprt) = (char *)mem_alloc(su->su_iosz)) == NULL) + if ((rpc_buffer(xprt) = malloc(su->su_iosz)) == NULL) goto freedata; xdrmem_create(&(su->su_xdrs), rpc_buffer(xprt), su->su_iosz, XDR_DECODE); @@ -196,21 +187,16 @@ svc_dg_create_private(fd, sendsize, recvsize) SVC_XP_AUTH(xprt).svc_ah_ops = svc_auth_any_ops; /* LINTED pointer alignment */ SVC_XP_AUTH(xprt).svc_ah_private = NULL; - trace2(TR_svc_dg_create, 1, fd); return (xprt); freedata: (void) syslog(LOG_ERR, svc_dg_str, __no_mem_str); if (xprt) svc_dg_xprtfree(xprt); - trace2(TR_svc_dg_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } SVCXPRT * -svc_dg_create(fd, sendsize, recvsize) - int fd; - uint_t sendsize; - uint_t recvsize; +svc_dg_create(const int fd, const uint_t sendsize, const uint_t recvsize) { SVCXPRT *xprt; @@ -220,8 +206,7 @@ svc_dg_create(fd, sendsize, recvsize) } SVCXPRT * -svc_dg_xprtcopy(parent) - SVCXPRT *parent; +svc_dg_xprtcopy(SVCXPRT *parent) { SVCXPRT *xprt; struct svc_dg_data *su; @@ -258,25 +243,24 @@ svc_dg_xprtcopy(parent) xprt->xp_ltaddr = parent->xp_ltaddr; /* shared with parent */ xprt->xp_rtaddr = parent->xp_rtaddr; - xprt->xp_rtaddr.buf = (char *)malloc(xprt->xp_rtaddr.maxlen); + xprt->xp_rtaddr.buf = malloc(xprt->xp_rtaddr.maxlen); if (xprt->xp_rtaddr.buf == NULL) { svc_dg_xprtfree(xprt); return (NULL); } - memcpy(xprt->xp_rtaddr.buf, parent->xp_rtaddr.buf, + (void) memcpy(xprt->xp_rtaddr.buf, parent->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen); xprt->xp_type = parent->xp_type; - if ((su = (struct svc_dg_data *)malloc(sizeof (struct svc_dg_data))) - == NULL) { + if ((su = malloc(sizeof (struct svc_dg_data))) == NULL) { svc_dg_xprtfree(xprt); return (NULL); } /* LINTED pointer alignment */ su->su_iosz = su_data(parent)->su_iosz; - if ((rpc_buffer(xprt) = (char *)mem_alloc(su->su_iosz)) == NULL) { + if ((rpc_buffer(xprt) = malloc(su->su_iosz)) == NULL) { svc_dg_xprtfree(xprt); - free((char *)su); + free(su); return (NULL); } xdrmem_create(&(su->su_xdrs), rpc_buffer(xprt), su->su_iosz, @@ -295,18 +279,13 @@ svc_dg_xprtcopy(parent) /*ARGSUSED*/ static enum xprt_stat -svc_dg_stat(xprt) - SVCXPRT *xprt; +svc_dg_stat(SVCXPRT *xprt) { - trace1(TR_svc_dg_stat, 0); - trace1(TR_svc_dg_stat, 1); return (XPRT_IDLE); } static bool_t -svc_dg_recv(xprt, msg) - SVCXPRT *xprt; - struct rpc_msg *msg; +svc_dg_recv(SVCXPRT *xprt, struct rpc_msg *msg) { /* LINTED pointer alignment */ struct svc_dg_data *su = su_data(xprt); @@ -317,8 +296,6 @@ svc_dg_recv(xprt, msg) struct netconfig *nconf; /* XXX: tudata should have been made a part of the server handle */ - trace1(TR_svc_dg_recv, 0); - if (tu_data->addr.maxlen == 0) tu_data->addr = xprt->xp_rtaddr; again: @@ -351,7 +328,6 @@ again: } else if ((errno == EINTR) && (t_errno == TSYSERR)) goto again; else { - trace1(TR_svc_dg_recv, 1); return (FALSE); } } @@ -361,17 +337,14 @@ again: /* * If moreflag is set, drop that data packet. Something wrong */ - trace1(TR_svc_dg_recv, 1); return (FALSE); } su->optbuf = tu_data->opt; xprt->xp_rtaddr.len = tu_data->addr.len; xdrs->x_op = XDR_DECODE; XDR_SETPOS(xdrs, 0); - if (! xdr_callmsg(xdrs, msg)) { - trace1(TR_svc_dg_recv, 1); + if (!xdr_callmsg(xdrs, msg)) return (FALSE); - } su->su_xid = msg->rm_xid; if (su->su_cache != NULL) { char *reply; @@ -384,7 +357,6 @@ again: tu_data->opt.len = 0; (void) t_sndudata(xprt->xp_fd, tu_data); tu_data->udata.buf = (char *)rpc_buffer(xprt); - trace1(TR_svc_dg_recv, 1); return (FALSE); } } @@ -397,6 +369,7 @@ again: if (strcmp(nconf->nc_protofmly, NC_INET) == 0 || strcmp(nconf->nc_protofmly, NC_INET6) == 0) { if (nconf->nc_semantics == NC_TPI_CLTS) { + /* LINTED pointer cast */ nbufp = (struct netbuf *)(xprt->xp_p2); if (__rpc_get_ltaddr(nbufp, &xprt->xp_ltaddr) < 0) { if (strcmp(nconf->nc_protofmly, NC_INET) == 0) { @@ -410,21 +383,17 @@ again: t_errno, errno); } freenetconfigent(nconf); - trace1(TR_svc_dg_recv, 1); return (FALSE); } } } freenetconfigent(nconf); } - trace1(TR_svc_dg_recv, 1); return (TRUE); } static bool_t -svc_dg_reply(xprt, msg) - SVCXPRT *xprt; - struct rpc_msg *msg; +svc_dg_reply(SVCXPRT *xprt, struct rpc_msg *msg) { /* LINTED pointer alignment */ struct svc_dg_data *su = su_data(xprt); @@ -434,7 +403,6 @@ svc_dg_reply(xprt, msg) caddr_t xdr_location; bool_t has_args; - trace1(TR_svc_dg_reply, 0); if (msg->rm_reply.rp_stat == MSG_ACCEPTED && msg->rm_reply.rp_acpt.ar_stat == SUCCESS) { has_args = TRUE; @@ -473,59 +441,39 @@ try_again: t_errno, errno); } } - trace1(TR_svc_dg_reply, 1); return (stat); } static bool_t -svc_dg_getargs(xprt, xdr_args, args_ptr) - SVCXPRT *xprt; - xdrproc_t xdr_args; - caddr_t args_ptr; +svc_dg_getargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { - bool_t dummy_stat1; - - trace1(TR_svc_dg_getargs, 0); if (svc_mt_mode != RPC_SVC_MT_NONE) svc_args_done(xprt); /* LINTED pointer alignment */ - dummy_stat1 = SVCAUTH_UNWRAP(&SVC_XP_AUTH(xprt), - &(su_data(xprt)->su_xdrs), xdr_args, args_ptr); - trace1(TR_svc_dg_getargs, 1); - return (dummy_stat1); + return (SVCAUTH_UNWRAP(&SVC_XP_AUTH(xprt), + &(su_data(xprt)->su_xdrs), xdr_args, args_ptr)); } static bool_t -svc_dg_freeargs(xprt, xdr_args, args_ptr) - SVCXPRT *xprt; - xdrproc_t xdr_args; - caddr_t args_ptr; +svc_dg_freeargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { /* LINTED pointer alignment */ XDR *xdrs = &(su_data(xprt)->su_xdrs); - bool_t dummy_stat2; - trace1(TR_svc_dg_freeargs, 0); xdrs->x_op = XDR_FREE; - dummy_stat2 = (*xdr_args)(xdrs, args_ptr); - trace1(TR_svc_dg_freeargs, 1); - return (dummy_stat2); + return ((*xdr_args)(xdrs, args_ptr)); } static void -svc_dg_destroy(xprt) - SVCXPRT *xprt; +svc_dg_destroy(SVCXPRT *xprt) { - trace1(TR_svc_dg_destroy, 0); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); _svc_dg_destroy_private(xprt); - mutex_unlock(&svc_mutex); - trace1(TR_svc_dg_destroy, 1); + (void) mutex_unlock(&svc_mutex); } void -_svc_dg_destroy_private(xprt) - SVCXPRT *xprt; +_svc_dg_destroy_private(SVCXPRT *xprt) { if (svc_mt_mode != RPC_SVC_MT_NONE) { /* LINTED pointer alignment */ @@ -550,40 +498,29 @@ _svc_dg_destroy_private(xprt) /*ARGSUSED*/ static bool_t -svc_dg_control(xprt, rq, in) - SVCXPRT *xprt; - const uint_t rq; - void *in; +svc_dg_control(SVCXPRT *xprt, const uint_t rq, void *in) { - trace3(TR_svc_dg_control, 0, xprt, rq); switch (rq) { case SVCGET_XID: - if (xprt->xp_p2 == NULL) { - trace1(TR_svc_dg_control, 1); + if (xprt->xp_p2 == NULL) return (FALSE); - } else { - *(uint32_t *)in = - /* LINTED pointer alignment */ - ((struct svc_dg_data *)(xprt->xp_p2))->su_xid; - trace1(TR_svc_dg_control, 1); - return (TRUE); - } + /* LINTED pointer alignment */ + *(uint32_t *)in = ((struct svc_dg_data *)(xprt->xp_p2))->su_xid; + return (TRUE); default: - trace1(TR_svc_dg_control, 1); return (FALSE); } } static struct xp_ops * -svc_dg_ops() +svc_dg_ops(void) { static struct xp_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_svc_dg_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.xp_recv == NULL) { ops.xp_recv = svc_dg_recv; ops.xp_stat = svc_dg_stat; @@ -593,8 +530,7 @@ svc_dg_ops() ops.xp_destroy = svc_dg_destroy; ops.xp_control = svc_dg_control; } - mutex_unlock(&ops_lock); - trace1(TR_svc_dg_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } @@ -611,15 +547,6 @@ svc_dg_ops() #define SPARSENESS 4 /* 75% sparse */ -#define ALLOC(type, size) \ - (type *)mem_alloc((unsigned)(sizeof (type) * (size))) - -#define MEMZERO(addr, type, size) \ - (void) memset((char *)(addr), 0, sizeof (type) * (int)(size)) - -#define FREE(addr, type, size) \ - mem_free((char *)(addr), (sizeof (type) * (size))) - /* * An entry in the cache */ @@ -676,9 +603,7 @@ static const char alloc_err[] = "could not allocate cache "; static const char enable_err[] = "cache already enabled"; int -svc_dg_enablecache(xprt, size) - SVCXPRT *xprt; - uint_t size; +svc_dg_enablecache(SVCXPRT *xprt, const uint_t size) { SVCXPRT *transp; struct svc_dg_data *su; @@ -693,49 +618,39 @@ svc_dg_enablecache(xprt, size) /* LINTED pointer alignment */ su = su_data(transp); - trace2(TR_svc_dg_enablecache, 0, size); - mutex_lock(&dupreq_lock); + (void) mutex_lock(&dupreq_lock); if (su->su_cache != NULL) { (void) syslog(LOG_ERR, cache_enable_str, enable_err, " "); - mutex_unlock(&dupreq_lock); - trace2(TR_svc_dg_enablecache, 1, size); + (void) mutex_unlock(&dupreq_lock); return (0); } - uc = ALLOC(struct cl_cache, 1); + uc = malloc(sizeof (struct cl_cache)); if (uc == NULL) { (void) syslog(LOG_ERR, cache_enable_str, alloc_err, " "); - mutex_unlock(&dupreq_lock); - trace2(TR_svc_dg_enablecache, 1, size); + (void) mutex_unlock(&dupreq_lock); return (0); } uc->uc_size = size; uc->uc_nextvictim = 0; - uc->uc_entries = ALLOC(cache_ptr, size * SPARSENESS); + uc->uc_entries = calloc(size * SPARSENESS, sizeof (cache_ptr)); if (uc->uc_entries == NULL) { - (void) syslog(LOG_ERR, cache_enable_str, - alloc_err, "data"); - FREE(uc, struct cl_cache, 1); - mutex_unlock(&dupreq_lock); - trace2(TR_svc_dg_enablecache, 1, size); + (void) syslog(LOG_ERR, cache_enable_str, alloc_err, "data"); + free(uc); + (void) mutex_unlock(&dupreq_lock); return (0); } - MEMZERO(uc->uc_entries, cache_ptr, size * SPARSENESS); - uc->uc_fifo = ALLOC(cache_ptr, size); + uc->uc_fifo = calloc(size, sizeof (cache_ptr)); if (uc->uc_fifo == NULL) { - (void) syslog(LOG_ERR, cache_enable_str, - alloc_err, "fifo"); - FREE(uc->uc_entries, cache_ptr, size * SPARSENESS); - FREE(uc, struct cl_cache, 1); - mutex_unlock(&dupreq_lock); - trace2(TR_svc_dg_enablecache, 1, size); + (void) syslog(LOG_ERR, cache_enable_str, alloc_err, "fifo"); + free(uc->uc_entries); + free(uc); + (void) mutex_unlock(&dupreq_lock); return (0); } - MEMZERO(uc->uc_fifo, cache_ptr, size); su->su_cache = (char *)uc; - mutex_unlock(&dupreq_lock); - trace2(TR_svc_dg_enablecache, 1, size); + (void) mutex_unlock(&dupreq_lock); return (1); } @@ -753,9 +668,7 @@ static const char cache_set_err2[] = "victim alloc failed"; static const char cache_set_err3[] = "could not allocate new rpc buffer"; static void -cache_set(xprt, replylen) - SVCXPRT *xprt; - uint32_t replylen; +cache_set(SVCXPRT *xprt, uint32_t replylen) { SVCXPRT *parent; cache_ptr victim; @@ -781,12 +694,11 @@ cache_set(xprt, replylen) /* LINTED pointer alignment */ uc = (struct cl_cache *)su_data(parent)->su_cache; - mutex_lock(&dupreq_lock); + (void) mutex_lock(&dupreq_lock); /* * Find space for the new entry, either by * reusing an old entry, or by mallocing a new one */ - trace2(TR_cache_set, 0, replylen); victim = uc->uc_fifo[uc->uc_nextvictim]; if (victim != NULL) { /* LINTED pointer alignment */ @@ -797,26 +709,23 @@ cache_set(xprt, replylen) ; if (*vicp == NULL) { (void) syslog(LOG_ERR, cache_set_str, cache_set_err1); - mutex_unlock(&dupreq_lock); - trace2(TR_cache_set, 1, replylen); + (void) mutex_unlock(&dupreq_lock); return; } *vicp = victim->cache_next; /* remove from cache */ newbuf = victim->cache_reply; } else { - victim = ALLOC(struct cache_node, 1); + victim = malloc(sizeof (struct cache_node)); if (victim == NULL) { (void) syslog(LOG_ERR, cache_set_str, cache_set_err2); - mutex_unlock(&dupreq_lock); - trace2(TR_cache_set, 1, replylen); + (void) mutex_unlock(&dupreq_lock); return; } - newbuf = (char *)mem_alloc(su->su_iosz); + newbuf = malloc(su->su_iosz); if (newbuf == NULL) { (void) syslog(LOG_ERR, cache_set_str, cache_set_err3); - FREE(victim, struct cache_node, 1); - mutex_unlock(&dupreq_lock); - trace2(TR_cache_set, 1, replylen); + free(victim); + (void) mutex_unlock(&dupreq_lock); return; } my_mallocs = 1; @@ -836,15 +745,14 @@ cache_set(xprt, replylen) free(uaddr); } #endif - newbuf2 = ALLOC(char, xprt->xp_rtaddr.len); + newbuf2 = malloc(sizeof (char) * xprt->xp_rtaddr.len); if (newbuf2 == NULL) { syslog(LOG_ERR, "cache_set : out of memory"); if (my_mallocs) { - FREE(victim, struct cache_node, 1); - mem_free(newbuf, su->su_iosz); + free(victim); + free(newbuf); } - mutex_unlock(&dupreq_lock); - trace2(TR_cache_set, 1, replylen); + (void) mutex_unlock(&dupreq_lock); return; } victim->cache_replylen = replylen; @@ -867,8 +775,7 @@ cache_set(xprt, replylen) uc->uc_entries[loc] = victim; uc->uc_fifo[uc->uc_nextvictim++] = victim; uc->uc_nextvictim %= uc->uc_size; - mutex_unlock(&dupreq_lock); - trace2(TR_cache_set, 1, replylen); + (void) mutex_unlock(&dupreq_lock); } /* @@ -876,11 +783,8 @@ cache_set(xprt, replylen) * return 1 if found, 0 if not found and set the stage for cache_set() */ static int -cache_get(xprt, msg, replyp, replylenp) - SVCXPRT *xprt; - struct rpc_msg *msg; - char **replyp; - uint32_t *replylenp; +cache_get(SVCXPRT *xprt, struct rpc_msg *msg, char **replyp, + uint32_t *replylenp) { SVCXPRT *parent; uint_t loc; @@ -892,8 +796,6 @@ cache_get(xprt, msg, replyp, replylenp) char *uaddr; #endif - trace1(TR_cache_get, 0); - /* LINTED pointer alignment */ if (svc_mt_mode != RPC_SVC_MT_NONE && SVCEXT(xprt)->parent != NULL) /* LINTED pointer alignment */ @@ -905,7 +807,7 @@ cache_get(xprt, msg, replyp, replylenp) /* LINTED pointer alignment */ uc = (struct cl_cache *)su_data(parent)->su_cache; - mutex_lock(&dupreq_lock); + (void) mutex_lock(&dupreq_lock); /* LINTED pointer alignment */ loc = CACHE_LOC(parent, su->su_xid); for (ent = uc->uc_entries[loc]; ent != NULL; ent = ent->cache_next) { @@ -930,8 +832,7 @@ cache_get(xprt, msg, replyp, replylenp) #endif *replyp = ent->cache_reply; *replylenp = ent->cache_replylen; - mutex_unlock(&dupreq_lock); - trace1(TR_cache_get, 1); + (void) mutex_unlock(&dupreq_lock); return (1); } } @@ -942,7 +843,6 @@ cache_get(xprt, msg, replyp, replylenp) uc->uc_proc = msg->rm_call.cb_proc; uc->uc_vers = msg->rm_call.cb_vers; uc->uc_prog = msg->rm_call.cb_prog; - mutex_unlock(&dupreq_lock); - trace1(TR_cache_get, 1); + (void) mutex_unlock(&dupreq_lock); return (0); } diff --git a/usr/src/lib/libnsl/rpc/svc_door.c b/usr/src/lib/libnsl/rpc/svc_door.c index acc66f0ff1..d5f3d7c675 100644 --- a/usr/src/lib/libnsl/rpc/svc_door.c +++ b/usr/src/lib/libnsl/rpc/svc_door.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -96,86 +97,77 @@ static SVCXPRT_LIST *dxlist; /* list of door based service handles */ * List management routines. */ bool_t -__svc_add_to_xlist(list, xprt, lockp) - SVCXPRT_LIST **list; - SVCXPRT *xprt; - mutex_t *lockp; +__svc_add_to_xlist(SVCXPRT_LIST **list, SVCXPRT *xprt, mutex_t *lockp) { SVCXPRT_LIST *l; - if ((l = (SVCXPRT_LIST *) malloc(sizeof (*l))) == NULL) + if ((l = malloc(sizeof (*l))) == NULL) return (FALSE); l->xprt = xprt; if (lockp != NULL) - mutex_lock(lockp); + (void) mutex_lock(lockp); l->next = *list; *list = l; if (lockp != NULL) - mutex_unlock(lockp); + (void) mutex_unlock(lockp); return (TRUE); } void -__svc_rm_from_xlist(list, xprt, lockp) - SVCXPRT_LIST **list; - SVCXPRT *xprt; - mutex_t *lockp; +__svc_rm_from_xlist(SVCXPRT_LIST **list, SVCXPRT *xprt, mutex_t *lockp) { SVCXPRT_LIST **l, *tmp; if (lockp != NULL) - mutex_lock(lockp); + (void) mutex_lock(lockp); for (l = list; *l != NULL; l = &(*l)->next) { if ((*l)->xprt == xprt) { tmp = (*l)->next; - free((char *)(*l)); + free(*l); *l = tmp; break; } } if (lockp != NULL) - mutex_unlock(lockp); + (void) mutex_unlock(lockp); } void -__svc_free_xlist(list, lockp) - SVCXPRT_LIST **list; - mutex_t *lockp; +__svc_free_xlist(SVCXPRT_LIST **list, mutex_t *lockp) { SVCXPRT_LIST *tmp; if (lockp != NULL) - mutex_lock(lockp); + (void) mutex_lock(lockp); while (*list != NULL) { tmp = (*list)->next; free(*list); *list = tmp; } if (lockp != NULL) - mutex_unlock(lockp); + (void) mutex_unlock(lockp); } /* * Destroy all door based service handles. */ void -__svc_cleanup_door_xprts() +__svc_cleanup_door_xprts(void) { SVCXPRT_LIST *l, *tmp = NULL; - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); for (l = dxlist; l != NULL; l = tmp) { tmp = l->next; svc_door_destroy_pvt(l->xprt); } - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); } static bool_t -make_tmp_dir() +make_tmp_dir(void) { struct stat statbuf; - mode_t mask; if (stat(RPC_DOOR_DIR, &statbuf) < 0) { (void) mkdir(RPC_DOOR_DIR, (mode_t)0755); @@ -188,10 +180,7 @@ make_tmp_dir() } static void -svc_door_dispatch(xprt, msg, r) - SVCXPRT *xprt; - struct rpc_msg *msg; - struct svc_req *r; +svc_door_dispatch(SVCXPRT *xprt, struct rpc_msg *msg, struct svc_req *r) { enum auth_stat why; /* LINTED pointer alignment */ @@ -251,22 +240,22 @@ door_server(void *cookie, char *argp, size_t arg_size, * allocate result buffer */ /* LINTED pointer alignment */ - result_buf = (char *)alloca(su_data(parent)->su_iosz); + result_buf = alloca(su_data(parent)->su_iosz); if (result_buf == NULL) { (void) syslog(LOG_ERR, "door_server: alloca failed"); (void) door_return(NULL, 0, NULL, 0); /*NOTREACHED*/ } - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); if ((xprt = get_xprt_copy(parent, result_buf)) == NULL) { (void) syslog(LOG_ERR, "door_server: memory allocation failure"); - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); (void) door_return(NULL, 0, NULL, 0); /*NOTREACHED*/ } - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); /* LINTED pointer alignment */ msg = SVCEXT(xprt)->msg; @@ -306,8 +295,7 @@ door_server(void *cookie, char *argp, size_t arg_size, */ void -svc_door_xprtfree(xprt) - SVCXPRT *xprt; +svc_door_xprtfree(SVCXPRT *xprt) { /* LINTED pointer alignment */ struct svc_door_data *su = xprt ? su_data(xprt) : NULL; @@ -315,20 +303,17 @@ svc_door_xprtfree(xprt) if (xprt == NULL) return; if (xprt->xp_netid) - free((char *)xprt->xp_netid); + free(xprt->xp_netid); if (xprt->xp_tp) - free((char *)xprt->xp_tp); + free(xprt->xp_tp); if (su != NULL) - free((char *)su); + free(su); svc_xprt_free(xprt); } SVCXPRT * -svc_door_create(dispatch, prognum, versnum, sendsize) - void (*dispatch)(); /* Dispatch function */ - rpcprog_t prognum; /* Program number */ - rpcvers_t versnum; /* Version number */ - uint_t sendsize; /* Send buffer size */ +svc_door_create(void (*dispatch)(), const rpcprog_t prognum, + const rpcvers_t versnum, const uint_t sendsize) { SVCXPRT *xprt; struct svc_door_data *su = NULL; @@ -336,14 +321,15 @@ svc_door_create(dispatch, prognum, versnum, sendsize) int fd; int did = -1; mode_t mask; + uint_t ssize; - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); if (!make_tmp_dir()) { (void) syslog(LOG_ERR, "svc_door_create: cannot open %s", RPC_DOOR_DIR); - mutex_unlock(&svc_door_mutex); - return ((SVCXPRT *)NULL); + (void) mutex_unlock(&svc_door_mutex); + return (NULL); } if ((xprt = svc_xprt_alloc()) == NULL) { @@ -353,7 +339,8 @@ svc_door_create(dispatch, prognum, versnum, sendsize) /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_DOOR; - (void) sprintf(rendezvous, RPC_DOOR_RENDEZVOUS, prognum, versnum); + (void) sprintf(rendezvous, RPC_DOOR_RENDEZVOUS, (int)prognum, + (int)versnum); mask = umask(0); fd = open(rendezvous, O_WRONLY|O_CREAT|O_EXCL|O_TRUNC, 0644); (void) umask(mask); @@ -382,7 +369,7 @@ svc_door_create(dispatch, prognum, versnum, sendsize) goto freedata; } } - close(fd); + (void) close(fd); did = door_create(door_server, (void *)xprt, DOOR_REFUSE_DESC); if (did < 0) { (void) syslog(LOG_ERR, @@ -403,16 +390,16 @@ svc_door_create(dispatch, prognum, versnum, sendsize) * Determine send size */ if (sendsize < __rpc_min_door_buf_size) - sendsize = __rpc_default_door_buf_size; + ssize = __rpc_default_door_buf_size; else - sendsize = RNDUP(sendsize); + ssize = RNDUP(sendsize); - su = (struct svc_door_data *)mem_alloc(sizeof (*su)); + su = malloc(sizeof (*su)); if (su == NULL) { (void) syslog(LOG_ERR, "svc_door_create: out of memory"); goto freedata; } - su->su_iosz = sendsize; + su->su_iosz = ssize; su->call_info.prognum = prognum; su->call_info.versnum = versnum; su->call_info.dispatch = dispatch; @@ -433,12 +420,12 @@ svc_door_create(dispatch, prognum, versnum, sendsize) xprt->xp_fd = did; svc_ndoorfds++; - if (!__svc_add_to_xlist(&dxlist, xprt, (mutex_t *)NULL)) { + if (!__svc_add_to_xlist(&dxlist, xprt, NULL)) { (void) syslog(LOG_ERR, "svc_door_create: out of memory"); goto freedata; } - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); return (xprt); freedata: (void) fdetach(rendezvous); @@ -447,14 +434,13 @@ freedata: (void) door_revoke(did); if (xprt) svc_door_xprtfree(xprt); - mutex_unlock(&svc_door_mutex); - return ((SVCXPRT *)NULL); + (void) mutex_unlock(&svc_door_mutex); + return (NULL); } static SVCXPRT * -svc_door_xprtcopy(parent) - SVCXPRT *parent; +svc_door_xprtcopy(SVCXPRT *parent) { SVCXPRT *xprt; struct svc_door_data *su; @@ -483,7 +469,7 @@ svc_door_xprtcopy(parent) if (xprt->xp_netid == NULL) { syslog(LOG_ERR, "svc_door_xprtcopy: strdup failed"); if (parent->xp_tp) - free((char *)parent->xp_tp); + free(parent->xp_tp); svc_door_xprtfree(xprt); return (NULL); } @@ -507,9 +493,7 @@ svc_door_xprtcopy(parent) static SVCXPRT * -get_xprt_copy(parent, buf) - SVCXPRT *parent; - char *buf; +get_xprt_copy(SVCXPRT *parent, char *buf) { /* LINTED pointer alignment */ SVCXPRT_LIST *xlist = SVCEXT(parent)->my_xlist; @@ -539,18 +523,17 @@ get_xprt_copy(parent, buf) } int -return_xprt_copy(xprt) - SVCXPRT *xprt; +return_xprt_copy(SVCXPRT *xprt) { SVCXPRT *parent; SVCXPRT_LIST *xhead, *xlist; /* LINTED pointer alignment */ int len = su_data(xprt)->len; - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); /* LINTED pointer alignment */ if ((parent = SVCEXT(xprt)->parent) == NULL) { - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); return (0); } /* LINTED pointer alignment */ @@ -574,25 +557,23 @@ return_xprt_copy(xprt) if (svc_defunct(xprt)) { /* LINTED pointer alignment */ svc_flags(parent) |= SVC_DEFUNCT; + /* LINTED pointer cast */ if (SVCEXT(parent)->refcnt == 0) svc_door_destroy(xprt); } - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); return (len); } /* ARGSUSED */ static enum xprt_stat -svc_door_stat(xprt) - SVCXPRT *xprt; +svc_door_stat(SVCXPRT *xprt) { return (XPRT_IDLE); } static bool_t -svc_door_recv(xprt, msg) - SVCXPRT *xprt; - struct rpc_msg *msg; +svc_door_recv(SVCXPRT *xprt, struct rpc_msg *msg) { /* LINTED pointer alignment */ struct svc_door_data *su = su_data(xprt); @@ -606,9 +587,7 @@ svc_door_recv(xprt, msg) } static bool_t -svc_door_reply(xprt, msg) - SVCXPRT *xprt; - struct rpc_msg *msg; +svc_door_reply(SVCXPRT *xprt, struct rpc_msg *msg) { /* LINTED pointer alignment */ struct svc_door_data *su = su_data(xprt); @@ -624,20 +603,14 @@ svc_door_reply(xprt, msg) } static bool_t -svc_door_getargs(xprt, xdr_args, args_ptr) - SVCXPRT *xprt; - xdrproc_t xdr_args; - caddr_t args_ptr; +svc_door_getargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { /* LINTED pointer alignment */ return ((*xdr_args)(&(su_data(xprt)->su_xdrs), args_ptr)); } static bool_t -svc_door_freeargs(xprt, xdr_args, args_ptr) - SVCXPRT *xprt; - xdrproc_t xdr_args; - caddr_t args_ptr; +svc_door_freeargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { /* LINTED pointer alignment */ XDR *xdrs = &(su_data(xprt)->su_xdrs); @@ -647,17 +620,15 @@ svc_door_freeargs(xprt, xdr_args, args_ptr) } static void -svc_door_destroy(xprt) - SVCXPRT *xprt; +svc_door_destroy(SVCXPRT *xprt) { - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); svc_door_destroy_pvt(xprt); - mutex_unlock(&svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); } static void -svc_door_destroy_pvt(xprt) - SVCXPRT *xprt; +svc_door_destroy_pvt(SVCXPRT *xprt) { /* LINTED pointer alignment */ if (SVCEXT(xprt)->parent) @@ -669,7 +640,7 @@ svc_door_destroy_pvt(xprt) if (SVCEXT(xprt)->refcnt > 0) return; - __svc_rm_from_xlist(&dxlist, xprt, (mutex_t *)NULL); + __svc_rm_from_xlist(&dxlist, xprt, NULL); if (xprt->xp_tp) { (void) fdetach(xprt->xp_tp); @@ -679,15 +650,13 @@ svc_door_destroy_pvt(xprt) svc_xprt_destroy(xprt); if (--svc_ndoorfds == 0) - cond_signal(&svc_door_waitcv); /* wake up door dispatching */ + /* wake up door dispatching */ + (void) cond_signal(&svc_door_waitcv); } /* ARGSUSED */ static bool_t -svc_door_control(xprt, rq, in) - SVCXPRT *xprt; - const uint_t rq; - void *in; +svc_door_control(SVCXPRT *xprt, const uint_t rq, void *in) { extern int __rpc_legal_connmaxrec(int); @@ -703,12 +672,9 @@ svc_door_control(xprt, rq, in) if (door_setparam(xprt->xp_fd, DOOR_PARAM_DATA_MAX, door_param) == 0) return (TRUE); - else - return (FALSE); - } else { return (FALSE); } - break; + return (FALSE); case SVCGET_CONNMAXREC: if (door_getparam(xprt->xp_fd, DOOR_PARAM_DATA_MAX, &door_param) == 0) { @@ -723,22 +689,19 @@ svc_door_control(xprt, rq, in) *(int *)in = tmp; return (TRUE); - } else { - return (FALSE); } - break; - default: return (FALSE); } + return (FALSE); } static struct xp_ops * -svc_door_ops() +svc_door_ops(void) { static struct xp_ops ops; extern mutex_t ops_lock; - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.xp_recv == NULL) { ops.xp_recv = svc_door_recv; ops.xp_stat = svc_door_stat; @@ -748,7 +711,7 @@ svc_door_ops() ops.xp_destroy = svc_door_destroy; ops.xp_control = svc_door_control; } - mutex_unlock(&ops_lock); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/svc_generic.c b/usr/src/lib/libnsl/rpc/svc_generic.c index b5064e04a2..10f6ce1508 100644 --- a/usr/src/lib/libnsl/rpc/svc_generic.c +++ b/usr/src/lib/libnsl/rpc/svc_generic.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1986-2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -29,16 +30,13 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)svc_generic.c 1.21 89/02/28 Copyr 1988 Sun Micro"; -#endif - /* * svc_generic.c, Server side for RPC. * */ #include "mt.h" +#include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/tcp.h> @@ -48,7 +46,6 @@ static char sccsid[] = "@(#)svc_generic.c 1.21 89/02/28 Copyr 1988 Sun Micro"; #include <stdio.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <errno.h> #include <syslog.h> #include <rpc/nettype.h> @@ -57,14 +54,16 @@ static char sccsid[] = "@(#)svc_generic.c 1.21 89/02/28 Copyr 1988 Sun Micro"; #include <stropts.h> -extern int __svc_vc_setflag(); +extern int __svc_vc_setflag(SVCXPRT *, int); -extern SVCXPRT *svc_dg_create_private(); -extern SVCXPRT *svc_vc_create_private(); -extern SVCXPRT *svc_fd_create_private(); +extern SVCXPRT *svc_dg_create_private(int, uint_t, uint_t); +extern SVCXPRT *svc_vc_create_private(int, uint_t, uint_t); +extern SVCXPRT *svc_fd_create_private(int, uint_t, uint_t); -extern bool_t __svc_add_to_xlist(); -extern void __svc_free_xlist(); +extern bool_t __svc_add_to_xlist(SVCXPRT_LIST **, SVCXPRT *, mutex_t *); +extern void __svc_free_xlist(SVCXPRT_LIST **, mutex_t *); + +extern bool_t __rpc_try_doors(const char *, bool_t *); /* * The highest level interface for server creation. @@ -82,17 +81,14 @@ SVCXPRT_LIST *_svc_xprtlist = NULL; extern mutex_t xprtlist_lock; void -__svc_free_xprtlist() +__svc_free_xprtlist(void) { __svc_free_xlist(&_svc_xprtlist, &xprtlist_lock); } int -svc_create(dispatch, prognum, versnum, nettype) - void (*dispatch)(); /* Dispatch function */ - rpcprog_t prognum; /* Program number */ - rpcvers_t versnum; /* Version number */ - const char *nettype; /* Networktype token */ +svc_create(void (*dispatch)(), const rpcprog_t prognum, const rpcvers_t versnum, + const char *nettype) { SVCXPRT_LIST *l; int num = 0; @@ -100,9 +96,7 @@ svc_create(dispatch, prognum, versnum, nettype) struct netconfig *nconf; void *handle; bool_t try_others; - int __rpc_try_doors(); - trace3(TR_svc_create, 0, prognum, versnum); /* * Check if service should register over doors transport. */ @@ -117,11 +111,10 @@ svc_create(dispatch, prognum, versnum, nettype) return (num); if ((handle = __rpc_setconf((char *)nettype)) == NULL) { (void) syslog(LOG_ERR, "svc_create: unknown protocol"); - trace3(TR_svc_create, 1, prognum, versnum); return (0); } while (nconf = __rpc_getconf(handle)) { - mutex_lock(&xprtlist_lock); + (void) mutex_lock(&xprtlist_lock); for (l = _svc_xprtlist; l; l = l->next) { if (strcmp(l->xprt->xp_netid, nconf->nc_netid) == 0) { /* Found an old one, use it */ @@ -136,7 +129,7 @@ svc_create(dispatch, prognum, versnum, nettype) break; } } - mutex_unlock(&xprtlist_lock); + (void) mutex_unlock(&xprtlist_lock); if (l == NULL) { /* It was not found. Now create a new one */ xprt = svc_tp_create(dispatch, prognum, versnum, nconf); @@ -145,8 +138,6 @@ svc_create(dispatch, prognum, versnum, nettype) &xprtlist_lock)) { (void) syslog(LOG_ERR, "svc_create: no memory"); - trace3(TR_svc_create, 1, prognum, - versnum); return (0); } num++; @@ -158,7 +149,6 @@ svc_create(dispatch, prognum, versnum, nettype) * In case of num == 0; the error messages are generated by the * underlying layers; and hence not needed here. */ - trace3(TR_svc_create, 1, prognum, versnum); return (num); } @@ -168,37 +158,28 @@ svc_create(dispatch, prognum, versnum, nettype) * with the rpcbind. It calls svc_tli_create(); */ SVCXPRT * -svc_tp_create(dispatch, prognum, versnum, nconf) - void (*dispatch)(); /* Dispatch function */ - rpcprog_t prognum; /* Program number */ - rpcvers_t versnum; /* Version number */ - const struct netconfig *nconf; /* Netconfig structure for the network */ +svc_tp_create(void (*dispatch)(), const rpcprog_t prognum, + const rpcvers_t versnum, const struct netconfig *nconf) { SVCXPRT *xprt; - trace3(TR_svc_tp_create, 0, prognum, versnum); - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { (void) syslog(LOG_ERR, "svc_tp_create: invalid netconfig structure for prog %d vers %d", prognum, versnum); - trace3(TR_svc_tp_create, 1, prognum, versnum); - return ((SVCXPRT *)NULL); - } - xprt = svc_tli_create(RPC_ANYFD, nconf, (struct t_bind *)NULL, 0, 0); - if (xprt == (SVCXPRT *)NULL) { - trace3(TR_svc_tp_create, 1, prognum, versnum); - return ((SVCXPRT *)NULL); + return (NULL); } + xprt = svc_tli_create(RPC_ANYFD, nconf, NULL, 0, 0); + if (xprt == NULL) + return (NULL); (void) rpcb_unset(prognum, versnum, (struct netconfig *)nconf); if (svc_reg(xprt, prognum, versnum, dispatch, nconf) == FALSE) { (void) syslog(LOG_ERR, "svc_tp_create: Could not register prog %d vers %d on %s", prognum, versnum, nconf->nc_netid); SVC_DESTROY(xprt); - trace3(TR_svc_tp_create, 1, prognum, versnum); - return ((SVCXPRT *)NULL); + return (NULL); } - trace3(TR_svc_tp_create, 1, prognum, versnum); return (xprt); } @@ -212,26 +193,21 @@ svc_tp_create(dispatch, prognum, versnum, nconf) * If sendsz or recvsz are zero, their default values are chosen. */ SVCXPRT * -svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) - int fd; /* Connection end point */ - const struct netconfig *nconf; /* Netconfig struct for nettoken */ - const struct t_bind *bindaddr; /* Local bind address */ - uint_t sendsz; /* Max sendsize */ - uint_t recvsz; /* Max recvsize */ +svc_tli_create(const int ofd, const struct netconfig *nconf, + const struct t_bind *bindaddr, const uint_t sendsz, const uint_t recvsz) { SVCXPRT *xprt = NULL; /* service handle */ struct t_info tinfo; /* transport info */ struct t_bind *tres = NULL; /* bind info */ bool_t madefd = FALSE; /* whether fd opened here */ int state; /* state of the transport provider */ + int fd = ofd; - trace4(TR_svc_tli_create, 0, fd, sendsz, recvsz); if (fd == RPC_ANYFD) { - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { (void) syslog(LOG_ERR, "svc_tli_create: invalid netconfig"); - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } fd = t_open(nconf->nc_device, O_RDWR, &tinfo); if (fd == -1) { @@ -242,8 +218,7 @@ svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) (void) syslog(LOG_ERR, "svc_tli_create: could not open connection for %s: %s", nconf->nc_netid, errorstr); - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } madefd = TRUE; state = T_UNBND; @@ -259,8 +234,7 @@ svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) (void) syslog(LOG_ERR, "svc_tli_create: could not do t_sync: %s", errorstr); - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } if (t_getinfo(fd, &tinfo) == -1) { char errorstr[100]; @@ -270,8 +244,7 @@ svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) (void) syslog(LOG_ERR, "svc_tli_create: could not get transport information: %s", errorstr); - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* Enable options of returning the ip's for udp */ if (nconf) { @@ -287,8 +260,7 @@ svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) (void) syslog(LOG_ERR, "svc_tli_create: IPV6_RECVPKTINFO(1): %s", errorstr); - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } } else if (strcmp(nconf->nc_netid, "udp") == 0) { ret = __rpc_tli_set_options(fd, IPPROTO_IP, @@ -301,8 +273,7 @@ svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) (void) syslog(LOG_ERR, "svc_tli_create: IP_RECVDSTADDR(1): %s", errorstr); - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } } } @@ -489,7 +460,7 @@ release connection"); "svc_tli_create: bad service type"); goto freedata; } - if (xprt == (SVCXPRT *)NULL) + if (xprt == NULL) /* * The error messages here are spitted out by the lower layers: * svc_vc_create(), svc_fd_create() and svc_dg_create(). @@ -510,7 +481,7 @@ release connection"); xprt->xp_rtaddr.maxlen = __rpc_get_a_size(tinfo.addr); /* Allocate space for the remote bind info */ - if ((xprt->xp_rtaddr.buf = mem_alloc(xprt->xp_rtaddr.maxlen)) == NULL) { + if ((xprt->xp_rtaddr.buf = malloc(xprt->xp_rtaddr.maxlen)) == NULL) { (void) syslog(LOG_ERR, "svc_tli_create: No memory!"); goto freedata; } @@ -536,10 +507,9 @@ release connection"); /* * if (madefd && (tinfo.servtype == T_CLTS)) - * (void) ioctl(fd, I_POP, (char *)NULL); + * (void) ioctl(fd, I_POP, NULL); */ xprt_register(xprt); - trace2(TR_svc_tli_create, 1, fd); return (xprt); freedata: @@ -552,6 +522,5 @@ freedata: xprt->xp_fd = RPC_ANYFD; SVC_DESTROY(xprt); } - trace2(TR_svc_tli_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } diff --git a/usr/src/lib/libnsl/rpc/svc_raw.c b/usr/src/lib/libnsl/rpc/svc_raw.c index fc1a4f275f..a3e9e9c7c6 100644 --- a/usr/src/lib/libnsl/rpc/svc_raw.c +++ b/usr/src/lib/libnsl/rpc/svc_raw.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -42,9 +44,9 @@ #include "mt.h" #include "rpc_mt.h" +#include <stdlib.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/raw.h> #include <syslog.h> @@ -63,41 +65,35 @@ static struct svc_raw_private { } *svc_raw_private; static struct xp_ops *svc_raw_ops(); -extern char *calloc(); -extern void free(); extern mutex_t svcraw_lock; SVCXPRT * -svc_raw_create() +svc_raw_create(void) { struct svc_raw_private *srp; bool_t flag1 = FALSE, flag2 = FALSE; /* VARIABLES PROTECTED BY svcraw_lock: svc_raw_private, srp */ - trace1(TR_svc_raw_create, 0); - mutex_lock(&svcraw_lock); + (void) mutex_lock(&svcraw_lock); srp = svc_raw_private; if (srp == NULL) { -/* LINTED pointer alignment */ - srp = (struct svc_raw_private *)calloc(1, sizeof (*srp)); + srp = calloc(1, sizeof (*srp)); if (srp == NULL) { syslog(LOG_ERR, "svc_raw_create: out of memory"); - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_create, 1); - return ((SVCXPRT *)NULL); + (void) mutex_unlock(&svcraw_lock); + return (NULL); } flag1 = TRUE; if (_rawcombuf == NULL) { - _rawcombuf = (char *)calloc(UDPMSGSIZE, sizeof (char)); + _rawcombuf = calloc(UDPMSGSIZE, sizeof (char)); if (_rawcombuf == NULL) { - free((char *)srp); + free(srp); syslog(LOG_ERR, "svc_raw_create: " "out of memory"); - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_create, 1); - return ((SVCXPRT *)NULL); + (void) mutex_unlock(&svcraw_lock); + return (NULL); } flag2 = TRUE; } @@ -109,9 +105,8 @@ svc_raw_create() free(svc_raw_private->raw_buf); if (flag1) free(svc_raw_private); - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_create, 1); - return ((SVCXPRT *)NULL); + (void) mutex_unlock(&svcraw_lock); + return (NULL); } /* * By convention, using FD_SETSIZE as the psuedo file descriptor @@ -122,169 +117,121 @@ svc_raw_create() srp->server->xp_verf.oa_base = srp->verf_body; xdrmem_create(&srp->xdr_stream, srp->raw_buf, UDPMSGSIZE, XDR_DECODE); xprt_register(srp->server); - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_create, 1); + (void) mutex_unlock(&svcraw_lock); return (srp->server); } /*ARGSUSED*/ static enum xprt_stat -svc_raw_stat(xprt) -SVCXPRT *xprt; /* args needed to satisfy ANSI-C typechecking */ +svc_raw_stat(SVCXPRT *xprt) { - trace1(TR_svc_raw_stat, 0); - trace1(TR_svc_raw_stat, 1); return (XPRT_IDLE); } /*ARGSUSED*/ static bool_t -svc_raw_recv(xprt, msg) - SVCXPRT *xprt; - struct rpc_msg *msg; +svc_raw_recv(SVCXPRT *xprt, struct rpc_msg *msg) { struct svc_raw_private *srp; XDR *xdrs; - trace1(TR_svc_raw_recv, 0); - mutex_lock(&svcraw_lock); + (void) mutex_lock(&svcraw_lock); srp = svc_raw_private; if (srp == NULL) { - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_recv, 1); + (void) mutex_unlock(&svcraw_lock); return (FALSE); } - mutex_unlock(&svcraw_lock); + (void) mutex_unlock(&svcraw_lock); xdrs = &srp->xdr_stream; xdrs->x_op = XDR_DECODE; (void) XDR_SETPOS(xdrs, 0); - if (! xdr_callmsg(xdrs, msg)) { - trace1(TR_svc_raw_recv, 1); - return (FALSE); - } - trace1(TR_svc_raw_recv, 1); - return (TRUE); + return (xdr_callmsg(xdrs, msg)); } /*ARGSUSED*/ static bool_t -svc_raw_reply(xprt, msg) - SVCXPRT *xprt; - struct rpc_msg *msg; +svc_raw_reply(SVCXPRT *xprt, struct rpc_msg *msg) { struct svc_raw_private *srp; XDR *xdrs; - trace1(TR_svc_raw_reply, 0); - mutex_lock(&svcraw_lock); + (void) mutex_lock(&svcraw_lock); srp = svc_raw_private; if (srp == NULL) { - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_reply, 1); + (void) mutex_unlock(&svcraw_lock); return (FALSE); } - mutex_unlock(&svcraw_lock); + (void) mutex_unlock(&svcraw_lock); xdrs = &srp->xdr_stream; xdrs->x_op = XDR_ENCODE; (void) XDR_SETPOS(xdrs, 0); - if (! xdr_replymsg(xdrs, msg)) { - trace1(TR_svc_raw_reply, 1); - return (FALSE); - } - (void) XDR_GETPOS(xdrs); /* called just for overhead */ - trace1(TR_svc_raw_reply, 1); - return (TRUE); + return (xdr_replymsg(xdrs, msg)); } /*ARGSUSED*/ static bool_t -svc_raw_getargs(xprt, xdr_args, args_ptr) - SVCXPRT *xprt; - xdrproc_t xdr_args; - caddr_t args_ptr; +svc_raw_getargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { struct svc_raw_private *srp; - bool_t dummy1; - trace1(TR_svc_raw_getargs, 0); - mutex_lock(&svcraw_lock); + (void) mutex_lock(&svcraw_lock); srp = svc_raw_private; if (srp == NULL) { - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_getargs, 1); + (void) mutex_unlock(&svcraw_lock); return (FALSE); } - mutex_unlock(&svcraw_lock); - dummy1 = (*xdr_args)(&srp->xdr_stream, args_ptr); - trace1(TR_svc_raw_getargs, 1); - return (dummy1); + (void) mutex_unlock(&svcraw_lock); + return ((*xdr_args)(&srp->xdr_stream, args_ptr)); } /*ARGSUSED*/ static bool_t -svc_raw_freeargs(xprt, xdr_args, args_ptr) - SVCXPRT *xprt; - xdrproc_t xdr_args; - caddr_t args_ptr; +svc_raw_freeargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { struct svc_raw_private *srp; XDR *xdrs; - bool_t dummy2; - trace1(TR_svc_raw_freeargs, 0); - mutex_lock(&svcraw_lock); + (void) mutex_lock(&svcraw_lock); srp = svc_raw_private; if (srp == NULL) { - mutex_unlock(&svcraw_lock); - trace1(TR_svc_raw_freeargs, 1); + (void) mutex_unlock(&svcraw_lock); return (FALSE); } - mutex_unlock(&svcraw_lock); + (void) mutex_unlock(&svcraw_lock); xdrs = &srp->xdr_stream; xdrs->x_op = XDR_FREE; - dummy2 = (*xdr_args)(xdrs, args_ptr); - trace1(TR_svc_raw_freeargs, 1); - return (dummy2); + return ((*xdr_args)(xdrs, args_ptr)); } /*ARGSUSED*/ static void -svc_raw_destroy(xprt) -SVCXPRT *xprt; +svc_raw_destroy(SVCXPRT *xprt) { - trace1(TR_svc_raw_destroy, 0); - trace1(TR_svc_raw_destroy, 1); } /*ARGSUSED*/ static bool_t -svc_raw_control(xprt, rq, in) - SVCXPRT *xprt; - const uint_t rq; - void *in; +svc_raw_control(SVCXPRT *xprt, const uint_t rq, void *in) { - trace3(TR_svc_raw_control, 0, xprt, rq); switch (rq) { case SVCGET_XID: /* fall through for now */ default: - trace1(TR_svc_raw_control, 1); return (FALSE); } } static struct xp_ops * -svc_raw_ops() +svc_raw_ops(void) { static struct xp_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_svc_raw_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.xp_recv == NULL) { ops.xp_recv = svc_raw_recv; ops.xp_stat = svc_raw_stat; @@ -294,7 +241,6 @@ svc_raw_ops() ops.xp_destroy = svc_raw_destroy; ops.xp_control = svc_raw_control; } - mutex_unlock(&ops_lock); - trace1(TR_svc_raw_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/svc_run.c b/usr/src/lib/libnsl/rpc/svc_run.c index 6a832a14da..8b775d6ac8 100644 --- a/usr/src/lib/libnsl/rpc/svc_run.c +++ b/usr/src/lib/libnsl/rpc/svc_run.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -46,7 +47,6 @@ #include <errno.h> #include <sys/poll.h> #include <sys/types.h> -#include <rpc/trace.h> #include <syslog.h> #include <thread.h> #include <assert.h> @@ -224,7 +224,7 @@ static bool_t svc_exit_done = TRUE; void -svc_run() +svc_run(void) { /* NO OTHER THREADS ARE RUNNING */ @@ -243,10 +243,10 @@ svc_run() continue; } - mutex_lock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); if (svc_ndoorfds > 0) - cond_wait(&svc_door_waitcv, &svc_door_mutex); - mutex_unlock(&svc_door_mutex); + (void) cond_wait(&svc_door_waitcv, &svc_door_mutex); + (void) mutex_unlock(&svc_door_mutex); } } @@ -256,7 +256,7 @@ svc_run() * service handles. */ void -svc_exit() +svc_exit(void) { SVCXPRT *xprt; int fd; @@ -264,11 +264,9 @@ svc_exit() /* NO LOCKS HELD */ - trace1(TR_svc_exit, 0); - mutex_lock(&svc_exit_mutex); + (void) mutex_lock(&svc_exit_mutex); if (svc_exit_done) { - mutex_unlock(&svc_exit_mutex); - trace1(TR_svc_exit, 1); + (void) mutex_unlock(&svc_exit_mutex); return; } svc_exit_done = TRUE; @@ -280,24 +278,22 @@ svc_exit() } __svc_free_xprtlist(); __svc_cleanup_door_xprts(); - mutex_unlock(&svc_exit_mutex); + (void) mutex_unlock(&svc_exit_mutex); if (svc_mt_mode != RPC_SVC_MT_NONE) { - mutex_lock(&svc_mutex); - cond_broadcast(&svc_thr_fdwait); - mutex_unlock(&svc_mutex); + (void) mutex_lock(&svc_mutex); + (void) cond_broadcast(&svc_thr_fdwait); + (void) mutex_unlock(&svc_mutex); (void) write(svc_pipe[1], &dummy, sizeof (dummy)); } - mutex_lock(&svc_door_mutex); - cond_signal(&svc_door_waitcv); /* wake up door dispatching */ - mutex_unlock(&svc_door_mutex); + (void) mutex_lock(&svc_door_mutex); + (void) cond_signal(&svc_door_waitcv); /* wake up door dispatching */ + (void) mutex_unlock(&svc_door_mutex); /* destroy reactor information if any */ __destroy_userfd(); - - trace1(TR_svc_exit, 1); } @@ -329,7 +325,7 @@ extern int _sigaddset(sigset_t *, int); extern int _sigprocmask(int, const sigset_t *, sigset_t *); static void -_svc_run() +_svc_run(void) { sigset_t set, oldset; int npollfds; @@ -344,18 +340,17 @@ _svc_run() (void) _sigemptyset(&set); (void) _sigaddset(&set, SIGALRM); (void) _sigprocmask(SIG_BLOCK, &set, &oldset); - trace1(TR_svc_run, 0); while (!svc_exit_done) { /* * Check whether there is any server fd on which we may want * to wait. */ - rw_rdlock(&svc_fd_lock); + (void) rw_rdlock(&svc_fd_lock); if (alloc_pollset(svc_npollfds) == -1) break; npollfds = __rpc_compress_pollfd(svc_max_pollfd, svc_pollfd, svc_pollset); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); if (npollfds == 0) break; /* None waiting, hence return */ @@ -375,7 +370,6 @@ _svc_run() svc_getreq_poll(svc_pollset, i); } } - trace1(TR_svc_run, 1); (void) _sigprocmask(SIG_SETMASK, &oldset, NULL); } @@ -391,7 +385,7 @@ enum { }; static void -_svc_run_mt() +_svc_run_mt(void) { int npollfds; int n_polled, dispatch; @@ -436,8 +430,8 @@ _svc_run_mt() * locks. This prevents more than one thread from * trying to poll at the same time. */ - mutex_lock(&svc_thr_mutex); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_thr_mutex); + (void) mutex_lock(&svc_mutex); continue_with_locks: myfd = -1; mypollfd = INVALID_POLLFD; @@ -465,14 +459,14 @@ continue_with_locks: /* * if there are no file descriptors, return */ - rw_rdlock(&svc_fd_lock); + (void) rw_rdlock(&svc_fd_lock); if (svc_npollfds == 0 || alloc_pollset(svc_npollfds + 1) == -1) { - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); svc_polling = FALSE; svc_thr_total--; - mutex_unlock(&svc_mutex); - mutex_unlock(&svc_thr_mutex); + (void) mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_thr_mutex); if (!main_thread) { thr_exit(NULL); /* NOTREACHED */ @@ -482,7 +476,7 @@ continue_with_locks: npollfds = __rpc_compress_pollfd(svc_max_pollfd, svc_pollfd, svc_pollset); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); if (npollfds == 0) { /* @@ -492,10 +486,10 @@ continue_with_locks: * wait on condition variable, otherwise exit. */ svc_polling = FALSE; - mutex_unlock(&svc_thr_mutex); + (void) mutex_unlock(&svc_thr_mutex); if ((!main_thread) && svc_waiters > 0) { svc_thr_total--; - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); thr_exit(NULL); /* NOTREACHED */ } @@ -505,7 +499,8 @@ continue_with_locks: svc_total_pending == 0 && !svc_exit_done) { svc_waiters++; - cond_wait(&svc_thr_fdwait, &svc_mutex); + (void) cond_wait(&svc_thr_fdwait, + &svc_mutex); svc_waiters--; } @@ -515,13 +510,13 @@ continue_with_locks: */ if (svc_exit_done) { svc_thr_total--; - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); if (!main_thread) thr_exit(NULL); break; } - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); continue; } @@ -539,9 +534,9 @@ continue_with_locks: do { int i, j; - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); n_polled = poll(svc_pollset, npollfds + 1, -1); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); if (n_polled <= 0) continue; @@ -583,8 +578,8 @@ continue_with_locks: */ if (svc_exit_done) { svc_thr_total--; - mutex_unlock(&svc_mutex); - mutex_unlock(&svc_thr_mutex); + (void) mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_thr_mutex); if (!main_thread) { thr_exit(NULL); /* NOTREACHED */ @@ -665,8 +660,8 @@ continue_with_locks: /* * Release mutexes so other threads can get going. */ - mutex_unlock(&svc_mutex); - mutex_unlock(&svc_thr_mutex); + (void) mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_thr_mutex); /* * Process request. @@ -713,7 +708,7 @@ continue_with_locks: /* LINTED pointer alignment */ if (svc_flags(xprt) & SVC_ARGS_CHECK) svc_args_done(xprt); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); _svc_done_private(xprt); if (svc_mt_mode == RPC_SVC_MT_AUTO) { /* @@ -733,15 +728,15 @@ continue_with_locks: svc_thr_total--; if (svc_thr_total == svc_waiters) { - cond_broadcast( + (void) cond_broadcast( &svc_thr_fdwait); } - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); thr_exit(NULL); /* NOTREACHED */ } } - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); } } @@ -753,8 +748,7 @@ continue_with_locks: * start_threads() - Start specified number of threads. */ static void -start_threads(num_threads) - int num_threads; +start_threads(int num_threads) { int i; @@ -776,7 +770,7 @@ start_threads(num_threads) * create_pipe() - create pipe for breaking out of poll. */ static void -create_pipe() +create_pipe(void) { if (pipe(svc_pipe) == -1) { syslog(LOG_ERR, dgettext(__nsl_dom, @@ -800,7 +794,7 @@ create_pipe() * clear_pipe() - Empty data in pipe. */ static void -clear_pipe() +clear_pipe(void) { char buf[16]; int i; @@ -850,8 +844,7 @@ select_next_pollfd(int *fd, int *pollfdIndex) * Clear fd bit in svc_fdset. */ static SVCXPRT * -make_xprt_copy(parent) - SVCXPRT *parent; +make_xprt_copy(SVCXPRT *parent) { /* LINTED pointer alignment */ SVCXPRT_LIST *xlist = SVCEXT(parent)->my_xlist; @@ -874,9 +867,9 @@ make_xprt_copy(parent) if (xprt) { /* LINTED pointer alignment */ SVCEXT(parent)->refcnt++; - rw_wrlock(&svc_fd_lock); + (void) rw_wrlock(&svc_fd_lock); clear_pollfd(fd); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); } return (xprt); } @@ -885,8 +878,7 @@ make_xprt_copy(parent) * _svc_done_private() - return copies to library. */ static void -_svc_done_private(xprt) - SVCXPRT *xprt; +_svc_done_private(SVCXPRT *xprt) { SVCXPRT *parent; SVCXPRT_LIST *xhead, *xlist; @@ -946,9 +938,9 @@ svc_done(SVCXPRT *xprt) if (svc_flags(xprt) & SVC_ARGS_CHECK) svc_args_done(xprt); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); _svc_done_private(xprt); - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); } @@ -956,8 +948,7 @@ svc_done(SVCXPRT *xprt) * Mark argument completion. Release file descriptor. */ void -svc_args_done(xprt) - SVCXPRT *xprt; +svc_args_done(SVCXPRT *xprt) { char dummy; /* LINTED pointer alignment */ @@ -977,12 +968,12 @@ svc_args_done(xprt) if (svc_type(xprt) == SVC_CONNECTION && (stat = SVC_STAT(xprt)) != XPRT_IDLE) { if (stat == XPRT_MOREREQS) { - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); svc_pending_fds[svc_last_pending++] = xprt->xp_fd; if (svc_last_pending > CIRCULAR_BUFSIZE) svc_last_pending = 0; svc_total_pending++; - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); wake_up_poller = FALSE; } else { /* @@ -991,9 +982,9 @@ svc_args_done(xprt) return; } } else { - rw_wrlock(&svc_fd_lock); + (void) rw_wrlock(&svc_fd_lock); set_pollfd(xprt->xp_fd, MASKVAL); - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); wake_up_poller = TRUE; } @@ -1001,13 +992,13 @@ svc_args_done(xprt) /* * Wake up any waiting threads. */ - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); if (svc_waiters > 0) { - cond_broadcast(&svc_thr_fdwait); - mutex_unlock(&svc_mutex); + (void) cond_broadcast(&svc_thr_fdwait); + (void) mutex_unlock(&svc_mutex); return; } - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); } /* @@ -1044,9 +1035,7 @@ __rpc_legal_connmaxrec(int suggested) { bool_t -rpc_control(op, info) - int op; - void *info; +rpc_control(int op, void *info) { int tmp; extern int __rpc_minfd; @@ -1067,9 +1056,9 @@ rpc_control(op, info) case RPC_SVC_THRMAX_SET: if ((tmp = *((int *)info)) < 1) return (FALSE); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); svc_thr_max = tmp; - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); return (TRUE); case RPC_SVC_THRMAX_GET: *((int *)info) = svc_thr_max; diff --git a/usr/src/lib/libnsl/rpc/svc_simple.c b/usr/src/lib/libnsl/rpc/svc_simple.c index 6d3a7af758..8de4d83391 100644 --- a/usr/src/lib/libnsl/rpc/svc_simple.c +++ b/usr/src/lib/libnsl/rpc/svc_simple.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -53,7 +54,6 @@ #include <string.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <syslog.h> #include <rpc/nettype.h> @@ -89,28 +89,20 @@ static const char __no_mem_str[] = "out of memory"; */ int -rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) - rpcprog_t prognum; /* program number */ - rpcvers_t versnum; /* version number */ - rpcproc_t procnum; /* procedure number */ - char *(*progname)(); /* Server routine */ - xdrproc_t inproc, outproc; /* in/out XDR procedures */ - const char *nettype; /* nettype */ +rpc_reg(const rpcprog_t prognum, const rpcvers_t versnum, + const rpcproc_t procnum, char *(*progname)(), const xdrproc_t inproc, + const xdrproc_t outproc, const char *nettype) { struct netconfig *nconf; int done = FALSE; void *handle; extern mutex_t proglst_lock; - - - trace4(TR_rpc_reg, 0, prognum, versnum, procnum); if (procnum == NULLPROC) { (void) syslog(LOG_ERR, (const char *) "%s: %s %d", rpc_reg_msg, (const char *) "can't reassign procedure number %d", NULLPROC); - trace4(TR_rpc_reg, 1, prognum, versnum, procnum); return (-1); } @@ -121,7 +113,7 @@ rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) return (-1); } /* VARIABLES PROTECTED BY proglst_lock: proglst */ - mutex_lock(&proglst_lock); + (void) mutex_lock(&proglst_lock); while (nconf = __rpc_getconf(handle)) { struct proglst *pl; SVCXPRT *svcxprt; @@ -131,7 +123,7 @@ rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) char *netid; madenow = FALSE; - svcxprt = (SVCXPRT *)NULL; + svcxprt = NULL; for (pl = proglst; pl; pl = pl->p_nxt) if (strcmp(pl->p_netid, nconf->nc_netid) == 0) { svcxprt = pl->p_transp; @@ -141,12 +133,11 @@ rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) break; } - if (svcxprt == (SVCXPRT *)NULL) { + if (svcxprt == NULL) { struct t_info tinfo; - svcxprt = svc_tli_create(RPC_ANYFD, nconf, - (struct t_bind *)NULL, 0, 0); - if (svcxprt == (SVCXPRT *)NULL) + svcxprt = svc_tli_create(RPC_ANYFD, nconf, NULL, 0, 0); + if (svcxprt == NULL) continue; if (t_getinfo(svcxprt->xp_fd, &tinfo) == -1) { char errorstr[100]; @@ -202,8 +193,8 @@ rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) continue; } - pl = (struct proglst *)malloc(sizeof (struct proglst)); - if (pl == (struct proglst *)NULL) { + pl = malloc(sizeof (struct proglst)); + if (pl == NULL) { (void) syslog(LOG_ERR, rpc_reg_err, rpc_reg_msg, __no_mem_str); if (madenow) { @@ -228,16 +219,14 @@ rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) done = TRUE; } __rpc_endconf(handle); - mutex_unlock(&proglst_lock); + (void) mutex_unlock(&proglst_lock); if (done == FALSE) { (void) syslog(LOG_ERR, (const char *) "%s cant find suitable transport for %s", rpc_reg_msg, nettype); - trace4(TR_rpc_reg, 1, prognum, versnum, procnum); return (-1); } - trace4(TR_rpc_reg, 1, prognum, versnum, procnum); return (0); } @@ -246,11 +235,8 @@ rpc_reg(prognum, versnum, procnum, progname, inproc, outproc, nettype) * It handles both the connectionless and the connection oriented cases. */ -static const char __univ_err[] = " prog %d vers %d"; static void -universal(rqstp, transp) - struct svc_req *rqstp; - SVCXPRT *transp; +universal(struct svc_req *rqstp, SVCXPRT *transp) { rpcprog_t prog; rpcvers_t vers; @@ -263,21 +249,18 @@ universal(rqstp, transp) /* * enforce "procnum 0 is echo" convention */ - trace1(TR_universal, 0); if (rqstp->rq_proc == NULLPROC) { - if (svc_sendreply(transp, (xdrproc_t)xdr_void, - (char *)NULL) == FALSE) { + if (svc_sendreply(transp, (xdrproc_t)xdr_void, NULL) == FALSE) { (void) syslog(LOG_ERR, (const char *) "svc_sendreply failed"); } - trace1(TR_universal, 1); return; } prog = rqstp->rq_prog; vers = rqstp->rq_vers; proc = rqstp->rq_proc; - mutex_lock(&proglst_lock); - for (pl = proglst; pl; pl = pl->p_nxt) + (void) mutex_lock(&proglst_lock); + for (pl = proglst; pl; pl = pl->p_nxt) { if (pl->p_prognum == prog && pl->p_procnum == proc && pl->p_versnum == vers && (strcmp(pl->p_netid, transp->xp_netid) == 0)) { @@ -292,36 +275,32 @@ universal(rqstp, transp) */ if (!svc_getargs(transp, pl->p_inproc, xdrbuf)) { svcerr_decode(transp); - mutex_unlock(&proglst_lock); - trace1(TR_universal, 1); + (void) mutex_unlock(&proglst_lock); return; } outdata = (*(pl->p_progname))(xdrbuf); if (outdata == NULL && pl->p_outproc != (xdrproc_t)xdr_void) { /* there was an error */ - mutex_unlock(&proglst_lock); - trace1(TR_universal, 1); + (void) mutex_unlock(&proglst_lock); return; } if (!svc_sendreply(transp, pl->p_outproc, outdata)) { (void) syslog(LOG_ERR, (const char *) "rpc: rpc_reg trouble replying to prog %d vers %d", prog, vers); - mutex_unlock(&proglst_lock); - trace1(TR_universal, 1); + (void) mutex_unlock(&proglst_lock); return; } /* free the decoded arguments */ (void) svc_freeargs(transp, pl->p_inproc, xdrbuf); - mutex_unlock(&proglst_lock); - trace1(TR_universal, 1); + (void) mutex_unlock(&proglst_lock); return; } - mutex_unlock(&proglst_lock); + } + (void) mutex_unlock(&proglst_lock); /* This should never happen */ (void) syslog(LOG_ERR, (const char *) "rpc: rpc_reg: never registered prog %d vers %d", prog, vers); - trace1(TR_universal, 1); } diff --git a/usr/src/lib/libnsl/rpc/svc_vc.c b/usr/src/lib/libnsl/rpc/svc_vc.c index f121a6a200..6bcfc5ee07 100644 --- a/usr/src/lib/libnsl/rpc/svc_vc.c +++ b/usr/src/lib/libnsl/rpc/svc_vc.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -31,6 +32,8 @@ * California. */ +#pragma ident "%Z%%M% %I% %E% SMI" + /* * svc_vc.c -- Server side for Connection Oriented RPC. * @@ -39,15 +42,12 @@ * and a record stream. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include "mt.h" #include "rpc_mt.h" #include <stdio.h> #include <stdlib.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <errno.h> #include <sys/stat.h> #include <sys/mkdev.h> @@ -190,10 +190,10 @@ svc_vc_xprtfree(SVCXPRT *xprt) } if (r) { if (r->t_call) - t_free((char *)r->t_call, T_CALL); + (void) t_free((char *)r->t_call, T_CALL); if (r->t_bind) - t_free((char *)r->t_bind, T_BIND); - free((char *)r); + (void) t_free((char *)r->t_bind, T_BIND); + free(r); } svc_xprt_free(xprt); } @@ -213,31 +213,27 @@ svc_vc_create_private(int fd, uint_t sendsize, uint_t recvsize) SVCXPRT *xprt; struct t_info tinfo; - trace4(TR_svc_vc_create, 0, fd, sendsize, recvsize); if (RPC_FD_NOTIN_FDSET(fd)) { errno = EBADF; t_errno = TBADF; (void) syslog(LOG_ERR, errstring, svc_vc_create_str, svc_vc_fderr); - trace2(TR_svc_dg_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } - if ((xprt = svc_xprt_alloc()) == (SVCXPRT *)NULL) { + if ((xprt = svc_xprt_alloc()) == NULL) { (void) syslog(LOG_ERR, errstring, svc_vc_create_str, no_mem_str); - trace2(TR_svc_vc_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_RENDEZVOUS; - r = (struct cf_rendezvous *)calloc(1, sizeof (*r)); - if (r == (struct cf_rendezvous *)NULL) { + r = calloc(1, sizeof (*r)); + if (r == NULL) { (void) syslog(LOG_ERR, errstring, svc_vc_create_str, no_mem_str); svc_vc_xprtfree(xprt); - trace2(TR_svc_vc_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } if (t_getinfo(fd, &tinfo) == -1) { char errorstr[100]; @@ -246,10 +242,9 @@ svc_vc_create_private(int fd, uint_t sendsize, uint_t recvsize) t_errno, errno); (void) syslog(LOG_ERR, "%s : %s : %s", svc_vc_create_str, no_tinfo_str, errorstr); - (void) mem_free((caddr_t)r, sizeof (*r)); + free(r); svc_vc_xprtfree(xprt); - trace2(TR_svc_vc_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* * Find the receive and the send size @@ -260,10 +255,9 @@ svc_vc_create_private(int fd, uint_t sendsize, uint_t recvsize) syslog(LOG_ERR, "svc_vc_create: transport does not support " "data transfer"); - (void) mem_free((caddr_t)r, sizeof (*r)); + free(r); svc_vc_xprtfree(xprt); - trace2(TR_svc_vc_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* LINTED pointer alignment */ @@ -271,22 +265,20 @@ svc_vc_create_private(int fd, uint_t sendsize, uint_t recvsize) if (r->t_call == NULL) { (void) syslog(LOG_ERR, errstring, svc_vc_create_str, no_mem_str); - (void) mem_free((caddr_t)r, sizeof (*r)); + free(r); svc_vc_xprtfree(xprt); - trace2(TR_svc_vc_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* LINTED pointer alignment */ r->t_bind = (struct t_bind *)t_alloc(fd, T_BIND, T_ADDR); - if (r->t_bind == (struct t_bind *)NULL) { + if (r->t_bind == NULL) { (void) syslog(LOG_ERR, errstring, svc_vc_create_str, no_mem_str); - t_free((char *)r->t_call, T_CALL); - (void) mem_free((caddr_t)r, sizeof (*r)); + (void) t_free((char *)r->t_call, T_CALL); + free(r); svc_vc_xprtfree(xprt); - trace2(TR_svc_vc_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } r->cf_tsdu = tinfo.tsdu; @@ -303,12 +295,11 @@ svc_vc_create_private(int fd, uint_t sendsize, uint_t recvsize) /* LINTED pointer alignment */ SVC_XP_AUTH(xprt).svc_ah_private = NULL; - trace2(TR_svc_vc_create, 1, fd); return (xprt); } SVCXPRT * -svc_vc_create(int fd, uint_t sendsize, uint_t recvsize) +svc_vc_create(const int fd, const uint_t sendsize, const uint_t recvsize) { SVCXPRT *xprt; @@ -347,7 +338,7 @@ svc_vc_xprtcopy(SVCXPRT *parent) if (xprt->xp_netid == NULL) { syslog(LOG_ERR, "svc_vc_xprtcopy: strdup failed"); if (xprt->xp_tp) - free((char *)xprt->xp_tp); + free(xprt->xp_tp); svc_vc_xprtfree(xprt); return (NULL); } @@ -361,7 +352,7 @@ svc_vc_xprtcopy(SVCXPRT *parent) xprt->xp_type = parent->xp_type; xprt->xp_verf = parent->xp_verf; - if ((r = (struct cf_rendezvous *)calloc(1, sizeof (*r))) == NULL) { + if ((r = calloc(1, sizeof (*r))) == NULL) { svc_vc_xprtfree(xprt); return (NULL); } @@ -417,14 +408,12 @@ svc_fd_create_private(int fd, uint_t sendsize, uint_t recvsize) SVCXPRT *dummy; struct netbuf tres = {0}; - trace4(TR_svc_fd_create, 0, fd, sendsize, recvsize); if (RPC_FD_NOTIN_FDSET(fd)) { errno = EBADF; t_errno = TBADF; (void) syslog(LOG_ERR, errstring, svc_fd_create_str, svc_vc_fderr); - trace2(TR_svc_dg_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } if (t_getinfo(fd, &tinfo) == -1) { char errorstr[100]; @@ -433,8 +422,7 @@ svc_fd_create_private(int fd, uint_t sendsize, uint_t recvsize) t_errno, errno); (void) syslog(LOG_ERR, "%s : %s : %s", svc_fd_create_str, no_tinfo_str, errorstr); - trace2(TR_svc_fd_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* * Find the receive and the send size @@ -444,8 +432,7 @@ svc_fd_create_private(int fd, uint_t sendsize, uint_t recvsize) if ((sendsize == 0) || (recvsize == 0)) { syslog(LOG_ERR, errstring, svc_fd_create_str, "transport does not support data transfer"); - trace2(TR_svc_fd_create, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } dummy = makefd_xprt(fd, sendsize, recvsize, tinfo.tsdu, NULL); /* NULL signifies no dup cache */ @@ -455,12 +442,11 @@ svc_fd_create_private(int fd, uint_t sendsize, uint_t recvsize) dummy->xp_ltaddr = tres; /* Fill in type of service */ dummy->xp_type = tinfo.servtype; - trace2(TR_svc_fd_create, 1, fd); return (dummy); } SVCXPRT * -svc_fd_create(int fd, uint_t sendsize, uint_t recvsize) +svc_fd_create(const int fd, const uint_t sendsize, const uint_t recvsize) { SVCXPRT *xprt; @@ -492,12 +478,12 @@ svc_fd_xprtfree(SVCXPRT *xprt) } if (cd) { XDR_DESTROY(&(cd->xdrs)); - free((char *)cd); + free(cd); } if (xt && (xt->parent == NULL) && xprt->xp_p2) { /* LINTED pointer alignment */ - free((caddr_t)((struct netbuf *)xprt->xp_p2)->buf); - free((caddr_t)xprt->xp_p2); + free(((struct netbuf *)xprt->xp_p2)->buf); + free(xprt->xp_p2); } svc_xprt_free(xprt); } @@ -509,22 +495,19 @@ makefd_xprt(int fd, uint_t sendsize, uint_t recvsize, t_scalar_t tsdu, SVCXPRT *xprt; struct cf_conn *cd; - trace5(TR_makefd_xprt, 0, fd, sendsize, recvsize, tsdu); xprt = svc_xprt_alloc(); - if (xprt == (SVCXPRT *)NULL) { + if (xprt == NULL) { (void) syslog(LOG_ERR, errstring, makefd_xprt_str, no_mem_str); - trace2(TR_makefd_xprt, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_CONNECTION; - cd = (struct cf_conn *)mem_alloc(sizeof (struct cf_conn)); - if (cd == (struct cf_conn *)NULL) { + cd = malloc(sizeof (struct cf_conn)); + if (cd == NULL) { (void) syslog(LOG_ERR, errstring, makefd_xprt_str, no_mem_str); svc_fd_xprtfree(xprt); - trace2(TR_makefd_xprt, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } cd->sendsize = sendsize; cd->recvsize = recvsize; @@ -538,24 +521,22 @@ makefd_xprt(int fd, uint_t sendsize, uint_t recvsize, t_scalar_t tsdu, (int(*)())NULL, (int(*)(void *, char *, int))write_vc); if (cd->xdrs.x_ops == NULL) { (void) syslog(LOG_ERR, errstring, makefd_xprt_str, no_mem_str); - mem_free(cd, sizeof (struct cf_conn)); + free(cd); svc_fd_xprtfree(xprt); - trace2(TR_makefd_xprt, 1, fd); - return ((SVCXPRT *)NULL); + return (NULL); } - rw_wrlock(&svc_fd_lock); + (void) rw_wrlock(&svc_fd_lock); if (svc_xdrs == NULL) { - svc_xdrs = (XDR **)calloc(FD_INCREMENT, sizeof (XDR *)); + svc_xdrs = calloc(FD_INCREMENT, sizeof (XDR *)); if (svc_xdrs == NULL) { (void) syslog(LOG_ERR, errstring, makefd_xprt_str, no_mem_str); XDR_DESTROY(&(cd->xdrs)); - mem_free(cd, sizeof (struct cf_conn)); + free(cd); svc_fd_xprtfree(xprt); - trace2(TR_makefd_xprt, 1, fd); - rw_unlock(&svc_fd_lock); - return ((SVCXPRT *)NULL); + (void) rw_unlock(&svc_fd_lock); + return (NULL); } nsvc_xdrs = FD_INCREMENT; } @@ -568,11 +549,10 @@ makefd_xprt(int fd, uint_t sendsize, uint_t recvsize, t_scalar_t tsdu, (void) syslog(LOG_ERR, errstring, makefd_xprt_str, no_mem_str); XDR_DESTROY(&(cd->xdrs)); - mem_free(cd, sizeof (struct cf_conn)); + free(cd); svc_fd_xprtfree(xprt); - trace2(TR_makefd_xprt, 1, fd); - rw_unlock(&svc_fd_lock); - return ((SVCXPRT *)NULL); + (void) rw_unlock(&svc_fd_lock); + return (NULL); } svc_xdrs = tmp_xdrs; @@ -587,11 +567,10 @@ makefd_xprt(int fd, uint_t sendsize, uint_t recvsize, t_scalar_t tsdu, } else if ((svc_xdrs[fd] = malloc(sizeof (XDR))) == NULL) { (void) syslog(LOG_ERR, errstring, makefd_xprt_str, no_mem_str); XDR_DESTROY(&(cd->xdrs)); - mem_free(cd, sizeof (struct cf_conn)); + free(cd); svc_fd_xprtfree(xprt); - trace2(TR_makefd_xprt, 1, fd); - rw_unlock(&svc_fd_lock); - return ((SVCXPRT *)NULL); + (void) rw_unlock(&svc_fd_lock); + return (NULL); } (void) memset(svc_xdrs[fd], 0, sizeof (XDR)); xdrrec_create(svc_xdrs[fd], 0, recvsize, (caddr_t)xprt, @@ -600,20 +579,18 @@ makefd_xprt(int fd, uint_t sendsize, uint_t recvsize, t_scalar_t tsdu, free(svc_xdrs[fd]); svc_xdrs[fd] = NULL; XDR_DESTROY(&(cd->xdrs)); - mem_free(cd, sizeof (struct cf_conn)); + free(cd); svc_fd_xprtfree(xprt); - trace2(TR_makefd_xprt, 1, fd); - rw_unlock(&svc_fd_lock); - return ((SVCXPRT *)NULL); + (void) rw_unlock(&svc_fd_lock); + return (NULL); } - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); xprt->xp_p1 = (caddr_t)cd; xprt->xp_p2 = NULL; xprt->xp_verf.oa_base = cd->verf_body; xprt->xp_ops = svc_vc_ops(); /* truely deals with calls */ xprt->xp_fd = fd; - trace2(TR_makefd_xprt, 1, fd); return (xprt); } @@ -646,7 +623,7 @@ svc_fd_xprtcopy(SVCXPRT *parent) if (xprt->xp_netid == NULL) { syslog(LOG_ERR, "svc_fd_xprtcopy: strdup failed"); if (xprt->xp_tp) - free((char *)xprt->xp_tp); + free(xprt->xp_tp); svc_fd_xprtfree(xprt); return (NULL); } @@ -658,7 +635,7 @@ svc_fd_xprtcopy(SVCXPRT *parent) xprt->xp_rtaddr = parent->xp_rtaddr; xprt->xp_type = parent->xp_type; - if ((cd = (struct cf_conn *)malloc(sizeof (struct cf_conn))) == NULL) { + if ((cd = malloc(sizeof (struct cf_conn))) == NULL) { svc_fd_xprtfree(xprt); return (NULL); } @@ -704,7 +681,6 @@ rendezvous_request(SVCXPRT *xprt, struct rpc_msg *msg) char devbuf[256]; static void do_accept(); - trace1(TR_rendezvous_request, 0); /* LINTED pointer alignment */ r = (struct cf_rendezvous *)xprt->xp_p1; @@ -712,7 +688,6 @@ again: switch (t_look(xprt->xp_fd)) { case T_DISCONNECT: (void) t_rcvdis(xprt->xp_fd, NULL); - trace1(TR_rendezvous_request, 1); return (FALSE); case T_LISTEN: @@ -725,12 +700,10 @@ again: if (t_look(xprt->xp_fd) == T_DISCONNECT) (void) t_rcvdis(xprt->xp_fd, NULL); } - trace1(TR_rendezvous_request, 1); return (FALSE); } break; default: - trace1(TR_rendezvous_request, 1); return (FALSE); } /* @@ -755,14 +728,13 @@ again: "no suitable transport"); goto err; } - strcpy(tpname, nconf->nc_device); + (void) strcpy(tpname, nconf->nc_device); freenetconfigent(nconf); } do_accept(xprt->xp_fd, tpname, xprt->xp_netid, r->t_call, r); err: - trace1(TR_rendezvous_request, 1); return (FALSE); /* there is never an rpc msg to be processed */ } @@ -772,17 +744,15 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, { int destfd; struct t_call t_call; - struct t_call *tcp2 = (struct t_call *)NULL; + struct t_call *tcp2 = NULL; struct t_info tinfo; - SVCXPRT *xprt = (SVCXPRT *)NULL; - SVCXPRT *xprt_srcfd = (SVCXPRT *)NULL; + SVCXPRT *xprt = NULL; + SVCXPRT *xprt_srcfd = NULL; char *option, *option_ret; struct opthdr *opt; struct t_optmgmt optreq, optret; int *p_optval; - trace1(TR_do_accept, 0); - destfd = t_open(tpname, O_RDWR, &tinfo); if (check_nonblock_timestamps) { if (destfd == -1 && t_errno == TSYSERR && errno == EMFILE) { @@ -792,9 +762,9 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, * get destroyed in case an attacker has been creating * many connections. */ - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); svc_timeout_nonblock_xprt_and_LRU(TRUE); - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); destfd = t_open(tpname, O_RDWR, &tinfo); } else { /* @@ -803,9 +773,9 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, * Do not destroy LRU xprt unless there are * too many open files. */ - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); svc_timeout_nonblock_xprt_and_LRU(FALSE); - mutex_unlock(&svc_mutex); + (void) mutex_unlock(&svc_mutex); } } if (destfd == -1) { @@ -816,9 +786,9 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, (void) syslog(LOG_ERR, "%s : %s : %s", do_accept_str, "can't open connection", errorstr); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; - } else if (destfd < 256) { + } + if (destfd < 256) { int nfd; nfd = _fcntl(destfd, F_DUPFD, 256); @@ -842,7 +812,6 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, "could not t_sync() duped fd %d: %s", destfd, errorstr); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; } } @@ -854,7 +823,6 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, (void) t_snddis(srcfd, tcp); errno = EBADF; t_errno = TBADF; - trace1(TR_do_accept, 1); return; } (void) _fcntl(destfd, F_SETFD, 1); /* make it "close on exec" */ @@ -864,12 +832,11 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, "do_accept: illegal transport"); (void) t_close(destfd); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; } - if (t_bind(destfd, (struct t_bind *)NULL, r->t_bind) == -1) { + if (t_bind(destfd, NULL, r->t_bind) == -1) { char errorstr[100]; __tli_sys_strerror(errorstr, sizeof (errorstr), t_errno, @@ -878,12 +845,11 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, "t_bind failed", errorstr); (void) t_close(destfd); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; } if (r->tcp_flag) /* if TCP, set NODELAY flag */ - __td_setnodelay(destfd); + (void) __td_setnodelay(destfd); /* * This connection is not listening, hence no need to set @@ -897,7 +863,7 @@ do_accept(int srcfd, char *tpname, char *netid, struct t_call *tcp, t_call = *tcp; t_call.opt.len = 0; t_call.opt.maxlen = 0; - t_call.opt.buf = (char *)NULL; + t_call.opt.buf = NULL; while (t_accept(srcfd, destfd, &t_call) == -1) { char errorstr[100]; @@ -913,22 +879,20 @@ again: break; case T_DISCONNECT: - (void) t_rcvdis(srcfd, - (struct t_discon *)NULL); + (void) t_rcvdis(srcfd, NULL); break; case T_LISTEN: - if (tcp2 == (struct t_call *)NULL) + if (tcp2 == NULL) /* LINTED pointer alignment */ tcp2 = (struct t_call *)t_alloc(srcfd, T_CALL, T_ADDR | T_OPT); - if (tcp2 == (struct t_call *)NULL) { + if (tcp2 == NULL) { (void) t_close(destfd); (void) t_snddis(srcfd, tcp); syslog(LOG_ERR, errstring, do_accept_str, no_mem_str); - trace1(TR_do_accept, 1); return; /* NOTREACHED */ } @@ -945,7 +909,6 @@ again: (void) t_free((char *)tcp2, T_CALL); (void) t_close(destfd); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; /* NOTREACHED */ } @@ -959,7 +922,7 @@ again: } if (tcp2) { (void) t_free((char *)tcp2, T_CALL); - tcp2 = (struct t_call *)NULL; + tcp2 = NULL; } break; @@ -974,7 +937,6 @@ again: * operational situation that is recoverable. */ (void) t_close(destfd); - trace1(TR_do_accept, 1); return; /* NOTREACHED */ @@ -986,7 +948,6 @@ again: if (t_getstate(srcfd) == T_IDLE) { (void) t_close(destfd); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; } /* else FALL THROUGH TO */ @@ -999,18 +960,16 @@ again: errorstr, t_getstate(srcfd)); (void) t_close(destfd); (void) t_snddis(srcfd, tcp); - trace1(TR_do_accept, 1); return; /* NOTREACHED */ } } if (r->tcp_flag && r->tcp_keepalive) { - option = (char *)malloc(sizeof (struct opthdr) - + sizeof (int)); - option_ret = (char *)malloc(sizeof (struct opthdr) - + sizeof (int)); + option = malloc(sizeof (struct opthdr) + sizeof (int)); + option_ret = malloc(sizeof (struct opthdr) + sizeof (int)); if (option && option_ret) { + /* LINTED pointer cast */ opt = (struct opthdr *)option; opt->level = SOL_SOCKET; opt->name = SO_KEEPALIVE; @@ -1024,7 +983,7 @@ again: optret.opt.maxlen = sizeof (struct opthdr) + sizeof (int); optret.opt.buf = (char *)option_ret; - t_optmgmt(destfd, &optreq, &optret); + (void) t_optmgmt(destfd, &optreq, &optret); free(option); free(option_ret); } else { @@ -1041,7 +1000,7 @@ again: */ xprt = makefd_xprt(destfd, r->sendsize, r->recvsize, r->cf_tsdu, r->cf_cache); - if (xprt == (SVCXPRT *)NULL) { + if (xprt == NULL) { /* * makefd_xprt() returns a NULL xprt only when * it's out of memory. @@ -1057,7 +1016,7 @@ again: xprt->xp_rtaddr.maxlen = tcp->addr.len; if ((xprt->xp_rtaddr.buf = malloc(tcp->addr.len)) == NULL) goto memerr; - memcpy(xprt->xp_rtaddr.buf, tcp->addr.buf, tcp->addr.len); + (void) memcpy(xprt->xp_rtaddr.buf, tcp->addr.buf, tcp->addr.len); if (strcmp(netid, "tcp") == 0) { xprt->xp_ltaddr.maxlen = sizeof (struct sockaddr_in); @@ -1083,8 +1042,8 @@ again: xprt->xp_tp = strdup(tpname); xprt->xp_netid = strdup(netid); - if ((xprt->xp_tp == (char *)NULL) || - (xprt->xp_netid == (char *)NULL)) { + if ((xprt->xp_tp == NULL) || + (xprt->xp_netid == NULL)) { goto memerr; } if (tcp->opt.len > 0) { @@ -1092,7 +1051,7 @@ again: xprt->xp_p2 = malloc(sizeof (struct netbuf)); - if (xprt->xp_p2 != (char *)NULL) { + if (xprt->xp_p2 != NULL) { /* LINTED pointer alignment */ netptr = (struct netbuf *)xprt->xp_p2; @@ -1100,17 +1059,18 @@ again: netptr->maxlen = tcp->opt.len; if ((netptr->buf = malloc(tcp->opt.len)) == NULL) goto memerr; - memcpy(netptr->buf, tcp->opt.buf, tcp->opt.len); + (void) memcpy(netptr->buf, tcp->opt.buf, tcp->opt.len); } else goto memerr; } -/* (void) ioctl(destfd, I_POP, (char *)NULL); */ +/* (void) ioctl(destfd, I_POP, NULL); */ /* * If a nonblocked connection fd has been requested, * perform the necessary operations. */ xprt_srcfd = svc_xports[srcfd]; + /* LINTED pointer cast */ if (((struct cf_rendezvous *)(xprt_srcfd->xp_p1))->cf_connmaxrec) { if (!svc_vc_nonblock(xprt_srcfd, xprt)) goto xprt_err; @@ -1123,7 +1083,6 @@ again: xprt->xp_closeclnt = xprt_srcfd->xp_closeclnt; xprt_register(xprt); - trace1(TR_do_accept, 1); return; memerr: @@ -1132,12 +1091,8 @@ xprt_err: if (xprt) svc_vc_destroy(xprt); (void) t_close(destfd); - trace1(TR_do_accept, 1); - return; - } - /* * This routine performs the necessary fcntl() operations to create * a nonblocked connection fd. @@ -1151,7 +1106,9 @@ svc_vc_nonblock(SVCXPRT *xprt_rendezvous, SVCXPRT *xprt_conn) int nn; int fdconn = xprt_conn->xp_fd; struct cf_rendezvous *r = + /* LINTED pointer cast */ (struct cf_rendezvous *)xprt_rendezvous->xp_p1; + /* LINTED pointer cast */ struct cf_conn *cd = (struct cf_conn *)xprt_conn->xp_p1; uint32_t maxrecsz; @@ -1187,20 +1144,16 @@ svc_vc_nonblock(SVCXPRT *xprt_rendezvous, SVCXPRT *xprt_conn) static enum xprt_stat rendezvous_stat(SVCXPRT *xprt) { - trace1(TR_rendezvous_stat, 0); - trace1(TR_rendezvous_stat, 1); return (XPRT_IDLE); } static void svc_vc_destroy(SVCXPRT *xprt) { - trace1(TR_svc_vc_destroy, 0); - mutex_lock(&svc_mutex); + (void) mutex_lock(&svc_mutex); _svc_vc_destroy_private(xprt, TRUE); (void) svc_timeout_nonblock_xprt_and_LRU(FALSE); - mutex_unlock(&svc_mutex); - trace1(TR_svc_vc_destroy, 1); + (void) mutex_unlock(&svc_mutex); } void @@ -1230,13 +1183,13 @@ _svc_vc_destroy_private(SVCXPRT *xprt, bool_t lock_not_held) } __xprt_unregister_private(xprt, lock_not_held); - t_close(xprt->xp_fd); + (void) t_close(xprt->xp_fd); - mutex_lock(×tamp_lock); + (void) mutex_lock(×tamp_lock); if (timestamps && xprt->xp_fd < ntimestamps) { timestamps[xprt->xp_fd] = 0; } - mutex_unlock(×tamp_lock); + (void) mutex_unlock(×tamp_lock); if (svc_mt_mode != RPC_SVC_MT_NONE) { svc_xprt_destroy(xprt); @@ -1253,29 +1206,20 @@ _svc_vc_destroy_private(SVCXPRT *xprt, bool_t lock_not_held) static bool_t svc_vc_control(SVCXPRT *xprt, const uint_t rq, void *in) { - trace3(TR_svc_vc_control, 0, xprt, rq); switch (rq) { case SVCSET_RECVERRHANDLER: - /* 00-07-18 */ xprt->xp_closeclnt = (svc_errorhandler_t)in; return (TRUE); case SVCGET_RECVERRHANDLER: - /* 00-07-18 */ *(svc_errorhandler_t *)in = xprt->xp_closeclnt; return (TRUE); case SVCGET_XID: - if (xprt->xp_p1 == NULL) { - trace1(TR_svc_vc_control, 1); + if (xprt->xp_p1 == NULL) return (FALSE); - } else { - *(uint32_t *)in = - /* LINTED pointer alignment */ - ((struct cf_conn *)(xprt->xp_p1))->x_id; - trace1(TR_svc_vc_control, 1); - return (TRUE); - } + /* LINTED pointer alignment */ + *(uint32_t *)in = ((struct cf_conn *)(xprt->xp_p1))->x_id; + return (TRUE); default: - trace1(TR_svc_vc_control, 1); return (FALSE); } } @@ -1284,27 +1228,23 @@ static bool_t rendezvous_control(SVCXPRT *xprt, const uint_t rq, void *in) { struct cf_rendezvous *r; - uint32_t tmp_uint32; int tmp; - trace3(TR_rendezvous_control, 0, xprt, rq); switch (rq) { case SVCSET_RECVERRHANDLER: - /* 00-07-18 */ xprt->xp_closeclnt = (svc_errorhandler_t)in; return (TRUE); case SVCGET_RECVERRHANDLER: - /* 00-07-18 */ *(svc_errorhandler_t *)in = xprt->xp_closeclnt; return (TRUE); case SVCSET_KEEPALIVE: + /* LINTED pointer cast */ r = (struct cf_rendezvous *)xprt->xp_p1; if (r->tcp_flag) { r->tcp_keepalive = (int)(intptr_t)in; return (TRUE); - } else { - return (FALSE); } + return (FALSE); case SVCSET_CONNMAXREC: /* * Override the default maximum record size, set via @@ -1313,25 +1253,24 @@ rendezvous_control(SVCXPRT *xprt, const uint_t rq, void *in) * the connectionless case, so no need to check the * connection type here. */ + /* LINTED pointer cast */ r = (struct cf_rendezvous *)xprt->xp_p1; tmp = __rpc_legal_connmaxrec(*(int *)in); if (r != 0 && tmp >= 0) { r->cf_connmaxrec = tmp; return (TRUE); - } else { - return (FALSE); } + return (FALSE); case SVCGET_CONNMAXREC: + /* LINTED pointer cast */ r = (struct cf_rendezvous *)xprt->xp_p1; if (r != 0) { *(int *)in = r->cf_connmaxrec; return (TRUE); - } else { - return (FALSE); } + return (FALSE); case SVCGET_XID: /* fall through for now */ default: - trace1(TR_rendezvous_control, 1); return (FALSE); } } @@ -1348,11 +1287,11 @@ rendezvous_control(SVCXPRT *xprt, const uint_t rq, void *in) static void update_timestamps(int fd) { - mutex_lock(×tamp_lock); + (void) mutex_lock(×tamp_lock); if (timestamps) { struct timeval tv; - gettimeofday(&tv, NULL); + (void) gettimeofday(&tv, NULL); while (fd >= ntimestamps) { long *tmp_timestamps = timestamps; @@ -1361,7 +1300,7 @@ update_timestamps(int fd) sizeof (long) * (ntimestamps + FD_INCREMENT)); if (tmp_timestamps == NULL) { - mutex_unlock(×tamp_lock); + (void) mutex_unlock(×tamp_lock); syslog(LOG_ERR, "update_timestamps: out of memory"); return; @@ -1374,16 +1313,17 @@ update_timestamps(int fd) } timestamps[fd] = tv.tv_sec; } - mutex_unlock(×tamp_lock); + (void) mutex_unlock(×tamp_lock); } static void update_nonblock_timestamps(SVCXPRT *xprt_conn) { struct timeval tv; + /* LINTED pointer cast */ struct cf_conn *cd = (struct cf_conn *)xprt_conn->xp_p1; - gettimeofday(&tv, NULL); + (void) gettimeofday(&tv, NULL); cd->cf_conn_nonblock_timestamp = tv.tv_sec; } @@ -1400,17 +1340,14 @@ read_vc(SVCXPRT *xprt, caddr_t buf, int len) struct pollfd pfd; int ret; - trace2(TR_read_vc, 0, len); - /* * Make sure the connection is not already dead. */ /* LINTED pointer alignment */ - if (svc_failed(xprt)) { - trace1(TR_read_vc, 1); + if (svc_failed(xprt)) return (-1); - } + /* LINTED pointer cast */ if (((struct cf_conn *)(xprt->xp_p1))->cf_conn_nonblock) { /* * For nonblocked reads, only update the @@ -1431,11 +1368,9 @@ read_vc(SVCXPRT *xprt, caddr_t buf, int len) update_timestamps(fd); update_nonblock_timestamps(xprt); } - trace1(TR_read_vc, 1); return (len); - } else { - goto fatal_err; } + goto fatal_err; } if (!__is_xdrrec_first(xdrs)) { @@ -1458,10 +1393,9 @@ read_vc(SVCXPRT *xprt, caddr_t buf, int len) if (pfd.revents & POLLNVAL) goto fatal_err; } - __xdrrec_resetfirst(xdrs); + (void) __xdrrec_resetfirst(xdrs); if ((len = t_rcvall(fd, buf, len)) > 0) { update_timestamps(fd); - trace1(TR_read_vc, 1); return (len); } @@ -1470,7 +1404,6 @@ fatal_err: ((struct cf_conn *)(xprt->xp_p1))->strm_stat = XPRT_DIED; /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_FAILED; - trace1(TR_read_vc, 1); return (-1); } @@ -1482,21 +1415,19 @@ static int t_rcvnonblock(SVCXPRT *xprt, caddr_t buf, int len) { int fd = xprt->xp_fd; - struct cf_conn *cd = (struct cf_conn *)(xprt->xp_p1); int flag; int res; - trace3(TR_t_rcvnonblock, 0, fd, len); res = t_rcv(fd, buf, (unsigned)len, &flag); if (res == -1) { switch (t_errno) { case TLOOK: switch (t_look(fd)) { case T_DISCONNECT: - t_rcvdis(fd, NULL); + (void) t_rcvdis(fd, NULL); break; case T_ORDREL: - t_rcvrel(fd); + (void) t_rcvrel(fd); (void) t_sndrel(fd); break; default: @@ -1516,7 +1447,6 @@ t_rcvnonblock(SVCXPRT *xprt, caddr_t buf, int len) break; } } - trace2(TR_t_rcvnonblock, 1, fd); return (res); } @@ -1539,21 +1469,20 @@ svc_timeout_nonblock_xprt_and_LRU(bool_t destroy_lru) int i, fd_idx = 0, dead_idx = 0; struct timeval now; time_t lasttime, maxctime = 0; - extern rwlock_t svc_lock; extern rwlock_t svc_fd_lock; if (!check_nonblock_timestamps) return; - gettimeofday(&now, NULL); + (void) gettimeofday(&now, NULL); if (svc_xports == NULL) return; /* * Hold svc_fd_lock to protect * svc_xports, svc_maxpollfd, svc_max_pollfd */ - rw_wrlock(&svc_fd_lock); - while (1) { + (void) rw_wrlock(&svc_fd_lock); + for (;;) { /* * Timeout upto CLEANUP_SIZE connection fds per * iteration for the while(1) loop @@ -1563,9 +1492,11 @@ svc_timeout_nonblock_xprt_and_LRU(bool_t destroy_lru) continue; } /* Only look at connection fds */ + /* LINTED pointer cast */ if (svc_type(xprt) != SVC_CONNECTION) { continue; } + /* LINTED pointer cast */ cd = (struct cf_conn *)xprt->xp_p1; if (!cd->cf_conn_nonblock) continue; @@ -1595,10 +1526,10 @@ svc_timeout_nonblock_xprt_and_LRU(bool_t destroy_lru) if (fd_idx++ >= svc_max_pollfd) break; } - if ((destroy_lru) && (candidate_xprt != (SVCXPRT *)NULL)) { + if ((destroy_lru) && (candidate_xprt != NULL)) { _svc_vc_destroy_private(candidate_xprt, FALSE); } - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); } /* * Receive the required bytes of data, even if it is fragmented. @@ -1610,17 +1541,16 @@ t_rcvall(int fd, char *buf, int len) int final = 0; int res; - trace3(TR_t_rcvall, 0, fd, len); do { res = t_rcv(fd, buf, (unsigned)len, &flag); if (res == -1) { if (t_errno == TLOOK) { switch (t_look(fd)) { case T_DISCONNECT: - t_rcvdis(fd, NULL); + (void) t_rcvdis(fd, NULL); break; case T_ORDREL: - t_rcvrel(fd); + (void) t_rcvrel(fd); (void) t_sndrel(fd); break; default: @@ -1633,7 +1563,6 @@ t_rcvall(int fd, char *buf, int len) buf += res; len -= res; } while (len && (flag & T_MORE)); - trace2(TR_t_rcvall, 1, fd); return (res == -1 ? -1 : final); } @@ -1649,11 +1578,10 @@ write_vc(SVCXPRT *xprt, caddr_t buf, int len) int maxsz; int nonblock; struct pollfd pfd; - int ret; - trace2(TR_write_vc, 0, len); /* LINTED pointer alignment */ maxsz = ((struct cf_conn *)(xprt->xp_p1))->cf_tsdu; + /* LINTED pointer cast */ nonblock = ((struct cf_conn *)(xprt->xp_p1))->cf_conn_nonblock; if (nonblock && maxsz <= 0) maxsz = len; @@ -1663,10 +1591,10 @@ write_vc(SVCXPRT *xprt, caddr_t buf, int len) if (t_errno == TLOOK) { switch (t_look(xprt->xp_fd)) { case T_DISCONNECT: - t_rcvdis(xprt->xp_fd, NULL); + (void) t_rcvdis(xprt->xp_fd, NULL); break; case T_ORDREL: - t_rcvrel(xprt->xp_fd); + (void) t_rcvrel(xprt->xp_fd); (void) t_sndrel(xprt->xp_fd); break; default: @@ -1679,7 +1607,6 @@ write_vc(SVCXPRT *xprt, caddr_t buf, int len) /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_FAILED; } - trace1(TR_write_vc, 1); return (len); } @@ -1702,10 +1629,10 @@ write_vc(SVCXPRT *xprt, caddr_t buf, int len) if (t_errno == TLOOK) { switch (t_look(xprt->xp_fd)) { case T_DISCONNECT: - t_rcvdis(xprt->xp_fd, NULL); + (void) t_rcvdis(xprt->xp_fd, NULL); break; case T_ORDREL: - t_rcvrel(xprt->xp_fd); + (void) t_rcvrel(xprt->xp_fd); break; default: break; @@ -1715,8 +1642,7 @@ write_vc(SVCXPRT *xprt, caddr_t buf, int len) i = 0; /* Wait till we can write to the transport */ do { - if ((ret = poll(&pfd, 1, - WAIT_PER_TRY)) < 0) { + if (poll(&pfd, 1, WAIT_PER_TRY) < 0) { /* * If errno is ERESTART, or * EAGAIN ignore error and repeat poll @@ -1739,11 +1665,9 @@ fatal_err: = XPRT_DIED; /* LINTED pointer alignment */ svc_flags(xprt) |= SVC_FAILED; - trace1(TR_write_vc, 1); return (-1); } } - trace1(TR_write_vc, 1); return (len); } @@ -1753,26 +1677,18 @@ svc_vc_stat(SVCXPRT *xprt) /* LINTED pointer alignment */ SVCXPRT *parent = SVCEXT(xprt)->parent ? SVCEXT(xprt)->parent : xprt; - trace1(TR_svc_vc_stat, 0); /* LINTED pointer alignment */ - if (svc_failed(parent) || svc_failed(xprt)) { - trace1(TR_svc_vc_stat, 1); + if (svc_failed(parent) || svc_failed(xprt)) return (XPRT_DIED); - } - if (! xdrrec_eof(svc_xdrs[xprt->xp_fd])) { - trace1(TR_svc_vc_stat, 1); + if (!xdrrec_eof(svc_xdrs[xprt->xp_fd])) return (XPRT_MOREREQS); - } /* * xdrrec_eof could have noticed that the connection is dead, so * check status again. */ /* LINTED pointer alignment */ - if (svc_failed(parent) || svc_failed(xprt)) { - trace1(TR_svc_vc_stat, 1); + if (svc_failed(parent) || svc_failed(xprt)) return (XPRT_DIED); - } - trace1(TR_svc_vc_stat, 1); return (XPRT_IDLE); } @@ -1785,7 +1701,6 @@ svc_vc_recv(SVCXPRT *xprt, struct rpc_msg *msg) struct cf_conn *cd = (struct cf_conn *)(xprt->xp_p1); XDR *xdrs = svc_xdrs[xprt->xp_fd]; - trace1(TR_svc_vc_recv, 0); xdrs->x_op = XDR_DECODE; if (cd->cf_conn_nonblock) { @@ -1801,21 +1716,18 @@ svc_vc_recv(SVCXPRT *xprt, struct rpc_msg *msg) * is being processed through the xdr routines. */ if (cd->strm_stat == XPRT_DIED) + /* LINTED pointer cast */ svc_flags(xprt) |= SVC_FAILED; - trace1(TR_svc_vc_recv, 1); return (FALSE); } } else { - if (!xdrrec_skiprecord(xdrs)) { - trace1(TR_svc_vc_recv, 1); + if (!xdrrec_skiprecord(xdrs)) return (FALSE); - } - __xdrrec_setfirst(xdrs); + (void) __xdrrec_setfirst(xdrs); } if (xdr_callmsg(xdrs, msg)) { cd->x_id = msg->rm_xid; - trace1(TR_svc_vc_recv, 1); return (TRUE); } @@ -1824,27 +1736,24 @@ svc_vc_recv(SVCXPRT *xprt, struct rpc_msg *msg) * We are either under attack, or we're talking to a broken client. */ if (cd->cf_conn_nonblock) { + /* LINTED pointer cast */ svc_flags(xprt) |= SVC_FAILED; } - trace1(TR_svc_vc_recv, 1); return (FALSE); } static bool_t svc_vc_getargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { - bool_t dummy1; - - trace1(TR_svc_vc_getargs, 0); + bool_t dummy; /* LINTED pointer alignment */ - dummy1 = SVCAUTH_UNWRAP(&SVC_XP_AUTH(xprt), svc_xdrs[xprt->xp_fd], + dummy = SVCAUTH_UNWRAP(&SVC_XP_AUTH(xprt), svc_xdrs[xprt->xp_fd], xdr_args, args_ptr); if (svc_mt_mode != RPC_SVC_MT_NONE) svc_args_done(xprt); - trace1(TR_svc_vc_getargs, 1); - return (dummy1); + return (dummy); } static bool_t @@ -1852,13 +1761,9 @@ svc_vc_freeargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) { /* LINTED pointer alignment */ XDR *xdrs = &(((struct cf_conn *)(xprt->xp_p1))->xdrs); - bool_t dummy2; - trace1(TR_svc_vc_freeargs, 0); xdrs->x_op = XDR_FREE; - dummy2 = (*xdr_args)(xdrs, args_ptr); - trace1(TR_svc_vc_freeargs, 1); - return (dummy2); + return ((*xdr_args)(xdrs, args_ptr)); } static bool_t @@ -1872,14 +1777,12 @@ svc_vc_reply(SVCXPRT *xprt, struct rpc_msg *msg) caddr_t xdr_location; bool_t has_args; - trace1(TR_svc_vc_reply, 0); - #ifdef __lock_lint - mutex_lock(&svc_send_mutex(SVCEXT(xprt)->parent)); + (void) mutex_lock(&svc_send_mutex(SVCEXT(xprt)->parent)); #else if (svc_mt_mode != RPC_SVC_MT_NONE) /* LINTED pointer alignment */ - mutex_lock(&svc_send_mutex(SVCEXT(xprt)->parent)); + (void) mutex_lock(&svc_send_mutex(SVCEXT(xprt)->parent)); #endif if (msg->rm_reply.rp_stat == MSG_ACCEPTED && @@ -1902,27 +1805,25 @@ svc_vc_reply(SVCXPRT *xprt, struct rpc_msg *msg) (void) xdrrec_endofrecord(xdrs, TRUE); #ifdef __lock_lint - mutex_unlock(&svc_send_mutex(SVCEXT(xprt)->parent)); + (void) mutex_unlock(&svc_send_mutex(SVCEXT(xprt)->parent)); #else if (svc_mt_mode != RPC_SVC_MT_NONE) /* LINTED pointer alignment */ - mutex_unlock(&svc_send_mutex(SVCEXT(xprt)->parent)); + (void) mutex_unlock(&svc_send_mutex(SVCEXT(xprt)->parent)); #endif - trace1(TR_svc_vc_reply, 1); return (stat); } static struct xp_ops * -svc_vc_ops() +svc_vc_ops(void) { static struct xp_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_svc_vc_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.xp_recv == NULL) { ops.xp_recv = svc_vc_recv; ops.xp_stat = svc_vc_stat; @@ -1932,19 +1833,17 @@ svc_vc_ops() ops.xp_destroy = svc_vc_destroy; ops.xp_control = svc_vc_control; } - mutex_unlock(&ops_lock); - trace1(TR_svc_vc_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } static struct xp_ops * -svc_vc_rendezvous_ops() +svc_vc_rendezvous_ops(void) { static struct xp_ops ops; extern mutex_t ops_lock; - trace1(TR_svc_vc_rendezvous_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.xp_recv == NULL) { ops.xp_recv = rendezvous_request; ops.xp_stat = rendezvous_stat; @@ -1954,8 +1853,7 @@ svc_vc_rendezvous_ops() ops.xp_destroy = svc_vc_destroy; ops.xp_control = rendezvous_control; } - mutex_unlock(&ops_lock); - trace1(TR_svc_vc_rendezvous_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } @@ -2002,7 +1900,7 @@ fd_is_dead(int fd) } void -__svc_nisplus_fdcleanup_hack() +__svc_nisplus_fdcleanup_hack(void) { SVCXPRT *xprt; SVCXPRT *dead_xprt[CLEANUP_SIZE]; @@ -2010,8 +1908,8 @@ __svc_nisplus_fdcleanup_hack() if (svc_xports == NULL) return; - while (1) { - rw_wrlock(&svc_fd_lock); + for (;;) { + (void) rw_wrlock(&svc_fd_lock); for (dead_idx = 0; fd_idx < svc_max_pollfd; fd_idx++) { if ((xprt = svc_xports[fd_idx]) == NULL) continue; @@ -2029,29 +1927,29 @@ __svc_nisplus_fdcleanup_hack() /* Still holding svc_fd_lock */ _svc_vc_destroy_private(dead_xprt[i], FALSE); } - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); if (fd_idx++ >= svc_max_pollfd) return; } } void -__svc_nisplus_enable_timestamps() +__svc_nisplus_enable_timestamps(void) { - mutex_lock(×tamp_lock); + (void) mutex_lock(×tamp_lock); if (!timestamps) { timestamps = calloc(FD_INCREMENT, sizeof (long)); if (timestamps != NULL) ntimestamps = FD_INCREMENT; else { - mutex_unlock(×tamp_lock); + (void) mutex_unlock(×tamp_lock); syslog(LOG_ERR, "__svc_nisplus_enable_timestamps: " "out of memory"); return; } } - mutex_unlock(×tamp_lock); + (void) mutex_unlock(×tamp_lock); } void @@ -2063,13 +1961,14 @@ __svc_nisplus_purge_since(long since) if (svc_xports == NULL) return; - while (1) { - rw_wrlock(&svc_fd_lock); - mutex_lock(×tamp_lock); + for (;;) { + (void) rw_wrlock(&svc_fd_lock); + (void) mutex_lock(×tamp_lock); for (dead_idx = 0; fd_idx < svc_max_pollfd; fd_idx++) { if ((xprt = svc_xports[fd_idx]) == NULL) { continue; } + /* LINTED pointer cast */ if (svc_type(xprt) != SVC_CONNECTION) { continue; } @@ -2083,13 +1982,13 @@ __svc_nisplus_purge_since(long since) break; } } - mutex_unlock(×tamp_lock); + (void) mutex_unlock(×tamp_lock); for (i = 0; i < dead_idx; i++) { /* Still holding svc_fd_lock */ _svc_vc_destroy_private(dead_xprt[i], FALSE); } - rw_unlock(&svc_fd_lock); + (void) rw_unlock(&svc_fd_lock); if (fd_idx++ >= svc_max_pollfd) return; } diff --git a/usr/src/lib/libnsl/rpc/svcauth_des.c b/usr/src/lib/libnsl/rpc/svcauth_des.c index f63edee6e5..b437457052 100644 --- a/usr/src/lib/libnsl/rpc/svcauth_des.c +++ b/usr/src/lib/libnsl/rpc/svcauth_des.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -52,17 +54,12 @@ #include <rpc/des_crypt.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <stdlib.h> #include <unistd.h> #include <string.h> +#include <strings.h> -#ifdef KERNEL -#include <sys/kernel.h> -#define gettimeofday(tvp, tzp) (*(tvp) = time) -#else #include <syslog.h> -#endif extern int key_decryptsession_pk(const char *, netobj *, des_block *); @@ -127,7 +124,6 @@ struct { enum auth_stat __svcauth_des(struct svc_req *rqst, struct rpc_msg *msg) { - int32_t *ixdr; des_block cryptbuf[2]; struct authdes_cred *cred; @@ -148,39 +144,35 @@ __svcauth_des(struct svc_req *rqst, struct rpc_msg *msg) int fullname_rcvd = 0; int from_cache = 0; - trace1(TR___svcauth_des, 0); - mutex_lock(&authdes_lock); + (void) mutex_lock(&authdes_lock); if (_rpc_authdes_cache == NULL) { int ret = cache_init(); if (ret == -1) { - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_FAILED); } } - mutex_unlock(&authdes_lock); + (void) mutex_unlock(&authdes_lock); + /* LINTED pointer cast */ area = (struct area *)rqst->rq_clntcred; cred = (struct authdes_cred *)&area->area_cred; - if ((uint_t)msg->rm_call.cb_cred.oa_length == 0) { - trace1(TR___svcauth_des, 1); + if ((uint_t)msg->rm_call.cb_cred.oa_length == 0) return (AUTH_BADCRED); - } /* * Get the credential */ + /* LINTED pointer cast */ ixdr = (int32_t *)msg->rm_call.cb_cred.oa_base; cred->adc_namekind = IXDR_GET_ENUM(ixdr, enum authdes_namekind); switch (cred->adc_namekind) { case ADN_FULLNAME: namelen = IXDR_GET_U_INT32(ixdr); - if (namelen > MAXNETNAMELEN) { - trace1(TR___svcauth_des, 1); + if (namelen > MAXNETNAMELEN) return (AUTH_BADCRED); - } cred->adc_fullname.name = area->area_netname; - memcpy(cred->adc_fullname.name, (char *)ixdr, (uint_t)namelen); + (void) memcpy(cred->adc_fullname.name, ixdr, (uint_t)namelen); cred->adc_fullname.name[namelen] = 0; ixdr += (RNDUP(namelen) / BYTES_PER_XDR_UNIT); cred->adc_fullname.key.key.high = (uint32_t)*ixdr++; @@ -192,23 +184,21 @@ __svcauth_des(struct svc_req *rqst, struct rpc_msg *msg) cred->adc_nickname = (uint32_t)*ixdr++; break; default: - trace1(TR___svcauth_des, 1); return (AUTH_BADCRED); } - if ((uint_t)msg->rm_call.cb_verf.oa_length == 0) { - trace1(TR___svcauth_des, 1); + if ((uint_t)msg->rm_call.cb_verf.oa_length == 0) return (AUTH_BADVERF); - } /* * Get the verifier */ + /* LINTED pointer cast */ ixdr = (int32_t *)msg->rm_call.cb_verf.oa_base; verf.adv_xtimestamp.key.high = (uint32_t)*ixdr++; verf.adv_xtimestamp.key.low = (uint32_t)*ixdr++; verf.adv_int_u = (uint32_t)*ixdr++; - mutex_lock(&authdes_lock); + (void) mutex_lock(&authdes_lock); /* * Get the conversation key @@ -221,9 +211,8 @@ again: init_sessionkey = cred->adc_fullname.key; sessionkey = &init_sessionkey; - if (! __getpublickey_cached(cred->adc_fullname.name, + if (!__getpublickey_cached(cred->adc_fullname.name, pkey_data, &from_cache)) { - /* * if the user has no public key, treat him as the * unauthenticated identity - nobody. If this @@ -231,26 +220,22 @@ again: * user's keys and used nobody's secret key * as a backup. */ - - if (! __getpublickey_cached("nobody", + if (!__getpublickey_cached("nobody", pkey_data, &from_cache)) { __msgout(LOG_INFO, "_svcauth_des: no public key for nobody or ", cred->adc_fullname.name); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_BADCRED); /* no key */ - } else { - - /* - * found a public key for nobody. change - * the fullname id to nobody, so the caller - * thinks the client specified nobody - * as the user identity. - */ - - strcpy(cred->adc_fullname.name, "nobody"); } + + /* + * found a public key for nobody. change + * the fullname id to nobody, so the caller + * thinks the client specified nobody + * as the user identity. + */ + (void) strcpy(cred->adc_fullname.name, "nobody"); } pkey.n_bytes = pkey_data; pkey.n_len = strlen(pkey_data) + 1; @@ -260,26 +245,23 @@ again: __getpublickey_flush(cred->adc_fullname.name); goto again; } - __msgout(LOG_INFO, - "_svcauth_des: key_decryptsessionkey failed for", - cred->adc_fullname.name); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + __msgout(LOG_INFO, + "_svcauth_des: key_decryptsessionkey failed for", + cred->adc_fullname.name); + (void) mutex_unlock(&authdes_lock); return (AUTH_BADCRED); /* key not found */ } } else { /* ADN_NICKNAME */ sid = cred->adc_nickname; if (sid >= authdes_cachesz) { __msgout(LOG_INFO, "_svcauth_des:", "bad nickname"); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_BADCRED); /* garbled credential */ } /* actually check that the entry is not null */ entry = &_rpc_authdes_cache[sid]; if (entry->rname == NULL) { - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_BADCRED); /* cached out */ } sessionkey = &_rpc_authdes_cache[sid].key; @@ -308,8 +290,7 @@ again: __msgout(LOG_ERR, "_svcauth_des: DES decryption failure for", fullname_rcvd ? cred->adc_fullname.name : _rpc_authdes_cache[sid].rname); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_FAILED); /* system error */ } @@ -343,8 +324,7 @@ again: __msgout(LOG_INFO, "_svcauth_des: corrupted window from", cred->adc_fullname.name); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); /* garbled credential or invalid secret key */ return (AUTH_BADCRED); } @@ -356,8 +336,7 @@ again: __msgout(LOG_INFO, "_svcauth_des: replayed credential from", cred->adc_fullname.name); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_REJECTEDCRED); /* replay */ } else sid = cache_spot_id; nick = 0; @@ -376,8 +355,7 @@ again: fullname_rcvd ? cred->adc_fullname.name : _rpc_authdes_cache[sid].rname); /* cached out (bad key), or garbled verifier */ - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (nick ? AUTH_REJECTEDVERF : AUTH_BADVERF); } if (nick && BEFORE(×tamp, @@ -390,11 +368,10 @@ again: "_svcauth_des: timestamp is earlier than the one previously seen from", fullname_rcvd ? cred->adc_fullname.name : _rpc_authdes_cache[sid].rname); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_REJECTEDVERF); /* replay */ } - (void) gettimeofday(¤t, (struct timezone *)NULL); + (void) gettimeofday(¤t, NULL); current.tv_sec -= window; /* allow for expiration */ if (!BEFORE(¤t, ×tamp)) { if (fullname_rcvd && from_cache) { @@ -406,8 +383,7 @@ again: fullname_rcvd ? cred->adc_fullname.name : _rpc_authdes_cache[sid].rname); /* replay, or garbled credential */ - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (nick ? AUTH_REJECTEDVERF : AUTH_BADCRED); } } @@ -433,8 +409,7 @@ again: __msgout(LOG_ERR, "_svcauth_des: DES encryption failure for", fullname_rcvd ? cred->adc_fullname.name : _rpc_authdes_cache[sid].rname); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_FAILED); /* system error */ } verf.adv_xtimestamp = cryptbuf[0]; @@ -442,6 +417,7 @@ again: /* * Serialize the reply verifier, and update rqst */ + /* LINTED pointer cast */ ixdr = (int32_t *)msg->rm_call.cb_verf.oa_base; *ixdr++ = (int32_t)verf.adv_xtimestamp.key.high; *ixdr++ = (int32_t)verf.adv_xtimestamp.key.low; @@ -456,8 +432,7 @@ again: "_svcauth_des: Authenticator length error", fullname_rcvd ? cred->adc_fullname.name : _rpc_authdes_cache[sid].rname); - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_REJECTEDVERF); } @@ -471,17 +446,14 @@ again: if (cred->adc_namekind == ADN_FULLNAME) { cred->adc_fullname.window = window; cred->adc_nickname = sid; /* save nickname */ - if (entry->rname != NULL) { - mem_free(entry->rname, strlen(entry->rname) + 1); - } - entry->rname = - (char *)mem_alloc((uint_t)strlen(cred->adc_fullname.name) - + 1); + if (entry->rname != NULL) + free(entry->rname); + entry->rname = malloc(strlen(cred->adc_fullname.name) + 1); if (entry->rname != NULL) { (void) strcpy(entry->rname, cred->adc_fullname.name); } else { __msgout(LOG_CRIT, "_svcauth_des:", "out of memory"); - mutex_unlock(&authdes_lock); + (void) mutex_unlock(&authdes_lock); return (AUTH_FAILED); } entry->key = *sessionkey; @@ -497,8 +469,7 @@ again: cred->adc_fullname.key = entry->key; cred->adc_fullname.window = entry->window; } - mutex_unlock(&authdes_lock); - trace1(TR___svcauth_des, 1); + (void) mutex_unlock(&authdes_lock); return (AUTH_OK); /* we made it! */ } @@ -507,21 +478,20 @@ again: * Initialize the cache */ static int -cache_init() +cache_init(void) { int i; /* LOCK HELD ON ENTRY: authdes_lock */ - trace1(TR_cache_init, 0); assert(MUTEX_HELD(&authdes_lock)); - _rpc_authdes_cache = (struct cache_entry *) - mem_alloc(sizeof (struct cache_entry) * authdes_cachesz); + _rpc_authdes_cache = + malloc(sizeof (struct cache_entry) * authdes_cachesz); if (_rpc_authdes_cache == NULL) { __msgout(LOG_CRIT, "cache_init:", "out of memory"); return (-1); } - memset((char *)_rpc_authdes_cache, 0, + (void) memset(_rpc_authdes_cache, 0, sizeof (struct cache_entry) * authdes_cachesz); /* @@ -544,7 +514,6 @@ cache_init() cache_head->prev = cache_tail; cache_tail->next = cache_head; cache_tail->prev = &_rpc_authdes_cache[authdes_cachesz - 2]; - trace1(TR_cache_init, 1); return (0); } @@ -553,14 +522,11 @@ cache_init() * Find the lru victim */ static uint32_t -cache_victim() +cache_victim(void) { - /* LOCK HELD ON ENTRY: authdes_lock */ - trace1(TR_cache_victim, 0); assert(MUTEX_HELD(&authdes_lock)); - trace1(TR_cache_victim, 1); return (cache_head->index); /* list in lru order */ } @@ -570,13 +536,11 @@ cache_victim() static void cache_ref(uint32_t sid) { - int i; struct cache_entry *curr = &_rpc_authdes_cache[sid]; /* LOCK HELD ON ENTRY: authdes_lock */ - trace1(TR_cache_ref, 0); assert(MUTEX_HELD(&authdes_lock)); /* @@ -598,8 +562,6 @@ cache_ref(uint32_t sid) cache_tail->next = curr; /* fix the tail */ cache_tail = curr; /* move the tail */ } - - trace1(TR_cache_ref, 1); } /* @@ -613,11 +575,9 @@ cache_spot(des_block *key, char *name, struct timeval *timestamp) struct cache_entry *cp; int i; uint32_t hi; - static uint32_t dummy; /* LOCK HELD ON ENTRY: authdes_lock */ - trace1(TR_cache_spot, 0); assert(MUTEX_HELD(&authdes_lock)); hi = key->key.high; for (cp = _rpc_authdes_cache, i = 0; i < authdes_cachesz; i++, cp++) { @@ -627,19 +587,15 @@ cache_spot(des_block *key, char *name, struct timeval *timestamp) memcmp(cp->rname, name, strlen(name) + 1) == 0) { if (BEFORE(timestamp, &cp->laststamp)) { svcauthdes_stats.ncachereplays++; - trace1(TR_cache_spot, 1); return (-1); /* replay */ } svcauthdes_stats.ncachehits++; - trace1(TR_cache_spot, 1); return (i); /* refresh */ } } svcauthdes_stats.ncachemisses++; - dummy = cache_victim(); - trace1(TR_cache_spot, 1); - return (dummy); /* new credential */ + return (cache_victim()); } @@ -661,17 +617,12 @@ struct bsdcred { static void invalidate(char *cred) { - trace1(TR_invalidate, 0); - if (cred == NULL) { - trace1(TR_invalidate, 1); + if (cred == NULL) return; - } + /* LINTED pointer cast */ ((struct bsdcred *)cred)->grouplen = INVALID; - trace1(TR_invalidate, 1); } - - /* * Map a des credential into a unix cred. * We cache the credential here so the application does @@ -689,21 +640,19 @@ authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid, int i_grouplen; struct bsdcred *cred; - trace1(TR_authdes_getucred, 0); sid = adc->adc_nickname; if (sid >= authdes_cachesz) { __msgout2(__getucredstr, "invalid nickname"); - trace1(TR_authdes_getucred, 1); return (0); } - mutex_lock(&authdes_lock); + (void) mutex_lock(&authdes_lock); + /* LINTED pointer cast */ cred = (struct bsdcred *)_rpc_authdes_cache[sid].localcred; if (cred == NULL) { - cred = (struct bsdcred *)mem_alloc(sizeof (struct bsdcred)); + cred = malloc(sizeof (struct bsdcred)); if (cred == NULL) { __msgout2(__getucredstr, "out of memory"); - mutex_unlock(&authdes_lock); - trace1(TR_authdes_getucred, 1); + (void) mutex_unlock(&authdes_lock); return (0); } _rpc_authdes_cache[sid].localcred = (char *)cred; @@ -718,8 +667,7 @@ authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid, __msgout2(__getucredstr, "unknown netname"); /* mark as lookup up, but not found */ cred->grouplen = UNKNOWN; - mutex_unlock(&authdes_lock); - trace1(TR_authdes_getucred, 1); + (void) mutex_unlock(&authdes_lock); return (0); } __msgout2(__getucredstr, "missed ucred cache"); @@ -729,15 +677,14 @@ authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid, for (i = i_grouplen - 1; i >= 0; i--) { cred->groups[i] = groups[i]; /* int to short */ } - mutex_unlock(&authdes_lock); - trace1(TR_authdes_getucred, 1); + (void) mutex_unlock(&authdes_lock); return (1); - } else if (cred->grouplen == UNKNOWN) { + } + if (cred->grouplen == UNKNOWN) { /* * Already lookup up, but no match found */ - mutex_unlock(&authdes_lock); - trace1(TR_authdes_getucred, 1); + (void) mutex_unlock(&authdes_lock); return (0); } @@ -750,8 +697,7 @@ authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid, for (i = cred->grouplen - 1; i >= 0; i--) { groups[i] = cred->groups[i]; /* short to int */ } - mutex_unlock(&authdes_lock); - trace1(TR_authdes_getucred, 1); + (void) mutex_unlock(&authdes_lock); return (1); } @@ -759,24 +705,12 @@ authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid, static void __msgout(int level, const char *str, const char *strarg) { - trace1(TR___msgout, 0); -#ifdef KERNEL - printf("%s %s\n", str, strarg); -#else - (void) syslog(level, "%s %s", str, strarg); -#endif - trace1(TR___msgout, 1); + (void) syslog(level, "%s %s", str, strarg); } static void __msgout2(const char *str, const char *str2) { - trace1(TR___msgout, 0); -#ifdef KERNEL - printf("%s %s", str, str2); -#else - (void) syslog(LOG_DEBUG, "%s %s", str, str2); -#endif - trace1(TR___msgout, 1); + (void) syslog(LOG_DEBUG, "%s %s", str, str2); } diff --git a/usr/src/lib/libnsl/rpc/svid_funcs.c b/usr/src/lib/libnsl/rpc/svid_funcs.c index f4ef252a2a..fd6a79c799 100644 --- a/usr/src/lib/libnsl/rpc/svid_funcs.c +++ b/usr/src/lib/libnsl/rpc/svid_funcs.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1991, 1997, 2001 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -35,11 +36,8 @@ #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <synch.h> -/* LINTLIBRARY */ - #undef auth_destroy #undef clnt_call #undef clnt_send @@ -61,216 +59,111 @@ extern void __svc_versquiet_off(); extern void __svc_versquiet_on(); void -auth_destroy(auth) - AUTH *auth; +auth_destroy(AUTH *auth) { - trace1(TR_auth_destroy, 0); ((*((auth)->ah_ops->ah_destroy))(auth)); - trace1(TR_auth_destroy, 1); } enum clnt_stat -clnt_call(cl, proc, xargs, argsp, xres, resp, timeout) - CLIENT *cl; - uint32_t proc; - xdrproc_t xargs; - caddr_t argsp; - xdrproc_t xres; - caddr_t resp; - struct timeval timeout; +clnt_call(CLIENT *cl, uint32_t proc, xdrproc_t xargs, caddr_t argsp, + xdrproc_t xres, caddr_t resp, struct timeval timeout) { - enum clnt_stat dummy; - - trace2(TR_clnt_call, 0, proc); - dummy = (*(cl)->cl_ops->cl_call)(cl, proc, xargs, argsp, xres, resp, - timeout); - trace2(TR_clnt_call, 1, proc); - return (dummy); + return ((*(cl)->cl_ops->cl_call)(cl, proc, xargs, argsp, xres, resp, + timeout)); } enum clnt_stat -clnt_send(cl, proc, xargs, argsp) - CLIENT *cl; - uint32_t proc; - xdrproc_t xargs; - caddr_t argsp; +clnt_send(CLIENT *cl, uint32_t proc, xdrproc_t xargs, caddr_t argsp) { - enum clnt_stat dummy; - - dummy = (*(cl)->cl_ops->cl_send)(cl, proc, xargs, argsp); - return (dummy); + return ((*(cl)->cl_ops->cl_send)(cl, proc, xargs, argsp)); } bool_t -clnt_control(cl, rq, in) - CLIENT *cl; - uint_t rq; - char *in; +clnt_control(CLIENT *cl, uint_t rq, char *in) { - bool_t dummy; - - trace2(TR_clnt_control, 0, rq); - dummy = (*(cl)->cl_ops->cl_control)(cl, rq, in); - trace2(TR_clnt_control, 1, rq); - return (dummy); + return ((*(cl)->cl_ops->cl_control)(cl, rq, in)); } - void -clnt_destroy(cl) - CLIENT *cl; +clnt_destroy(CLIENT *cl) { - trace2(TR_clnt_destroy, 0, cl); ((*(cl)->cl_ops->cl_destroy)(cl)); - trace2(TR_clnt_destroy, 1, cl); } bool_t -clnt_freeres(cl, xres, resp) - CLIENT *cl; - xdrproc_t xres; - caddr_t resp; +clnt_freeres(CLIENT *cl, xdrproc_t xres, caddr_t resp) { - bool_t dummy; - - trace2(TR_clnt_freeres, 0, cl); - dummy = (*(cl)->cl_ops->cl_freeres)(cl, xres, resp); - trace2(TR_clnt_freeres, 1, cl); - return (dummy); + return ((*(cl)->cl_ops->cl_freeres)(cl, xres, resp)); } void -clnt_geterr(cl, errp) - CLIENT *cl; - struct rpc_err *errp; +clnt_geterr(CLIENT *cl, struct rpc_err *errp) { - trace2(TR_clnt_geterr, 0, cl); (*(cl)->cl_ops->cl_geterr)(cl, errp); - trace2(TR_clnt_geterr, 1, cl); } bool_t -svc_control(xprt, rq, in) - SVCXPRT *xprt; - const uint_t rq; - void *in; +svc_control(SVCXPRT *xprt, const uint_t rq, void *in) { - bool_t retval; - - trace2(TR_svc_control, 0, rq); switch (rq) { case SVCGET_VERSQUIET: *((int *)in) = __svc_versquiet_get(xprt); - retval = TRUE; - break; - + return (TRUE); case SVCSET_VERSQUIET: if (*((int *)in) == 0) __svc_versquiet_off(xprt); else __svc_versquiet_on(xprt); - retval = TRUE; - break; - + return (TRUE); default: - retval = (*(xprt)->xp_ops->xp_control)(xprt, rq, in); + return ((*(xprt)->xp_ops->xp_control)(xprt, rq, in)); } - trace3(TR_svc_control, 1, rq, retval); - return (retval); } void -svc_destroy(xprt) - SVCXPRT *xprt; +svc_destroy(SVCXPRT *xprt) { - trace1(TR_svc_destroy, 0); (*(xprt)->xp_ops->xp_destroy)(xprt); - trace1(TR_svc_destroy, 1); } bool_t -svc_freeargs(xprt, xargs, argsp) - SVCXPRT *xprt; - xdrproc_t xargs; - char *argsp; +svc_freeargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp) { - bool_t dummy; - - trace1(TR_svc_freeargs, 0); - dummy = (*(xprt)->xp_ops->xp_freeargs)(xprt, xargs, argsp); - trace1(TR_svc_freeargs, 1); - return (dummy); + return ((*(xprt)->xp_ops->xp_freeargs)(xprt, xargs, argsp)); } bool_t -svc_getargs(xprt, xargs, argsp) - SVCXPRT *xprt; - xdrproc_t xargs; - char *argsp; +svc_getargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp) { - bool_t dummy; - - trace1(TR_svc_getargs, 0); - dummy = (*(xprt)->xp_ops->xp_getargs)(xprt, xargs, argsp); - trace1(TR_svc_getargs, 1); - return (dummy); + return ((*(xprt)->xp_ops->xp_getargs)(xprt, xargs, argsp)); } struct netbuf * -svc_getrpccaller(xprt) - SVCXPRT *xprt; +svc_getrpccaller(SVCXPRT *xprt) { - struct netbuf *dummy; - - trace1(TR_svc_getrpccaller, 0); - dummy = &(xprt)->xp_rtaddr; - trace1(TR_svc_getrpccaller, 1); - return (dummy); + return (&(xprt)->xp_rtaddr); } void -xdr_destroy(xdrs) - XDR *xdrs; +xdr_destroy(XDR *xdrs) { - trace1(TR_xdr_destroy, 0); (*(xdrs)->x_ops->x_destroy)(xdrs); - trace1(TR_xdr_destroy, 1); } uint_t -xdr_getpos(xdrs) - XDR *xdrs; +xdr_getpos(XDR *xdrs) { - uint_t dummy; - - trace1(TR_xdr_getpos, 0); - dummy = (*(xdrs)->x_ops->x_getpostn)(xdrs); - trace1(TR_xdr_getpos, 1); - return (dummy); + return ((*(xdrs)->x_ops->x_getpostn)(xdrs)); } rpc_inline_t * -xdr_inline(xdrs, len) - XDR *xdrs; - int len; +xdr_inline(XDR *xdrs, int len) { - rpc_inline_t *dummy; - - trace2(TR_xdr_inline, 0, len); - dummy = (*(xdrs)->x_ops->x_inline)(xdrs, len); - trace2(TR_xdr_inline, 1, len); - return (dummy); + return ((*(xdrs)->x_ops->x_inline)(xdrs, len)); } bool_t -xdr_setpos(xdrs, pos) - XDR *xdrs; - uint_t pos; +xdr_setpos(XDR *xdrs, uint_t pos) { - bool_t dummy; - - trace2(TR_xdr_setpos, 0, pos); - dummy = (*(xdrs)->x_ops->x_setpostn)(xdrs, pos); - trace2(TR_xdr_setpos, 1, pos); - return (dummy); + return ((*(xdrs)->x_ops->x_setpostn)(xdrs, pos)); } diff --git a/usr/src/lib/libnsl/rpc/ti_opts.c b/usr/src/lib/libnsl/rpc/ti_opts.c index 9ac29e8268..55fd1b4fe4 100644 --- a/usr/src/lib/libnsl/rpc/ti_opts.c +++ b/usr/src/lib/libnsl/rpc/ti_opts.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -39,7 +40,6 @@ #include <netinet/udp.h> #include <inttypes.h> #include <sys/types.h> -#include <rpc/trace.h> #include <tiuser.h> #include <sys/socket.h> #include <net/if.h> @@ -49,6 +49,7 @@ #include <sys/stropts.h> #include <errno.h> #include <libintl.h> +#include <string.h> #include <strings.h> #include <syslog.h> #include <unistd.h> @@ -57,7 +58,7 @@ #include <stdlib.h> #include <zone.h> -extern char *inet_ntop(int, const void *, char *, size_t); +extern const char *inet_ntop(int, const void *, char *, socklen_t); extern bool_t __svc_get_door_ucred(const SVCXPRT *, ucred_t *); @@ -78,14 +79,11 @@ extern bool_t __svc_get_door_ucred(const SVCXPRT *, ucred_t *); * Version for Solaris with new local transport code and ucred. */ int -__rpc_negotiate_uid(fd) - int fd; +__rpc_negotiate_uid(int fd) { struct strioctl strioc; unsigned int set = 1; - trace2(TR___rpc_negotiate_uid, 0, fd); - /* For tcp we use getpeerucred and it needs no initialization. */ if (ioctl(fd, I_FIND, "tcp") > 0) return (0); @@ -99,11 +97,8 @@ __rpc_negotiate_uid(fd) __rpc_tli_set_options(fd, SOL_SOCKET, SO_RECVUCRED, 1) == -1) { syslog(LOG_ERR, "rpc_negotiate_uid (%s): %m", "ioctl:I_STR:TL_IOC_UCREDOPT/SO_RECVUCRED"); - trace2(TR___rpc_negotiate_uid, 1, fd); return (-1); } - - trace2(TR___rpc_negotiate_uid, 1, fd); return (0); } @@ -140,6 +135,7 @@ find_ucred_opt(const SVCXPRT *trans, ucred_t *uc, bool_t checkzone) #ifdef RPC_DEBUG syslog(LOG_INFO, "find_ucred_opt %p %x", abuf->buf, abuf->len); #endif + /* LINTED pointer cast */ opth = (struct opthdr *)abuf->buf; if (opth->level == TL_PROT_LEVEL && opth->name == TL_OPT_PEER_UCRED && @@ -161,13 +157,14 @@ find_ucred_opt(const SVCXPRT *trans, ucred_t *uc, bool_t checkzone) maxbufp = bufp + abuf->len; while (bufp + sizeof (struct T_opthdr) < maxbufp) { + /* LINTED pointer cast */ struct T_opthdr *opt = (struct T_opthdr *)bufp; #ifdef RPC_DEBUG syslog(LOG_INFO, "find_ucred_opt opt: %p %x, %d %d", opt, opt->len, opt->name, opt->level); #endif - if (opt->len > maxbufp - bufp || opt->len < 0 || (opt->len & 3)) + if (opt->len > maxbufp - bufp || (opt->len & 3)) return (-1); if (opt->level == SOL_SOCKET && opt->name == SCM_UCRED && opt->len - sizeof (struct T_opthdr) <= ucred_size()) { @@ -202,21 +199,15 @@ __rpc_get_local_uid(SVCXPRT *trans, uid_t *uid_out) ucred_t *uc = alloca(ucred_size()); int err; - trace1(TR___rpc_get_local_uid, 0); - /* LINTED - pointer alignment */ if (svc_type(trans) == SVC_DOOR) err = __svc_get_door_ucred(trans, uc) == FALSE; else err = find_ucred_opt(trans, uc, B_TRUE); - if (err != 0) { - trace1(TR___rpc_get_local_uid, 1); + if (err != 0) return (-1); - } *uid_out = ucred_geteuid(uc); - - trace1(TR___rpc_get_local_uid, 1); return (0); } @@ -347,7 +338,6 @@ __rpc_get_ltaddr(struct netbuf *nbufp, struct netbuf *ltaddr) t_errno = TBADOPT; return (-1); } - /* LINTED pointer alignment */ bzero(&v4tmp, sizeof (v4tmp)); v4tmp.sin_family = AF_INET; v4tmp.sin_addr = *(struct in_addr *)opt; @@ -372,17 +362,18 @@ __rpc_get_ltaddr(struct netbuf *nbufp, struct netbuf *ltaddr) return (1); } - memcpy(&areq.sa_addr, (void *)&v4tmp, - sizeof (v4tmp)); + (void) memcpy(&areq.sa_addr, &v4tmp, + sizeof (v4tmp)); areq.sa_res = -1; if (ioctl(s, SIOCTMYADDR, (caddr_t)&areq) < 0) { syslog(LOG_ERR, "get_ltaddr:ioctl for udp failed"); - close(s); + (void) close(s); return (1); } - close(s); + (void) close(s); if (areq.sa_res == 1) { + /* LINTED pointer cast */ ipv4sa = (struct sockaddr_in *)ltaddr->buf; ipv4sa->sin_family = AF_INET; ipv4sa->sin_addr = *(struct in_addr *)opt; @@ -427,17 +418,18 @@ __rpc_get_ltaddr(struct netbuf *nbufp, struct netbuf *ltaddr) return (1); } - memcpy(&areq.sa_addr, (void *)&v6tmp, - sizeof (v6tmp)); + (void) memcpy(&areq.sa_addr, &v6tmp, + sizeof (v6tmp)); areq.sa_res = -1; if (ioctl(s, SIOCTMYADDR, (caddr_t)&areq) < 0) { syslog(LOG_ERR, "get_ltaddr:ioctl for udp6 failed"); - close(s); + (void) close(s); return (1); } - close(s); + (void) close(s); if (areq.sa_res == 1) { + /* LINTED pointer cast */ ipv6sa = (struct sockaddr_in6 *)ltaddr->buf; ipv6sa->sin6_family = AF_INET6; ipv6sa->sin6_addr = @@ -551,6 +543,6 @@ __tli_sys_strerror(char *buf, size_t buflen, int tli_err, int sys_err) (void) strlcpy(buf, errorstr, buflen); } else { errorstr = t_strerror(tli_err); - strlcpy(buf, errorstr, buflen); + (void) strlcpy(buf, errorstr, buflen); } } diff --git a/usr/src/lib/libnsl/rpc/xdr.c b/usr/src/lib/libnsl/rpc/xdr.c index a8f2050236..c22b4f0579 100644 --- a/usr/src/lib/libnsl/rpc/xdr.c +++ b/usr/src/lib/libnsl/rpc/xdr.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2002 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -39,25 +41,19 @@ * most common data items. See xdr.h for more info on the interface to * xdr. */ +#include <stdlib.h> #include <sys/types.h> #include <sys/isa_defs.h> -#include <rpc/trace.h> - -#ifdef KERNEL -#include <sys/param.h> -#include <sys/systm.h> -#else #include <syslog.h> #include <stdio.h> #include <stdlib.h> #include <string.h> -#endif - #include <limits.h> #include <rpc/types.h> #include <rpc/xdr.h> #include <inttypes.h> #include <sys/sysmacros.h> +#include <assert.h> #pragma weak xdr_int64_t = xdr_hyper #pragma weak xdr_uint64_t = xdr_u_hyper @@ -69,6 +65,12 @@ #pragma weak xdr_uint8_t = xdr_u_char /* + * The following routine was part of a workaround for an rpcgen + * that was fixed, this routine should be removed sometime. + */ +#pragma weak xdr_ulonglong_t = xdr_u_longlong_t + +/* * constants specific to the xdr "protocol" */ #define XDR_FALSE ((uint_t)0) @@ -83,7 +85,6 @@ */ static const char xdr_zero[BYTES_PER_XDR_UNIT] = { 0 }; -#ifndef KERNEL /* * Free a data structure using XDR * Not a filter, but a convenient utility nonetheless @@ -93,21 +94,16 @@ xdr_free(xdrproc_t proc, char *objp) { XDR x; - trace1(TR_xdr_free, 0); x.x_op = XDR_FREE; (*proc)(&x, objp); - trace1(TR_xdr_free, 1); } -#endif /* * XDR nothing */ bool_t -xdr_void() +xdr_void(void) { - trace1(TR_xdr_void, 0); - trace1(TR_xdr_void, 1); return (TRUE); } @@ -120,10 +116,8 @@ xdr_void() bool_t xdr_time_t(XDR *xdrs, time_t *tp) { - bool_t dummy; int32_t i; - trace1(TR_xdr_time_t, 0); switch (xdrs->x_op) { case XDR_ENCODE: /* @@ -138,24 +132,17 @@ xdr_time_t(XDR *xdrs, time_t *tp) *tp = INT32_MIN; #endif i = (int32_t)*tp; - dummy = XDR_PUTINT32(xdrs, &i); - trace1(TR_xdr_time_t, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, &i)); case XDR_DECODE: - if (!XDR_GETINT32(xdrs, &i)) { - trace1(TR_xdr_time_t, 1); + if (!XDR_GETINT32(xdrs, &i)) return (FALSE); - } *tp = (time_t)i; - trace1(TR_xdr_time_t, 1); return (TRUE); case XDR_FREE: - trace1(TR_xdr_time_t, 1); return (TRUE); } - trace1(TR_xdr_time_t, 1); return (FALSE); } @@ -165,17 +152,14 @@ xdr_time_t(XDR *xdrs, time_t *tp) bool_t xdr_int(XDR *xdrs, int *ip) { - trace1(TR_xdr_int, 0); - if (xdrs->x_op == XDR_ENCODE) + switch (xdrs->x_op) { + case XDR_ENCODE: return (XDR_PUTINT32(xdrs, ip)); - - if (xdrs->x_op == XDR_DECODE) + case XDR_DECODE: return (XDR_GETINT32(xdrs, ip)); - - if (xdrs->x_op == XDR_FREE) + case XDR_FREE: return (TRUE); - - trace1(TR_xdr_int, 1); + } return (FALSE); } @@ -185,55 +169,44 @@ xdr_int(XDR *xdrs, int *ip) bool_t xdr_u_int(XDR *xdrs, uint_t *up) { - trace1(TR_xdr_u_int, 0); - if (xdrs->x_op == XDR_ENCODE) + switch (xdrs->x_op) { + case XDR_ENCODE: return (XDR_PUTINT32(xdrs, (int *)up)); - - if (xdrs->x_op == XDR_DECODE) + case XDR_DECODE: return (XDR_GETINT32(xdrs, (int *)up)); - - if (xdrs->x_op == XDR_FREE) + case XDR_FREE: return (TRUE); - - trace1(TR_xdr_u_int, 1); + } return (FALSE); } -#ifndef KERNEL -static const char xdrlong_err[] = - "xdr_%s: value too large to be stored in data type"; -#endif - /* * The definition of xdr_long()/xdr_u_long() is kept for backward * compatibitlity. * XDR long integers, same as xdr_u_long */ - bool_t xdr_long(XDR *xdrs, long *lp) { - bool_t dummy; int32_t i; - trace1(TR_xdr_long, 0); - if (xdrs->x_op == XDR_ENCODE) { + switch (xdrs->x_op) { + case XDR_ENCODE: #if defined(_LP64) - if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) { + if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) return (FALSE); - } #endif i = (int32_t)*lp; - dummy = XDR_PUTINT32(xdrs, &i); - } else if (xdrs->x_op == XDR_DECODE) { - dummy = XDR_GETINT32(xdrs, &i); + return (XDR_PUTINT32(xdrs, &i)); + case XDR_DECODE: + if (!XDR_GETINT32(xdrs, &i)) + return (FALSE); *lp = (long)i; - } else if (xdrs->x_op == XDR_FREE) - dummy = TRUE; - else - dummy = FALSE; - trace1(TR_xdr_long, 1); - return (dummy); + return (TRUE); + case XDR_FREE: + return (TRUE); + } + return (FALSE); } /* @@ -243,27 +216,25 @@ xdr_long(XDR *xdrs, long *lp) bool_t xdr_u_long(XDR *xdrs, ulong_t *ulp) { - bool_t dummy; uint32_t ui; - trace1(TR_xdr_u_long, 0); - if (xdrs->x_op == XDR_ENCODE) { + switch (xdrs->x_op) { + case XDR_ENCODE: #if defined(_LP64) - if (*ulp > UINT32_MAX) { + if (*ulp > UINT32_MAX) return (FALSE); - } #endif ui = (uint32_t)*ulp; - dummy = XDR_PUTINT32(xdrs, (int32_t *)&ui); - } else if (xdrs->x_op == XDR_DECODE) { - dummy = XDR_GETINT32(xdrs, (int32_t *)&ui); + return (XDR_PUTINT32(xdrs, (int32_t *)&ui)); + case XDR_DECODE: + if (!XDR_GETINT32(xdrs, (int32_t *)&ui)) + return (FALSE); *ulp = (ulong_t)ui; - } else if (xdrs->x_op == XDR_FREE) - dummy = TRUE; - else - dummy = FALSE; - trace1(TR_xdr_u_long, 1); - return (dummy); + return (TRUE); + case XDR_FREE: + return (TRUE); + } + return (FALSE); } /* @@ -273,31 +244,19 @@ bool_t xdr_short(XDR *xdrs, short *sp) { int32_t l; - bool_t dummy; - trace1(TR_xdr_short, 0); switch (xdrs->x_op) { - case XDR_ENCODE: l = (int32_t)*sp; - dummy = XDR_PUTINT32(xdrs, &l); - trace1(TR_xdr_short, 1); - return (dummy); - + return (XDR_PUTINT32(xdrs, &l)); case XDR_DECODE: - if (!XDR_GETINT32(xdrs, &l)) { - trace1(TR_xdr_short, 1); + if (!XDR_GETINT32(xdrs, &l)) return (FALSE); - } *sp = (short)l; - trace1(TR_xdr_short, 1); return (TRUE); - case XDR_FREE: - trace1(TR_xdr_short, 1); return (TRUE); } - trace1(TR_xdr_short, 1); return (FALSE); } @@ -308,38 +267,19 @@ bool_t xdr_u_short(XDR *xdrs, ushort_t *usp) { uint_t i; - bool_t dummy; - - trace1(TR_xdr_u_short, 0); switch (xdrs->x_op) { - case XDR_ENCODE: i = (uint_t)*usp; - dummy = XDR_PUTINT32(xdrs, (int *)&i); - trace1(TR_xdr_u_short, 1); - return (dummy); - + return (XDR_PUTINT32(xdrs, (int *)&i)); case XDR_DECODE: - if (!XDR_GETINT32(xdrs, (int *)&i)) { -#ifdef KERNEL - printf("xdr_u_short: decode FAILED\n"); -#endif - trace1(TR_xdr_u_short, 1); + if (!XDR_GETINT32(xdrs, (int *)&i)) return (FALSE); - } *usp = (ushort_t)i; - trace1(TR_xdr_u_short, 1); return (TRUE); - case XDR_FREE: - trace1(TR_xdr_u_short, 1); return (TRUE); } -#ifdef KERNEL - printf("xdr_u_short: bad op FAILED\n"); -#endif - trace1(TR_xdr_u_short, 1); return (FALSE); } @@ -352,22 +292,21 @@ xdr_char(XDR *xdrs, char *cp) { int i; - trace1(TR_xdr_char, 0); - - if (xdrs->x_op == XDR_ENCODE) + switch (xdrs->x_op) { + case XDR_ENCODE: i = (*cp); - - if (! xdr_int(xdrs, &i)) { - trace1(TR_xdr_char, 1); - return (FALSE); - } - if (xdrs->x_op == XDR_DECODE) + return (XDR_PUTINT32(xdrs, &i)); + case XDR_DECODE: + if (!XDR_GETINT32(xdrs, &i)) + return (FALSE); *cp = (char)i; - trace1(TR_xdr_char, 1); - return (TRUE); + return (TRUE); + case XDR_FREE: + return (TRUE); + } + return (FALSE); } -#ifndef KERNEL /* * XDR an unsigned char */ @@ -376,19 +315,20 @@ xdr_u_char(XDR *xdrs, uchar_t *cp) { int i; - trace1(TR_xdr_u_char, 0); - if (xdrs->x_op == XDR_ENCODE) + switch (xdrs->x_op) { + case XDR_ENCODE: i = (*cp); - if (! xdr_int(xdrs, &i)) { - trace1(TR_xdr_u_char, 1); - return (FALSE); - } - if (xdrs->x_op == XDR_DECODE) + return (XDR_PUTINT32(xdrs, &i)); + case XDR_DECODE: + if (!XDR_GETINT32(xdrs, &i)) + return (FALSE); *cp = (uchar_t)i; - trace1(TR_xdr_u_char, 1); - return (TRUE); + return (TRUE); + case XDR_FREE: + return (TRUE); + } + return (FALSE); } -#endif /* !KERNEL */ /* * XDR booleans @@ -397,37 +337,19 @@ bool_t xdr_bool(XDR *xdrs, bool_t *bp) { int i; - bool_t dummy; - trace1(TR_xdr_bool, 0); switch (xdrs->x_op) { - case XDR_ENCODE: i = *bp ? XDR_TRUE : XDR_FALSE; - dummy = XDR_PUTINT32(xdrs, &i); - trace1(TR_xdr_bool, 1); - return (dummy); - + return (XDR_PUTINT32(xdrs, &i)); case XDR_DECODE: - if (!XDR_GETINT32(xdrs, &i)) { -#ifdef KERNEL - printf("xdr_bool: decode FAILED\n"); -#endif - trace1(TR_xdr_bool, 1); + if (!XDR_GETINT32(xdrs, &i)) return (FALSE); - } *bp = (i == XDR_FALSE) ? FALSE : TRUE; - trace1(TR_xdr_bool, 1); return (TRUE); - case XDR_FREE: - trace1(TR_xdr_bool, 1); return (TRUE); } -#ifdef KERNEL - printf("xdr_bool: bad op FAILED\n"); -#endif - trace1(TR_xdr_bool, 1); return (FALSE); } @@ -437,39 +359,14 @@ xdr_bool(XDR *xdrs, bool_t *bp) bool_t xdr_enum(XDR *xdrs, enum_t *ep) { - bool_t dummy; - -#ifndef lint enum sizecheck { SIZEVAL }; /* used to find the size of an enum */ /* * enums are treated as ints */ - trace1(TR_xdr_enum, 0); - if (sizeof (enum sizecheck) == sizeof (int32_t)) { - dummy = xdr_int(xdrs, (int *)ep); - trace1(TR_xdr_enum, 1); - return (dummy); - } else if (sizeof (enum sizecheck) == sizeof (short)) { - dummy = xdr_short(xdrs, (short *)ep); - trace1(TR_xdr_enum, 1); - return (dummy); - } else if (sizeof (enum sizecheck) == sizeof (char)) { - dummy = xdr_char(xdrs, (char *)ep); - trace1(TR_xdr_enum, 1); - return (dummy); - } else { - trace1(TR_xdr_enum, 1); - return (FALSE); - } -#else - trace1(TR_xdr_enum, 0); - (void) (xdr_char(xdrs, (char *)ep)); - (void) (xdr_short(xdrs, (short *)ep)); - dummy = xdr_int(xdrs, (int32_t *)ep); - trace1(TR_xdr_enum, 1); - return (dummy); -#endif + /* CONSTCOND */ + assert(sizeof (enum sizecheck) == sizeof (int32_t)); + return (xdr_int(xdrs, (int *)ep)); } /* @@ -478,20 +375,16 @@ xdr_enum(XDR *xdrs, enum_t *ep) * cp points to the opaque object and cnt gives the byte length. */ bool_t -xdr_opaque(XDR *xdrs, caddr_t cp, uint_t cnt) +xdr_opaque(XDR *xdrs, caddr_t cp, const uint_t cnt) { - bool_t dummy; - register uint_t rndup; + uint_t rndup; char crud[BYTES_PER_XDR_UNIT]; /* * if no data we are done */ - trace2(TR_xdr_opaque, 0, cnt); - if (cnt == 0) { - trace1(TR_xdr_opaque, 1); + if (cnt == 0) return (TRUE); - } /* * round byte count to full xdr units @@ -500,50 +393,22 @@ xdr_opaque(XDR *xdrs, caddr_t cp, uint_t cnt) if ((int)rndup > 0) rndup = BYTES_PER_XDR_UNIT - rndup; - if (xdrs->x_op == XDR_DECODE) { - if (!XDR_GETBYTES(xdrs, cp, cnt)) { -#ifdef KERNEL - printf("xdr_opaque: decode FAILED\n"); -#endif - trace1(TR_xdr_opaque, 1); + switch (xdrs->x_op) { + case XDR_DECODE: + if (!XDR_GETBYTES(xdrs, cp, cnt)) return (FALSE); - } - if (rndup == 0) { - trace1(TR_xdr_opaque, 1); + if (rndup == 0) return (TRUE); - } - dummy = XDR_GETBYTES(xdrs, crud, rndup); - trace1(TR_xdr_opaque, 1); - return (dummy); - } - - if (xdrs->x_op == XDR_ENCODE) { - - if (!XDR_PUTBYTES(xdrs, cp, cnt)) { -#ifdef KERNEL - printf("xdr_opaque: encode FAILED\n"); -#endif - trace1(TR_xdr_opaque, 1); + return (XDR_GETBYTES(xdrs, crud, rndup)); + case XDR_ENCODE: + if (!XDR_PUTBYTES(xdrs, cp, cnt)) return (FALSE); - } - if (rndup == 0) { - trace1(TR_xdr_opaque, 1); + if (rndup == 0) return (TRUE); - } - dummy = XDR_PUTBYTES(xdrs, (caddr_t)&xdr_zero[0], rndup); - trace1(TR_xdr_opaque, 1); - return (dummy); - } - - if (xdrs->x_op == XDR_FREE) { - trace1(TR_xdr_opaque, 1); + return (XDR_PUTBYTES(xdrs, (caddr_t)&xdr_zero[0], rndup)); + case XDR_FREE: return (TRUE); } - -#ifdef KERNEL - printf("xdr_opaque: bad op FAILED\n"); -#endif - trace1(TR_xdr_opaque, 1); return (FALSE); } @@ -553,16 +418,13 @@ xdr_opaque(XDR *xdrs, caddr_t cp, uint_t cnt) * If *cpp is NULL maxsize bytes are allocated */ -#ifndef KERNEL static const char xdr_err[] = "xdr_%s: out of memory"; -#endif bool_t -xdr_bytes(XDR *xdrs, char **cpp, uint_t *sizep, uint_t maxsize) +xdr_bytes(XDR *xdrs, char **cpp, uint_t *sizep, const uint_t maxsize) { - bool_t dummy; - register char *sp = *cpp; /* sp is the actual string pointer */ - register uint_t nodesize; + char *sp = *cpp; /* sp is the actual string pointer */ + uint_t nodesize; /* * first deal with the length since xdr bytes are counted @@ -570,62 +432,35 @@ xdr_bytes(XDR *xdrs, char **cpp, uint_t *sizep, uint_t maxsize) * advantages here will be miniscule compared to xdr_bytes. * This saved us 100 bytes in the library size. */ - trace2(TR_xdr_bytes, 0, maxsize); - if (! xdr_u_int(xdrs, sizep)) { -#ifdef KERNEL - printf("xdr_bytes: size FAILED\n"); -#endif - trace1(TR_xdr_bytes, 1); + if (!xdr_u_int(xdrs, sizep)) return (FALSE); - } nodesize = *sizep; - if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE)) { -#ifdef KERNEL - printf("xdr_bytes: bad size FAILED\n"); -#endif - trace1(TR_xdr_bytes, 1); + if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE)) return (FALSE); - } /* * now deal with the actual bytes */ switch (xdrs->x_op) { - case XDR_DECODE: - if (nodesize == 0) { - trace1(TR_xdr_bytes, 1); + if (nodesize == 0) return (TRUE); - } - if (sp == NULL) { - *cpp = sp = (char *)mem_alloc(nodesize); - } -#ifndef KERNEL + if (sp == NULL) + *cpp = sp = malloc(nodesize); if (sp == NULL) { (void) syslog(LOG_ERR, xdr_err, (const char *)"bytes"); - trace1(TR_xdr_bytes, 1); return (FALSE); } -#endif /*FALLTHROUGH*/ - case XDR_ENCODE: - dummy = xdr_opaque(xdrs, sp, nodesize); - trace1(TR_xdr_bytes, 1); - return (dummy); - + return (xdr_opaque(xdrs, sp, nodesize)); case XDR_FREE: if (sp != NULL) { - mem_free(sp, nodesize); + free(sp); *cpp = NULL; } - trace1(TR_xdr_bytes, 1); return (TRUE); } -#ifdef KERNEL - printf("xdr_bytes: bad op FAILED\n"); -#endif - trace1(TR_xdr_bytes, 1); return (FALSE); } @@ -635,12 +470,7 @@ xdr_bytes(XDR *xdrs, char **cpp, uint_t *sizep, uint_t maxsize) bool_t xdr_netobj(XDR *xdrs, struct netobj *np) { - bool_t dummy; - - trace1(TR_xdr_netobj, 0); - dummy = xdr_bytes(xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ); - trace1(TR_xdr_netobj, 1); - return (dummy); + return (xdr_bytes(xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ)); } /* @@ -656,22 +486,15 @@ xdr_netobj(XDR *xdrs, struct netobj *np) */ bool_t xdr_union(XDR *xdrs, enum_t *dscmp, char *unp, - const struct xdr_discrim *choices, xdrproc_t dfault) + const struct xdr_discrim *choices, const xdrproc_t dfault) { - register enum_t dscm; - bool_t dummy; + enum_t dscm; /* * we deal with the discriminator; it's an enum */ - trace1(TR_xdr_union, 0); - if (! xdr_enum(xdrs, dscmp)) { -#ifdef KERNEL - printf("xdr_enum: dscmp FAILED\n"); -#endif - trace1(TR_xdr_union, 1); + if (!xdr_enum(xdrs, dscmp)) return (FALSE); - } dscm = *dscmp; /* @@ -679,20 +502,15 @@ xdr_union(XDR *xdrs, enum_t *dscmp, char *unp, * if we find one, execute the xdr routine for that value. */ for (; choices->proc != NULL_xdrproc_t; choices++) { - if (choices->value == dscm) { - dummy = (*(choices->proc))(xdrs, unp, LASTUNSIGNED); - trace1(TR_xdr_union, 1); - return (dummy); - } + if (choices->value == dscm) + return ((*(choices->proc))(xdrs, unp, LASTUNSIGNED)); } /* * no match - execute the default xdr routine if there is one */ - dummy = (dfault == NULL_xdrproc_t) ? FALSE : - (*dfault)(xdrs, unp, LASTUNSIGNED); - trace1(TR_xdr_union, 1); - return (dummy); + return ((dfault == NULL_xdrproc_t) ? FALSE : + (*dfault)(xdrs, unp, LASTUNSIGNED)); } @@ -711,23 +529,19 @@ xdr_union(XDR *xdrs, enum_t *dscmp, char *unp, * of the string as specified by a protocol. */ bool_t -xdr_string(XDR *xdrs, char **cpp, uint_t maxsize) +xdr_string(XDR *xdrs, char **cpp, const uint_t maxsize) { - bool_t dummy; - register char *newsp, *sp = *cpp; /* sp is the actual string pointer */ + char *newsp, *sp = *cpp; /* sp is the actual string pointer */ uint_t size, block; uint64_t bytesread; /* * first deal with the length since xdr strings are counted-strings */ - trace2(TR_xdr_string, 0, maxsize); switch (xdrs->x_op) { case XDR_FREE: - if (sp == NULL) { - trace1(TR_xdr_string, 1); + if (sp == NULL) return (TRUE); /* already free */ - } /*FALLTHROUGH*/ case XDR_ENCODE: size = (sp != NULL) ? (uint_t)strlen(sp) : 0; @@ -738,27 +552,22 @@ xdr_string(XDR *xdrs, char **cpp, uint_t maxsize) * advantages here will be miniscule compared to xdr_string. * This saved us 100 bytes in the library size. */ - if (! xdr_u_int(xdrs, &size)) { - trace1(TR_xdr_string, 1); + if (!xdr_u_int(xdrs, &size)) return (FALSE); - } - if (size > maxsize) { - trace1(TR_xdr_string, 1); + if (size > maxsize) return (FALSE); - } /* * now deal with the actual bytes */ switch (xdrs->x_op) { - case XDR_DECODE: /* if buffer is already given, call xdr_opaque() directly */ if (sp != NULL) { - dummy = xdr_opaque(xdrs, sp, size); + if (!xdr_opaque(xdrs, sp, size)) + return (FALSE); sp[size] = 0; - trace1(TR_xdr_string, 1); - return (dummy); + return (TRUE); } /* @@ -780,13 +589,11 @@ xdr_string(XDR *xdrs, char **cpp, uint_t maxsize) if (newsp == NULL) { if (sp != NULL) free(sp); - trace1(TR_xdr_string, 1); return (FALSE); } sp = newsp; if (!xdr_opaque(xdrs, &sp[bytesread], block)) { free(sp); - trace1(TR_xdr_string, 1); return (FALSE); } bytesread += block; @@ -794,124 +601,72 @@ xdr_string(XDR *xdrs, char **cpp, uint_t maxsize) sp[bytesread] = 0; /* terminate the string with a NULL */ *cpp = sp; - trace1(TR_xdr_string, 1); return (TRUE); case XDR_ENCODE: - dummy = xdr_opaque(xdrs, sp, size); - trace1(TR_xdr_string, 1); - return (dummy); + return (xdr_opaque(xdrs, sp, size)); case XDR_FREE: free(sp); *cpp = NULL; - trace1(TR_xdr_string, 1); return (TRUE); } -#ifdef KERNEL - printf("xdr_string: bad op FAILED\n"); -#endif - trace1(TR_xdr_string, 1); return (FALSE); } bool_t xdr_hyper(XDR *xdrs, longlong_t *hp) { - bool_t dummy; - - trace1(TR_xdr_hyper, 0); if (xdrs->x_op == XDR_ENCODE) { #if defined(_LONG_LONG_HTOL) - if (XDR_PUTINT32(xdrs, (int *)hp) == TRUE) { - dummy = XDR_PUTINT32(xdrs, (int *)((char *)hp + - BYTES_PER_XDR_UNIT)); - trace1(TR_xdr_hyper, 1); - return (dummy); - } - + if (XDR_PUTINT32(xdrs, (int *)hp) == TRUE) + /* LINTED pointer cast */ + return (XDR_PUTINT32(xdrs, (int *)((char *)hp + + BYTES_PER_XDR_UNIT))); #else + /* LINTED pointer cast */ if (XDR_PUTINT32(xdrs, (int *)((char *)hp + - BYTES_PER_XDR_UNIT)) == TRUE) { - dummy = XDR_PUTINT32(xdrs, (int32_t *)hp); - trace1(TR_xdr_hyper, 1); - return (dummy); - } - + BYTES_PER_XDR_UNIT)) == TRUE) + return (XDR_PUTINT32(xdrs, (int32_t *)hp)); #endif - trace1(TR_xdr_hyper, 1); return (FALSE); + } - } else if (xdrs->x_op == XDR_DECODE) { + if (xdrs->x_op == XDR_DECODE) { #if defined(_LONG_LONG_HTOL) if (XDR_GETINT32(xdrs, (int *)hp) == FALSE || + /* LINTED pointer cast */ (XDR_GETINT32(xdrs, (int *)((char *)hp + - BYTES_PER_XDR_UNIT)) == FALSE)) { - trace1(TR_xdr_hyper, 1); + BYTES_PER_XDR_UNIT)) == FALSE)) return (FALSE); - } #else + /* LINTED pointer cast */ if ((XDR_GETINT32(xdrs, (int *)((char *)hp + BYTES_PER_XDR_UNIT)) == FALSE) || - (XDR_GETINT32(xdrs, (int *)hp) == FALSE)) { - trace1(TR_xdr_hyper, 1); + (XDR_GETINT32(xdrs, (int *)hp) == FALSE)) return (FALSE); - } #endif - trace1(TR_xdr_hyper, 1); return (TRUE); } - trace1(TR_xdr_hyper, 1); return (TRUE); } bool_t xdr_u_hyper(XDR *xdrs, u_longlong_t *hp) { - bool_t dummy; - - trace1(TR_xdr_u_hyper, 0); - dummy = xdr_hyper(xdrs, (longlong_t *)hp); - trace1(TR_xdr_u_hyper, 1); - return (dummy); + return (xdr_hyper(xdrs, (longlong_t *)hp)); } bool_t xdr_longlong_t(XDR *xdrs, longlong_t *hp) { - bool_t dummy; - - trace1(TR_xdr_longlong_t, 0); - dummy = xdr_hyper(xdrs, hp); - trace1(TR_xdr_longlong_t, 1); - return (dummy); + return (xdr_hyper(xdrs, hp)); } bool_t xdr_u_longlong_t(XDR *xdrs, u_longlong_t *hp) { - bool_t dummy; - - trace1(TR_xdr_u_longlong_t, 0); - dummy = xdr_hyper(xdrs, (longlong_t *)hp); - trace1(TR_xdr_u_longlong_t, 1); - return (dummy); -} -/* - * The following routine is part of a workaround for bug - * #1128007. When it is fixed, this routine should be - * removed. - */ -bool_t -xdr_ulonglong_t(XDR *xdrs, u_longlong_t *hp) -{ - bool_t dummy; - - trace1(TR_xdr_u_longlong_t, 0); - dummy = xdr_hyper(xdrs, (longlong_t *)hp); - trace1(TR_xdr_u_longlong_t, 1); - return (dummy); + return (xdr_hyper(xdrs, (longlong_t *)hp)); } -#ifndef KERNEL /* * Wrapper for xdr_string that can be called directly from * routines like clnt_call @@ -919,12 +674,5 @@ xdr_ulonglong_t(XDR *xdrs, u_longlong_t *hp) bool_t xdr_wrapstring(XDR *xdrs, char **cpp) { - trace1(TR_xdr_wrapstring, 0); - if (xdr_string(xdrs, cpp, LASTUNSIGNED)) { - trace1(TR_xdr_wrapstring, 1); - return (TRUE); - } - trace1(TR_xdr_wrapstring, 1); - return (FALSE); + return (xdr_string(xdrs, cpp, LASTUNSIGNED)); } -#endif /* !KERNEL */ diff --git a/usr/src/lib/libnsl/rpc/xdr_array.c b/usr/src/lib/libnsl/rpc/xdr_array.c index 1a180d660c..735634296c 100644 --- a/usr/src/lib/libnsl/rpc/xdr_array.c +++ b/usr/src/lib/libnsl/rpc/xdr_array.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2002 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -40,7 +42,6 @@ */ #include <sys/types.h> -#include <rpc/trace.h> #include <syslog.h> #include <stdio.h> #include <stdlib.h> @@ -52,6 +53,7 @@ #define LASTUNSIGNED ((uint_t)0-1) char mem_err_msg_arr[] = "xdr_array: out of memory"; + /* * XDR an array of arbitrary elements * *addrp is a pointer to the array, *sizep is the number of elements. @@ -60,27 +62,22 @@ char mem_err_msg_arr[] = "xdr_array: out of memory"; * xdr procedure to call to handle each element of the array. */ bool_t -xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, uint_t maxsize, - uint_t elsize, xdrproc_t elproc) +xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, const uint_t maxsize, + const uint_t elsize, const xdrproc_t elproc) { - register uint_t i; - register caddr_t target = *addrp; - register uint_t c; /* the actual element count */ - register bool_t stat = TRUE; - register uint_t nodesize; + uint_t i; + caddr_t target = *addrp; + uint_t c; /* the actual element count */ + bool_t stat = TRUE; + uint_t nodesize; - trace3(TR_xdr_array, 0, maxsize, elsize); /* like strings, arrays are really counted arrays */ - if (! xdr_u_int(xdrs, sizep)) { - trace1(TR_xdr_array, 1); + if (!xdr_u_int(xdrs, sizep)) return (FALSE); - } c = *sizep; if ((c > maxsize || LASTUNSIGNED / elsize < c) && - xdrs->x_op != XDR_FREE) { - trace1(TR_xdr_array, 1); + xdrs->x_op != XDR_FREE) return (FALSE); - } nodesize = c * elsize; /* @@ -90,21 +87,17 @@ xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, uint_t maxsize, if (target == NULL) switch (xdrs->x_op) { case XDR_DECODE: - if (c == 0) { - trace1(TR_xdr_array, 1); + if (c == 0) return (TRUE); - } - *addrp = target = (caddr_t)mem_alloc(nodesize); + *addrp = target = malloc(nodesize); if (target == NULL) { (void) syslog(LOG_ERR, mem_err_msg_arr); - trace1(TR_xdr_array, 1); return (FALSE); } (void) memset(target, 0, nodesize); break; case XDR_FREE: - trace1(TR_xdr_array, 1); return (TRUE); } @@ -120,10 +113,9 @@ xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, uint_t maxsize, * the array may need freeing */ if (xdrs->x_op == XDR_FREE) { - mem_free(*addrp, nodesize); + free(*addrp); *addrp = NULL; } - trace1(TR_xdr_array, 1); return (stat); } @@ -138,21 +130,17 @@ xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, uint_t maxsize, * > xdr_elem: routine to XDR each element */ bool_t -xdr_vector(XDR *xdrs, char *basep, uint_t nelem, - uint_t elemsize, xdrproc_t xdr_elem) +xdr_vector(XDR *xdrs, char *basep, const uint_t nelem, + const uint_t elemsize, const xdrproc_t xdr_elem) { - register uint_t i; - register char *elptr; + uint_t i; + char *elptr; - trace3(TR_xdr_vector, 0, nelem, elemsize); elptr = basep; for (i = 0; i < nelem; i++) { - if (! (*xdr_elem)(xdrs, elptr, LASTUNSIGNED)) { - trace1(TR_xdr_vector, 1); + if (!(*xdr_elem)(xdrs, elptr, LASTUNSIGNED)) return (FALSE); - } elptr += elemsize; } - trace1(TR_xdr_vector, 1); return (TRUE); } diff --git a/usr/src/lib/libnsl/rpc/xdr_float.c b/usr/src/lib/libnsl/rpc/xdr_float.c index 64cbe91e2d..fed3bc64ce 100644 --- a/usr/src/lib/libnsl/rpc/xdr_float.c +++ b/usr/src/lib/libnsl/rpc/xdr_float.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1998 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -41,13 +43,7 @@ */ #include <sys/types.h> -#include <rpc/trace.h> -#ifdef _KERNEL -#include <sys/param.h> -#else #include <stdio.h> -#endif - #include <rpc/types.h> #include <rpc/xdr.h> @@ -112,7 +108,6 @@ static struct sgl_limits { bool_t xdr_float(XDR *xdrs, float *fp) { - bool_t dummy; #if defined(vax) struct ieee_single is; struct vax_single vs, *vsp; @@ -120,15 +115,12 @@ xdr_float(XDR *xdrs, float *fp) size_t i; #endif - trace1(TR_xdr_float, 0); switch (xdrs->x_op) { case XDR_ENCODE: #if defined(mc68000) || defined(sparc) || defined(u3b2) || \ defined(u3b15) || defined(i386) - dummy = XDR_PUTINT32(xdrs, (int *)fp); - trace1(TR_xdr_float, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, (int *)fp)); #else #if defined(vax) vs = *((struct vax_single *)fp); @@ -156,9 +148,7 @@ xdr_float(XDR *xdrs, float *fp) is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2; shipit: is.sign = vs.sign; - dummy = XDR_PUTINT32(xdrs, (int32_t *)&is); - trace1(TR_xdr_float, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, (int32_t *)&is)); #else { /* @@ -174,9 +164,7 @@ xdr_float(XDR *xdrs, float *fp) f = *fp; if (f == 0) { val = 0; - dummy = XDR_PUTINT32(xdrs, &val); - trace1(TR_xdr_float, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, &val)); } if (f < 0) { f = 0 - f; @@ -192,7 +180,6 @@ xdr_float(XDR *xdrs, float *fp) } if ((exp > 128) || (exp < -127)) { /* over or under flowing ieee exponent */ - trace1(TR_xdr_float, 1); return (FALSE); } val = neg; @@ -200,9 +187,7 @@ xdr_float(XDR *xdrs, float *fp) val += 127 + exp; /* 127 is the bias */ val = val << 23; /* for the mantissa */ val += (int32_t)((f - 1) * 8388608); /* 2 ^ 23 */ - dummy = XDR_PUTINT32(xdrs, &val); - trace1(TR_xdr_float, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, &val)); } #endif #endif @@ -210,16 +195,12 @@ xdr_float(XDR *xdrs, float *fp) case XDR_DECODE: #if defined(mc68000) || defined(sparc) || defined(u3b2) || \ defined(u3b15) || defined(i386) - dummy = XDR_GETINT32(xdrs, (int *)fp); - trace1(TR_xdr_float, 1); - return (dummy); + return (XDR_GETINT32(xdrs, (int *)fp)); #else #if defined(vax) vsp = (struct vax_single *)fp; - if (!XDR_GETINT32(xdrs, (int32_t *)&is)) { - trace1(TR_xdr_float, 1); + if (!XDR_GETINT32(xdrs, (int32_t *)&is)) return (FALSE); - } for (i = 0, lim = sgl_limits; i < (int)(sizeof (sgl_limits) / @@ -251,7 +232,6 @@ xdr_float(XDR *xdrs, float *fp) vsp->mantissa1 = (is.mantissa >> 16); doneit: vsp->sign = is.sign; - trace1(TR_xdr_float, 1); return (TRUE); #else { @@ -270,10 +250,8 @@ xdr_float(XDR *xdrs, float *fp) int exp = 0; int32_t val; - if (!XDR_GETINT32(xdrs, (int32_t *)&val)) { - trace1(TR_xdr_float, 1); + if (!XDR_GETINT32(xdrs, (int32_t *)&val)) return (FALSE); - } neg = val & 0x80000000; exp = (val & 0x7f800000) >> 23; exp -= 127; /* subtract exponent base */ @@ -293,14 +271,13 @@ xdr_float(XDR *xdrs, float *fp) f = 0 - f; *fp = f; } + return (TRUE); #endif #endif case XDR_FREE: - trace1(TR_xdr_float, 1); return (TRUE); } - trace1(TR_xdr_float, 1); return (FALSE); } @@ -347,32 +324,26 @@ static struct dbl_limits { bool_t xdr_double(XDR *xdrs, double *dp) { - bool_t dummy; - register int *lp; + int *lp; #if defined(vax) struct ieee_double id; struct vax_double vd; - register struct dbl_limits *lim; + struct dbl_limits *lim; size_t i; #endif - trace1(TR_xdr_double, 0); switch (xdrs->x_op) { case XDR_ENCODE: #if defined(mc68000) || defined(u3b2) || defined(u3b15) || \ defined(_LONG_LONG_HTOL) lp = (int *)dp; - dummy = XDR_PUTINT32(xdrs, lp++) && XDR_PUTINT32(xdrs, lp); - trace1(TR_xdr_double, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, lp++) && XDR_PUTINT32(xdrs, lp)); #else #if defined(_LONG_LONG_LTOH) lp = (int *)dp; lp++; - dummy = XDR_PUTINT32(xdrs, lp--) && XDR_PUTINT32(xdrs, lp); - trace1(TR_xdr_double, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, lp--) && XDR_PUTINT32(xdrs, lp)); #else #if defined(vax) vd = *((struct vax_double *)dp); @@ -414,10 +385,8 @@ xdr_double(XDR *xdrs, double *dp) val[0] = 0; val[1] = 0; lp = val; - dummy = XDR_PUTINT32(xdrs, lp++) && - XDR_PUTINT32(xdrs, lp); - trace1(TR_xdr_double, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, lp++) && + XDR_PUTINT32(xdrs, lp)); } if (d < 0) { d = 0 - d; @@ -433,7 +402,6 @@ xdr_double(XDR *xdrs, double *dp) } if ((exp > 1024) || (exp < -1023)) { /* over or under flowing ieee exponent */ - trace1(TR_xdr_double, 1); return (FALSE); } val[0] = neg; @@ -447,9 +415,7 @@ xdr_double(XDR *xdrs, double *dp) lp = val; } #endif - dummy = XDR_PUTINT32(xdrs, lp++) && XDR_PUTINT32(xdrs, lp); - trace1(TR_xdr_double, 1); - return (dummy); + return (XDR_PUTINT32(xdrs, lp++) && XDR_PUTINT32(xdrs, lp)); #endif #endif @@ -457,23 +423,17 @@ xdr_double(XDR *xdrs, double *dp) #if defined(mc68000) || defined(u3b2) || defined(u3b15) || \ defined(_LONG_LONG_HTOL) lp = (int *)dp; - dummy = XDR_GETINT32(xdrs, lp++) && XDR_GETINT32(xdrs, lp); - trace1(TR_xdr_double, 1); - return (dummy); + return (XDR_GETINT32(xdrs, lp++) && XDR_GETINT32(xdrs, lp)); #else #if defined(_LONG_LONG_LTOH) lp = (int *)dp; lp++; - dummy = XDR_GETINT32(xdrs, lp--) && XDR_GETINT32(xdrs, lp); - trace1(TR_xdr_double, 1); - return (dummy); + return (XDR_GETINT32(xdrs, lp--) && XDR_GETINT32(xdrs, lp)); #else #if defined(vax) lp = (int32_t *)&id; - if (!XDR_GETINT32(xdrs, lp++) || !XDR_GETINT32(xdrs, lp)) { - trace1(TR_xdr_double, 1); + if (!XDR_GETINT32(xdrs, lp++) || !XDR_GETINT32(xdrs, lp)) return (FALSE); - } for (i = 0, lim = dbl_limits; i < sizeof (dbl_limits)/sizeof (struct dbl_limits); i++, lim++) { @@ -493,7 +453,6 @@ xdr_double(XDR *xdrs, double *dp) doneit: vd.sign = id.sign; *dp = *((double *)&vd); - trace1(TR_xdr_double, 1); return (TRUE); #else { @@ -513,10 +472,8 @@ xdr_double(XDR *xdrs, double *dp) int32_t val[2]; lp = val; - if (!XDR_GETINT32(xdrs, lp++) || !XDR_GETINT32(xdrs, lp)) { - trace1(TR_xdr_double, 1); + if (!XDR_GETINT32(xdrs, lp++) || !XDR_GETINT32(xdrs, lp)) return (FALSE); - } neg = val[0] & 0x80000000; exp = (val[0] & 0x7ff00000) >> 20; exp -= 1023; /* subtract exponent base */ @@ -543,49 +500,30 @@ xdr_double(XDR *xdrs, double *dp) #endif case XDR_FREE: - trace1(TR_xdr_double, 1); return (TRUE); } - trace1(TR_xdr_double, 1); return (FALSE); } +/* ARGSUSED */ bool_t xdr_quadruple(XDR *xdrs, long double *fp) { - bool_t dummy; /* * The Sparc uses IEEE FP encoding, so just do a byte copy */ - trace1(TR_xdr_quadruple, 0); +#if !defined(sparc) + return (FALSE); +#else switch (xdrs->x_op) { case XDR_ENCODE: -#if defined(sparc) - dummy = XDR_PUTBYTES(xdrs, (char *)fp, sizeof (long double)); - trace1(TR_xdr_quadruple, 1); - return (dummy); -#else - trace1(TR_xdr_quadruple, 1); - return (FALSE); - -#endif + return (XDR_PUTBYTES(xdrs, (char *)fp, sizeof (long double))); case XDR_DECODE: -#if defined(sparc) - dummy = XDR_GETBYTES(xdrs, (char *)fp, sizeof (long double)); - trace1(TR_xdr_quadruple, 1); - return (dummy); -#else - trace1(TR_xdr_quadruple, 1); - return (FALSE); - -#endif + return (XDR_GETBYTES(xdrs, (char *)fp, sizeof (long double))); case XDR_FREE: - trace1(TR_xdr_quadruple, 1); return (TRUE); - } - trace1(TR_xdr_quadruple, 1); return (FALSE); - +#endif } diff --git a/usr/src/lib/libnsl/rpc/xdr_mem.c b/usr/src/lib/libnsl/rpc/xdr_mem.c index 0ae19a27d3..2d104de7c8 100644 --- a/usr/src/lib/libnsl/rpc/xdr_mem.c +++ b/usr/src/lib/libnsl/rpc/xdr_mem.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -38,17 +40,11 @@ * If you have some data to be interpreted as external data representation * or to be converted to external data representation in a memory buffer, * then this is the package for you. - * */ -#ifdef KERNEL -#include <sys/param.h> -#endif - #include "mt.h" #include "rpc_mt.h" #include <sys/types.h> -#include <rpc/trace.h> #include <rpc/types.h> #include <rpc/xdr.h> #include <memory.h> @@ -68,11 +64,11 @@ static struct xdr_ops *xdrmem_ops(void); * memory buffer. */ void -xdrmem_create(XDR *xdrs, caddr_t addr, uint_t size, enum xdr_op op) +xdrmem_create(XDR *xdrs, const caddr_t addr, const uint_t size, + const enum xdr_op op) { caddr_t eaddr = addr; - trace2(TR_xdrmem_create, 0, size); xdrs->x_op = op; xdrs->x_ops = xdrmem_ops(); xdrs->x_private = xdrs->x_base = 0; @@ -89,153 +85,125 @@ xdrmem_create(XDR *xdrs, caddr_t addr, uint_t size, enum xdr_op op) xdrs->x_handy = size; xdrs->x_private = xdrs->x_base = addr; } - trace2(TR_xdrmem_create, 1, size); } +/* ARGSUSED */ static void xdrmem_destroy(XDR *xdrs) { - trace1(TR_xdrmem_destroy, 0); - trace1(TR_xdrmem_destroy, 1); } static bool_t xdrmem_getlong(XDR *xdrs, long *lp) { - trace1(TR_xdrmem_getlong, 0); if (sizeof (int32_t) > (uint32_t)xdrs->x_handy) { xdrs->x_private += (uint_t)xdrs->x_handy; xdrs->x_handy = 0; - trace1(TR_xdrmem_getlong, 1); return (FALSE); } xdrs->x_handy -= sizeof (int32_t); + /* LINTED pointer cast */ *lp = (int32_t)ntohl((uint32_t)(*((int32_t *)(xdrs->x_private)))); xdrs->x_private += sizeof (int32_t); - trace1(TR_xdrmem_getlong, 1); return (TRUE); } static bool_t xdrmem_putlong(XDR *xdrs, long *lp) { - trace1(TR_xdrmem_putlong, 0); #if defined(_LP64) - if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) { + if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) return (FALSE); - } #endif if ((sizeof (int32_t) > (uint32_t)xdrs->x_handy)) { xdrs->x_private += (uint_t)xdrs->x_handy; xdrs->x_handy = 0; - trace1(TR_xdrmem_putlong, 1); return (FALSE); } xdrs->x_handy -= sizeof (int32_t); + /* LINTED pointer cast */ *(int32_t *)xdrs->x_private = (int32_t)htonl((uint32_t)(*lp)); xdrs->x_private += sizeof (int32_t); - trace1(TR_xdrmem_putlong, 1); return (TRUE); } #if defined(_LP64) - static bool_t xdrmem_getint32(XDR *xdrs, int32_t *ip) { - trace1(TR_xdrmem_getint32, 0); if (sizeof (int32_t) > (uint_t)xdrs->x_handy) { xdrs->x_private += (uint_t)xdrs->x_handy; xdrs->x_handy = 0; - trace1(TR_xdrmem_putlong, 1); return (FALSE); } xdrs->x_handy -= sizeof (int32_t); + /* LINTED pointer cast */ *ip = (int32_t)ntohl((uint32_t)(*((int32_t *)(xdrs->x_private)))); xdrs->x_private += sizeof (int32_t); - trace1(TR_xdrmem_getint32, 1); return (TRUE); } static bool_t xdrmem_putint32(XDR *xdrs, int32_t *ip) { - trace1(TR_xdrmem_putint32, 0); if (sizeof (int32_t) > (uint32_t)xdrs->x_handy) { xdrs->x_private += (uint_t)xdrs->x_handy; xdrs->x_handy = 0; - trace1(TR_xdrmem_putlong, 1); return (FALSE); } xdrs->x_handy -= sizeof (int32_t); + /* LINTED pointer cast */ *(int32_t *)xdrs->x_private = (int32_t)htonl((uint32_t)(*ip)); xdrs->x_private += sizeof (int32_t); - trace1(TR_xdrmem_putint32, 1); return (TRUE); } - #endif /* _LP64 */ static bool_t xdrmem_getbytes(XDR *xdrs, caddr_t addr, int len) { - trace2(TR_xdrmem_getbytes, 0, len); if ((uint32_t)len > (uint32_t)xdrs->x_handy) { xdrs->x_private += (uint_t)xdrs->x_handy; xdrs->x_handy = 0; - trace1(TR_xdrmem_getbytes, 1); return (FALSE); } xdrs->x_handy -= len; (void) memcpy(addr, xdrs->x_private, (uint_t)len); xdrs->x_private += (uint_t)len; - trace1(TR_xdrmem_getbytes, 1); return (TRUE); } static bool_t xdrmem_putbytes(XDR *xdrs, caddr_t addr, int len) { - trace2(TR_xdrmem_putbytes, 0, len); if ((uint32_t)len > (uint32_t)xdrs->x_handy) { xdrs->x_private += (uint_t)xdrs->x_handy; xdrs->x_handy = 0; - trace1(TR_xdrmem_putbytes, 1); return (FALSE); } xdrs->x_handy -= len; (void) memcpy(xdrs->x_private, addr, (uint_t)len); xdrs->x_private += (uint_t)len; - trace1(TR_xdrmem_putbytes, 1); return (TRUE); } static uint_t -xdrmem_getpos(xdrs) - XDR *xdrs; +xdrmem_getpos(XDR *xdrs) { - trace1(TR_xdrmem_getpos, 0); - trace1(TR_xdrmem_getpos, 1); return (uint_t)((uintptr_t)xdrs->x_private - (uintptr_t)xdrs->x_base); } static bool_t -xdrmem_setpos(xdrs, pos) - XDR *xdrs; - uint_t pos; +xdrmem_setpos(XDR *xdrs, uint_t pos) { caddr_t newaddr = xdrs->x_base + pos; caddr_t lastaddr = xdrs->x_private + (uint_t)xdrs->x_handy; - trace2(TR_xdrmem_setpos, 0, pos); - if ((long)newaddr > (long)lastaddr) { - trace1(TR_xdrmem_setpos, 1); + if ((long)newaddr > (long)lastaddr) return (FALSE); - } xdrs->x_private = newaddr; xdrs->x_handy = (int)((uintptr_t)lastaddr - (uintptr_t)newaddr); - trace1(TR_xdrmem_setpos, 1); return (TRUE); } @@ -244,13 +212,12 @@ xdrmem_inline(XDR *xdrs, int len) { rpc_inline_t *buf = 0; - trace2(TR_xdrmem_inline, 0, len); if ((uint32_t)xdrs->x_handy >= (uint32_t)len) { xdrs->x_handy -= len; + /* LINTED pointer cast */ buf = (rpc_inline_t *)xdrs->x_private; xdrs->x_private += (uint_t)len; } - trace2(TR_xdrmem_inline, 1, len); return (buf); } @@ -260,7 +227,6 @@ xdrmem_control(XDR *xdrs, int request, void *info) xdr_bytesrec *xptr; switch (request) { - case XDR_GET_BYTES_AVAIL: xptr = (xdr_bytesrec *) info; xptr->xc_is_last_record = TRUE; @@ -274,16 +240,13 @@ xdrmem_control(XDR *xdrs, int request, void *info) } static struct xdr_ops * -xdrmem_ops() +xdrmem_ops(void) { static struct xdr_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - - - trace1(TR_xdrmem_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.x_getlong == NULL) { ops.x_getlong = xdrmem_getlong; ops.x_putlong = xdrmem_putlong; @@ -299,7 +262,6 @@ xdrmem_ops() ops.x_putint32 = xdrmem_putint32; #endif } - mutex_unlock(&ops_lock); - trace1(TR_xdrmem_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/xdr_rec.c b/usr/src/lib/libnsl/rpc/xdr_rec.c index 8b6d3dbeff..0bc59db847 100644 --- a/usr/src/lib/libnsl/rpc/xdr_rec.c +++ b/usr/src/lib/libnsl/rpc/xdr_rec.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -55,7 +56,6 @@ #include <rpc/types.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <syslog.h> #include <memory.h> #include <stdlib.h> @@ -63,16 +63,6 @@ #include <inttypes.h> #include <string.h> -static uint_t fix_buf_size(); -static struct xdr_ops *xdrrec_ops(); -static bool_t xdrrec_getbytes(); -static bool_t flush_out(); -static bool_t get_input_bytes(); -static bool_t set_input_fragment(); -static bool_t skip_input_bytes(); - -bool_t __xdrrec_getbytes_nonblock(); - /* * A record is composed of one or more record fragments. * A record fragment is a four-byte header followed by zero to @@ -134,6 +124,16 @@ typedef struct rec_strm { uint32_t in_nextrecsz; /* part of next record in buffer */ } RECSTREAM; +static uint_t fix_buf_size(uint_t); +static struct xdr_ops *xdrrec_ops(void); +static bool_t xdrrec_getbytes(XDR *, caddr_t, int); +static bool_t flush_out(RECSTREAM *, bool_t); +static bool_t get_input_bytes(RECSTREAM *, caddr_t, int, bool_t); +static bool_t set_input_fragment(RECSTREAM *); +static bool_t skip_input_bytes(RECSTREAM *, int32_t); + +bool_t __xdrrec_getbytes_nonblock(XDR *, enum xprt_stat *); + /* * Create an xdr handle for xdrrec * xdrrec_create fills in xdrs. Sendsize and recvsize are @@ -147,45 +147,40 @@ typedef struct rec_strm { static const char mem_err_msg_rec[] = "xdrrec_create: out of memory"; void -xdrrec_create(XDR *xdrs, uint_t sendsize, uint_t recvsize, caddr_t tcp_handle, - int (*readit)(), int (*writeit)()) +xdrrec_create(XDR *xdrs, const uint_t sendsize, const uint_t recvsize, + const caddr_t tcp_handle, int (*readit)(), int (*writeit)()) { - RECSTREAM *rstrm = - (RECSTREAM *)mem_alloc(sizeof (RECSTREAM)); + RECSTREAM *rstrm = malloc(sizeof (RECSTREAM)); /* * XXX: Should still rework xdrrec_create to return a handle, * and in any malloc-failure case return NULL. */ - trace3(TR_xdrrec_create, 0, sendsize, recvsize); if (rstrm == NULL) { (void) syslog(LOG_ERR, mem_err_msg_rec); - trace1(TR_xdrrec_create, 1); return; } /* - * Adjust sizes and allocate buffers; malloc(3C), for which mem_alloc - * is a wrapper, provides a buffer suitably aligned for any use, so + * Adjust sizes and allocate buffers; malloc(3C) + * provides a buffer suitably aligned for any use, so * there's no need for us to mess around with alignment. * * Since non-blocking connections may need to reallocate the input - * buffer, we use separate mem_alloc()s for input and output. + * buffer, we use separate malloc()s for input and output. */ - rstrm->sendsize = sendsize = fix_buf_size(sendsize); - rstrm->recvsize = recvsize = fix_buf_size(recvsize); - rstrm->out_base = (caddr_t)mem_alloc(rstrm->sendsize); + rstrm->sendsize = fix_buf_size(sendsize); + rstrm->recvsize = fix_buf_size(recvsize); + rstrm->out_base = malloc(rstrm->sendsize); if (rstrm->out_base == NULL) { (void) syslog(LOG_ERR, mem_err_msg_rec); - (void) mem_free((char *)rstrm, sizeof (RECSTREAM)); - trace1(TR_xdrrec_create, 1); + free(rstrm); return; } - rstrm->in_base = (caddr_t)mem_alloc(rstrm->recvsize); + rstrm->in_base = malloc(rstrm->recvsize); if (rstrm->in_base == NULL) { (void) syslog(LOG_ERR, mem_err_msg_rec); - (void) mem_free(rstrm->out_base, rstrm->sendsize); - (void) mem_free(rstrm, sizeof (RECSTREAM)); - trace1(TR_xdrrec_create, 1); + free(rstrm->out_base); + free(rstrm); return; } @@ -199,12 +194,13 @@ xdrrec_create(XDR *xdrs, uint_t sendsize, uint_t recvsize, caddr_t tcp_handle, rstrm->readit = readit; rstrm->writeit = writeit; rstrm->out_finger = rstrm->out_boundry = rstrm->out_base; + /* LINTED pointer cast */ rstrm->frag_header = (uint32_t *)rstrm->out_base; rstrm->out_finger += sizeof (uint_t); - rstrm->out_boundry += sendsize; + rstrm->out_boundry += rstrm->sendsize; rstrm->frag_sent = FALSE; rstrm->in_boundry = rstrm->in_base; - rstrm->in_finger = (rstrm->in_boundry += recvsize); + rstrm->in_finger = (rstrm->in_boundry += rstrm->recvsize); rstrm->fbtbc = 0; rstrm->last_frag = TRUE; rstrm->firsttime = 0; @@ -213,8 +209,6 @@ xdrrec_create(XDR *xdrs, uint_t sendsize, uint_t recvsize, caddr_t tcp_handle, rstrm->in_maxrecsz = 0; rstrm->in_nextrec = rstrm->in_base; rstrm->in_nextrecsz = 0; - - trace1(TR_xdrrec_create, 1); } /* @@ -239,11 +233,12 @@ align_instream(RECSTREAM *rstrm) static bool_t xdrrec_getint32(XDR *xdrs, int32_t *ip) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + /* LINTED pointer cast */ int32_t *buflp = (int32_t *)(rstrm->in_finger); int32_t mylong; - trace1(TR_xdrrec_getint32, 0); /* first try the inline, fast case */ if ((rstrm->fbtbc >= (int)sizeof (int32_t)) && ((uint_t)(rstrm->in_boundry - (caddr_t)buflp) >= @@ -253,29 +248,28 @@ xdrrec_getint32(XDR *xdrs, int32_t *ip) */ if (((uintptr_t)buflp) & ((int)sizeof (int32_t) - 1)) { align_instream(rstrm); + /* LINTED pointer cast */ buflp = (int32_t *)(rstrm->in_finger); } *ip = (int32_t)ntohl((uint32_t)(*buflp)); rstrm->fbtbc -= (int)sizeof (int32_t); rstrm->in_finger += sizeof (int32_t); } else { - if (!xdrrec_getbytes(xdrs, &mylong, sizeof (int32_t))) { - trace1(TR_xdrrec_getint32_t, 1); + if (!xdrrec_getbytes(xdrs, (caddr_t)&mylong, sizeof (int32_t))) return (FALSE); - } *ip = (int32_t)ntohl((uint32_t)mylong); } - trace1(TR_xdrrec_getint32, 1); return (TRUE); } static bool_t xdrrec_putint32(XDR *xdrs, int32_t *ip) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + /* LINTED pointer cast */ int32_t *dest_lp = ((int32_t *)(rstrm->out_finger)); - trace1(TR_xdrrec_putint32, 0); if ((rstrm->out_finger += sizeof (int32_t)) > rstrm->out_boundry) { /* * this case should almost never happen so the code is @@ -283,15 +277,13 @@ xdrrec_putint32(XDR *xdrs, int32_t *ip) */ rstrm->out_finger -= sizeof (int32_t); rstrm->frag_sent = TRUE; - if (! flush_out(rstrm, FALSE)) { - trace1(TR_xdrrec_putint32_t, 1); + if (!flush_out(rstrm, FALSE)) return (FALSE); - } + /* LINTED pointer cast */ dest_lp = ((int32_t *)(rstrm->out_finger)); rstrm->out_finger += sizeof (int32_t); } *dest_lp = (int32_t)htonl((uint32_t)(*ip)); - trace1(TR_xdrrec_putint32, 1); return (TRUE); } @@ -302,9 +294,7 @@ xdrrec_getlong(XDR *xdrs, long *lp) if (!xdrrec_getint32(xdrs, &i)) return (FALSE); - *lp = (long)i; - return (TRUE); } @@ -314,9 +304,8 @@ xdrrec_putlong(XDR *xdrs, long *lp) int32_t i; #if defined(_LP64) - if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) { + if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) return (FALSE); - } #endif i = (int32_t)*lp; @@ -327,43 +316,36 @@ xdrrec_putlong(XDR *xdrs, long *lp) static bool_t /* must manage buffers, fragments, and records */ xdrrec_getbytes(XDR *xdrs, caddr_t addr, int len) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); int current; - trace2(TR_xdrrec_getbytes, 0, len); while (len > 0) { current = rstrm->fbtbc; if (current == 0) { - if (rstrm->last_frag) { - trace1(TR_xdrrec_getbytes, 1); + if (rstrm->last_frag) return (FALSE); - } - if (! set_input_fragment(rstrm)) { - trace1(TR_xdrrec_getbytes, 1); + if (!set_input_fragment(rstrm)) return (FALSE); - } continue; } current = (len < current) ? len : current; - if (! get_input_bytes(rstrm, addr, current, FALSE)) { - trace1(TR_xdrrec_getbytes, 1); + if (!get_input_bytes(rstrm, addr, current, FALSE)) return (FALSE); - } addr += current; rstrm->fbtbc -= current; len -= current; } - trace1(TR_xdrrec_getbytes, 1); return (TRUE); } static bool_t xdrrec_putbytes(XDR *xdrs, caddr_t addr, int len) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); int current; - trace2(TR_xdrrec_putbytes, 0, len); while (len > 0) { current = (uintptr_t)rstrm->out_boundry - @@ -375,13 +357,10 @@ xdrrec_putbytes(XDR *xdrs, caddr_t addr, int len) len -= current; if (rstrm->out_finger == rstrm->out_boundry) { rstrm->frag_sent = TRUE; - if (! flush_out(rstrm, FALSE)) { - trace1(TR_xdrrec_putbytes, 1); + if (!flush_out(rstrm, FALSE)) return (FALSE); - } } } - trace1(TR_xdrrec_putbytes, 1); return (TRUE); } /* @@ -394,6 +373,7 @@ xdrrec_putbytes(XDR *xdrs, caddr_t addr, int len) uint_t /* must manage buffers, fragments, and records */ xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); int current, len; @@ -403,12 +383,12 @@ xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l) if (current == 0) { if (rstrm->last_frag) return (l - len); - if (! set_input_fragment(rstrm)) + if (!set_input_fragment(rstrm)) return ((uint_t)-1); continue; } current = (len < current) ? len : current; - if (! get_input_bytes(rstrm, addr, current, FALSE)) + if (!get_input_bytes(rstrm, addr, current, FALSE)) return ((uint_t)-1); addr += current; rstrm->fbtbc -= current; @@ -420,10 +400,10 @@ xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l) static uint_t xdrrec_getpos(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; int32_t pos; - trace1(TR_xdrrec_getpos, 0); pos = lseek((intptr_t)rstrm->tcp_handle, 0, 1); if (pos != -1) switch (xdrs->x_op) { @@ -440,19 +420,18 @@ xdrrec_getpos(XDR *xdrs) pos = (uint_t)-1; break; } - trace1(TR_xdrrec_getpos, 1); return ((uint_t)pos); } static bool_t xdrrec_setpos(XDR *xdrs, uint_t pos) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; uint_t currpos = xdrrec_getpos(xdrs); int delta = currpos - pos; caddr_t newpos; - trace2(TR_xdrrec_setpos, 0, pos); if ((int)currpos != -1) switch (xdrs->x_op) { @@ -461,7 +440,6 @@ xdrrec_setpos(XDR *xdrs, uint_t pos) if ((newpos > (caddr_t)(rstrm->frag_header)) && (newpos < rstrm->out_boundry)) { rstrm->out_finger = newpos; - trace1(TR_xdrrec_setpos, 1); return (TRUE); } break; @@ -473,26 +451,25 @@ xdrrec_setpos(XDR *xdrs, uint_t pos) (newpos >= rstrm->in_base)) { rstrm->in_finger = newpos; rstrm->fbtbc -= delta; - trace1(TR_xdrrec_setpos, 1); return (TRUE); } break; } - trace1(TR_xdrrec_setpos, 1); return (FALSE); } static rpc_inline_t * xdrrec_inline(XDR *xdrs, int len) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; rpc_inline_t *buf = NULL; - trace2(TR_xdrrec_inline, 0, len); switch (xdrs->x_op) { case XDR_ENCODE: if ((rstrm->out_finger + len) <= rstrm->out_boundry) { + /* LINTED pointer cast */ buf = (rpc_inline_t *)rstrm->out_finger; rstrm->out_finger += len; } @@ -508,26 +485,25 @@ xdrrec_inline(XDR *xdrs, int len) if (((intptr_t)rstrm->in_finger) & (sizeof (int32_t) - 1)) align_instream(rstrm); + /* LINTED pointer cast */ buf = (rpc_inline_t *)rstrm->in_finger; rstrm->fbtbc -= len; rstrm->in_finger += len; } break; } - trace1(TR_xdrrec_inline, 1); return (buf); } static void xdrrec_destroy(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; - trace1(TR_xdrrec_destroy, 0); - mem_free(rstrm->out_base, rstrm->sendsize); - mem_free(rstrm->in_base, rstrm->recvsize); - mem_free((caddr_t)rstrm, sizeof (RECSTREAM)); - trace1(TR_xdrrec_destroy, 1); + free(rstrm->out_base); + free(rstrm->in_base); + free(rstrm); } @@ -542,9 +518,9 @@ xdrrec_destroy(XDR *xdrs) bool_t xdrrec_skiprecord(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - trace1(TR_xdrrec_skiprecord, 0); if (rstrm->in_nonblock) { enum xprt_stat pstat; /* @@ -557,26 +533,18 @@ xdrrec_skiprecord(XDR *xdrs) (pstat == XPRT_MOREREQS && rstrm->in_finger == rstrm->in_boundry)) { rstrm->fbtbc = 0; - trace1(TR_xdrrec_skiprecord, 1); return (TRUE); - } else { - trace1(TR_xdrrec_skiprecord, 1); - return (FALSE); } + return (FALSE); } - while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) { - if (! skip_input_bytes(rstrm, rstrm->fbtbc)) { - trace1(TR_xdrrec_skiprecord, 1); + while (rstrm->fbtbc > 0 || (!rstrm->last_frag)) { + if (!skip_input_bytes(rstrm, rstrm->fbtbc)) return (FALSE); - } rstrm->fbtbc = 0; - if ((! rstrm->last_frag) && (! set_input_fragment(rstrm))) { - trace1(TR_xdrrec_skiprecord, 1); + if ((!rstrm->last_frag) && (!set_input_fragment(rstrm))) return (FALSE); - } } rstrm->last_frag = FALSE; - trace1(TR_xdrrec_skiprecord, 1); return (TRUE); } @@ -588,9 +556,9 @@ xdrrec_skiprecord(XDR *xdrs) bool_t xdrrec_eof(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - trace1(TR_xdrrec_eof, 0); if (rstrm->in_nonblock) { /* * If in_needpoll is true, the non-blocking XDR stream @@ -598,22 +566,15 @@ xdrrec_eof(XDR *xdrs) */ return (rstrm->in_needpoll); } - while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) { - if (! skip_input_bytes(rstrm, rstrm->fbtbc)) { - trace1(TR_xdrrec_eof, 1); + while (rstrm->fbtbc > 0 || (!rstrm->last_frag)) { + if (!skip_input_bytes(rstrm, rstrm->fbtbc)) return (TRUE); - } rstrm->fbtbc = 0; - if ((! rstrm->last_frag) && (! set_input_fragment(rstrm))) { - trace1(TR_xdrrec_eof, 1); + if ((!rstrm->last_frag) && (!set_input_fragment(rstrm))) return (TRUE); - } } - if (rstrm->in_finger == rstrm->in_boundry) { - trace1(TR_xdrrec_eof, 1); + if (rstrm->in_finger == rstrm->in_boundry) return (TRUE); - } - trace1(TR_xdrrec_eof, 1); return (FALSE); } @@ -626,25 +587,22 @@ xdrrec_eof(XDR *xdrs) bool_t xdrrec_endofrecord(XDR *xdrs, bool_t sendnow) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); uint32_t len; /* fragment length */ - bool_t dummy; - trace1(TR_xdrrec_endofrecord, 0); if (sendnow || rstrm->frag_sent || ((uintptr_t)rstrm->out_finger + sizeof (uint32_t) >= (uintptr_t)rstrm->out_boundry)) { rstrm->frag_sent = FALSE; - dummy = flush_out(rstrm, TRUE); - trace1(TR_xdrrec_endofrecord, 1); - return (dummy); + return (flush_out(rstrm, TRUE)); } len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->frag_header) - sizeof (uint32_t); *(rstrm->frag_header) = htonl((uint32_t)len | LAST_FRAG); + /* LINTED pointer cast */ rstrm->frag_header = (uint32_t *)rstrm->out_finger; rstrm->out_finger += sizeof (uint32_t); - trace1(TR_xdrrec_endofrecord, 1); return (TRUE); } @@ -660,7 +618,6 @@ flush_out(RECSTREAM *rstrm, bool_t eor) (uintptr_t)(rstrm->frag_header) - sizeof (uint32_t); int written; - trace1(TR_flush_out, 0); *(rstrm->frag_header) = htonl(len | eormask); len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->out_base); @@ -670,14 +627,12 @@ flush_out(RECSTREAM *rstrm, bool_t eor) * Handle the specific 'CANT_STORE' error. In this case, the * fragment must be cleared. */ - if ((written != (int)len) && (written != -2)) { - trace1(TR_flush_out, 1); + if ((written != (int)len) && (written != -2)) return (FALSE); - } + /* LINTED pointer cast */ rstrm->frag_header = (uint32_t *)rstrm->out_base; rstrm->out_finger = (caddr_t)rstrm->out_base + sizeof (uint32_t); - trace1(TR_flush_out, 1); return (TRUE); } @@ -688,10 +643,8 @@ fill_input_buf(RECSTREAM *rstrm, bool_t do_align) caddr_t where; int len; - trace1(TR_fill_input_buf, 0); if (rstrm->in_nonblock) { /* Should never get here in the non-blocking case */ - trace1(TR_fill_input_buf, 1); return (FALSE); } where = rstrm->in_base; @@ -703,14 +656,11 @@ fill_input_buf(RECSTREAM *rstrm, bool_t do_align) where += i; len = rstrm->recvsize - i; } - if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1) { - trace1(TR_fill_input_buf, 1); + if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1) return (FALSE); - } rstrm->in_finger = where; where += len; rstrm->in_boundry = where; - trace1(TR_fill_input_buf, 1); return (TRUE); } @@ -721,22 +671,17 @@ get_input_bytes(RECSTREAM *rstrm, caddr_t addr, { int current; - trace2(TR_get_input_bytes, 0, len); - if (rstrm->in_nonblock) { /* * Data should already be in the rstrm buffer, so we just * need to copy it to 'addr'. */ current = (int)(rstrm->in_boundry - rstrm->in_finger); - if (len > current) { - trace1(TR_get_input_bytes, 1); + if (len > current) return (FALSE); - } (void) memcpy(addr, rstrm->in_finger, len); rstrm->in_finger += len; addr += len; - trace1(TR_get_input_bytes, 1); return (TRUE); } @@ -744,10 +689,8 @@ get_input_bytes(RECSTREAM *rstrm, caddr_t addr, current = (intptr_t)rstrm->in_boundry - (intptr_t)rstrm->in_finger; if (current == 0) { - if (! fill_input_buf(rstrm, do_align)) { - trace1(TR_get_input_bytes, 1); + if (!fill_input_buf(rstrm, do_align)) return (FALSE); - } continue; } current = (len < current) ? len : current; @@ -757,7 +700,6 @@ get_input_bytes(RECSTREAM *rstrm, caddr_t addr, len -= current; do_align = FALSE; } - trace1(TR_get_input_bytes, 1); return (TRUE); } @@ -767,25 +709,20 @@ set_input_fragment(RECSTREAM *rstrm) { uint32_t header; - trace1(TR_set_input_fragment, 0); if (rstrm->in_nonblock) { /* * In the non-blocking case, the fragment headers should * already have been consumed, so we should never get * here. Might as well return failure right away. */ - trace1(TR_set_input_fragment, 1); return (FALSE); } - if (! get_input_bytes(rstrm, (caddr_t)&header, (int)sizeof (header), - rstrm->last_frag)) { - trace1(TR_set_input_fragment, 1); + if (!get_input_bytes(rstrm, (caddr_t)&header, (int)sizeof (header), + rstrm->last_frag)) return (FALSE); - } header = (uint32_t)ntohl(header); rstrm->last_frag = ((header & LAST_FRAG) == 0) ? FALSE : TRUE; rstrm->fbtbc = header & (~LAST_FRAG); - trace1(TR_set_input_fragment, 1); return (TRUE); } @@ -795,22 +732,18 @@ skip_input_bytes(RECSTREAM *rstrm, int32_t cnt) { int current; - trace2(TR_skip_input_bytes, 0, cnt); while (cnt > 0) { current = (intptr_t)rstrm->in_boundry - (intptr_t)rstrm->in_finger; if (current == 0) { - if (! fill_input_buf(rstrm, FALSE)) { - trace1(TR_skip_input_bytes, 1); + if (!fill_input_buf(rstrm, FALSE)) return (FALSE); - } continue; } current = (cnt < current) ? cnt : current; rstrm->in_finger += current; cnt -= current; } - trace1(TR_skip_input_bytes, 1); return (TRUE); } @@ -846,8 +779,8 @@ __xdrrec_nonblock_realloc(RECSTREAM *rstrm, uint32_t newsize) bool_t __xdrrec_set_conn_nonblock(XDR *xdrs, uint32_t tcp_maxrecsz) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - caddr_t realloc_buffer; size_t newsize; rstrm->in_nonblock = TRUE; @@ -876,12 +809,11 @@ __xdrrec_set_conn_nonblock(XDR *xdrs, uint32_t tcp_maxrecsz) if ((newsize = tcp_maxrecsz) > RPC_MAXDATASIZE) { newsize = RPC_MAXDATASIZE; } - if (! __xdrrec_nonblock_realloc(rstrm, newsize)) { + if (!__xdrrec_nonblock_realloc(rstrm, newsize)) { (void) syslog(LOG_ERR, mem_err_msg_rec); - (void) mem_free(rstrm->out_base, rstrm->sendsize); - (void) mem_free(rstrm->in_base, rstrm->recvsize); - (void) mem_free((char *)rstrm, sizeof (RECSTREAM)); - trace1(TR_xdrrec_create, 1); + free(rstrm->out_base); + free(rstrm->in_base); + free(rstrm); return (FALSE); } @@ -896,12 +828,12 @@ __xdrrec_set_conn_nonblock(XDR *xdrs, uint32_t tcp_maxrecsz) bool_t __xdrrec_getbytes_nonblock(XDR *xdrs, enum xprt_stat *pstat) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); uint32_t prevbytes_thisrec, minreqrecsize; uint32_t *header; - uint32_t len_received = 0, unprocessed = 0; - - trace2(TR__xdrrec_getbytes_nonblock, 0, len); + int32_t len_received = 0; + uint32_t unprocessed = 0; /* * For connection oriented protocols, there's no guarantee that @@ -962,18 +894,16 @@ __xdrrec_getbytes_nonblock(XDR *xdrs, enum xprt_stat *pstat) * right away. */ *pstat = XPRT_DIED; - trace1(TR__xdrrec_getbytes_nonblock, 1); return (FALSE); - } else if (minreqrecsize > rstrm->in_maxrecsz) { + } + if (minreqrecsize > rstrm->in_maxrecsz) goto recsz_invalid; - } else { + else goto needpoll; - } } if ((len_received = (*(rstrm->readit))(rstrm->tcp_handle, rstrm->in_boundry, len_requested)) == -1) { *pstat = XPRT_DIED; - trace1(TR__xdrrec_getbytes_nonblock, 1); return (FALSE); } rstrm->in_boundry += len_received; @@ -1001,10 +931,11 @@ __xdrrec_getbytes_nonblock(XDR *xdrs, enum xprt_stat *pstat) len_recvd_thisfrag = (uint32_t)(rstrm->in_boundry - rstrm->in_finger); + /* LINTED pointer cast */ header = (uint32_t *)rstrm->in_finger; hdrlen = (len_recvd_thisfrag < sizeof (*header)) ? len_recvd_thisfrag : sizeof (*header); - memcpy(&minfraglen, header, hdrlen); + (void) memcpy(&minfraglen, header, hdrlen); last_frag = (ntohl(minfraglen) & LAST_FRAG) != 0; minfraglen = ntohl(minfraglen) & (~LAST_FRAG); /* @@ -1063,7 +994,6 @@ recsz_invalid: rstrm->fbtbc = 0; rstrm->last_frag = 1; *pstat = XPRT_DIED; - trace1(TR__xdrrec_getbytes_nonblock, 1); return (FALSE); } /* @@ -1137,7 +1067,6 @@ recsz_invalid: rstrm->in_finger = rstrm->in_base + sizeof (*header); if (rstrm->in_nextrecsz == 0) rstrm->in_nextrec = rstrm->in_base; - trace1(TR__xdrrec_getbytes_nonblock, 1); return (TRUE); } needpoll: @@ -1147,31 +1076,31 @@ needpoll: * input buffer, if necessary. */ if (minreqrecsize > rstrm->recvsize) { - if (! __xdrrec_nonblock_realloc(rstrm, minreqrecsize)) { + if (!__xdrrec_nonblock_realloc(rstrm, minreqrecsize)) { rstrm->fbtbc = 0; rstrm->last_frag = 1; *pstat = XPRT_DIED; - trace1(TR__xdrrec_getbytes_nonblock, 1); return (FALSE); } } rstrm->in_needpoll = TRUE; *pstat = XPRT_MOREREQS; - trace1(TR__xdrrec_getbytes_nonblock, 1); return (FALSE); } int __is_xdrrec_first(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - return ((rstrm->firsttime == TRUE)? 1 : 0); + return ((rstrm->firsttime == TRUE) ? 1 : 0); } int __xdrrec_setfirst(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); /* @@ -1189,6 +1118,7 @@ __xdrrec_setfirst(XDR *xdrs) int __xdrrec_resetfirst(XDR *xdrs) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); rstrm->firsttime = FALSE; @@ -1199,14 +1129,9 @@ __xdrrec_resetfirst(XDR *xdrs) static uint_t fix_buf_size(uint_t s) { - uint_t dummy1; - - trace2(TR_fix_buf_size, 0, s); if (s < 100) s = 4000; - dummy1 = RNDUP(s); - trace1(TR_fix_buf_size, 1); - return (dummy1); + return (RNDUP(s)); } @@ -1214,6 +1139,7 @@ fix_buf_size(uint_t s) static bool_t xdrrec_control(XDR *xdrs, int request, void *info) { + /* LINTED pointer cast */ RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); xdr_bytesrec *xptr; @@ -1239,15 +1165,14 @@ xdrrec_control(XDR *xdrs, int request, void *info) } static struct xdr_ops * -xdrrec_ops() +xdrrec_ops(void) { static struct xdr_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_xdrrec_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.x_getlong == NULL) { ops.x_getlong = xdrrec_getlong; ops.x_putlong = xdrrec_putlong; @@ -1263,7 +1188,6 @@ xdrrec_ops() ops.x_putint32 = xdrrec_putint32; #endif } - mutex_unlock(&ops_lock); - trace1(TR_xdrrec_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/xdr_refer.c b/usr/src/lib/libnsl/rpc/xdr_refer.c index 8f339282d3..88e37a780e 100644 --- a/usr/src/lib/libnsl/rpc/xdr_refer.c +++ b/usr/src/lib/libnsl/rpc/xdr_refer.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1991 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -39,19 +41,14 @@ * "pointers". See xdr.h for more info on the interface to xdr. */ #include <sys/types.h> -#include <rpc/trace.h> -#ifdef KERNEL -#include <sys/param.h> -#else #include <syslog.h> #include <stdio.h> #include <stdlib.h> -#endif #include <rpc/types.h> #include <rpc/xdr.h> #include <memory.h> -#define LASTUNSIGNED ((u_int)0-1) +#define LASTUNSIGNED ((uint_t)0-1) char mem_err_msg_ref[] = "xdr_reference: out of memory"; /* @@ -64,46 +61,35 @@ char mem_err_msg_ref[] = "xdr_reference: out of memory"; * proc is the routine to handle the referenced structure. */ bool_t -xdr_reference(XDR *xdrs, caddr_t *pp, u_int size, xdrproc_t proc) +xdr_reference(XDR *xdrs, caddr_t *pp, uint_t size, const xdrproc_t proc) { - register caddr_t loc = *pp; - register bool_t stat; + caddr_t loc = *pp; + bool_t stat; - trace2(TR_xdr_reference, 0, size); if (loc == NULL) switch (xdrs->x_op) { case XDR_FREE: - trace1(TR_xdr_reference, 1); return (TRUE); - case XDR_DECODE: - *pp = loc = (caddr_t) mem_alloc(size); -#ifndef KERNEL + *pp = loc = malloc(size); if (loc == NULL) { (void) syslog(LOG_ERR, mem_err_msg_ref); - - trace1(TR_xdr_reference, 1); return (FALSE); } (void) memset(loc, 0, (int)size); -#else - (void) memset(loc, 0, size); -#endif break; } stat = (*proc)(xdrs, loc, LASTUNSIGNED); if (xdrs->x_op == XDR_FREE) { - mem_free(loc, size); + free(loc); *pp = NULL; } - trace1(TR_xdr_reference, 1); return (stat); } -#ifndef KERNEL /* * xdr_pointer(): * @@ -124,24 +110,16 @@ xdr_reference(XDR *xdrs, caddr_t *pp, u_int size, xdrproc_t proc) * */ bool_t -xdr_pointer(XDR *xdrs, char **objpp, u_int obj_size, xdrproc_t xdr_obj) +xdr_pointer(XDR *xdrs, char **objpp, uint_t obj_size, const xdrproc_t xdr_obj) { bool_t more_data; - bool_t dummy; - trace2(TR_xdr_pointer, 0, obj_size); more_data = (*objpp != NULL); - if (! xdr_bool(xdrs, &more_data)) { - trace1(TR_xdr_pointer, 1); + if (!xdr_bool(xdrs, &more_data)) return (FALSE); - } - if (! more_data) { + if (!more_data) { *objpp = NULL; - trace1(TR_xdr_pointer, 1); return (TRUE); } - dummy = xdr_reference(xdrs, objpp, obj_size, xdr_obj); - trace1(TR_xdr_pointer, 1); - return (dummy); + return (xdr_reference(xdrs, objpp, obj_size, xdr_obj)); } -#endif /* ! KERNEL */ diff --git a/usr/src/lib/libnsl/rpc/xdr_sizeof.c b/usr/src/lib/libnsl/rpc/xdr_sizeof.c index f7cce62aab..99f60bab68 100644 --- a/usr/src/lib/libnsl/rpc/xdr_sizeof.c +++ b/usr/src/lib/libnsl/rpc/xdr_sizeof.c @@ -19,59 +19,52 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. - * - * General purpose routine to see how much space something will use - * when serialized using XDR. */ #pragma ident "%Z%%M% %I% %E% SMI" +/* + * General purpose routine to see how much space something will use + * when serialized using XDR. + */ #include <rpc/types.h> #include <rpc/xdr.h> #include <sys/types.h> -#include <rpc/trace.h> #include <stdlib.h> -/* ARGSUSED */ +/* ARGSUSED1 */ static bool_t x_putlong(XDR *xdrs, long *ip) { - trace1(TR_x_putlong, 0); - xdrs->x_handy += BYTES_PER_XDR_UNIT; - trace1(TR_x_putlong, 1); return (TRUE); } +#if defined(_LP64) +/* ARGSUSED1 */ static bool_t x_putint32_t(XDR *xdrs, int32_t *ip) { - trace1(TR_x_putint32_t, 0); - xdrs->x_handy += BYTES_PER_XDR_UNIT; - trace1(TR_x_putint32_t, 1); return (TRUE); } +#endif /* ARGSUSED */ static bool_t x_putbytes(XDR *xdrs, char *bp, int len) { - trace2(TR_x_putbytes, 0, len); xdrs->x_handy += len; - trace2(TR_x_putbytes, 1, len); - return (TRUE); } static uint_t x_getpostn(XDR *xdrs) { - trace1(TR_x_getpostn, 0); - trace1(TR_x_getpostn, 1); return (xdrs->x_handy); } @@ -80,67 +73,54 @@ static bool_t x_setpostn(XDR *xdrs, uint_t pos) { /* This is not allowed */ - trace2(TR_x_setpostn, 0, pos); - trace2(TR_x_setpostn, 1, pos); return (FALSE); } static rpc_inline_t * x_inline(XDR *xdrs, int len) { - trace2(TR_x_inline, 0, len); - if (len == 0) { - trace2(TR_x_inline, 1, len); + if (len == 0) return (NULL); - } - if (xdrs->x_op != XDR_ENCODE) { - trace2(TR_x_inline, 1, len); + if (xdrs->x_op != XDR_ENCODE) return (NULL); - } if (len < (intptr_t)xdrs->x_base) { /* x_private was already allocated */ xdrs->x_handy += len; - trace2(TR_x_inline, 1, len); - return ((rpc_inline_t *)xdrs->x_private); - } else { - /* Free the earlier space and allocate new area */ - if (xdrs->x_private) - free(xdrs->x_private); - if ((xdrs->x_private = (caddr_t)malloc(len)) == NULL) { - xdrs->x_base = 0; - trace2(TR_x_inline, 1, len); - return (NULL); - } - xdrs->x_base = (caddr_t)(intptr_t)len; - xdrs->x_handy += len; - trace2(TR_x_inline, 1, len); + /* LINTED pointer cast */ return ((rpc_inline_t *)xdrs->x_private); } + /* Free the earlier space and allocate new area */ + if (xdrs->x_private) + free(xdrs->x_private); + if ((xdrs->x_private = malloc(len)) == NULL) { + xdrs->x_base = 0; + return (NULL); + } + xdrs->x_base = (caddr_t)(intptr_t)len; + xdrs->x_handy += len; + /* LINTED pointer cast */ + return ((rpc_inline_t *)xdrs->x_private); } static int -harmless() +harmless(void) { /* Always return FALSE/NULL, as the case may be */ - trace1(TR_harmless, 0); - trace1(TR_harmless, 1); return (0); } static void x_destroy(XDR *xdrs) { - trace1(TR_x_destroy, 0); xdrs->x_handy = 0; xdrs->x_base = 0; if (xdrs->x_private) { free(xdrs->x_private); xdrs->x_private = NULL; } - trace1(TR_x_destroy, 1); } -unsigned int +uint_t xdr_sizeof(xdrproc_t func, void *data) { XDR x; @@ -151,7 +131,6 @@ xdr_sizeof(xdrproc_t func, void *data) typedef bool_t (* dummyfunc2)(XDR *, caddr_t, int); typedef bool_t (* dummyfunc3)(XDR *, int32_t *); - trace1(TR_xdr_sizeof, 0); ops.x_putlong = x_putlong; ops.x_getlong = (dummyfunc1) harmless; ops.x_putbytes = x_putbytes; @@ -170,12 +149,11 @@ xdr_sizeof(xdrproc_t func, void *data) x.x_op = XDR_ENCODE; x.x_ops = &ops; x.x_handy = 0; - x.x_private = (caddr_t)NULL; - x.x_base = (caddr_t)0; + x.x_private = NULL; + x.x_base = NULL; stat = func(&x, data); if (x.x_private) free(x.x_private); - trace1(TR_xdr_sizeof, 1); - return (stat == TRUE ? (unsigned int) x.x_handy: 0); + return (stat == TRUE ? (uint_t)x.x_handy : 0); } diff --git a/usr/src/lib/libnsl/rpc/xdr_stdio.c b/usr/src/lib/libnsl/rpc/xdr_stdio.c index ffcd583eef..329ccf9581 100644 --- a/usr/src/lib/libnsl/rpc/xdr_stdio.c +++ b/usr/src/lib/libnsl/rpc/xdr_stdio.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -46,7 +48,6 @@ #include <stdio.h> #include <rpc/xdr.h> #include <sys/types.h> -#include <rpc/trace.h> #include <inttypes.h> static struct xdr_ops *xdrstdio_ops(void); @@ -57,15 +58,13 @@ static struct xdr_ops *xdrstdio_ops(void); * Operation flag is set to op. */ void -xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op) +xdrstdio_create(XDR *xdrs, FILE *file, const enum xdr_op op) { - trace1(TR_xdrstdio_create, 0); xdrs->x_op = op; xdrs->x_ops = xdrstdio_ops(); xdrs->x_private = (caddr_t)file; xdrs->x_handy = 0; xdrs->x_base = 0; - trace1(TR_xdrstdio_create, 1); } /* @@ -75,24 +74,20 @@ xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op) static void xdrstdio_destroy(XDR *xdrs) { - trace1(TR_xdrstdio_destroy, 0); + /* LINTED pointer cast */ (void) fflush((FILE *)xdrs->x_private); /* xx should we close the file ?? */ - trace1(TR_xdrstdio_destroy, 1); } static bool_t xdrstdio_getint32(XDR *xdrs, int32_t *lp) { - trace1(TR_xdrstdio_getint32, 0); if (fread((caddr_t)lp, sizeof (int32_t), 1, - (FILE *)xdrs->x_private) != 1) { - trace1(TR_xdrstdio_getint32, 1); + /* LINTED pointer cast */ + (FILE *)xdrs->x_private) != 1) return (FALSE); - } *lp = ntohl(*lp); - trace1(TR_xdrstdio_getint32, 1); return (TRUE); } @@ -103,44 +98,33 @@ xdrstdio_putint32(XDR *xdrs, int32_t *lp) int32_t mycopy = htonl(*lp); lp = &mycopy; - trace1(TR_xdrstdio_putint32, 0); if (fwrite((caddr_t)lp, sizeof (int32_t), 1, - (FILE *)xdrs->x_private) != 1) { - trace1(TR_xdrstdio_putint32, 1); + /* LINTED pointer cast */ + (FILE *)xdrs->x_private) != 1) return (FALSE); - } - trace1(TR_xdrstdio_putint32, 1); return (TRUE); } static bool_t -xdrstdio_getlong(xdrs, lp) - XDR *xdrs; - long *lp; +xdrstdio_getlong(XDR *xdrs, long *lp) { int32_t i; if (!xdrstdio_getint32(xdrs, &i)) return (FALSE); - *lp = (long)i; - return (TRUE); } static bool_t -xdrstdio_putlong(xdrs, lp) - XDR *xdrs; - long *lp; +xdrstdio_putlong(XDR *xdrs, long *lp) { int32_t i; #if defined(_LP64) - if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) { + if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) return (FALSE); - } #endif - i = (int32_t)*lp; return (xdrstdio_putint32(xdrs, &i)); @@ -149,56 +133,42 @@ xdrstdio_putlong(xdrs, lp) static bool_t xdrstdio_getbytes(XDR *xdrs, caddr_t addr, int len) { - trace2(TR_xdrstdio_getbytes, 0, len); if ((len != 0) && - (fread(addr, (int)len, 1, (FILE *)xdrs->x_private) != 1)) { - trace1(TR_xdrstdio_getbytes, 1); + /* LINTED pointer cast */ + (fread(addr, (int)len, 1, (FILE *)xdrs->x_private) != 1)) return (FALSE); - } - trace1(TR_xdrstdio_getbytes, 1); return (TRUE); } static bool_t xdrstdio_putbytes(XDR *xdrs, caddr_t addr, int len) { - trace2(TR_xdrstdio_putbytes, 0, len); if ((len != 0) && - (fwrite(addr, (int)len, 1, (FILE *)xdrs->x_private) != 1)) { - trace1(TR_xdrstdio_putbytes, 1); + /* LINTED pointer cast */ + (fwrite(addr, (int)len, 1, (FILE *)xdrs->x_private) != 1)) return (FALSE); - } - trace1(TR_xdrstdio_putbytes, 1); return (TRUE); } static uint_t xdrstdio_getpos(XDR *xdrs) { - uint_t dummy1; - - trace1(TR_xdrstdio_getpos, 0); - dummy1 = (uint_t)ftell((FILE *)xdrs->x_private); - trace1(TR_xdrstdio_getpos, 1); - return (dummy1); + /* LINTED pointer cast */ + return ((uint_t)ftell((FILE *)xdrs->x_private)); } static bool_t xdrstdio_setpos(XDR *xdrs, uint_t pos) { - bool_t dummy2; - - trace2(TR_xdrstdio_setpos, 0, pos); - dummy2 = (fseek((FILE *)xdrs->x_private, - (int)pos, 0) < 0) ? FALSE : TRUE; - trace1(TR_xdrstdio_setpos, 1); - return (dummy2); + /* LINTED pointer cast */ + return ((fseek((FILE *)xdrs->x_private, + (int)pos, 0) < 0) ? FALSE : TRUE); } +/* ARGSUSED */ static rpc_inline_t * xdrstdio_inline(XDR *xdrs, int len) { - /* * Must do some work to implement this: must insure * enough data in the underlying stdio buffer, @@ -208,31 +178,25 @@ xdrstdio_inline(XDR *xdrs, int len) * most of the gains to be had here and require storage * management on this buffer, so we don't do this. */ - trace2(TR_xdrstdio_inline, 0, len); - trace2(TR_xdrstdio_inline, 1, len); return (NULL); } +/* ARGSUSED */ static bool_t xdrstdio_control(XDR *xdrs, int request, void *info) { - switch (request) { - - default: - return (FALSE); - } + return (FALSE); } static struct xdr_ops * -xdrstdio_ops() +xdrstdio_ops(void) { static struct xdr_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_xdrstdio_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.x_getlong == NULL) { ops.x_getlong = xdrstdio_getlong; ops.x_putlong = xdrstdio_putlong; @@ -248,7 +212,6 @@ xdrstdio_ops() ops.x_putint32 = xdrstdio_putint32; #endif } - mutex_unlock(&ops_lock); - trace1(TR_xdrstdio_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/rpc/xdr_stdio_prv.c b/usr/src/lib/libnsl/rpc/xdr_stdio_prv.c index 57772475ac..66b4d5819e 100644 --- a/usr/src/lib/libnsl/rpc/xdr_stdio_prv.c +++ b/usr/src/lib/libnsl/rpc/xdr_stdio_prv.c @@ -19,12 +19,14 @@ * * CDDL HEADER END */ + /* - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" + /* * xdr_stdio_prv.c, XDR implementation on special standard i/o file. * @@ -41,7 +43,6 @@ #include <stdio.h> #include <rpc/xdr.h> #include <sys/types.h> -#include <rpc/trace.h> #include <inttypes.h> #include "nsl_stdio_prv.h" @@ -55,13 +56,11 @@ static struct xdr_ops *__nsl_xdrstdio_ops(void); void __nsl_xdrstdio_create(XDR *xdrs, __NSL_FILE *file, enum xdr_op op) { - trace1(TR_xdrstdio_create, 0); xdrs->x_op = op; xdrs->x_ops = __nsl_xdrstdio_ops(); xdrs->x_private = (caddr_t)file; xdrs->x_handy = 0; xdrs->x_base = 0; - trace1(TR_xdrstdio_create, 1); } /* @@ -71,72 +70,56 @@ __nsl_xdrstdio_create(XDR *xdrs, __NSL_FILE *file, enum xdr_op op) static void __nsl_xdrstdio_destroy(XDR *xdrs) { - trace1(TR_xdrstdio_destroy, 0); + /* LINTED pointer cast */ (void) __nsl_fflush((__NSL_FILE *)xdrs->x_private); /* xx should we close the file ?? */ - trace1(TR_xdrstdio_destroy, 1); } static bool_t __nsl_xdrstdio_getint32(XDR *xdrs, int32_t *lp) { - trace1(TR_xdrstdio_getint32, 0); if (__nsl_fread((caddr_t)lp, sizeof (int32_t), 1, - (__NSL_FILE *)xdrs->x_private) != 1) { - trace1(TR_xdrstdio_getint32, 1); + /* LINTED pointer cast */ + (__NSL_FILE *)xdrs->x_private) != 1) return (FALSE); - } *lp = ntohl(*lp); - trace1(TR_xdrstdio_getint32, 1); return (TRUE); } static bool_t __nsl_xdrstdio_putint32(XDR *xdrs, int32_t *lp) { - int32_t mycopy = htonl(*lp); lp = &mycopy; - trace1(TR_xdrstdio_putint32, 0); if (__nsl_fwrite((caddr_t)lp, sizeof (int32_t), 1, - (__NSL_FILE *)xdrs->x_private) != 1) { - trace1(TR_xdrstdio_putint32, 1); + /* LINTED pointer cast */ + (__NSL_FILE *)xdrs->x_private) != 1) return (FALSE); - } - trace1(TR_xdrstdio_putint32, 1); return (TRUE); } static bool_t -__nsl_xdrstdio_getlong(xdrs, lp) - XDR *xdrs; - register long *lp; +__nsl_xdrstdio_getlong(XDR *xdrs, long *lp) { int32_t i; if (!__nsl_xdrstdio_getint32(xdrs, &i)) return (FALSE); - *lp = (long)i; - return (TRUE); } static bool_t -__nsl_xdrstdio_putlong(xdrs, lp) - XDR *xdrs; - long *lp; +__nsl_xdrstdio_putlong(XDR *xdrs, long *lp) { int32_t i; #if defined(_LP64) - if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) { + if ((*lp > INT32_MAX) || (*lp < INT32_MIN)) return (FALSE); - } #endif - i = (int32_t)*lp; return (__nsl_xdrstdio_putint32(xdrs, &i)); @@ -145,58 +128,44 @@ __nsl_xdrstdio_putlong(xdrs, lp) static bool_t __nsl_xdrstdio_getbytes(XDR *xdrs, caddr_t addr, int len) { - trace2(TR_xdrstdio_getbytes, 0, len); if ((len != 0) && (__nsl_fread(addr, (int)len, 1, - (__NSL_FILE *)xdrs->x_private) != 1)) { - trace1(TR_xdrstdio_getbytes, 1); + /* LINTED pointer cast */ + (__NSL_FILE *)xdrs->x_private) != 1)) return (FALSE); - } - trace1(TR_xdrstdio_getbytes, 1); return (TRUE); } static bool_t __nsl_xdrstdio_putbytes(XDR *xdrs, caddr_t addr, int len) { - trace2(TR_xdrstdio_putbytes, 0, len); if ((len != 0) && (__nsl_fwrite(addr, (int)len, 1, - (__NSL_FILE *)xdrs->x_private) != 1)) { - trace1(TR_xdrstdio_putbytes, 1); + /* LINTED pointer cast */ + (__NSL_FILE *)xdrs->x_private) != 1)) return (FALSE); - } - trace1(TR_xdrstdio_putbytes, 1); return (TRUE); } static uint_t __nsl_xdrstdio_getpos(XDR *xdrs) { - uint_t dummy1; - - trace1(TR_xdrstdio_getpos, 0); - dummy1 = (uint_t)__nsl_ftell((__NSL_FILE *)xdrs->x_private); - trace1(TR_xdrstdio_getpos, 1); - return (dummy1); + /* LINTED pointer cast */ + return ((uint_t)__nsl_ftell((__NSL_FILE *)xdrs->x_private)); } static bool_t __nsl_xdrstdio_setpos(XDR *xdrs, uint_t pos) { - bool_t dummy2; - - trace2(TR_xdrstdio_setpos, 0, pos); - dummy2 = (__nsl_fseek((__NSL_FILE *)xdrs->x_private, - (int)pos, 0) < 0) ? FALSE : TRUE; - trace1(TR_xdrstdio_setpos, 1); - return (dummy2); + /* LINTED pointer cast */ + return ((__nsl_fseek((__NSL_FILE *)xdrs->x_private, + (int)pos, 0) < 0) ? FALSE : TRUE); } +/* ARGSUSED */ static rpc_inline_t * __nsl_xdrstdio_inline(XDR *xdrs, int len) { - /* * Must do some work to implement this: must insure * enough data in the underlying stdio buffer, @@ -206,31 +175,25 @@ __nsl_xdrstdio_inline(XDR *xdrs, int len) * most of the gains to be had here and require storage * management on this buffer, so we don't do this. */ - trace2(TR_xdrstdio_inline, 0, len); - trace2(TR_xdrstdio_inline, 1, len); return (NULL); } +/* ARGSUSED */ static bool_t __nsl_xdrstdio_control(XDR *xdrs, int request, void *info) { - switch (request) { - - default: - return (FALSE); - } + return (FALSE); } static struct xdr_ops * -__nsl_xdrstdio_ops() +__nsl_xdrstdio_ops(void) { static struct xdr_ops ops; extern mutex_t ops_lock; /* VARIABLES PROTECTED BY ops_lock: ops */ - trace1(TR_xdrstdio_ops, 0); - mutex_lock(&ops_lock); + (void) mutex_lock(&ops_lock); if (ops.x_getlong == NULL) { ops.x_getlong = __nsl_xdrstdio_getlong; ops.x_putlong = __nsl_xdrstdio_putlong; @@ -246,7 +209,6 @@ __nsl_xdrstdio_ops() ops.x_putint32 = __nsl_xdrstdio_putint32; #endif } - mutex_unlock(&ops_lock); - trace1(TR_xdrstdio_ops, 1); + (void) mutex_unlock(&ops_lock); return (&ops); } diff --git a/usr/src/lib/libnsl/saf/checkver.c b/usr/src/lib/libnsl/saf/checkver.c index e702bbd109..9717215d76 100644 --- a/usr/src/lib/libnsl/saf/checkver.c +++ b/usr/src/lib/libnsl/saf/checkver.c @@ -19,24 +19,23 @@ * * CDDL HEADER END */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ - /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ + #pragma ident "%Z%%M% %I% %E% SMI" #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <sys/types.h> -#include <rpc/trace.h> +#include <sys/types.h> -# define VSTR "# VERSION=" +#define VSTR "# VERSION=" /* @@ -49,36 +48,27 @@ int -check_version(ver, fname) -int ver; -char *fname; +check_version(int ver, char *fname) { FILE *fp; /* file pointer for sactab */ char line[BUFSIZ]; /* temp buffer for input */ char *p; /* working pointer */ int version; /* version number from sactab */ - trace2(TR_check_version, 0, ver); - if ((fp = fopen(fname, "r")) == NULL) { - trace2(TR_check_version, 1, ver); - return(2); - } + if ((fp = fopen(fname, "r")) == NULL) + return (2); p = line; while (fgets(p, BUFSIZ, fp)) { - if (!strncmp(p, VSTR, strlen(VSTR))) { + if (strncmp(p, VSTR, strlen(VSTR)) == 0) { p += strlen(VSTR); if (*p) version = atoi(p); - else { - trace2(TR_check_version, 1, ver); - return(3); - } + else + return (3); (void) fclose(fp); - trace2(TR_check_version, 1, ver); - return((version != ver) ? 1 : 0); + return ((version != ver) ? 1 : 0); } p = line; } - trace2(TR_check_version, 1, ver); - return(3); + return (3); } diff --git a/usr/src/lib/libnsl/saf/doconfig.c b/usr/src/lib/libnsl/saf/doconfig.c index 040ba4409c..4d520c5dac 100644 --- a/usr/src/lib/libnsl/saf/doconfig.c +++ b/usr/src/lib/libnsl/saf/doconfig.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -38,7 +39,6 @@ #include <ulimit.h> #include <wait.h> #include <sys/types.h> -#include <rpc/trace.h> #include <sys/stat.h> #include <stropts.h> #include <ctype.h> @@ -64,11 +64,11 @@ extern int _fstat(int, struct stat *); extern char **_environ; -static char *eatwhite(); -static int doassign(); -static int dopush(); -static int dopop(); -static int dorun(); +static char *eatwhite(char *); +static int doassign(char *); +static int dopush(int, char *); +static int dopop(int, char *); +static int dorun(char *, int); /* * doconfig - the configuration script interpreter, if all is ok, @@ -93,17 +93,12 @@ doconfig(int fd, char *script, long rflag) char *p; /* scratch pointer */ /* if the script does not exist, then there is nothing to do */ - trace3(TR_doconfig, 0, fd, rflag); - if (_STAT(script, &statbuf) < 0) { - trace1(TR_doconfig, 1); + if (_STAT(script, &statbuf) < 0) return (0); - } fp = fopen(script, "r"); - if (fp == NULL) { - trace1(TR_doconfig, 1); + if (fp == NULL) return (-1); - } line = 0; while (fgets(buf, BUFSIZ, fp)) { @@ -112,7 +107,6 @@ doconfig(int fd, char *script, long rflag) /* if no \n, then line is too long */ if (p == NULL) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } *p = '\0'; @@ -142,52 +136,43 @@ doconfig(int fd, char *script, long rflag) /* skip any whitespace here too (between command and args) */ p = eatwhite(p); - if (!strcmp(bp, "assign")) { + if (strcmp(bp, "assign") == 0) { if ((rflag & NOASSIGN) || doassign(p)) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } - } else if (!strcmp(bp, "push")) { + } else if (strcmp(bp, "push") == 0) { if (dopush(fd, p)) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } - } else if (!strcmp(bp, "pop")) { + } else if (strcmp(bp, "pop") == 0) { if (dopop(fd, p)) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } - } else if (!strcmp(bp, "run")) { + } else if (strcmp(bp, "run") == 0) { if ((rflag & NORUN) || dorun(p, NOWAIT)) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } - } else if (!strcmp(bp, "runwait")) { + } else if (strcmp(bp, "runwait") == 0) { if ((rflag & NORUN) || dorun(p, WAIT)) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } } else { /* unknown command */ (void) fclose(fp); - trace1(TR_doconfig, 1); return (line); } } if (!feof(fp)) { (void) fclose(fp); - trace1(TR_doconfig, 1); return (-1); - } else { - (void) fclose(fp); - trace1(TR_doconfig, 1); - return (0); } + (void) fclose(fp); + return (0); } @@ -207,37 +192,28 @@ doassign(char *p) char delim; /* delimiter char seen (for quoted strings ) */ char *tp; /* scratch pointer */ - trace1(TR_doassign, 0); - if (*p == '\0') { - trace1(TR_doassign, 1); + if (*p == '\0') return (-1); - } var = p; /* skip first token, but stop if we see a '=' */ while (*p && !isspace(*p) && (*p != '=')) p++; /* if we found end of string, it's an error */ - if (*p == '\0') { - trace1(TR_doassign, 1); + if (*p == '\0') return (-1); - } /* if we found a space, look for the '=', otherwise it's an error */ if (isspace(*p)) { *p++ = '\0'; while (*p && isspace(*p)) p++; - if (*p == '\0') { - trace1(TR_doassign, 1); + if (*p == '\0') return (-1); - } if (*p == '=') p++; - else { - trace1(TR_doassign, 1); + else return (-1); - } } else { /* skip over '=' */ *p = '\0'; @@ -252,7 +228,6 @@ doassign(char *p) tp = val; for (;;) { if (*p == '\0') { - trace1(TR_doassign, 1); return (-1); } else if (*p == delim) { if (*(p - 1) != '\\') @@ -263,7 +238,10 @@ doassign(char *p) *tp++ = *p++; } *tp = '\0'; - /* these assignments make the comment below true (values of tp and p */ + /* + * these assignments make the comment below true + * (values of tp and p + */ tp = ++p; p = val; } else { @@ -279,25 +257,17 @@ doassign(char *p) * the end of the line */ - if (*tp) { - trace1(TR_doassign, 1); + if (*tp) return (-1); - } - sprintf(scratch, "%s=%s", var, p); + (void) snprintf(scratch, sizeof (scratch), "%s=%s", var, p); /* note: need to malloc fresh space so putenv works */ tp = malloc(strlen(scratch) + 1); - if (tp == NULL) { - trace1(TR_doassign, 1); + if (tp == NULL) return (-1); - } - strcpy(tp, scratch); - if (putenv(tp)) { - trace1(TR_doassign, 1); + (void) strcpy(tp, scratch); + if (putenv(tp)) return (-1); - } else { - trace1(TR_doassign, 1); - return (0); - } + return (0); } @@ -316,22 +286,15 @@ dopush(int fd, char *p) int i; /* scratch variable */ int npush; /* count # of modules pushed */ - trace2(TR_dopush, 0, fd); - if (*p == '\0') { - trace1(TR_dopush, 1); + if (*p == '\0') return (-1); - } npush = 0; for (;;) { - if (*p == '\0') { /* found end of line */ - trace1(TR_dopush, 1); + if (*p == '\0') /* found end of line */ return (0); - } p = eatwhite(p); - if (*p == '\0') { - trace1(TR_dopush, 1); + if (*p == '\0') return (-1); - } tp = p; while (*tp && !isspace(*tp) && (*tp != ',')) tp++; @@ -345,14 +308,12 @@ dopush(int fd, char *p) */ for (i = 0; i < npush; ++i) - ioctl(fd, I_POP, 0); - trace1(TR_dopush, 1); + (void) ioctl(fd, I_POP, 0); return (-1); - } else { - /* count the number of modules we've pushed */ - npush++; - p = tp; } + /* count the number of modules we've pushed */ + npush++; + p = tp; } } @@ -371,16 +332,11 @@ dopop(int fd, char *p) char *modp; /* module name from argument to pop */ char buf[FMNAMESZ + 1]; /* scratch buffer */ - trace2(TR_dopop, 0, fd); if (*p == '\0') { /* just a pop with no args */ - if (ioctl(fd, I_POP, 0) < 0) { - trace1(TR_dopop, 1); + if (ioctl(fd, I_POP, 0) < 0) return (-1); - } else { - trace1(TR_dopop, 1); - return (0); - } + return (0); } /* skip any whitespace in between */ @@ -390,46 +346,32 @@ dopop(int fd, char *p) while (*p && !isspace(*p)) p++; - if (*p) { /* if not end of line, extra junk on line */ - trace1(TR_dopop, 1); + if (*p) /* if not end of line, extra junk on line */ return (-1); - } - if (!strcmp(modp, "ALL")) { + if (strcmp(modp, "ALL") == 0) { /* it's the magic name, pop them all */ while (ioctl(fd, I_POP, 0) == 0) ; /* After all popped, we'll get an EINVAL, which is expected */ - if (errno != EINVAL) { - trace1(TR_dopop, 1); + if (errno != EINVAL) return (-1); - } else { - trace1(TR_dopop, 1); + return (0); + } + /* check to see if the named module is on the stream */ + if (ioctl(fd, I_FIND, modp) != 1) + return (-1); + + /* pop them until the right one is on top */ + for (;;) { + if (ioctl(fd, I_LOOK, buf) < 0) + return (-1); + if (strcmp(modp, buf) == 0) + /* we're done */ return (0); - } - } else { - /* check to see if the named module is on the stream */ - if (ioctl(fd, I_FIND, modp) != 1) { - trace1(TR_dopop, 1); + if (ioctl(fd, I_POP, 0) < 0) return (-1); - } - - /* pop them until the right one is on top */ - for (;;) { - if (ioctl(fd, I_LOOK, buf) < 0) { - trace1(TR_dopop, 1); - return (-1); - } - if (!strcmp(modp, buf)) { - trace1(TR_dopop, 1); - /* we're done */ - return (0); - } - if (ioctl(fd, I_POP, 0) < 0) { - trace1(TR_dopop, 1); - return (-1); - } - } } + /* NOTREACHED */ } @@ -446,23 +388,18 @@ dorun(char *p, int waitflg) { char *tp; /* scratch pointer */ char *ep; /* scratch pointer (end of token) */ - int nfiles; /* # of possibly open files */ - int i; /* scratch variable */ char savech; /* hold area */ int status; /* return status from wait */ pid_t pid; /* pid of child proc */ pid_t rpid; /* returned pid from wait */ void (*func)(); /* return from signal */ - trace2(TR_dorun, 0, waitflg); - if (*p == '\0') { - trace1(TR_dorun, 1); + if (*p == '\0') return (-1); - } -/* - * get first token - */ + /* + * get first token + */ for (tp = p; *tp && !isspace(*tp); ++tp) ; @@ -472,75 +409,59 @@ dorun(char *p, int waitflg) *tp = '\0'; } -/* - * look for built-in's - */ + /* + * look for built-in's + */ - if (!strcmp(p, "cd")) { + if (strcmp(p, "cd") == 0) { *tp = savech; tp = eatwhite(tp); if (*tp == '\0') /* if nothing there, try to cd to $HOME */ tp = getenv("HOME"); - if (chdir(tp) < 0) { - trace1(TR_dorun, 1); + if (chdir(tp) < 0) return (-1); - } - } else if (!strcmp(p, "ulimit")) { + } else if (strcmp(p, "ulimit") == 0) { *tp = savech; tp = eatwhite(tp); /* must have an argument */ - if (*tp == '\0') { - trace1(TR_dorun, 1); + if (*tp == '\0') return (-1); - } /* make sure nothing appears on line after arg */ for (ep = tp; *ep && !isspace(*ep); ++ep) ; ep = eatwhite(ep); - if (*ep) { - trace1(TR_dorun, 1); + if (*ep) return (-1); - } - if (!isdigit(*tp)) { - trace1(TR_dorun, 1); + if (!isdigit(*tp)) return (-1); - } - if (ulimit(2, atoi(tp)) < 0) { - trace1(TR_dorun, 1); + if (ulimit(2, atoi(tp)) < 0) return (-1); - } - } else if (!strcmp(p, "umask")) { + } else if (strcmp(p, "umask") == 0) { *tp = savech; tp = eatwhite(tp); /* must have an argument */ - if (*tp == '\0') { - trace1(TR_dorun, 1); + if (*tp == '\0') return (-1); - } /* make sure nothing appears on line after arg */ for (ep = tp; *ep && !isspace(*ep); ++ep) ; ep = eatwhite(ep); - if (*ep) { - trace1(TR_dorun, 1); + if (*ep) return (-1); - } - if (!isdigit(*tp)) { - trace1(TR_dorun, 1); + if (!isdigit(*tp)) return (-1); - } (void) umask(strtol(tp, NULL, 8)); } else { /* not a built-in */ *tp = savech; func = signal(SIGCLD, SIG_DFL); if ((pid = fork()) < 0) { - signal(SIGCLD, func); - trace1(TR_dorun, 1); + (void) signal(SIGCLD, func); return (-1); - } else if (pid) { + } + if (pid) { if (waitflg == WAIT) { status = 0; rpid = -1; @@ -548,12 +469,11 @@ dorun(char *p, int waitflg) rpid = wait(&status); if (status) { /* child failed */ - signal(SIGCLD, func); - trace1(TR_dorun, 1); + (void) signal(SIGCLD, func); return (-1); } } - signal(SIGCLD, func); + (void) signal(SIGCLD, func); } else { /* set IFS for security */ (void) putenv("IFS=\" \""); @@ -562,31 +482,25 @@ dorun(char *p, int waitflg) * access in the children. Setup stdin, stdout, * and stderr to /dev/null. */ - nfiles = ulimit(4, 0); closefrom(0); /* stdin */ - if (open("/dev/null", O_RDWR) != 0) { - trace1(TR_dorun, 1); + if (open("/dev/null", O_RDWR) != 0) return (-1); - } /* stdout */ - if (dup(0) != 1) { - trace1(TR_dorun, 1); + if (dup(0) != 1) return (-1); - } /* stderr */ - if (dup(0) != 2) { - trace1(TR_dorun, 1); + if (dup(0) != 2) return (-1); - } - execle("/usr/bin/sh", "sh", "-c", p, 0, _environ); - /* if we get here, there is a problem - remember that - this is the child */ - trace1(TR_dorun, 1); + (void) execle("/usr/bin/sh", "sh", "-c", + p, 0, _environ); + /* + * if we get here, there is a problem - remember that + * this is the child + */ exit(1); } } - trace1(TR_dorun, 1); return (0); } @@ -602,9 +516,7 @@ dorun(char *p, int waitflg) static char * eatwhite(char *p) { - trace1(TR_eatwhite, 0); while (*p && isspace(*p)) p++; - trace1(TR_eatwhite, 1); return (p); } diff --git a/usr/src/lib/libnsl/yp/dbm.c b/usr/src/lib/libnsl/yp/dbm.c index 09ae3a7d9c..2c38c36599 100644 --- a/usr/src/lib/libnsl/yp/dbm.c +++ b/usr/src/lib/libnsl/yp/dbm.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -37,7 +38,6 @@ #include <rpcsvc/dbm.h> #include <sys/types.h> -#include <rpc/trace.h> #include <sys/stat.h> #include <string.h> #include <unistd.h> @@ -63,12 +63,10 @@ int setbit(void); int cmpdatum(datum, datum); int -dbminit(file) - char *file; +dbminit(char *file) { struct stat statb; - trace1(TR_dbminit, 0); dbrdonly = 0; if (strlcpy(pagbuf, file, sizeof (pagbuf)) >= sizeof (pagbuf) || strlcat(pagbuf, ".pag", sizeof (pagbuf)) >= sizeof (pagbuf)) { @@ -76,7 +74,6 @@ dbminit(file) * file.pag does not fit into pagbuf. * fails with ENAMETOOLONG. */ - trace1(TR_dbminit, 1); errno = ENAMETOOLONG; return (-1); } @@ -97,13 +94,10 @@ dbminit(file) dirf = open(pagbuf, 0); dbrdonly = 1; } - if (pagf < 0 || dirf < 0) { - trace1(TR_dbminit, 1); + if (pagf < 0 || dirf < 0) return (-1); - } - _FSTAT(dirf, &statb); + (void) _FSTAT(dirf, &statb); maxbno = statb.st_size*BYTESIZ-1; - trace1(TR_dbminit, 1); return (0); } @@ -112,20 +106,17 @@ static long oldb2 = -1; /* Avoid using cached data for subsequent accesses. */ int -dbmflush() +dbmflush(void) { - trace1(TR_dbmflush, 0); oldb1 = -1; oldb2 = -1; - trace1(TR_dbmflush, 1); return (0); } /* Clean up after ourself. */ int -dbmclose() +dbmclose(void) { - trace1(TR_dbmclose, 0); (void) close(pagf); (void) close(dirf); bitno = 0; @@ -134,17 +125,14 @@ dbmclose() hmask = 0; oldb1 = -1; oldb2 = -1; - trace1(TR_dbmclose, 1); return (0); } long -forder(key) - datum key; +forder(datum key) { long hash; - trace1(TR_forder, 0); hash = calchash(key); for (hmask = 0; ; hmask = (hmask<<1) + 1) { blkno = hash & hmask; @@ -152,54 +140,43 @@ forder(key) if (getbit() == 0) break; } - trace1(TR_forder, 1); return (blkno); } datum -fetch(key) - datum key; +fetch(datum key) { int i; datum item; - trace1(TR_fetch, 0); dbm_access(calchash(key)); for (i = 0; ; i += 2) { item = makdatum(pagbuf, i); if (item.dptr == NULL) { - trace1(TR_fetch, 1); return (item); } if (cmpdatum(key, item) == 0) { item = makdatum(pagbuf, i+1); if (item.dptr == NULL) (void) printf("items not in pairs\n"); - trace1(TR_fetch, 1); return (item); } } } int -delete(key) - datum key; +delete(datum key) { int i; datum item; - trace1(TR_delete, 0); - if (dbrdonly) { - trace1(TR_delete, 1); + if (dbrdonly) return (-1); - } dbm_access(calchash(key)); for (i = 0; ; i += 2) { item = makdatum(pagbuf, i); - if (item.dptr == NULL) { - trace1(TR_delete, 1); + if (item.dptr == NULL) return (-1); - } if (cmpdatum(key, item) == 0) { delitem(pagbuf, i); delitem(pagbuf, i); @@ -208,23 +185,18 @@ delete(key) } (void) lseek(pagf, blkno*PBLKSIZ, 0); (void) write(pagf, pagbuf, PBLKSIZ); - trace1(TR_delete, 1); return (0); } int -store(key, dat) - datum key, dat; +store(datum key, datum dat) { int i; datum item; char ovfbuf[PBLKSIZ]; - trace1(TR_store, 0); - if (dbrdonly) { - trace1(TR_store, 1); + if (dbrdonly) return (-1); - } loop: dbm_access(calchash(key)); for (i = 0; ; i += 2) { @@ -246,16 +218,14 @@ loop: } (void) lseek(pagf, blkno*PBLKSIZ, 0); (void) write(pagf, pagbuf, PBLKSIZ); - trace1(TR_store, 1); return (0); split: if (key.dsize + dat.dsize + 3 * sizeof (short) >= PBLKSIZ) { (void) printf("entry too big\n"); - trace1(TR_store, 1); return (-1); } - (void) memset((char *)&ovfbuf, 0, PBLKSIZ); + (void) memset(&ovfbuf, 0, PBLKSIZ); for (i = 0; ; ) { item = makdatum(pagbuf, i); if (item.dptr == NULL) @@ -276,43 +246,32 @@ split: } (void) lseek(pagf, blkno*PBLKSIZ, 0); if (write(pagf, pagbuf, PBLKSIZ) < 0) { - trace1(TR_store, 1); return (-1); } (void) lseek(pagf, (blkno+hmask+1)*PBLKSIZ, 0); if (write(pagf, ovfbuf, PBLKSIZ) < 0) { - trace1(TR_store, 1); return (-1); } if (setbit() < 0) { - trace1(TR_store, 1); return (-1); } goto loop; } datum -firstkey() +firstkey(void) { - datum dummy; - - trace1(TR_firstkey, 0); - dummy = firsthash(0L); - trace1(TR_firstkey, 1); - return (dummy); + return (firsthash(0L)); } datum -nextkey(key) - datum key; +nextkey(datum key) { int i; datum item, bitem; long hash; int f; - datum dummy; - trace1(TR_nextkey, 0); #ifdef lint bitem.dptr = NULL; bitem.dsize = 0; @@ -331,28 +290,20 @@ nextkey(key) f = 0; } } - if (f == 0) { - trace1(TR_nextkey, 1); + if (f == 0) return (bitem); - } hash = hashinc(hash); - if (hash == 0) { - trace1(TR_nextkey, 1); + if (hash == 0) return (item); - } - dummy = firsthash(hash); - trace1(TR_nextkey, 1); - return (dummy); + return (firsthash(hash)); } datum -firsthash(hash) - long hash; +firsthash(long hash) { int i; datum item, bitem; - trace2(TR_firsthash, 0, hash); loop: dbm_access(hash); bitem = makdatum(pagbuf, 0); @@ -363,25 +314,19 @@ loop: if (cmpdatum(bitem, item) < 0) bitem = item; } - if (bitem.dptr != NULL) { - trace1(TR_firsthash, 1); + if (bitem.dptr != NULL) return (bitem); - } hash = hashinc(hash); - if (hash == 0) { - trace1(TR_firsthash, 1); + if (hash == 0) return (item); - } goto loop; } void -dbm_access(hash) - long hash; +dbm_access(long hash) { ssize_t readsize; - trace2(TR_dbm_access, 0, hash); for (hmask = 0; ; hmask = (hmask<<1) + 1) { blkno = hash & hmask; bitno = blkno + hmask; @@ -392,14 +337,13 @@ dbm_access(hash) (void) lseek(pagf, blkno*PBLKSIZ, 0); readsize = read(pagf, pagbuf, PBLKSIZ); if (readsize != PBLKSIZ) { - if (readsize < 0) readsize = 0; - (void) memset((char *)(&pagbuf+readsize), - 0, PBLKSIZ-readsize); + if (readsize < 0) + readsize = 0; + (void) memset((&pagbuf+readsize), 0, PBLKSIZ-readsize); } chkblk(pagbuf); oldb1 = blkno; } - trace1(TR_dbm_access, 1); } int @@ -409,11 +353,8 @@ getbit(void) ssize_t readsize; long b, i, n; - trace1(TR_getbit, 0); - if (bitno > maxbno) { - trace1(TR_getbit, 1); + if (bitno > maxbno) return (0); - } n = bitno % BYTESIZ; bn = bitno / BYTESIZ; i = bn % DBLKSIZ; @@ -422,17 +363,14 @@ getbit(void) (void) lseek(dirf, (long)b*DBLKSIZ, 0); readsize = read(dirf, dirbuf, DBLKSIZ); if (readsize != DBLKSIZ) { - if (readsize < 0) readsize = 0; - (void) memset((char *)(&dirbuf+readsize), - 0, DBLKSIZ-readsize); + if (readsize < 0) + readsize = 0; + (void) memset(&dirbuf+readsize, 0, DBLKSIZ-readsize); } oldb2 = b; } - if (dirbuf[i] & (1<<n)) { - trace1(TR_getbit, 1); + if (dirbuf[i] & (1<<n)) return (1); - } - trace1(TR_getbit, 1); return (0); } @@ -442,11 +380,8 @@ setbit(void) long bn; long i, n, b; - trace1(TR_setbit, 0); - if (dbrdonly) { - trace1(TR_setbit, 1); + if (dbrdonly) return (-1); - } if (bitno > maxbno) { maxbno = bitno; (void) getbit(); @@ -457,11 +392,8 @@ setbit(void) b = bn / DBLKSIZ; dirbuf[i] |= 1<<n; (void) lseek(dirf, (long)b*DBLKSIZ, 0); - if (write(dirf, dirbuf, DBLKSIZ) < 0) { - trace1(TR_setbit, 1); + if (write(dirf, dirbuf, DBLKSIZ) < 0) return (-1); - } - trace1(TR_setbit, 1); return (0); } @@ -472,7 +404,7 @@ makdatum(char buf[PBLKSIZ], int n) int t; datum item; - trace1(TR_makdatum, 0); + /* LINTED pointer cast */ sp = (short *)buf; if (n < 0 || n >= sp[0]) goto null; @@ -481,42 +413,31 @@ makdatum(char buf[PBLKSIZ], int n) t = sp[n+1-1]; item.dptr = buf+sp[n+1]; item.dsize = t - sp[n+1]; - trace1(TR_makdatum, 1); return (item); null: item.dptr = NULL; item.dsize = 0; - trace1(TR_makdatum, 1); return (item); } int -cmpdatum(d1, d2) - datum d1, d2; +cmpdatum(datum d1, datum d2) { int n; char *p1, *p2; - trace1(TR_cmpdatum, 0); n = d1.dsize; - if (n != d2.dsize) { - trace1(TR_cmpdatum, 1); + if (n != d2.dsize) return (n - d2.dsize); - } - if (n == 0) { - trace1(TR_cmpdatum, 1); + if (n == 0) return (0); - } p1 = d1.dptr; p2 = d2.dptr; do - if (*p1++ != *p2++) { - trace1(TR_cmpdatum, 1); + if (*p1++ != *p2++) return (*--p1 - *--p2); - } while (--n); - trace1(TR_cmpdatum, 1); return (0); } @@ -552,37 +473,29 @@ long hltab[64] }; long -hashinc(hash) - long hash; +hashinc(long hash) { long bit; - trace2(TR_hashinc, 0, hash); hash &= hmask; bit = hmask+1; for (; ; ) { bit >>= 1; - if (bit == 0) { - trace1(TR_hashinc, 1); + if (bit == 0) return (0L); - } - if ((hash&bit) == 0) { - trace1(TR_hashinc, 1); + if ((hash&bit) == 0) return (hash|bit); - } hash &= ~bit; } } long -calchash(item) - datum item; +calchash(datum item) { int i, j, f; long hashl; int hashi; - trace1(TR_calchash, 0); hashl = 0; hashi = 0; for (i = 0; i < item.dsize; i++) { @@ -593,19 +506,16 @@ calchash(item) f >>= 4; } } - trace1(TR_calchash, 1); return (hashl); } void -delitem(buf, n) - char buf[PBLKSIZ]; - int n; +delitem(char buf[PBLKSIZ], int n) { short *sp; int i1, i2, i3; - trace1(TR_delitem, 0); + /* LINTED pointer cast */ sp = (short *)buf; if (n < 0 || n >= sp[0]) goto bad; @@ -626,52 +536,44 @@ delitem(buf, n) sp[i1+1-1] = sp[i1+1] + i2; sp[0]--; sp[sp[0]+1] = 0; - trace1(TR_delitem, 1); return; bad: (void) printf("bad delitem\n"); - trace1(TR_delitem, 1); abort(); } int -additem(buf, item) - char buf[PBLKSIZ]; - datum item; +additem(char buf[PBLKSIZ], datum item) { short *sp; int i1, i2; - trace1(TR_additem, 0); + /* LINTED pointer cast */ sp = (short *)buf; i1 = PBLKSIZ; if (sp[0] > 0) i1 = sp[sp[0]+1-1]; i1 -= item.dsize; i2 = (sp[0]+2) * (int)sizeof (short); - if (i1 <= i2) { - trace1(TR_additem, 1); + if (i1 <= i2) return (-1); - } sp[sp[0]+1] = (short)i1; for (i2 = 0; i2 < item.dsize; i2++) { buf[i1] = item.dptr[i2]; i1++; } sp[0]++; - trace1(TR_additem, 1); return (sp[0]-1); } void -chkblk(buf) - char buf[PBLKSIZ]; +chkblk(char buf[PBLKSIZ]) { short *sp; int t, i; - trace1(TR_chkblk, 0); + /* LINTED pointer cast */ sp = (short *)buf; t = PBLKSIZ; for (i = 0; i < sp[0]; i++) { @@ -681,12 +583,10 @@ chkblk(buf) } if (t < (sp[0]+1) * sizeof (short)) goto bad; - trace1(TR_chkblk, 1); return; bad: (void) printf("bad block\n"); - trace1(TR_chkblk, 1); abort(); - (void) memset((char *)&buf, 0, PBLKSIZ); + (void) memset(&buf, 0, PBLKSIZ); } diff --git a/usr/src/lib/libnsl/yp/yp_all.c b/usr/src/lib/libnsl/yp/yp_all.c index bffbbc186b..4308a7d279 100644 --- a/usr/src/lib/libnsl/yp/yp_all.c +++ b/usr/src/lib/libnsl/yp/yp_all.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,17 +36,16 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#define NULL 0 +#include <stdlib.h> +#include <unistd.h> #include "mt.h" #include <rpc/rpc.h> #include <syslog.h> #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> -#include <rpc/trace.h> #include <netdir.h> #include <string.h> -#include <stdlib.h> extern int __yp_dobind_cflookup(char *, struct dom_binding **, int); @@ -59,11 +60,8 @@ static char nullstring[] = "\000"; * in number of times). */ int -__yp_all_cflookup(domain, map, callback, hardlookup) - char *domain; - char *map; - struct ypall_callback *callback; - int hardlookup; +__yp_all_cflookup(char *domain, char *map, struct ypall_callback *callback, + int hardlookup) { size_t domlen; size_t maplen; @@ -75,42 +73,33 @@ __yp_all_cflookup(domain, map, callback, hardlookup) char server_name[MAXHOSTNAMELEN]; char errbuf[BUFSIZ]; - trace1(TR_yp_all, 0); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_all, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (callback == (struct ypall_callback *)NULL)) { - trace1(TR_yp_all, 1); + (callback == NULL)) return (YPERR_BADARGS); - } - if (reason = __yp_dobind_cflookup(domain, &pdomb, hardlookup)) { - trace1(TR_yp_all, 1); + if (reason = __yp_dobind_cflookup(domain, &pdomb, hardlookup)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers < YPVERS) { __yp_rel_binding(pdomb); - trace1(TR_yp_all, 1); return (YPERR_VERS); } - mutex_lock(&pdomb->server_name_lock); + (void) mutex_lock(&pdomb->server_name_lock); if (!pdomb->dom_binding->ypbind_servername) { - mutex_unlock(&pdomb->server_name_lock); + (void) mutex_unlock(&pdomb->server_name_lock); __yp_rel_binding(pdomb); syslog(LOG_ERR, "yp_all: failed to get server's name\n"); - trace1(TR_yp_all, 1); return (YPERR_RPC); } (void) strcpy(server_name, pdomb->dom_binding->ypbind_servername); - mutex_unlock(&pdomb->server_name_lock); + (void) mutex_unlock(&pdomb->server_name_lock); if (strcmp(server_name, nullstring) == 0) { /* * This is the case where ypbind is running in broadcast mode, @@ -126,11 +115,10 @@ __yp_all_cflookup(domain, map, callback, hardlookup) syslog(LOG_ERR, "yp_all: failed to get server's name\n"); __yp_rel_binding(pdomb); - trace1(TR_yp_all, 1); return (YPERR_RPC); } /* check server name again, some other thread may have set it */ - mutex_lock(&pdomb->server_name_lock); + (void) mutex_lock(&pdomb->server_name_lock); if (strcmp(pdomb->dom_binding->ypbind_servername, nullstring) == 0) { pdomb->dom_binding->ypbind_servername = @@ -138,16 +126,15 @@ __yp_all_cflookup(domain, map, callback, hardlookup) } (void) strcpy(server_name, pdomb->dom_binding->ypbind_servername); - mutex_unlock(&pdomb->server_name_lock); + (void) mutex_unlock(&pdomb->server_name_lock); netdir_free((char *)nhs, ND_HOSTSERVLIST); } __yp_rel_binding(pdomb); if ((allc = clnt_create(server_name, YPPROG, - YPVERS, "circuit_n")) == (CLIENT *) NULL) { - snprintf(errbuf, BUFSIZ, "yp_all \ + YPVERS, "circuit_n")) == NULL) { + (void) snprintf(errbuf, BUFSIZ, "yp_all \ - transport level create failure for domain %s / map %s", domain, map); - syslog(LOG_ERR, clnt_spcreateerror(errbuf)); - trace1(TR_yp_all, 1); + syslog(LOG_ERR, "%s", clnt_spcreateerror(errbuf)); return (YPERR_RPC); } @@ -160,20 +147,17 @@ __yp_all_cflookup(domain, map, callback, hardlookup) (xdrproc_t)xdr_ypall, (char *)callback, tp_timout); if (s != RPC_SUCCESS && s != RPC_TIMEDOUT) { - syslog(LOG_ERR, clnt_sperror(allc, + syslog(LOG_ERR, "%s", clnt_sperror(allc, "yp_all - RPC clnt_call (transport level) failure")); } clnt_destroy(allc); switch (s) { case RPC_SUCCESS: - trace1(TR_yp_all, 1); return (0); case RPC_TIMEDOUT: - trace1(TR_yp_all, 1); return (YPERR_YPSERV); default: - trace1(TR_yp_all, 1); return (YPERR_RPC); } } @@ -190,10 +174,7 @@ __yp_all_cflookup(domain, map, callback, hardlookup) * by using the old protocol. */ int -yp_all(domain, map, callback) - char *domain; - char *map; - struct ypall_callback *callback; +yp_all(char *domain, char *map, struct ypall_callback *callback) { return (__yp_all_cflookup(domain, map, callback, 1)); } @@ -204,10 +185,7 @@ yp_all(domain, map, callback) * attempts to use reserve ports. */ int -__yp_all_rsvdport(domain, map, callback) - char *domain; - char *map; - struct ypall_callback *callback; +__yp_all_rsvdport(char *domain, char *map, struct ypall_callback *callback) { size_t domlen; size_t maplen; @@ -219,26 +197,19 @@ __yp_all_rsvdport(domain, map, callback) char server_name[MAXHOSTNAMELEN]; char errbuf[BUFSIZ]; - trace1(TR_yp_all, 0); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_all, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (callback == (struct ypall_callback *)NULL)) { - trace1(TR_yp_all, 1); + (callback == NULL)) return (YPERR_BADARGS); - } - if (reason = __yp_dobind_rsvdport(domain, &pdomb)) { - trace1(TR_yp_all, 1); + if (reason = __yp_dobind_rsvdport(domain, &pdomb)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers < YPVERS) { /* @@ -247,20 +218,18 @@ __yp_all_rsvdport(domain, map, callback) */ __yp_rel_binding(pdomb); free_dom_binding(pdomb); - trace1(TR_yp_all, 1); return (YPERR_VERS); } - mutex_lock(&pdomb->server_name_lock); + (void) mutex_lock(&pdomb->server_name_lock); if (!pdomb->dom_binding->ypbind_servername) { - mutex_unlock(&pdomb->server_name_lock); + (void) mutex_unlock(&pdomb->server_name_lock); syslog(LOG_ERR, "yp_all: failed to get server's name\n"); __yp_rel_binding(pdomb); free_dom_binding(pdomb); - trace1(TR_yp_all, 1); return (YPERR_RPC); } (void) strcpy(server_name, pdomb->dom_binding->ypbind_servername); - mutex_unlock(&pdomb->server_name_lock); + (void) mutex_unlock(&pdomb->server_name_lock); if (strcmp(server_name, nullstring) == 0) { /* * This is the case where ypbind is running in broadcast mode, @@ -277,11 +246,10 @@ __yp_all_rsvdport(domain, map, callback) "yp_all: failed to get server's name\n"); __yp_rel_binding(pdomb); free_dom_binding(pdomb); - trace1(TR_yp_all, 1); return (YPERR_RPC); } /* check server name again, some other thread may have set it */ - mutex_lock(&pdomb->server_name_lock); + (void) mutex_lock(&pdomb->server_name_lock); if (strcmp(pdomb->dom_binding->ypbind_servername, nullstring) == 0) { pdomb->dom_binding->ypbind_servername = @@ -289,20 +257,19 @@ __yp_all_rsvdport(domain, map, callback) } (void) strcpy(server_name, pdomb->dom_binding->ypbind_servername); - mutex_unlock(&pdomb->server_name_lock); + (void) mutex_unlock(&pdomb->server_name_lock); netdir_free((char *)nhs, ND_HOSTSERVLIST); } __yp_rel_binding(pdomb); if ((allc = __yp_clnt_create_rsvdport(server_name, YPPROG, YPVERS, - "tcp6", 0, 0)) == (CLIENT *) NULL && + "tcp6", 0, 0)) == NULL && (allc = __yp_clnt_create_rsvdport(server_name, YPPROG, YPVERS, - "tcp", 0, 0)) == (CLIENT *) NULL) { - snprintf(errbuf, BUFSIZ, "yp_all \ + "tcp", 0, 0)) == NULL) { + (void) snprintf(errbuf, BUFSIZ, "yp_all \ - transport level create failure for domain %s / map %s", domain, map); - syslog(LOG_ERR, clnt_spcreateerror(errbuf)); + syslog(LOG_ERR, "%s", clnt_spcreateerror(errbuf)); free_dom_binding(pdomb); - trace1(TR_yp_all, 1); return (YPERR_RPC); } @@ -314,7 +281,7 @@ __yp_all_rsvdport(domain, map, callback) (xdrproc_t)xdr_ypall, (char *)callback, tp_timout); if (s != RPC_SUCCESS && s != RPC_TIMEDOUT) { - syslog(LOG_ERR, clnt_sperror(allc, + syslog(LOG_ERR, "%s", clnt_sperror(allc, "yp_all - RPC clnt_call (transport level) failure")); } @@ -322,13 +289,10 @@ __yp_all_rsvdport(domain, map, callback) free_dom_binding(pdomb); switch (s) { case RPC_SUCCESS: - trace1(TR_yp_all, 1); return (0); case RPC_TIMEDOUT: - trace1(TR_yp_all, 1); return (YPERR_YPSERV); default: - trace1(TR_yp_all, 1); return (YPERR_RPC); } } diff --git a/usr/src/lib/libnsl/yp/yp_b.h b/usr/src/lib/libnsl/yp/yp_b.h index c3efc7f2e4..f089153ff8 100644 --- a/usr/src/lib/libnsl/yp/yp_b.h +++ b/usr/src/lib/libnsl/yp/yp_b.h @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 1990 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -32,10 +33,17 @@ * under license from the Regents of the University of California. */ -#ident "%Z%%M% %I% %E% SMI" +#ifndef _YP_B_H +#define _YP_B_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif #include <rpc/types.h> -#include "netconfig.h" +#include <netconfig.h> #include <stdio.h> #include <synch.h> #include <netdb.h> @@ -68,7 +76,7 @@ struct domain { unsigned int dom_error; CLIENT * ping_clnt; struct ypbind_binding *dom_binding; - int dom_report_success; /* Controls msg to /dev/console*/ + int dom_report_success; /* Controls msg to /dev/console */ int dom_broadcaster_pid; int bindfile; /* File with binding info in it */ int broadcaster_fd; @@ -95,7 +103,7 @@ struct ypbind_domain { rpcvers_t ypbind_vers; }; typedef struct ypbind_domain ypbind_domain; -bool_t xdr_ypbind_domain(XDR *, ypbind_domain *); +extern bool_t xdr_ypbind_domain(XDR *, ypbind_domain *); /* * This structure is used to store information about the server @@ -111,24 +119,24 @@ struct ypbind_binding { rpcvers_t ypbind_lo_vers; }; typedef struct ypbind_binding ypbind_binding; -bool_t xdr_ypbind_binding(XDR *, ypbind_binding *); +extern bool_t xdr_ypbind_binding(XDR *, ypbind_binding *); struct ypbind_resp { ypbind_resptype ypbind_status; union { - u_int ypbind_error; + uint_t ypbind_error; struct ypbind_binding *ypbind_bindinfo; } ypbind_resp_u; }; typedef struct ypbind_resp ypbind_resp; -bool_t xdr_ypbind_resp(XDR *, ypbind_resp *); +extern bool_t xdr_ypbind_resp(XDR *, ypbind_resp *); struct ypbind_setdom { char *ypsetdom_domain; struct ypbind_binding *ypsetdom_bindinfo; }; typedef struct ypbind_setdom ypbind_setdom; -bool_t xdr_ypbind_setdom(XDR *, ypbind_setdom *); +extern bool_t xdr_ypbind_setdom(XDR *, ypbind_setdom *); #define YPBINDPROG ((rpcprog_t)100007) #define YPBINDVERS ((rpcvers_t)3) @@ -152,3 +160,9 @@ extern CLIENT *__clnt_create_loopback(rpcprog_t, rpcvers_t, int *); extern int _fcntl(int, int, ...); extern uint_t _sleep(uint_t); + +#ifdef __cplusplus +} +#endif + +#endif /* _YP_B_H */ diff --git a/usr/src/lib/libnsl/yp/yp_b_clnt.c b/usr/src/lib/libnsl/yp/yp_b_clnt.c index e3c603d2b6..82349d38c4 100644 --- a/usr/src/lib/libnsl/yp/yp_b_clnt.c +++ b/usr/src/lib/libnsl/yp/yp_b_clnt.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1997 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -37,69 +39,46 @@ #include <rpc/rpc.h> #include <sys/time.h> #include <sys/types.h> -#include <rpc/trace.h> +#include <string.h> #include "yp_b.h" -#define bzero(a, b) (void) memset(a, 0, b) -#define YPBIND_ERR_ERR 1 /* Internal error */ -#define YPBIND_ERR_NOSERV 2 /* No bound server for passed domain */ -#define YPBIND_ERR_RESC 3 /* System resource allocation failure */ -#define YPBIND_ERR_NODOMAIN 4 /* Domain doesn't exist */ /* Default timeout can be changed using clnt_control() */ static struct timeval TIMEOUT = { 25, 0 }; void * -ypbindproc_null_3(argp, clnt) - void *argp; - CLIENT *clnt; +ypbindproc_null_3(void *argp, CLIENT *clnt) { static char res; - trace2(TR_ypbindproc_null_3, 0, clnt); - bzero((char *)&res, sizeof (res)); + res = 0; if (clnt_call(clnt, YPBINDPROC_NULL, xdr_void, - argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { - trace1(TR_ypbindproc_null_3, 1); + argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) return (NULL); - } - trace1(TR_ypbindproc_null_3, 1); return ((void *)&res); } ypbind_resp * -ypbindproc_domain_3(argp, clnt) - ypbind_domain *argp; - CLIENT *clnt; +ypbindproc_domain_3(ypbind_domain *argp, CLIENT *clnt) { static ypbind_resp res; - trace2(TR_ypbindproc_domain_3, 0, clnt); - bzero((char *)&res, sizeof (res)); + (void) memset(&res, 0, sizeof (res)); if (clnt_call(clnt, YPBINDPROC_DOMAIN, - xdr_ypbind_domain, (char *)argp, xdr_ypbind_resp, - (char *)&res, TIMEOUT) != RPC_SUCCESS) { - trace1(TR_ypbindproc_domain_3, 1); + xdr_ypbind_domain, (char *)argp, xdr_ypbind_resp, + (char *)&res, TIMEOUT) != RPC_SUCCESS) return (NULL); - } - trace1(TR_ypbindproc_domain_3, 1); return (&res); } void * -ypbindproc_setdom_3(argp, clnt) - ypbind_setdom *argp; - CLIENT *clnt; +ypbindproc_setdom_3(ypbind_setdom *argp, CLIENT *clnt) { static char res; - trace2(TR_ypbindproc_setdom_3, 0, clnt); - bzero((char *)&res, sizeof (res)); + res = 0; if (clnt_call(clnt, YPBINDPROC_SETDOM, - xdr_ypbind_setdom, (char *)argp, xdr_void, &res, - TIMEOUT) != RPC_SUCCESS) { - trace1(TR_ypbindproc_setdom_3, 1); + xdr_ypbind_setdom, (char *)argp, xdr_void, &res, + TIMEOUT) != RPC_SUCCESS) return (NULL); - } - trace1(TR_ypbindproc_setdom_3, 1); return ((void *)&res); } diff --git a/usr/src/lib/libnsl/yp/yp_b_xdr.c b/usr/src/lib/libnsl/yp/yp_b_xdr.c index 90a57af385..48c16ed3b2 100644 --- a/usr/src/lib/libnsl/yp/yp_b_xdr.c +++ b/usr/src/lib/libnsl/yp/yp_b_xdr.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2001 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -39,130 +41,64 @@ #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <sys/types.h> -#include <rpc/trace.h> bool_t -xdr_ypbind_resptype(xdrs, objp) - XDR *xdrs; - ypbind_resptype *objp; +xdr_ypbind_resptype(XDR *xdrs, ypbind_resptype *objp) { - trace1(TR_xdr_ypbind_resptype, 0); - if (!xdr_enum(xdrs, (enum_t *)objp)) { - trace1(TR_xdr_ypbind_resptype, 1); - return (FALSE); - } - trace1(TR_xdr_ypbind_resptype, 1); - return (TRUE); + return (xdr_enum(xdrs, (enum_t *)objp)); } - -#define YPBIND_ERR_ERR 1 /* Internal error */ -#define YPBIND_ERR_NOSERV 2 /* No bound server for passed domain */ -#define YPBIND_ERR_RESC 3 /* System resource allocation failure */ -#define YPBIND_ERR_NODOMAIN 4 /* Domain doesn't exist */ - - bool_t -xdr_ypbind_domain(xdrs, objp) - XDR *xdrs; - ypbind_domain *objp; +xdr_ypbind_domain(XDR *xdrs, ypbind_domain *objp) { - trace1(TR_xdr_ypbind_domain, 0); - if (!xdr_string(xdrs, &objp->ypbind_domainname, YPMAXDOMAIN)) { - trace1(TR_xdr_ypbind_domain, 1); - return (FALSE); - } - if (!xdr_rpcvers(xdrs, &objp->ypbind_vers)) { - trace1(TR_xdr_ypbind_domain, 1); + if (!xdr_string(xdrs, &objp->ypbind_domainname, YPMAXDOMAIN)) return (FALSE); - } - trace1(TR_xdr_ypbind_domain, 1); - return (TRUE); + return (xdr_rpcvers(xdrs, &objp->ypbind_vers)); } - bool_t -xdr_ypbind_binding(xdrs, objp) - XDR *xdrs; - ypbind_binding *objp; +xdr_ypbind_binding(XDR *xdrs, ypbind_binding *objp) { - trace1(TR_xdr_ypbind_binding, 0); if (!xdr_pointer(xdrs, (char **)&objp->ypbind_nconf, - sizeof (struct netconfig), xdr_netconfig)) { - trace1(TR_xdr_ypbind_binding, 1); + sizeof (struct netconfig), xdr_netconfig)) return (FALSE); - } if (!xdr_pointer(xdrs, (char **)&objp->ypbind_svcaddr, - sizeof (struct netbuf), xdr_netbuf)) { - trace1(TR_xdr_ypbind_binding, 1); + sizeof (struct netbuf), xdr_netbuf)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->ypbind_servername, ~0)) { - trace1(TR_xdr_ypbind_binding, 1); + if (!xdr_string(xdrs, &objp->ypbind_servername, ~0)) return (FALSE); - } - if (!xdr_rpcvers(xdrs, &objp->ypbind_hi_vers)) { - trace1(TR_xdr_ypbind_binding, 1); + if (!xdr_rpcvers(xdrs, &objp->ypbind_hi_vers)) return (FALSE); - } - if (!xdr_rpcvers(xdrs, &objp->ypbind_lo_vers)) { - trace1(TR_xdr_ypbind_binding, 1); - return (FALSE); - } - trace1(TR_xdr_ypbind_binding, 1); - return (TRUE); + return (xdr_rpcvers(xdrs, &objp->ypbind_lo_vers)); } - bool_t -xdr_ypbind_resp(xdrs, objp) - XDR *xdrs; - ypbind_resp *objp; +xdr_ypbind_resp(XDR *xdrs, ypbind_resp *objp) { - trace1(TR_xdr_ypbind_resp, 0); - if (!xdr_ypbind_resptype(xdrs, &objp->ypbind_status)) { - trace1(TR_xdr_ypbind_resp, 1); + if (!xdr_ypbind_resptype(xdrs, &objp->ypbind_status)) return (FALSE); - } switch (objp->ypbind_status) { case YPBIND_FAIL_VAL: - if (!xdr_u_int(xdrs, &objp->ypbind_resp_u.ypbind_error)) { - trace1(TR_xdr_ypbind_resp, 1); + if (!xdr_u_int(xdrs, &objp->ypbind_resp_u.ypbind_error)) return (FALSE); - } break; case YPBIND_SUCC_VAL: if (!xdr_pointer(xdrs, (char **)&objp->ypbind_resp_u.ypbind_bindinfo, - sizeof (ypbind_binding), xdr_ypbind_binding)) { - trace1(TR_xdr_ypbind_resp, 1); + sizeof (ypbind_binding), xdr_ypbind_binding)) return (FALSE); - } break; default: - trace1(TR_xdr_ypbind_resp, 1); return (FALSE); } - trace1(TR_xdr_ypbind_resp, 1); return (TRUE); } - bool_t -xdr_ypbind_setdom(xdrs, objp) - XDR *xdrs; - ypbind_setdom *objp; +xdr_ypbind_setdom(XDR *xdrs, ypbind_setdom *objp) { - trace1(TR_xdr_ypbind_setdom, 0); - if (!xdr_string(xdrs, &objp->ypsetdom_domain, YPMAXDOMAIN)) { - trace1(TR_xdr_ypbind_setdom, 1); + if (!xdr_string(xdrs, &objp->ypsetdom_domain, YPMAXDOMAIN)) return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->ypsetdom_bindinfo, - sizeof (ypbind_binding), xdr_ypbind_binding)) { - trace1(TR_xdr_ypbind_setdom, 1); - return (FALSE); - } - trace1(TR_xdr_ypbind_setdom, 1); - return (TRUE); + return (xdr_pointer(xdrs, (char **)&objp->ypsetdom_bindinfo, + sizeof (ypbind_binding), xdr_ypbind_binding)); } diff --git a/usr/src/lib/libnsl/yp/yp_bind.c b/usr/src/lib/libnsl/yp/yp_bind.c index e712b66077..4d84cad177 100644 --- a/usr/src/lib/libnsl/yp/yp_bind.c +++ b/usr/src/lib/libnsl/yp/yp_bind.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -41,7 +43,6 @@ #include <string.h> #include <sys/types.h> #include <sys/stat.h> -#include <rpc/trace.h> #include <errno.h> #include <unistd.h> #include <rpc/rpc.h> @@ -136,8 +137,7 @@ static struct dom_binding *bound_domains; /* List of bound domains */ * that cannot be referenced by another thread. */ void -free_dom_binding(p) - struct dom_binding *p; +free_dom_binding(struct dom_binding *p) { if (p->ref_count != 0) { p->need_free = 1; @@ -146,7 +146,7 @@ free_dom_binding(p) (void) check_rdev(p); clnt_destroy(p->dom_client); free(p->dom_domain); - free((char *)p); + free(p); } /* @@ -159,8 +159,7 @@ free_dom_binding(p) */ static void -__yp_unbind_nolock(domain) -char *domain; +__yp_unbind_nolock(char *domain) { struct dom_binding *p; struct dom_binding **prev; @@ -198,15 +197,11 @@ char *domain; void -yp_unbind(domain) -char *domain; +yp_unbind(char *domain) { - - trace1(TR_yp_unbind, 0); - mutex_lock(&bound_domains_lock); + (void) mutex_lock(&bound_domains_lock); __yp_unbind_nolock(domain); - mutex_unlock(&bound_domains_lock); - trace1(TR_yp_unbind, 1); + (void) mutex_unlock(&bound_domains_lock); } @@ -218,13 +213,12 @@ char *domain; * all requests. */ static void -newborn() +newborn(void) { static pid_t mypid; /* Cached to detect forks */ pid_t testpid; struct dom_binding *p, *q; - trace1(TR_newborn, 0); if ((testpid = getpid()) != mypid) { mypid = testpid; @@ -235,7 +229,6 @@ newborn() } bound_domains = 0; } - trace1(TR_newborn, 1); } /* @@ -250,15 +243,12 @@ newborn() * all requests. */ static bool -check_binding(domain, binding) -char *domain; -struct dom_binding **binding; +check_binding(char *domain, struct dom_binding **binding) { struct dom_binding *pdomb; struct ypbind_resp *ypbind_resp; int status; - trace1(TR_check_binding, 0); for (pdomb = bound_domains; pdomb != NULL; pdomb = pdomb->dom_pnext) { if (strcmp(domain, pdomb->dom_domain) == 0) { @@ -272,7 +262,6 @@ struct dom_binding **binding; */ *binding = pdomb; - trace1(TR_check_binding, 1); return (TRUE); } } @@ -284,15 +273,11 @@ struct dom_binding **binding; */ if ((ypbind_resp = get_cached_domain(domain)) != 0) { pdomb = load_dom_binding(ypbind_resp, domain, &status); - if (pdomb == 0) { - trace1(TR_check_binding, 1); + if (pdomb == 0) return (FALSE); - } *binding = pdomb; - trace1(TR_check_binding, 1); return (TRUE); } - trace1(TR_check_binding, 1); return (FALSE); } @@ -320,20 +305,19 @@ __yp_add_binding_netid(char *domain, char *addr, char *netid) if (nconf == 0) goto err; - svcaddr = (struct netbuf *)malloc(sizeof (struct netbuf)); + svcaddr = malloc(sizeof (struct netbuf)); if (svcaddr == 0) goto err; svcaddr->maxlen = SOCKADDR_SIZE; - svcaddr->buf = (char *)malloc(SOCKADDR_SIZE); + svcaddr->buf = malloc(SOCKADDR_SIZE); if (svcaddr->buf == 0) goto err; if (!rpcb_getaddr(YPPROG, YPVERS, nconf, svcaddr, addr)) goto err; - binding = (struct ypbind_binding *) - malloc(sizeof (struct ypbind_binding)); + binding = malloc(sizeof (struct ypbind_binding)); if (binding == 0) goto err; @@ -348,10 +332,10 @@ __yp_add_binding_netid(char *domain, char *addr, char *netid) resp.ypbind_status = YPBIND_SUCC_VAL; resp.ypbind_resp_u.ypbind_bindinfo = binding; - mutex_lock(&bound_domains_lock); + (void) mutex_lock(&bound_domains_lock); newborn(); pdomb = load_dom_binding(&resp, domain, &status); - mutex_unlock(&bound_domains_lock); + (void) mutex_unlock(&bound_domains_lock); return (pdomb != 0); @@ -360,8 +344,8 @@ err: freenetconfigent(nconf); if (svcaddr) { if (svcaddr->buf) - free((void *)svcaddr->buf); - free((void *)svcaddr); + free(svcaddr->buf); + free(svcaddr); } if (binding) { if (binding->ypbind_servername) @@ -394,23 +378,17 @@ __yp_add_binding(char *domain, char *addr) { * all requests. */ static struct dom_binding * -load_dom_binding(ypbind_res, domain, err) -struct ypbind_resp *ypbind_res; -char *domain; -int *err; +load_dom_binding(struct ypbind_resp *ypbind_res, char *domain, int *err) { int fd; struct dom_binding *pdomb; - trace1(TR_load_dom_binding, 0); - pdomb = (struct dom_binding *)NULL; + pdomb = NULL; - if ((pdomb = (struct dom_binding *)malloc(sizeof (struct dom_binding))) - == NULL) { + if ((pdomb = malloc(sizeof (struct dom_binding))) == NULL) { syslog(LOG_ERR, "load_dom_binding: malloc failure."); *err = YPERR_RESRC; - trace1(TR_load_dom_binding, 1); - return (struct dom_binding *)(NULL); + return (NULL); } pdomb->dom_binding = ypbind_res->ypbind_resp_u.ypbind_bindinfo; @@ -424,23 +402,21 @@ int *err; __ypipbufsize); if (pdomb->dom_client == NULL) { clnt_pcreateerror("yp_bind: clnt_tli_create"); - free((char *)pdomb); + free(pdomb); *err = YPERR_RPC; - trace1(TR_load_dom_binding, 1); - return (struct dom_binding *)(NULL); + return (NULL); } #ifdef DEBUG (void) printf("yp_bind: clnt_tli_create suceeded\n"); #endif pdomb->dom_pnext = bound_domains; /* Link this to the list as */ - pdomb->dom_domain = malloc(strlen(domain)+(unsigned)1); + pdomb->dom_domain = malloc(strlen(domain) + (unsigned)1); if (pdomb->dom_domain == NULL) { clnt_destroy(pdomb->dom_client); - free((char *)pdomb); + free(pdomb); *err = YPERR_RESRC; - trace1(TR_load_dom_binding, 1); - return (struct dom_binding *)(NULL); + return (NULL); } /* * We may not have loaded from a cache file, but we assume the @@ -454,9 +430,8 @@ int *err; (void) strcpy(pdomb->dom_domain, domain); /* Remember the domain name */ pdomb->ref_count = 0; pdomb->need_free = 0; - mutex_init(&pdomb->server_name_lock, USYNC_THREAD, 0); + (void) mutex_init(&pdomb->server_name_lock, USYNC_THREAD, 0); bound_domains = pdomb; /* ... the head entry */ - trace1(TR_load_dom_binding, 1); return (pdomb); } @@ -465,32 +440,23 @@ int *err; * a reserved port. */ static int -tli_open_rsvdport(nconf) - struct netconfig *nconf; /* netconfig structure */ +tli_open_rsvdport(struct netconfig *nconf) { int fd; - trace1(TR_tli_open_rsvdport, 0); - if (nconf == (struct netconfig *)NULL) { - trace1(TR_tli_open_rsvdport, 1); + if (nconf == NULL) return (-1); - } fd = t_open(nconf->nc_device, O_RDWR, NULL); - if (fd == -1) { - trace1(TR_tli_open_rsvdport, 1); + if (fd == -1) return (-1); - } if (netdir_options(nconf, ND_SET_RESERVEDPORT, fd, NULL) == -1) { - if (t_bind(fd, (struct t_bind *)NULL, - (struct t_bind *)NULL) == -1) { + if (t_bind(fd, NULL, NULL) == -1) { (void) t_close(fd); - trace1(TR_tli_open_rsvdport, 1); return (-1); } } - trace1(TR_tli_open_rsvdport, 1); return (fd); } @@ -510,24 +476,18 @@ tli_open_rsvdport(nconf) * using free_dom_binding(). */ static struct dom_binding * -load_dom_binding_rsvdport(dom_binding, domain, err) -struct ypbind_binding *dom_binding; -char *domain; -int *err; +load_dom_binding_rsvdport(struct ypbind_binding *dom_binding, char *domain, + int *err) { struct dom_binding *pdomb; int fd; - trace1(TR_load_dom_binding_rsvdport, 0); - pdomb = (struct dom_binding *)NULL; + pdomb = NULL; - if ((pdomb = (struct dom_binding *)malloc(sizeof (struct dom_binding))) - == NULL) { - syslog(LOG_ERR, - "load_dom_binding_rsvdport: malloc failure."); + if ((pdomb = malloc(sizeof (struct dom_binding))) == NULL) { + syslog(LOG_ERR, "load_dom_binding_rsvdport: malloc failure."); *err = YPERR_RESRC; - trace1(TR_load_dom_binding_rsvdport, 1); - return ((struct dom_binding *)NULL); + return (NULL); } pdomb->dom_binding = dom_binding; @@ -537,10 +497,9 @@ int *err; fd = tli_open_rsvdport(pdomb->dom_binding->ypbind_nconf); if (fd < 0) { clnt_pcreateerror("yp_bind: tli_open_rsvdport"); - free((char *)pdomb); + free(pdomb); *err = YPERR_RPC; - trace1(TR_load_dom_binding_rsvdport, 1); - return ((struct dom_binding *)NULL); + return (NULL); } pdomb->dom_client = clnt_tli_create(fd, pdomb->dom_binding->ypbind_nconf, @@ -549,31 +508,28 @@ int *err; __ypipbufsize); if (pdomb->dom_client == NULL) { clnt_pcreateerror("yp_bind: clnt_tli_create"); - free((char *)pdomb); + free(pdomb); *err = YPERR_RPC; - trace1(TR_load_dom_binding_rsvdport, 1); - return ((struct dom_binding *)NULL); + return (NULL); } #ifdef DEBUG (void) printf("yp_bind: clnt_tli_create suceeded\n"); #endif - (void) CLNT_CONTROL(pdomb->dom_client, CLSET_FD_CLOSE, (char *)NULL); + (void) CLNT_CONTROL(pdomb->dom_client, CLSET_FD_CLOSE, NULL); - pdomb->dom_domain = malloc(strlen(domain)+(unsigned)1); + pdomb->dom_domain = malloc(strlen(domain) + (unsigned)1); if (pdomb->dom_domain == NULL) { clnt_destroy(pdomb->dom_client); - free((char *)pdomb); + free(pdomb); *err = YPERR_RESRC; - trace1(TR_load_dom_binding_rsvdport, 1); - return (struct dom_binding *)(NULL); + return (NULL); } (void) strcpy(pdomb->dom_domain, domain); /* Remember the domain name */ pdomb->ref_count = 0; pdomb->need_free = 0; set_rdev(pdomb); - mutex_init(&pdomb->server_name_lock, USYNC_THREAD, 0); - trace1(TR_load_dom_binding_rsvdport, 1); + (void) mutex_init(&pdomb->server_name_lock, USYNC_THREAD, 0); return (pdomb); } @@ -602,15 +558,12 @@ __yp_dobind_cflookup( int status, err = YPERR_DOMAIN; int tries = 4; /* if not hardlookup, try 4 times max to bind */ int first_try = 1; - CLIENT *tb = (CLIENT *)NULL; + CLIENT *tb = NULL; - trace1(TR___yp_dobind, 0); - if ((domain == NULL) ||(strlen(domain) == 0)) { - trace1(TR___yp_dobind, 1); + if ((domain == NULL) ||(strlen(domain) == 0)) return (YPERR_BADARGS); - } - mutex_lock(&bound_domains_lock); + (void) mutex_lock(&bound_domains_lock); /* * ===> * If someone managed to fork() while we were holding this lock, @@ -626,8 +579,7 @@ __yp_dobind_cflookup( */ if (!(*binding)->cache_bad && check_rdev(*binding)) { (*binding)->ref_count += 1; - mutex_unlock(&bound_domains_lock); - trace1(TR___yp_dobind, 1); + (void) mutex_unlock(&bound_domains_lock); return (0); /* We are bound */ } @@ -649,13 +601,12 @@ __yp_dobind_cflookup( __yp_unbind_nolock(domain); } else { (*binding)->cache_bad = 1; - mutex_unlock(&bound_domains_lock); + (void) mutex_unlock(&bound_domains_lock); yp_unbind(domain); - mutex_lock(&bound_domains_lock); + (void) mutex_lock(&bound_domains_lock); if (check_binding(domain, binding)) { (*binding)->ref_count += 1; - mutex_unlock(&bound_domains_lock); - trace1(TR___yp_dobind, 1); + (void) mutex_unlock(&bound_domains_lock); return (0); } } @@ -694,7 +645,7 @@ __yp_dobind_cflookup( clnt_perror(tb, "ypbindproc_domain_3: can't contact ypbind"); clnt_destroy(tb); - tb = (CLIENT *)NULL; + tb = NULL; continue; } if (ypbind_resp->ypbind_status == YPBIND_SUCC_VAL) { @@ -706,14 +657,13 @@ __yp_dobind_cflookup( if (pdomb == 0) { err = status; clnt_destroy(tb); - tb = (CLIENT *)NULL; + tb = NULL; continue; } clnt_destroy(tb); pdomb->ref_count += 1; - mutex_unlock(&bound_domains_lock); + (void) mutex_unlock(&bound_domains_lock); *binding = pdomb; /* Return ptr to the binding entry */ - trace1(TR___yp_dobind, 1); return (0); /* This is the go path */ } if (ypbind_resp->ypbind_resp_u.ypbind_error == @@ -722,12 +672,11 @@ __yp_dobind_cflookup( else err = YPERR_YPBIND; clnt_destroy(tb); - tb = (CLIENT *)NULL; + tb = NULL; } - if (tb != (CLIENT *)NULL) + if (tb != NULL) clnt_destroy(tb); - mutex_unlock(&bound_domains_lock); - trace1(TR___yp_dobind, 1); + (void) mutex_unlock(&bound_domains_lock); if (err) return (err); return (YPERR_DOMAIN); @@ -743,14 +692,13 @@ __yp_dobind( } void -__yp_rel_binding(binding) - struct dom_binding *binding; +__yp_rel_binding(struct dom_binding *binding) { - mutex_lock(&bound_domains_lock); + (void) mutex_lock(&bound_domains_lock); binding->ref_count -= 1; if (binding->need_free && binding->ref_count == 0) free_dom_binding(binding); - mutex_unlock(&bound_domains_lock); + (void) mutex_unlock(&bound_domains_lock); } /* @@ -779,15 +727,12 @@ __yp_dobind_rsvdport_cflookup( int status, err = YPERR_DOMAIN; int tries = 4; /* if not hardlookup, try a few times to bind */ int first_try = 1; - CLIENT *tb = (CLIENT *)NULL; + CLIENT *tb = NULL; - trace1(TR___yp_dobind_rsvdport, 0); - if ((domain == NULL) ||(strlen(domain) == 0)) { - trace1(TR___yp_dobind_rsvdport, 1); + if ((domain == NULL) ||(strlen(domain) == 0)) return (YPERR_BADARGS); - } - mutex_lock(&bound_domains_lock); + (void) mutex_lock(&bound_domains_lock); /* * ===> * If someone managed to fork() while we were holding this lock, @@ -811,14 +756,12 @@ __yp_dobind_rsvdport_cflookup( (*binding)->dom_binding, domain, &status); if (pdomb == 0) { - mutex_unlock(&bound_domains_lock); - trace1(TR___yp_dobind_rsvdport, 1); + (void) mutex_unlock(&bound_domains_lock); return (status); } pdomb->ref_count += 1; - mutex_unlock(&bound_domains_lock); + (void) mutex_unlock(&bound_domains_lock); *binding = pdomb; /* Return ptr to the binding entry */ - trace1(TR___yp_dobind_rsvdport, 1); return (0); } } @@ -856,7 +799,7 @@ __yp_dobind_rsvdport_cflookup( clnt_perror(tb, "ypbindproc_domain_3: can't contact ypbind"); clnt_destroy(tb); - tb = (CLIENT *)NULL; + tb = NULL; continue; } if (ypbind_resp->ypbind_status == YPBIND_SUCC_VAL) { @@ -870,14 +813,13 @@ __yp_dobind_rsvdport_cflookup( if (pdomb == 0) { err = status; clnt_destroy(tb); - tb = (CLIENT *)NULL; + tb = NULL; continue; } clnt_destroy(tb); pdomb->ref_count += 1; - mutex_unlock(&bound_domains_lock); + (void) mutex_unlock(&bound_domains_lock); *binding = pdomb; /* Return ptr to the binding entry */ - trace1(TR___yp_dobind_rsvdport, 1); return (0); /* This is the go path */ } if (ypbind_resp->ypbind_resp_u.ypbind_error == @@ -886,12 +828,11 @@ __yp_dobind_rsvdport_cflookup( else err = YPERR_YPBIND; clnt_destroy(tb); - tb = (CLIENT *)NULL; + tb = NULL; } - if (tb != (CLIENT *)NULL) + if (tb != NULL) clnt_destroy(tb); - mutex_unlock(&bound_domains_lock); - trace1(TR___yp_dobind_rsvdport, 1); + (void) mutex_unlock(&bound_domains_lock); if (err) return (err); return (YPERR_DOMAIN); @@ -911,55 +852,44 @@ __yp_dobind_rsvdport( * functions which neither know nor care about struct dom_bindings. */ int -yp_bind(domain) -char *domain; +yp_bind(char *domain) { struct dom_binding *binding; - int dummy; + int res; - trace1(TR_yp_bind, 0); - dummy = __yp_dobind(domain, &binding); - if (dummy == 0) + res = __yp_dobind(domain, &binding); + if (res == 0) __yp_rel_binding(binding); - trace1(TR_yp_bind, 1); - - return (dummy); + return (res); } static char * -__default_domain() +__default_domain(void) { char temp[256]; - trace1(TR___default_domain, 0); - - mutex_lock(&default_domain_lock); + (void) mutex_lock(&default_domain_lock); if (default_domain) { - mutex_unlock(&default_domain_lock); - trace1(TR___default_domain, 1); + (void) mutex_unlock(&default_domain_lock); return (default_domain); } if (getdomainname(temp, sizeof (temp)) < 0) { - mutex_unlock(&default_domain_lock); - trace1(TR___default_domain, 1); + (void) mutex_unlock(&default_domain_lock); return (0); } if (strlen(temp) > 0) { - default_domain = (char *)malloc((strlen(temp) + 1)); + default_domain = malloc((strlen(temp) + 1)); if (default_domain == 0) { - mutex_unlock(&default_domain_lock); - trace1(TR___default_domain, 1); + (void) mutex_unlock(&default_domain_lock); return (0); } (void) strcpy(default_domain, temp); - mutex_unlock(&default_domain_lock); - trace1(TR___default_domain, 1); + (void) mutex_unlock(&default_domain_lock); return (default_domain); } - mutex_unlock(&default_domain_lock); - trace1(TR___default_domain, 1); + (void) mutex_unlock(&default_domain_lock); return (0); } @@ -970,16 +900,10 @@ __default_domain() * get rejected elsewhere in the yp client package. */ int -yp_get_default_domain(domain) -char **domain; +yp_get_default_domain(char **domain) { - trace1(TR_yp_get_default_domain, 0); - - if ((*domain = __default_domain()) != 0) { - trace1(TR_yp_get_default_domain, 1); + if ((*domain = __default_domain()) != 0) return (0); - } - trace1(TR_yp_get_default_domain, 1); return (YPERR_YPERR); } @@ -987,19 +911,14 @@ char **domain; * ===> Nobody uses this, do they? Can we nuke it? */ int -usingypmap(ddn, map) -char **ddn; /* the default domainname set by this routine */ -char *map; /* the map we are interested in. */ +usingypmap(char **ddn, char *map) { char in, *outval = NULL; int outvallen, stat; char *domain; - trace1(TR_usingypmap, 0); - if ((domain = __default_domain()) == 0) { - trace1(TR_usingypmap, 1); + if ((domain = __default_domain()) == 0) return (FALSE); - } *ddn = domain; /* does the map exist ? */ in = (char)0xff; @@ -1012,10 +931,8 @@ char *map; /* the map we are interested in. */ case YPERR_KEY: /* no such key in map */ case YPERR_NOMORE: case YPERR_BUSY: - trace1(TR_usingypmap, 1); return (TRUE); } - trace1(TR_usingypmap, 1); return (FALSE); } @@ -1025,24 +942,19 @@ char *map; /* the map we are interested in. */ * it goes to is straddr.so. */ CLIENT * -__clnt_create_loopback(prog, vers, err) - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - int *err; /* return the YP sepcific error code */ +__clnt_create_loopback(rpcprog_t prog, rpcvers_t vers, int *err) { struct netconfig *nconf; CLIENT *clnt = NULL; void *nc_handle; /* Net config handle */ - trace3(TR___clnt_create_loopback, 0, prog, vers); *err = 0; nc_handle = setnetconfig(); - if (nc_handle == (void *) NULL) { + if (nc_handle == NULL) { /* fails to open netconfig file */ rpc_createerr.cf_stat = RPC_FAILED; *err = YPERR_RPC; - trace1(TR___clnt_create_loopback, 1); - return ((CLIENT *) NULL); + return (NULL); } while (nconf = getnetconfig(nc_handle)) /* Try only one connection oriented loopback transport */ @@ -1052,23 +964,18 @@ __clnt_create_loopback(prog, vers, err) clnt = getclnt(prog, vers, nconf, err); break; } - endnetconfig(nc_handle); + (void) endnetconfig(nc_handle); - if (clnt == (CLIENT *) NULL) { /* no loopback transport available */ + if (clnt == NULL) { /* no loopback transport available */ if (rpc_createerr.cf_stat == 0) rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; if (*err == 0) *err = YPERR_RPC; } - trace1(TR___clnt_create_loopback, 1); return (clnt); } static CLIENT * -getclnt(prog, vers, nconf, err) -rpcprog_t prog; /* program number */ -rpcvers_t vers; /* version number */ -struct netconfig *nconf; -int *err; +getclnt(rpcprog_t prog, rpcvers_t vers, struct netconfig *nconf, int *err) { int fd; struct netbuf *svcaddr; /* servers address */ @@ -1082,12 +989,10 @@ int *err; char *ua; struct timeval tv = { 30, 0 }; - trace3(TR_getclnt, 0, prog, vers); - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_TLIERROR; *err = YPERR_RPC; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } /* @@ -1113,21 +1018,18 @@ int *err; if (netdir_getbyname(nconf, &rpcbind_hs, &nas) != ND_OK) { rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; *err = YPERR_RPC; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } if ((fd = t_open(nconf->nc_device, O_RDWR, NULL)) == -1) { rpc_createerr.cf_stat = RPC_TLIERROR; *err = YPERR_RPC; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } - if (t_bind(fd, (struct t_bind *)NULL, (struct t_bind *)NULL) == -1) { + if (t_bind(fd, NULL, NULL) == -1) { rpc_createerr.cf_stat = RPC_TLIERROR; *err = YPERR_RPC; (void) t_close(fd); - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } sndcall.addr = *(nas->n_addrs); sndcall.opt.len = 0; @@ -1137,8 +1039,7 @@ int *err; rpc_createerr.cf_stat = RPC_TLIERROR; (void) t_close(fd); *err = YPERR_PMAP; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } /* @@ -1147,11 +1048,10 @@ int *err; cl = clnt_tli_create(fd, nconf, nas->n_addrs, RPCBPROG, RPCBVERS, __ypipbufsize, __ypipbufsize); netdir_free((char *)nas, ND_ADDRLIST); - if (cl == (CLIENT *)NULL) { + if (cl == NULL) { (void) t_close(fd); *err = YPERR_PMAP; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } parms.r_prog = prog; parms.r_vers = vers; @@ -1165,13 +1065,12 @@ int *err; clnt_destroy(cl); if (clnt_st != RPC_SUCCESS) { *err = YPERR_YPBIND; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } if (strlen(uaddress) == 0) { *err = YPERR_YPBIND; rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED; - return ((CLIENT *)NULL); + return (NULL); } create_client: @@ -1179,31 +1078,25 @@ create_client: cl = clnt_tli_create(RPC_ANYFD, nconf, svcaddr, prog, vers, __ypipbufsize, __ypipbufsize); netdir_free((char *)svcaddr, ND_ADDR); - if (cl == (CLIENT *)NULL) { + if (cl == NULL) { *err = YPERR_YPBIND; - trace1(TR_getclnt, 1); - return ((CLIENT *)NULL); + return (NULL); } /* * The fd should be closed while destroying the handle. */ - trace1(TR_getclnt, 1); return (cl); } -static -int -get_cached_transport(nconf, vers, uaddress, ulen) - struct netconfig *nconf; - int vers; - char *uaddress; - int ulen; +static int +get_cached_transport(struct netconfig *nconf, int vers, char *uaddress, + int ulen) { ssize_t st; int fd; - (void) sprintf(uaddress, "%s/xprt.%s.%d", BINDING, nconf->nc_netid, - vers); + (void) snprintf(uaddress, ulen, + "%s/xprt.%s.%d", BINDING, nconf->nc_netid, vers); fd = open(uaddress, O_RDONLY); if (fd == -1) return (0); @@ -1225,10 +1118,8 @@ get_cached_transport(nconf, vers, uaddress, ulen) return (1); } -static -ypbind_resp * -get_cached_domain(domain) - char *domain; +static ypbind_resp * +get_cached_domain(char *domain) { __NSL_FILE *fp; int st; @@ -1236,7 +1127,8 @@ get_cached_domain(domain) static ypbind_resp res; XDR xdrs; - (void) sprintf(filename, "%s/%s/cache_binding", BINDING, domain); + (void) snprintf(filename, sizeof (filename), + "%s/%s/cache_binding", BINDING, domain); fp = __nsl_fopen(filename, "r"); if (fp == 0) return (0); @@ -1262,17 +1154,14 @@ get_cached_domain(domain) return (0); } -static -int -ypbind_running(err, status) - int err; - int status; +static int +ypbind_running(int err, int status) { char filename[300]; int st; int fd; - (void) sprintf(filename, "%s/ypbind.pid", BINDING); + (void) snprintf(filename, sizeof (filename), "%s/ypbind.pid", BINDING); fd = open(filename, O_RDONLY); if (fd == -1) { if ((err == YPERR_YPBIND) && (status != RPC_PROGNOTREGISTERED)) @@ -1291,10 +1180,8 @@ ypbind_running(err, status) return (1); } -static -void -set_rdev(pdomb) - struct dom_binding *pdomb; +static void +set_rdev(struct dom_binding *pdomb) { int fd; struct stat stbuf; @@ -1309,10 +1196,8 @@ set_rdev(pdomb) pdomb->rdev = stbuf.st_rdev; } -static -int -check_rdev(pdomb) - struct dom_binding *pdomb; +static int +check_rdev(struct dom_binding *pdomb) { struct stat stbuf; @@ -1323,7 +1208,7 @@ check_rdev(pdomb) syslog(LOG_DEBUG, "yp_bind client: can't stat %d", pdomb->fd); /* could be because file descriptor was closed */ /* it's not our file descriptor, so don't try to close it */ - clnt_control(pdomb->dom_client, CLSET_FD_NCLOSE, (char *)NULL); + clnt_control(pdomb->dom_client, CLSET_FD_NCLOSE, NULL); return (0); } if (pdomb->rdev != stbuf.st_rdev) { @@ -1331,7 +1216,7 @@ check_rdev(pdomb) "yp_bind client: fd %d changed, old=0x%x, new=0x%x", pdomb->fd, pdomb->rdev, stbuf.st_rdev); /* it's not our file descriptor, so don't try to close it */ - clnt_control(pdomb->dom_client, CLSET_FD_NCLOSE, (char *)NULL); + clnt_control(pdomb->dom_client, CLSET_FD_NCLOSE, NULL); return (0); } return (1); /* fd is okay */ diff --git a/usr/src/lib/libnsl/yp/yp_enum.c b/usr/src/lib/libnsl/yp/yp_enum.c index 24bc9ff1d1..bf8d964e41 100644 --- a/usr/src/lib/libnsl/yp/yp_enum.c +++ b/usr/src/lib/libnsl/yp/yp_enum.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1999 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,16 +36,14 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#define NULL 0 +#include <stdlib.h> +#include <unistd.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> #include <string.h> -#include <stdlib.h> -#include <unistd.h> extern int __yp_dobind_cflookup(char *, struct dom_binding **, int); @@ -74,28 +74,20 @@ __yp_first_cflookup( struct dom_binding *pdomb; int reason; - trace1(TR_yp_first, 0); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_first, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || - (maplen == 0) || (maplen > YPMAXMAP)) { - trace1(TR_yp_first, 1); + (maplen == 0) || (maplen > YPMAXMAP)) return (YPERR_BADARGS); - } for (;;) { - if (reason = __yp_dobind_cflookup(domain, &pdomb, - hardlookup)) { - trace1(TR_yp_first, 1); + if (reason = __yp_dobind_cflookup(domain, &pdomb, hardlookup)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers == YPVERS) { @@ -108,19 +100,15 @@ __yp_first_cflookup( yp_unbind(domain); if (hardlookup) (void) _sleep(_ypsleeptime); /* retry */ - else { - trace1(TR_yp_match, 1); + else return (reason); - } } else break; } else { __yp_rel_binding(pdomb); - trace1(TR_yp_first, 1); return (YPERR_VERS); } } - trace1(TR_yp_first, 1); return (reason); } @@ -157,7 +145,6 @@ dofirst(domain, map, pdomb, timeout, key, keylen, val, vallen) struct ypresp_key_val resp; unsigned int retval = 0; - trace1(TR_dofirst, 0); req.domain = domain; req.map = map; resp.keydat.dptr = resp.valdat.dptr = NULL; @@ -177,10 +164,8 @@ dofirst(domain, map, pdomb, timeout, key, keylen, val, vallen) case RPC_SUCCESS: break; case RPC_TIMEDOUT: - trace1(TR_dofirst, 1); return (YPERR_YPSERV); default: - trace1(TR_dofirst, 1); return (YPERR_RPC); } @@ -198,7 +183,7 @@ dofirst(domain, map, pdomb, timeout, key, keylen, val, vallen) if ((*val = malloc( (size_t)resp.valdat.dsize + 2)) == NULL) { - free((char *)*key); + free(*key); retval = YPERR_RESRC; } @@ -225,7 +210,6 @@ dofirst(domain, map, pdomb, timeout, key, keylen, val, vallen) CLNT_FREERES(pdomb->dom_client, (xdrproc_t)xdr_ypresp_key_val, (char *)&resp); - trace1(TR_dofirst, 1); return (retval); } @@ -255,27 +239,19 @@ __yp_next_cflookup( int reason; - trace1(TR_yp_next, 0); - if ((map == NULL) || (domain == NULL) || (inkey == NULL)) { - trace1(TR_yp_next, 1); + if ((map == NULL) || (domain == NULL) || (inkey == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || - (maplen == 0) || (maplen > YPMAXMAP)) { - trace1(TR_yp_next, 1); + (maplen == 0) || (maplen > YPMAXMAP)) return (YPERR_BADARGS); - } for (;;) { - if (reason = __yp_dobind_cflookup(domain, &pdomb, - hardlookup)) { - trace1(TR_yp_next, 1); + if (reason = __yp_dobind_cflookup(domain, &pdomb, hardlookup)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers == YPVERS) { @@ -289,20 +265,16 @@ __yp_next_cflookup( yp_unbind(domain); if (hardlookup) (void) _sleep(_ypsleeptime); /* retry */ - else { - trace1(TR_yp_match, 1); + else return (reason); - } } else break; } else { __yp_rel_binding(pdomb); - trace1(TR_yp_next, 1); return (YPERR_VERS); } } - trace1(TR_yp_next, 1); return (reason); } @@ -345,7 +317,6 @@ donext(domain, map, inkey, inkeylen, pdomb, timeout, outkey, outkeylen, struct ypresp_key_val resp; unsigned int retval = 0; - trace2(TR_donext, 0, inkeylen); req.domain = domain; req.map = map; req.keydat.dptr = inkey; @@ -366,10 +337,8 @@ donext(domain, map, inkey, inkeylen, pdomb, timeout, outkey, outkeylen, case RPC_SUCCESS: break; case RPC_TIMEDOUT: - trace1(TR_dofirst, 1); return (YPERR_YPSERV); default: - trace1(TR_dofirst, 1); return (YPERR_RPC); } @@ -387,7 +356,7 @@ donext(domain, map, inkey, inkeylen, pdomb, timeout, outkey, outkeylen, if ((*val = malloc((size_t) resp.valdat.dsize + 2)) == NULL) { - free((char *)*outkey); + free(*outkey); retval = YPERR_RESRC; } @@ -414,6 +383,5 @@ donext(domain, map, inkey, inkeylen, pdomb, timeout, outkey, outkeylen, CLNT_FREERES(pdomb->dom_client, (xdrproc_t)xdr_ypresp_key_val, (char *)&resp); - trace1(TR_donext, 1); return (retval); } diff --git a/usr/src/lib/libnsl/yp/yp_master.c b/usr/src/lib/libnsl/yp/yp_master.c index 338f4e75d9..c748689c91 100644 --- a/usr/src/lib/libnsl/yp/yp_master.c +++ b/usr/src/lib/libnsl/yp/yp_master.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1998 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,58 +36,46 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#define NULL 0 +#include <stdlib.h> +#include <unistd.h> #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> -#include <stdlib.h> -#include <unistd.h> #include <string.h> static int domaster(char *, char *, struct dom_binding *, struct timeval, char **); -int __yp_master_rsvdport(); +extern int __yp_master_rsvdport(char *, char *, char **); /* * This checks parameters, and implements the outer "until binding success" * loop. */ int -yp_master (domain, map, master) - char *domain; - char *map; - char **master; +yp_master(char *domain, char *map, char **master) { size_t domlen; size_t maplen; int reason; struct dom_binding *pdomb; - trace1(TR_yp_master, 0); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_master, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (master == NULL)) { - trace1(TR_yp_master, 1); + (master == NULL)) return (YPERR_BADARGS); - } for (;;) { - if (reason = __yp_dobind(domain, &pdomb)) { - trace1(TR_yp_master, 1); + if (reason = __yp_dobind(domain, &pdomb)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers >= YPVERS) { @@ -101,7 +91,6 @@ yp_master (domain, map, master) } } else { __yp_rel_binding(pdomb); - trace1(TR_yp_master, 1); return (YPERR_VERS); } } @@ -118,7 +107,6 @@ yp_master (domain, map, master) reason = rsvdreason; } - trace1(TR_yp_master, 1); return (reason); } @@ -128,38 +116,28 @@ yp_master (domain, map, master) * '__yp_dobind_rsvdport' rather than '__yp_dobind' */ int -__yp_master_rsvdport (domain, map, master) - char *domain; - char *map; - char **master; +__yp_master_rsvdport(char *domain, char *map, char **master) { size_t domlen; size_t maplen; int reason; struct dom_binding *pdomb; - trace1(TR_yp_master, 0); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_master, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (master == NULL)) { - trace1(TR_yp_master, 1); + (master == NULL)) return (YPERR_BADARGS); - } for (;;) { - if (reason = __yp_dobind_rsvdport(domain, &pdomb)) { - trace1(TR_yp_master, 1); + if (reason = __yp_dobind_rsvdport(domain, &pdomb)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers >= YPVERS) { @@ -185,12 +163,9 @@ __yp_master_rsvdport (domain, map, master) */ __yp_rel_binding(pdomb); free_dom_binding(pdomb); - trace1(TR_yp_master, 1); return (YPERR_VERS); } } - - trace1(TR_yp_master, 1); return (reason); } @@ -198,21 +173,16 @@ __yp_master_rsvdport (domain, map, master) * This talks v2 to ypserv */ static int -domaster (domain, map, pdomb, timeout, master) - char *domain; - char *map; - struct dom_binding *pdomb; - struct timeval timeout; - char **master; +domaster(char *domain, char *map, struct dom_binding *pdomb, + struct timeval timeout, char **master) { struct ypreq_nokey req; struct ypresp_master resp; unsigned int retval = 0; - trace1(TR_domaster, 0); req.domain = domain; req.map = map; - (void) memset((char *) &resp, 0, sizeof (struct ypresp_master)); + (void) memset(&resp, 0, sizeof (struct ypresp_master)); /* * Do the get_master request. If the rpc call failed, return with @@ -222,31 +192,23 @@ domaster (domain, map, pdomb, timeout, master) if (clnt_call(pdomb->dom_client, YPPROC_MASTER, (xdrproc_t)xdr_ypreq_nokey, (char *)&req, (xdrproc_t)xdr_ypresp_master, (char *)&resp, - timeout) != RPC_SUCCESS) { - trace1(TR_domaster, 1); + timeout) != RPC_SUCCESS) return (YPERR_RPC); - } /* See if the request succeeded */ - if (resp.status != YP_TRUE) { + if (resp.status != YP_TRUE) retval = ypprot_err(resp.status); - } /* Get some memory which the user can get rid of as he likes */ - if (!retval && ((*master = malloc(strlen(resp.master) + 1)) - == NULL)) { + if (!retval && ((*master = malloc(strlen(resp.master) + 1)) == NULL)) retval = YPERR_RESRC; - } - - if (!retval) { + if (!retval) (void) strcpy(*master, resp.master); - } CLNT_FREERES(pdomb->dom_client, (xdrproc_t)xdr_ypresp_master, (char *)&resp); - trace1(TR_domaster, 1); return (retval); } diff --git a/usr/src/lib/libnsl/yp/yp_match.c b/usr/src/lib/libnsl/yp/yp_match.c index 5176b14dbf..0318a378cb 100644 --- a/usr/src/lib/libnsl/yp/yp_match.c +++ b/usr/src/lib/libnsl/yp/yp_match.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,17 +36,15 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#define NULL 0 +#include <stdlib.h> +#include <unistd.h> #include "mt.h" #include "../rpc/rpc_mt.h" #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> -#include <stdlib.h> -#include <unistd.h> #include <malloc.h> #include <string.h> #include <sys/time.h> @@ -76,54 +76,39 @@ static struct cache *head; #define CACHETO 600 static void -freenode(n) - struct cache *n; +freenode(struct cache *n) { - trace1(TR_freenode, 0); if (n->val != 0) - free(n->val); + free(n->val); if (n->key != 0) - free(n->key); + free(n->key); if (n->map != 0) - free(n->map); + free(n->map); if (n->domain != 0) - free(n->domain); - free((char *)n); - trace1(TR_freenode, 1); + free(n->domain); + free(n); } static struct cache * -makenode(domain, map, keylen, vallen) - char *domain, *map; - int keylen, vallen; +makenode(char *domain, char *map, int keylen, int vallen) { struct cache *n; - trace3(TR_makenode, 0, keylen, vallen); - if ((n = (struct cache *)calloc(1, sizeof (*n))) == 0) { - trace1(TR_makenode, 1); + if ((n = calloc(1, sizeof (*n))) == 0) return (0); - } if (((n->domain = strdup(domain)) == 0) || ((n->map = strdup(map)) == 0) || ((n->key = malloc(keylen)) == 0) || ((n->val = malloc(vallen)) == 0)) { freenode(n); - trace1(TR_makenode, 1); return (0); } - trace1(TR_makenode, 1); return (n); } static int -in_cache(domain, map, key, keylen, val, vallen) - char *domain; - char *map; - char *key; - int keylen; - char **val; /* returns value array */ - int *vallen; /* returns bytes in val */ +in_cache(char *domain, char *map, char *key, int keylen, char **val, + int *vallen) { struct cache *c, **pp; int cnt; @@ -172,14 +157,8 @@ in_cache(domain, map, key, keylen, val, vallen) * (until success) sleep loop if 'hardlookup' parameter is set. */ int -__yp_match_cflookup(domain, map, key, keylen, val, vallen, hardlookup) - char *domain; - char *map; - char *key; - int keylen; - char **val; /* returns value array */ - int *vallen; /* returns bytes in val */ - int hardlookup; /* retry lookup until we get an answer */ +__yp_match_cflookup(char *domain, char *map, char *key, int keylen, char **val, + int *vallen, int hardlookup) { size_t domlen; size_t maplen; @@ -193,23 +172,18 @@ __yp_match_cflookup(domain, map, key, keylen, val, vallen, hardlookup) int found_it; int cachegen; - trace2(TR_yp_match, 0, keylen); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_match, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (key == NULL) || (keylen == 0)) { - trace1(TR_yp_match, 1); + (key == NULL) || (keylen == 0)) return (YPERR_BADARGS); - } - mutex_lock(&cache_lock); + (void) mutex_lock(&cache_lock); found_it = in_cache(domain, map, key, keylen, &my_val, &my_vallen); cachegen = generation; @@ -217,25 +191,20 @@ __yp_match_cflookup(domain, map, key, keylen, val, vallen, hardlookup) /* NB: Copy two extra bytes; see below */ savesize = my_vallen + 2; if ((*val = malloc((size_t)savesize)) == 0) { - trace1(TR_yp_match, 1); - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); return (YPERR_RESRC); } (void) memcpy(*val, my_val, (size_t)savesize); *vallen = my_vallen; - trace1(TR_yp_match, 1); - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); return (0); /* Success */ } - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); for (;;) { - if (reason = __yp_dobind_cflookup(domain, &pdomb, - hardlookup)) { - trace1(TR_yp_match, 1); + if (reason = __yp_dobind_cflookup(domain, &pdomb, hardlookup)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers >= YPVERS) { @@ -248,22 +217,19 @@ __yp_match_cflookup(domain, map, key, keylen, val, vallen, hardlookup) yp_unbind(domain); if (hardlookup) (void) _sleep(_ypsleeptime); /* retry */ - else { - trace1(TR_yp_match, 1); + else return (reason); - } } else break; } else { __yp_rel_binding(pdomb); - trace1(TR_yp_match, 1); return (YPERR_VERS); } } /* add to our cache */ if (reason == 0) { - mutex_lock(&cache_lock); + (void) mutex_lock(&cache_lock); /* * Check whether some other annoying thread did the same * thing in parallel with us. I hate it when that happens... @@ -301,7 +267,7 @@ __yp_match_cflookup(domain, map, key, keylen, val, vallen, hardlookup) ++generation; } } - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); } else if (reason == YPERR_MAP && geteuid() == 0) { /* * Lookup could be for a secure map; fail over to retry @@ -314,7 +280,6 @@ __yp_match_cflookup(domain, map, key, keylen, val, vallen, hardlookup) if (rsvdreason == 0) reason = rsvdreason; } - trace1(TR_yp_match, 1); return (reason); } @@ -333,15 +298,15 @@ yp_match( } extern void -__empty_yp_cache() +__empty_yp_cache(void) { struct cache *p, *n; /* Copy the cache pointer and make it ZERO */ - mutex_lock(&cache_lock); + (void) mutex_lock(&cache_lock); p = head; head = 0; - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); if (p == 0) return; @@ -391,48 +356,39 @@ __yp_match_rsvdport_cflookup( int found_it; int cachegen; - trace2(TR_yp_match_rsvdport, 0, keylen); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_match_rsvdport, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (key == NULL) || (keylen == 0)) { - trace1(TR_yp_match_rsvdport, 1); + (key == NULL) || (keylen == 0)) return (YPERR_BADARGS); - } - mutex_lock(&cache_lock); + (void) mutex_lock(&cache_lock); found_it = in_cache(domain, map, key, keylen, &my_val, &my_vallen); cachegen = generation; if (found_it) { /* NB: Copy two extra bytes; see below */ savesize = my_vallen + 2; if ((*val = malloc((size_t)savesize)) == 0) { - trace1(TR_yp_match_rsvdport, 1); - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); return (YPERR_RESRC); } (void) memcpy(*val, my_val, (size_t)savesize); *vallen = my_vallen; - trace1(TR_yp_match_rsvdport, 1); - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); return (0); /* Success */ } - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); for (;;) { if (reason = __yp_dobind_rsvdport_cflookup(domain, &pdomb, - hardlookup)) { - trace1(TR_yp_match_rsvdport, 1); + hardlookup)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers >= YPVERS) { @@ -451,10 +407,8 @@ __yp_match_rsvdport_cflookup( yp_unbind(domain); if (hardlookup) (void) _sleep(_ypsleeptime); /* retry */ - else { - trace1(TR_yp_match, 1); + else return (reason); - } } else break; } else { @@ -464,14 +418,13 @@ __yp_match_rsvdport_cflookup( */ __yp_rel_binding(pdomb); free_dom_binding(pdomb); - trace1(TR_yp_match_rsvdport, 1); return (YPERR_VERS); } } /* add to our cache */ if (reason == 0) { - mutex_lock(&cache_lock); + (void) mutex_lock(&cache_lock); /* * Check whether some other annoying thread did the same * thing in parallel with us. I hate it when that happens... @@ -509,9 +462,8 @@ __yp_match_rsvdport_cflookup( ++generation; } } - mutex_unlock(&cache_lock); + (void) mutex_unlock(&cache_lock); } - trace1(TR_yp_match_rsvdport, 1); return (reason); } @@ -543,7 +495,6 @@ domatch(char *domain, char *map, char *key, int keylen, struct ypresp_val resp; unsigned int retval = 0; - trace2(TR_domatch, 0, keylen); req.domain = domain; req.map = map; req.keydat.dptr = key; @@ -565,10 +516,8 @@ domatch(char *domain, char *map, char *key, int keylen, case RPC_SUCCESS: break; case RPC_TIMEDOUT: - trace1(TR_domatch, 1); return (YPERR_YPSERV); default: - trace1(TR_domatch, 1); return (YPERR_RPC); } @@ -597,7 +546,5 @@ domatch(char *domain, char *map, char *key, int keylen, CLNT_FREERES(pdomb->dom_client, (xdrproc_t)xdr_ypresp_val, (char *)&resp); - trace1(TR_domatch, 1); return (retval); - } diff --git a/usr/src/lib/libnsl/yp/yp_order.c b/usr/src/lib/libnsl/yp/yp_order.c index c6acf87cbd..be52047cfe 100644 --- a/usr/src/lib/libnsl/yp/yp_order.c +++ b/usr/src/lib/libnsl/yp/yp_order.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1997 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,15 +36,13 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#define NULL 0 +#include <stdlib.h> +#include <unistd.h> #include <rpc/rpc.h> #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> #include <sys/types.h> -#include <rpc/trace.h> -#include <stdlib.h> -#include <unistd.h> #include <string.h> static int doorder(char *, char *, struct dom_binding *, struct timeval, @@ -54,38 +54,28 @@ static int doorder(char *, char *, struct dom_binding *, struct timeval, * loop. */ int -yp_order (domain, map, order) - char *domain; - char *map; - unsigned long *order; +yp_order(char *domain, char *map, unsigned long *order) { size_t domlen; size_t maplen; int reason; struct dom_binding *pdomb; - trace1(TR_yp_order, 0); - if ((map == NULL) || (domain == NULL)) { - trace1(TR_yp_order, 1); + if ((map == NULL) || (domain == NULL)) return (YPERR_BADARGS); - } domlen = strlen(domain); maplen = strlen(map); if ((domlen == 0) || (domlen > YPMAXDOMAIN) || (maplen == 0) || (maplen > YPMAXMAP) || - (order == NULL)) { - trace1(TR_yp_order, 1); + (order == NULL)) return (YPERR_BADARGS); - } for (;;) { - if (reason = __yp_dobind(domain, &pdomb)) { - trace1(TR_yp_order, 1); + if (reason = __yp_dobind(domain, &pdomb)) return (reason); - } if (pdomb->dom_binding->ypbind_hi_vers >= YPVERS) { @@ -101,32 +91,24 @@ yp_order (domain, map, order) } } else { __yp_rel_binding(pdomb); - trace1(TR_yp_order, 1); return (YPERR_VERS); } } - trace1(TR_yp_order, 1); return (reason); - } /* * This talks v3 to ypserv */ static int -doorder (domain, map, pdomb, timeout, order) - char *domain; - char *map; - struct dom_binding *pdomb; - struct timeval timeout; - unsigned long *order; +doorder(char *domain, char *map, struct dom_binding *pdomb, + struct timeval timeout, unsigned long *order) { struct ypreq_nokey req; struct ypresp_order resp; unsigned int retval = 0; - trace1(TR_doorder, 0); req.domain = domain; req.map = map; (void) memset((char *)&resp, 0, sizeof (struct ypresp_order)); @@ -138,11 +120,9 @@ doorder (domain, map, pdomb, timeout, order) if (clnt_call(pdomb->dom_client, YPPROC_ORDER, (xdrproc_t)xdr_ypreq_nokey, - (char *)&req, (xdrproc_t) xdr_ypresp_order, (char *)&resp, - timeout) != RPC_SUCCESS) { - trace1(TR_doorder, 1); + (char *)&req, (xdrproc_t)xdr_ypresp_order, (char *)&resp, + timeout) != RPC_SUCCESS) return (YPERR_RPC); - } /* See if the request succeeded */ @@ -153,7 +133,5 @@ doorder (domain, map, pdomb, timeout, order) *order = (unsigned long)resp.ordernum; CLNT_FREERES(pdomb->dom_client, (xdrproc_t)xdr_ypresp_order, (char *)&resp); - trace1(TR_doorder, 1); return (retval); - } diff --git a/usr/src/lib/libnsl/yp/yp_rsvd.c b/usr/src/lib/libnsl/yp/yp_rsvd.c index 73fce66b88..79f7091831 100644 --- a/usr/src/lib/libnsl/yp/yp_rsvd.c +++ b/usr/src/lib/libnsl/yp/yp_rsvd.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1995-1999 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -63,9 +64,10 @@ __yp_clnt_create_rsvdport_netid_req(const char *hostname, rpcprog_t prog, } /* Attempt to set reserved port, but we don't care if it fails */ - netdir_options(nconf, ND_SET_RESERVEDPORT, fd, NULL); + (void) netdir_options(nconf, ND_SET_RESERVEDPORT, fd, NULL); - if ((tbind = (struct t_bind *) t_alloc(fd, T_BIND, T_ADDR)) == NULL) { + /* LINTED pointer cast */ + if ((tbind = (struct t_bind *)t_alloc(fd, T_BIND, T_ADDR)) == NULL) { freenetconfigent(nconf); return (NULL); } @@ -73,18 +75,18 @@ __yp_clnt_create_rsvdport_netid_req(const char *hostname, rpcprog_t prog, svcaddr = &(tbind->addr); if (!rpcb_getaddr(prog, vers, nconf, svcaddr, hostname)) { - t_close(fd); - t_free((char *) tbind, T_BIND); + (void) t_close(fd); + (void) t_free((char *)tbind, T_BIND); freenetconfigent(nconf); return (NULL); } if ((clnt = clnt_tli_create(fd, nconf, svcaddr, prog, vers, sendsz, recvsz)) == NULL) { - t_close(fd); - t_free((char *) tbind, T_BIND); + (void) t_close(fd); + (void) t_free((char *)tbind, T_BIND); } else { - t_free((char *) tbind, T_BIND); + (void) t_free((char *)tbind, T_BIND); clnt_control(clnt, CLSET_FD_CLOSE, NULL); } freenetconfigent(nconf); diff --git a/usr/src/lib/libnsl/yp/yp_update.c b/usr/src/lib/libnsl/yp/yp_update.c index adbd9c8eaa..602eae41b1 100644 --- a/usr/src/lib/libnsl/yp/yp_update.c +++ b/usr/src/lib/libnsl/yp/yp_update.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -44,7 +45,6 @@ #include <rpcsvc/ypclnt.h> #include <rpcsvc/ypupd.h> #include <sys/types.h> -#include <rpc/trace.h> #include <stdlib.h> #define WINDOW (60*60) @@ -60,25 +60,18 @@ extern AUTH *authdes_seccreate(); int -yp_update(domain, map, op, key, keylen, data, datalen) - char *domain; - char *map; - unsigned op; - char *key; - int keylen; - char *data; - int datalen; +yp_update(char *domain, char *map, unsigned op, char *key, int keylen, + char *data, int datalen) { struct ypupdate_args args; - u_int rslt; + uint_t rslt; struct timeval total; CLIENT *client; char *ypmaster; char ypmastername[MAXNETNAMELEN+1]; enum clnt_stat stat; - u_int proc; + uint_t proc; - trace3(TR_yp_update, 0, keylen, datalen); switch (op) { case YPOP_DELETE: proc = YPU_DELETE; @@ -93,12 +86,10 @@ yp_update(domain, map, op, key, keylen, data, datalen) proc = YPU_STORE; break; default: - trace1(TR_yp_update, 1); return (YPERR_BADARGS); } if (yp_master(domain, map, &ypmaster) != 0) { debug("no master found"); - trace1(TR_yp_update, 1); return (YPERR_BADDB); } @@ -111,14 +102,12 @@ yp_update(domain, map, op, key, keylen, data, datalen) } #endif /* DEBUG */ free(ypmaster); - trace1(TR_yp_update, 1); return (YPERR_RPC); } - if (! host2netname(ypmastername, ypmaster, domain)) { + if (!host2netname(ypmastername, ypmaster, domain)) { clnt_destroy(client); free(ypmaster); - trace1(TR_yp_update, 1); return (YPERR_BADARGS); } client->cl_auth = authdes_seccreate(ypmastername, WINDOW, @@ -127,7 +116,6 @@ yp_update(domain, map, op, key, keylen, data, datalen) if (client->cl_auth == NULL) { debug("auth create failed"); clnt_destroy(client); - trace1(TR_yp_update, 1); return (YPERR_RPC); } @@ -155,6 +143,5 @@ yp_update(domain, map, op, key, keylen, data, datalen) } auth_destroy(client->cl_auth); clnt_destroy(client); - trace1(TR_yp_update, 1); return (rslt); } diff --git a/usr/src/lib/libnsl/yp/yp_xdr.c b/usr/src/lib/libnsl/yp/yp_xdr.c index 02c39c9eb6..fee67d006f 100644 --- a/usr/src/lib/libnsl/yp/yp_xdr.c +++ b/usr/src/lib/libnsl/yp/yp_xdr.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1997 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -38,38 +40,35 @@ * This contains ALL xdr routines used by the YP rpc interface. */ -#define NULL 0 +#include <unistd.h> +#include <stdlib.h> #include <rpc/rpc.h> #include "yp_b.h" #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> #include <sys/types.h> -#include <rpc/trace.h> -#include <stdlib.h> #include <limits.h> static bool xdr_ypmaplist(XDR *, struct ypmaplist **); static bool xdr_ypmaplist_wrap_string(XDR *, char *); typedef struct xdr_discrim XDR_DISCRIM; -bool xdr_ypreq_key(XDR *, struct ypreq_key *); -bool xdr_ypreq_nokey(XDR *, struct ypreq_nokey *); -bool xdr_ypresp_val(XDR *, struct ypresp_val *); -bool xdr_ypresp_key_val(XDR *, struct ypresp_key_val *); -bool xdr_ypmap_parms(XDR *, struct ypmap_parms *); -bool xdr_ypowner_wrap_string(XDR *, char **); -bool xdr_ypreq_newname_string(XDR *, char **); +extern bool xdr_ypreq_key(XDR *, struct ypreq_key *); +extern bool xdr_ypreq_nokey(XDR *, struct ypreq_nokey *); +extern bool xdr_ypresp_val(XDR *, struct ypresp_val *); +extern bool xdr_ypresp_key_val(XDR *, struct ypresp_key_val *); +extern bool xdr_ypmap_parms(XDR *, struct ypmap_parms *); +extern bool xdr_ypowner_wrap_string(XDR *, char **); +extern bool xdr_ypreq_newname_string(XDR *, char **); /* * Serializes/deserializes a dbm datum data structure. */ bool -xdr_datum(xdrs, pdatum) - XDR * xdrs; - datum * pdatum; +xdr_datum(XDR *xdrs, datum *pdatum) { - bool dummy; + bool res; uint_t dsize; /* @@ -78,19 +77,18 @@ xdr_datum(xdrs, pdatum) * datum.dsize is a long, we need a new temporary to pass to * xdr_bytes() */ - trace1(TR_xdr_datum, 0); if (xdrs->x_op == XDR_ENCODE) { if (pdatum->dsize > UINT_MAX) return (FALSE); } dsize = (uint_t)pdatum->dsize; - dummy = xdr_bytes(xdrs, (char **)&(pdatum->dptr), &dsize, YPMAXRECORD); + res = (bool)xdr_bytes(xdrs, (char **)&(pdatum->dptr), &dsize, + YPMAXRECORD); if (xdrs->x_op == XDR_DECODE) { pdatum->dsize = dsize; } - trace1(TR_xdr_datum, 1); - return (dummy); + return (res); } @@ -99,16 +97,9 @@ xdr_datum(xdrs, pdatum) * xdr_string which knows about the maximum domain name size. */ bool -xdr_ypdomain_wrap_string(xdrs, ppstring) - XDR * xdrs; - char **ppstring; +xdr_ypdomain_wrap_string(XDR *xdrs, char **ppstring) { - bool dummy; - - trace1(TR_xdr_ypdomain_wrap_string, 0); - dummy = xdr_string(xdrs, ppstring, YPMAXDOMAIN); - trace1(TR_xdr_ypdomain_wrap_string, 1); - return (dummy); + return ((bool)xdr_string(xdrs, ppstring, YPMAXDOMAIN)); } /* @@ -116,172 +107,101 @@ xdr_ypdomain_wrap_string(xdrs, ppstring) * xdr_string which knows about the maximum map name size. */ bool -xdr_ypmap_wrap_string(xdrs, ppstring) - XDR * xdrs; - char **ppstring; +xdr_ypmap_wrap_string(XDR *xdrs, char **ppstring) { - bool dummy; - - trace1(TR_xdr_ypmap_wrap_string, 0); - dummy = xdr_string(xdrs, ppstring, YPMAXMAP); - trace1(TR_xdr_ypmap_wrap_string, 1); - return (dummy); + return ((bool)xdr_string(xdrs, ppstring, YPMAXMAP)); } /* * Serializes/deserializes a ypreq_key structure. */ bool -xdr_ypreq_key(xdrs, ps) - XDR *xdrs; - struct ypreq_key *ps; +xdr_ypreq_key(XDR *xdrs, struct ypreq_key *ps) { - bool dummy; - - trace1(TR_xdr_ypreq_key, 0); - dummy = xdr_ypdomain_wrap_string(xdrs, &ps->domain) && + return ((bool)(xdr_ypdomain_wrap_string(xdrs, &ps->domain) && xdr_ypmap_wrap_string(xdrs, &ps->map) && - xdr_datum(xdrs, &ps->keydat); - trace1(TR_xdr_ypreq_key, 1); - return (dummy); + xdr_datum(xdrs, &ps->keydat))); } /* * Serializes/deserializes a ypreq_nokey structure. */ bool -xdr_ypreq_nokey(xdrs, ps) - XDR * xdrs; - struct ypreq_nokey *ps; +xdr_ypreq_nokey(XDR *xdrs, struct ypreq_nokey *ps) { - bool dummy; - - trace1(TR_xdr_ypreq_nokey, 0); - dummy = xdr_ypdomain_wrap_string(xdrs, &ps->domain) && - xdr_ypmap_wrap_string(xdrs, &ps->map); - trace1(TR_xdr_ypreq_nokey, 1); - return (dummy); + return ((bool)(xdr_ypdomain_wrap_string(xdrs, &ps->domain) && + xdr_ypmap_wrap_string(xdrs, &ps->map))); } /* * Serializes/deserializes a ypresp_val structure. */ - bool -xdr_ypresp_val(xdrs, ps) - XDR * xdrs; - struct ypresp_val *ps; +xdr_ypresp_val(XDR *xdrs, struct ypresp_val *ps) { - bool dummy; - - trace1(TR_xdr_ypresp_val, 0); - dummy = xdr_u_int(xdrs, &ps->status) && - xdr_datum(xdrs, &ps->valdat); - trace1(TR_xdr_ypresp_val, 1); - return (dummy); + return ((bool)(xdr_u_int(xdrs, &ps->status) && + xdr_datum(xdrs, &ps->valdat))); } /* * Serializes/deserializes a ypresp_key_val structure. */ bool -xdr_ypresp_key_val(xdrs, ps) - XDR * xdrs; - struct ypresp_key_val *ps; +xdr_ypresp_key_val(XDR *xdrs, struct ypresp_key_val *ps) { - bool dummy; - - trace1(TR_xdr_ypresp_key_val, 0); - dummy = xdr_u_int(xdrs, &ps->status) && + return ((bool)(xdr_u_int(xdrs, &ps->status) && xdr_datum(xdrs, &ps->valdat) && - xdr_datum(xdrs, &ps->keydat); - trace1(TR_xdr_ypresp_key_val, 1); - return (dummy); + xdr_datum(xdrs, &ps->keydat))); } /* * Serializes/deserializes a peer server's node name */ bool -xdr_ypowner_wrap_string(xdrs, ppstring) - XDR * xdrs; - char **ppstring; +xdr_ypowner_wrap_string(XDR *xdrs, char **ppstring) { - bool dummy; - - trace1(TR_xdr_ypowner_wrap_string, 0); - dummy = xdr_string(xdrs, ppstring, YPMAXPEER); - trace1(TR_xdr_ypowner_wrap_string, 1); - return (dummy); + return ((bool)xdr_string(xdrs, ppstring, YPMAXPEER)); } /* * Serializes/deserializes a ypmap_parms structure. */ bool -xdr_ypmap_parms(xdrs, ps) - XDR *xdrs; - struct ypmap_parms *ps; +xdr_ypmap_parms(XDR *xdrs, struct ypmap_parms *ps) { - bool dummy; - - trace1(TR_xdr_ypmap_parms, 0); - dummy = xdr_ypdomain_wrap_string(xdrs, &ps->domain) && + return ((bool)(xdr_ypdomain_wrap_string(xdrs, &ps->domain) && xdr_ypmap_wrap_string(xdrs, &ps->map) && xdr_u_int(xdrs, &ps->ordernum) && - xdr_ypowner_wrap_string(xdrs, &ps->owner); - trace1(TR_xdr_ypmap_parms, 1); - return (dummy); + xdr_ypowner_wrap_string(xdrs, &ps->owner))); } /* * Serializes/deserializes a ypreq_newxfr name */ bool -xdr_ypreq_newname_string(xdrs, ppstring) - XDR * xdrs; - char **ppstring; +xdr_ypreq_newname_string(XDR *xdrs, char **ppstring) { - bool dummy; - - trace1(TR_xdr_ypreq_newname_string, 0); - dummy = xdr_string(xdrs, ppstring, 256); - trace1(TR_xdr_ypreq_newname_string, 1); - return (dummy); + return ((bool)xdr_string(xdrs, ppstring, 256)); } /* * Serializes/deserializes a ypresp_master structure. */ bool -xdr_ypresp_master(xdrs, ps) - XDR * xdrs; - struct ypresp_master *ps; +xdr_ypresp_master(XDR *xdrs, struct ypresp_master *ps) { - bool dummy; - - trace1(TR_xdr_ypresp_master, 0); - dummy = xdr_u_int(xdrs, &ps->status) && - xdr_ypowner_wrap_string(xdrs, &ps->master); - trace1(TR_xdr_ypresp_master, 1); - return (dummy); + return ((bool)(xdr_u_int(xdrs, &ps->status) && + xdr_ypowner_wrap_string(xdrs, &ps->master))); } /* * Serializes/deserializes a ypresp_order structure. */ bool -xdr_ypresp_order(xdrs, ps) - XDR * xdrs; - struct ypresp_order *ps; +xdr_ypresp_order(XDR *xdrs, struct ypresp_order *ps) { - bool dummy; - - trace1(TR_xdr_ypresp_order, 0); - dummy = xdr_u_int(xdrs, &ps->status) && - xdr_u_int(xdrs, &ps->ordernum); - trace1(TR_xdr_ypresp_order, 1); - return (dummy); + return ((bool)(xdr_u_int(xdrs, &ps->status) && + xdr_u_int(xdrs, &ps->ordernum))); } /* @@ -290,56 +210,40 @@ xdr_ypresp_order(xdrs, ps) * containing the char array itself. */ static bool -xdr_ypmaplist_wrap_string(xdrs, pstring) - XDR * xdrs; - char *pstring; +xdr_ypmaplist_wrap_string(XDR *xdrs, char *pstring) { char *s; - bool dummy; - - trace1(TR_xdr_ypmaplist_wrap_string, 0); s = pstring; - dummy = xdr_string(xdrs, &s, YPMAXMAP); - trace1(TR_xdr_ypmaplist_wrap_string, 1); - return (dummy); + return ((bool)xdr_string(xdrs, &s, YPMAXMAP)); } /* * Serializes/deserializes a ypmaplist. */ static bool -xdr_ypmaplist(xdrs, lst) - XDR *xdrs; - struct ypmaplist **lst; +xdr_ypmaplist(XDR *xdrs, struct ypmaplist **lst) { bool_t more_elements; int freeing = (xdrs->x_op == XDR_FREE); struct ypmaplist **next; - trace1(TR_xdr_ypmaplist, 0); for (;;) { - more_elements = (*lst != (struct ypmaplist *) NULL); + more_elements = (*lst != NULL); - if (! xdr_bool(xdrs, &more_elements)) { - trace1(TR_xdr_ypmaplist, 1); + if (!xdr_bool(xdrs, &more_elements)) return (FALSE); - } - if (! more_elements) { - trace1(TR_xdr_ypmaplist, 1); + if (!more_elements) return (TRUE); /* All done */ - } if (freeing) next = &((*lst)->ypml_next); - if (! xdr_reference(xdrs, (caddr_t *)lst, - (u_int) sizeof (struct ypmaplist), - (xdrproc_t)xdr_ypmaplist_wrap_string)) { - trace1(TR_xdr_ypmaplist, 1); + if (!xdr_reference(xdrs, (caddr_t *)lst, + (uint_t)sizeof (struct ypmaplist), + (xdrproc_t)xdr_ypmaplist_wrap_string)) return (FALSE); - } lst = (freeing) ? next : &((*lst)->ypml_next); } @@ -350,34 +254,20 @@ xdr_ypmaplist(xdrs, lst) * Serializes/deserializes a ypresp_maplist. */ bool -xdr_ypresp_maplist(xdrs, ps) - XDR * xdrs; - struct ypresp_maplist *ps; +xdr_ypresp_maplist(XDR *xdrs, struct ypresp_maplist *ps) { - bool dummy; - - trace1(TR_xdr_ypresp_maplist, 0); - dummy = xdr_u_int(xdrs, &ps->status) && - xdr_ypmaplist(xdrs, &ps->list); - trace1(TR_xdr_ypresp_maplist, 1); - return (dummy); + return ((bool)(xdr_u_int(xdrs, &ps->status) && + xdr_ypmaplist(xdrs, &ps->list))); } /* * Serializes/deserializes a yppushresp_xfr structure. */ bool -xdr_yppushresp_xfr(xdrs, ps) - XDR *xdrs; - struct yppushresp_xfr *ps; +xdr_yppushresp_xfr(XDR *xdrs, struct yppushresp_xfr *ps) { - bool dummy; - - trace1(TR_xdr_yppushresp_xfr, 0); - dummy = xdr_u_int(xdrs, &ps->transid) && - xdr_u_int(xdrs, &ps->status); - trace1(TR_xdr_yppushresp_xfr, 1); - return (dummy); + return ((bool)(xdr_u_int(xdrs, &ps->transid) && + xdr_u_int(xdrs, &ps->status))); } @@ -385,38 +275,24 @@ xdr_yppushresp_xfr(xdrs, ps) * Serializes/deserializes a ypreq_xfr structure. */ bool -xdr_ypreq_newxfr(xdrs, ps) - XDR * xdrs; - struct ypreq_newxfr *ps; +xdr_ypreq_newxfr(XDR *xdrs, struct ypreq_newxfr *ps) { - bool dummy; - - trace1(TR_xdr_ypreq_newxfr, 0); - dummy = xdr_ypmap_parms(xdrs, &ps->map_parms) && + return ((bool)(xdr_ypmap_parms(xdrs, &ps->map_parms) && xdr_u_int(xdrs, &ps->transid) && xdr_u_int(xdrs, &ps->proto) && - xdr_string(xdrs, &ps->name, 256); - trace1(TR_xdr_ypreq_newxfr, 1); - return (dummy); + xdr_string(xdrs, &ps->name, 256))); } /* * Serializes/deserializes a ypreq_xfr structure. */ bool -xdr_ypreq_xfr(xdrs, ps) - XDR * xdrs; - struct ypreq_xfr *ps; +xdr_ypreq_xfr(XDR *xdrs, struct ypreq_xfr *ps) { - bool dummy; - - trace1(TR_xdr_ypreq_xfr, 0); - dummy = xdr_ypmap_parms(xdrs, &ps->map_parms) && + return ((bool)(xdr_ypmap_parms(xdrs, &ps->map_parms) && xdr_u_int(xdrs, &ps->transid) && xdr_u_int(xdrs, &ps->proto) && - xdr_u_short(xdrs, &ps->port); - trace1(TR_xdr_ypreq_xfr, 1); - return (dummy); + xdr_u_short(xdrs, &ps->port))); } @@ -425,26 +301,18 @@ xdr_ypreq_xfr(xdrs, ps) * only by the client side of the batch enumerate operation. */ bool -xdr_ypall(xdrs, callback) - XDR * xdrs; - struct ypall_callback *callback; +xdr_ypall(XDR *xdrs, struct ypall_callback *callback) { bool_t more; struct ypresp_key_val kv; - bool s; char keybuf[YPMAXRECORD]; char valbuf[YPMAXRECORD]; - trace1(TR_xdr_ypall, 0); - if (xdrs->x_op == XDR_ENCODE) { - trace1(TR_xdr_ypall, 1); + if (xdrs->x_op == XDR_ENCODE) return (FALSE); - } - if (xdrs->x_op == XDR_FREE) { - trace1(TR_xdr_ypall, 1); + if (xdrs->x_op == XDR_FREE) return (TRUE); - } kv.keydat.dptr = keybuf; kv.valdat.dptr = valbuf; @@ -452,76 +320,40 @@ xdr_ypall(xdrs, callback) kv.valdat.dsize = YPMAXRECORD; for (;;) { - if (! xdr_bool(xdrs, &more)) { - trace1(TR_xdr_ypall, 1); + if (!xdr_bool(xdrs, &more)) return (FALSE); - } - if (! more) { - trace1(TR_xdr_ypall, 1); + if (!more) return (TRUE); - } - - s = xdr_ypresp_key_val(xdrs, &kv); - if (s) { - s = (*callback->foreach)(kv.status, kv.keydat.dptr, - kv.keydat.dsize, kv.valdat.dptr, kv.valdat.dsize, - callback->data); - - if (s) { - trace1(TR_xdr_ypall, 1); - return (TRUE); - } - } else { - trace1(TR_xdr_ypall, 1); + if (!xdr_ypresp_key_val(xdrs, &kv)) return (FALSE); - } + if ((*callback->foreach)(kv.status, kv.keydat.dptr, + kv.keydat.dsize, kv.valdat.dptr, kv.valdat.dsize, + callback->data)) + return (TRUE); } } bool_t -xdr_netconfig(xdrs, objp) - XDR *xdrs; - struct netconfig *objp; +xdr_netconfig(XDR *xdrs, struct netconfig *objp) { - - trace1(TR_xdr_netconfig, 0); - if (!xdr_string(xdrs, &objp->nc_netid, ~0)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_string(xdrs, &objp->nc_netid, ~0)) return (FALSE); - } - if (!xdr_u_int(xdrs, &objp->nc_semantics)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_u_int(xdrs, &objp->nc_semantics)) return (FALSE); - } - if (!xdr_u_int(xdrs, &objp->nc_flag)) { - trace1(TR_xdr_netconfig, 1); - return (FALSE); - } - if (!xdr_string(xdrs, &objp->nc_protofmly, ~0)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_u_int(xdrs, &objp->nc_flag)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->nc_proto, ~0)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_string(xdrs, &objp->nc_protofmly, ~0)) return (FALSE); - } - if (!xdr_string(xdrs, &objp->nc_device, ~0)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_string(xdrs, &objp->nc_proto, ~0)) return (FALSE); - } - if (!xdr_array(xdrs, (char **) &objp->nc_lookups, - (u_int *)&objp->nc_nlookups, 100, sizeof (char *), - xdr_wrapstring)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_string(xdrs, &objp->nc_device, ~0)) return (FALSE); - } - if (!xdr_vector(xdrs, (char *)objp->nc_unused, - 8, sizeof (u_int), xdr_u_int)) { - trace1(TR_xdr_netconfig, 1); + if (!xdr_array(xdrs, (char **)&objp->nc_lookups, + (uint_t *)&objp->nc_nlookups, 100, sizeof (char *), + xdr_wrapstring)) return (FALSE); - } - trace1(TR_xdr_netconfig, 1); - return (TRUE); + return ((bool)xdr_vector(xdrs, (char *)objp->nc_unused, + 8, sizeof (uint_t), xdr_u_int)); } diff --git a/usr/src/lib/libnsl/yp/yperr_string.c b/usr/src/lib/libnsl/yp/yperr_string.c index 8090adc13e..b2a75d81e4 100644 --- a/usr/src/lib/libnsl/yp/yperr_string.c +++ b/usr/src/lib/libnsl/yp/yperr_string.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1992 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -36,7 +38,6 @@ #include <rpcsvc/ypclnt.h> #include <sys/types.h> -#include <rpc/trace.h> /* * This returns a pointer to an error message string appropriate to an input @@ -46,106 +47,43 @@ */ char * -yperr_string(code) - int code; +yperr_string(int code) { - char *pmesg; - - trace2(TR_yperr_string, 0, code); switch (code) { - - case 0: { - pmesg = "yp operation succeeded"; - break; - } - - case YPERR_BADARGS: { - pmesg = "args to yp function are bad"; - break; - } - - case YPERR_RPC: { - pmesg = "RPC failure on yp operation"; - break; - } - - case YPERR_DOMAIN: { - pmesg = "can't bind to a server which serves domain"; - break; - } - - case YPERR_MAP: { - pmesg = "no such map in server's domain"; - break; - } - - case YPERR_KEY: { - pmesg = "no such key in map"; - break; - } - - case YPERR_YPERR: { - pmesg = "internal yp server or client error"; - break; - } - - case YPERR_RESRC: { - pmesg = "local resource allocation failure"; - break; - } - - case YPERR_NOMORE: { - pmesg = "no more records in map database"; - break; - } - - case YPERR_PMAP: { - pmesg = "can't communicate with rpcbind"; - break; - } - - case YPERR_YPBIND: { - pmesg = "can't communicate with ypbind"; - break; - } - - case YPERR_YPSERV: { - pmesg = "can't communicate with ypserv"; - break; - } - - case YPERR_NODOM: { - pmesg = "local domain name not set"; - break; - } - - case YPERR_BADDB: { - pmesg = "yp map data base is bad"; - break; - } - - case YPERR_VERS: { - pmesg = "yp client/server version mismatch"; - break; - } - - case YPERR_ACCESS: { - pmesg = "permission denied"; - break; - } - - case YPERR_BUSY: { - pmesg = "database is busy"; - break; - } - - default: { - pmesg = "unknown yp client error code"; - break; - } - - } - - trace1(TR_yperr_string, 1); - return (pmesg); + case 0: + return ("yp operation succeeded"); + case YPERR_BADARGS: + return ("args to yp function are bad"); + case YPERR_RPC: + return ("RPC failure on yp operation"); + case YPERR_DOMAIN: + return ("can't bind to a server which serves domain"); + case YPERR_MAP: + return ("no such map in server's domain"); + case YPERR_KEY: + return ("no such key in map"); + case YPERR_YPERR: + return ("internal yp server or client error"); + case YPERR_RESRC: + return ("local resource allocation failure"); + case YPERR_NOMORE: + return ("no more records in map database"); + case YPERR_PMAP: + return ("can't communicate with rpcbind"); + case YPERR_YPBIND: + return ("can't communicate with ypbind"); + case YPERR_YPSERV: + return ("can't communicate with ypserv"); + case YPERR_NODOM: + return ("local domain name not set"); + case YPERR_BADDB: + return ("yp map data base is bad"); + case YPERR_VERS: + return ("yp client/server version mismatch"); + case YPERR_ACCESS: + return ("permission denied"); + case YPERR_BUSY: + return ("database is busy"); + } + return ("unknown yp client error code"); } diff --git a/usr/src/lib/libnsl/yp/yppasswd_xdr.c b/usr/src/lib/libnsl/yp/yppasswd_xdr.c index ac8c9144f3..8e37564058 100644 --- a/usr/src/lib/libnsl/yp/yppasswd_xdr.c +++ b/usr/src/lib/libnsl/yp/yppasswd_xdr.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1985 by Sun Microsystems, Inc. - * All Rights Reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -30,35 +31,27 @@ #include <rpcsvc/yppasswd.h> bool_t -xdr_passwd(xdrsp, pw) - XDR *xdrsp; - struct passwd *pw; +xdr_passwd(XDR *xdrsp, struct passwd *pw) { - if (xdr_wrapstring(xdrsp, &pw->pw_name) == 0) - return (FALSE); - if (xdr_wrapstring(xdrsp, &pw->pw_passwd) == 0) + if (!xdr_wrapstring(xdrsp, &pw->pw_name)) return (FALSE); - if (xdr_int(xdrsp, (int *)&pw->pw_uid) == 0) + if (!xdr_wrapstring(xdrsp, &pw->pw_passwd)) return (FALSE); - if (xdr_int(xdrsp, (int *)&pw->pw_gid) == 0) + if (!xdr_int(xdrsp, (int *)&pw->pw_uid)) return (FALSE); - if (xdr_wrapstring(xdrsp, &pw->pw_gecos) == 0) + if (!xdr_int(xdrsp, (int *)&pw->pw_gid)) return (FALSE); - if (xdr_wrapstring(xdrsp, &pw->pw_dir) == 0) + if (!xdr_wrapstring(xdrsp, &pw->pw_gecos)) return (FALSE); - if (xdr_wrapstring(xdrsp, &pw->pw_shell) == 0) + if (!xdr_wrapstring(xdrsp, &pw->pw_dir)) return (FALSE); - return (TRUE); + return (xdr_wrapstring(xdrsp, &pw->pw_shell)); } bool_t -xdr_yppasswd(xdrsp, pp) - XDR *xdrsp; - struct yppasswd *pp; +xdr_yppasswd(XDR *xdrsp, struct yppasswd *pp) { - if (xdr_wrapstring(xdrsp, &pp->oldpass) == 0) - return (FALSE); - if (xdr_passwd(xdrsp, &pp->newpw) == 0) + if (!xdr_wrapstring(xdrsp, &pp->oldpass)) return (FALSE); - return (TRUE); + return (xdr_passwd(xdrsp, &pp->newpw)); } diff --git a/usr/src/lib/libnsl/yp/ypprot_err.c b/usr/src/lib/libnsl/yp/ypprot_err.c index f2a6ab3f0f..f48316975b 100644 --- a/usr/src/lib/libnsl/yp/ypprot_err.c +++ b/usr/src/lib/libnsl/yp/ypprot_err.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1997 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -38,7 +40,6 @@ #include <rpcsvc/yp_prot.h> #include <rpcsvc/ypclnt.h> #include <sys/types.h> -#include <rpc/trace.h> /* * Maps a yp protocol error code (as defined in @@ -46,40 +47,25 @@ * ypclnt.h). */ int -ypprot_err(yp_protocol_error) - int yp_protocol_error; +ypprot_err(int yp_protocol_error) { - int reason; - trace2(TR_ypprot_err, 0, yp_protocol_error); switch (yp_protocol_error) { case YP_TRUE: - reason = 0; - break; + return (0); case YP_NOMORE: - reason = YPERR_NOMORE; - break; + return (YPERR_NOMORE); case YP_NOMAP: - reason = YPERR_MAP; - break; + return (YPERR_MAP); case YP_NODOM: - reason = YPERR_DOMAIN; - break; + return (YPERR_DOMAIN); case YP_NOKEY: - reason = YPERR_KEY; - break; + return (YPERR_KEY); case YP_BADARGS: - reason = YPERR_BADARGS; - break; + return (YPERR_BADARGS); case YP_BADDB: - reason = YPERR_BADDB; - break; + return (YPERR_BADDB); case YP_VERS: - reason = YPERR_VERS; - break; - default: - reason = YPERR_YPERR; - break; + return (YPERR_VERS); } - trace1(TR_ypprot_err, 1); - return (reason); + return (YPERR_YPERR); } diff --git a/usr/src/lib/libnsl/yp/ypupd.c b/usr/src/lib/libnsl/yp/ypupd.c index 49d4b183b0..405ccd830a 100644 --- a/usr/src/lib/libnsl/yp/ypupd.c +++ b/usr/src/lib/libnsl/yp/ypupd.c @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 1992 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -36,64 +38,32 @@ #include <rpc/rpc.h> #include <sys/types.h> -#include <rpc/trace.h> #include <rpcsvc/ypupd.h> /* - * Compiled from ypupdate_prot.x using rpcgen + * Originally compiled from ypupdate_prot.x using rpcgen */ - bool_t -xdr_yp_buf(xdrs, objp) - XDR *xdrs; - yp_buf *objp; +xdr_yp_buf(XDR *xdrs, yp_buf *objp) { - trace1(TR_xdr_yp_buf, 0); - if (!xdr_bytes(xdrs, (char **)&objp->yp_buf_val, - (u_int *)&objp->yp_buf_len, MAXYPDATALEN)) { - trace1(TR_xdr_yp_buf, 1); - return (FALSE); - } - trace1(TR_xdr_yp_buf, 1); - return (TRUE); + return (xdr_bytes(xdrs, (char **)&objp->yp_buf_val, + (uint_t *)&objp->yp_buf_len, MAXYPDATALEN)); } bool_t -xdr_ypupdate_args(xdrs, objp) - XDR *xdrs; - ypupdate_args *objp; +xdr_ypupdate_args(XDR *xdrs, ypupdate_args *objp) { - trace1(TR_xdr_ypupdate_args, 0); - if (!xdr_string(xdrs, &objp->mapname, MAXMAPNAMELEN)) { - trace1(TR_xdr_ypupdate_args, 1); + if (!xdr_string(xdrs, &objp->mapname, MAXMAPNAMELEN)) return (FALSE); - } - if (!xdr_yp_buf(xdrs, &objp->key)) { - trace1(TR_xdr_ypupdate_args, 1); + if (!xdr_yp_buf(xdrs, &objp->key)) return (FALSE); - } - if (!xdr_yp_buf(xdrs, &objp->datum)) { - trace1(TR_xdr_ypupdate_args, 1); - return (FALSE); - } - trace1(TR_xdr_ypupdate_args, 1); - return (TRUE); + return (xdr_yp_buf(xdrs, &objp->datum)); } bool_t -xdr_ypdelete_args(xdrs, objp) - XDR *xdrs; - ypdelete_args *objp; +xdr_ypdelete_args(XDR *xdrs, ypdelete_args *objp) { - trace1(TR_xdr_ypdelete_args, 0); - if (!xdr_string(xdrs, &objp->mapname, MAXMAPNAMELEN)) { - trace1(TR_xdr_ypdelete_args, 1); - return (FALSE); - } - if (!xdr_yp_buf(xdrs, &objp->key)) { - trace1(TR_xdr_ypdelete_args, 1); + if (!xdr_string(xdrs, &objp->mapname, MAXMAPNAMELEN)) return (FALSE); - } - trace1(TR_xdr_ypdelete_args, 1); - return (TRUE); + return (xdr_yp_buf(xdrs, &objp->key)); } diff --git a/usr/src/lib/librac/rpc/clnt_generic.c b/usr/src/lib/librac/rpc/clnt_generic.c index dc1cee5eea..835b527d17 100644 --- a/usr/src/lib/librac/rpc/clnt_generic.c +++ b/usr/src/lib/librac/rpc/clnt_generic.c @@ -19,16 +19,16 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1986-1991,1998 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include <stdio.h> #include <rpc/rpc.h> -#include <rpc/trace.h> #include <errno.h> #include <tiuser.h> #include <rpc/nettype.h> @@ -53,19 +53,15 @@ clnt_create_vers(const char *hostname, const rpcprog_t prog, struct rpc_err rpcerr; rpcvers_t v_low, v_high; - trace4(TR_clnt_create_vers, 0, prog, vers_low, vers_high); clnt = clnt_create(hostname, prog, vers_high, nettype); - if (clnt == NULL) { - trace4(TR_clnt_create_vers, 1, prog, vers_low, vers_high); + if (clnt == NULL) return (NULL); - } to.tv_sec = 10; to.tv_usec = 0; rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void, - (char *)NULL, (xdrproc_t)xdr_void, (char *)NULL, to); + NULL, (xdrproc_t)xdr_void, NULL, to); if (rpc_stat == RPC_SUCCESS) { *vers_out = vers_high; - trace4(TR_clnt_create_vers, 1, prog, vers_low, vers_high); return (clnt); } if (rpc_stat == RPC_PROGVERSMISMATCH) { @@ -83,12 +79,9 @@ clnt_create_vers(const char *hostname, const rpcprog_t prog, } CLNT_CONTROL(clnt, CLSET_VERS, (char *)&v_high); rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void, - (char *)NULL, (xdrproc_t)xdr_void, - (char *)NULL, to); + NULL, (xdrproc_t)xdr_void, NULL, to); if (rpc_stat == RPC_SUCCESS) { *vers_out = v_high; - trace4(TR_clnt_create_vers, 1, prog, - v_low, v_high); return (clnt); } } @@ -97,7 +90,6 @@ clnt_create_vers(const char *hostname, const rpcprog_t prog, error: rpc_createerr.cf_stat = rpc_stat; rpc_createerr.cf_error = rpcerr; clnt_destroy(clnt); - trace4(TR_clnt_create_vers, 1, prog, vers_low, vers_high); return (NULL); } @@ -124,15 +116,13 @@ clnt_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers, enum clnt_stat save_cf_stat = RPC_SUCCESS; struct rpc_err save_cf_error; - trace3(TR_clnt_create, 0, prog, vers); if ((handle = __rpc_setconf((char *)nettype)) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } rpc_createerr.cf_stat = RPC_SUCCESS; - while (clnt == (CLIENT *)NULL) { + while (clnt == NULL) { if ((nconf = __rpc_getconf(handle)) == NULL) { if (rpc_createerr.cf_stat == RPC_SUCCESS) rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; @@ -172,7 +162,6 @@ clnt_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers, rpc_createerr.cf_error = save_cf_error; } __rpc_endconf(handle); - trace3(TR_clnt_create, 1, prog, vers); return (clnt); } @@ -189,23 +178,20 @@ clnt_tp_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers, struct netbuf *svcaddr; /* servers address */ CLIENT *cl = NULL; /* client handle */ - trace3(TR_clnt_tp_create, 0, prog, vers); - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_tp_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } /* * Get the address of the server */ if ((svcaddr = __rpcb_findaddr(prog, vers, nconf, hostname, - &cl)) == NULL) { + &cl)) == NULL) { /* appropriate error number is set by rpcbind libraries */ - trace3(TR_clnt_tp_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } - if (cl == (CLIENT *)NULL) { + if (cl == NULL) { cl = clnt_tli_create(RPC_ANYFD, nconf, svcaddr, prog, vers, 0, 0); } else { @@ -224,7 +210,6 @@ clnt_tp_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers, } } netdir_free((char *)svcaddr, ND_ADDR); - trace3(TR_clnt_tp_create, 1, prog, vers); return (cl); } @@ -247,21 +232,17 @@ clnt_tli_create(const int fd, const struct netconfig *nconf, int servtype; int nfd = fd; - trace5(TR_clnt_tli_create, 0, prog, vers, sendsz, recvsz); - if (nfd == RPC_ANYFD) { - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_clnt_tli_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } nfd = t_open(nconf->nc_device, O_RDWR, NULL); if (nfd == -1) goto err; madefd = TRUE; - if (t_bind(nfd, (struct t_bind *)NULL, - (struct t_bind *)NULL) == -1) - goto err; + if (t_bind(nfd, NULL, NULL) == -1) + goto err; switch (nconf->nc_semantics) { case NC_TPI_CLTS: @@ -287,8 +268,7 @@ clnt_tli_create(const int fd, const struct netconfig *nconf, * Check whether bound or not, else bind it */ if (((state = t_sync(nfd)) == -1) || - ((state == T_UNBND) && (t_bind(nfd, (struct t_bind *)NULL, - (struct t_bind *)NULL) == -1)) || + ((state == T_UNBND) && (t_bind(nfd, NULL, NULL) == -1)) || (t_getinfo(nfd, &tinfo) == -1)) goto err; servtype = tinfo.servtype; @@ -308,7 +288,7 @@ clnt_tli_create(const int fd, const struct netconfig *nconf, goto err; } - if (cl == (CLIENT *)NULL) + if (cl == NULL) goto err1; /* borrow errors from clnt_dg/vc creates */ if (nconf) { cl->cl_netid = strdup(nconf->nc_netid); @@ -318,9 +298,8 @@ clnt_tli_create(const int fd, const struct netconfig *nconf, cl->cl_tp = ""; } if (madefd) - (void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, (char *)NULL); + (void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, NULL); - trace3(TR_clnt_tli_create, 1, prog, vers); return (cl); err: @@ -329,6 +308,5 @@ err: rpc_createerr.cf_error.re_terrno = t_errno; err1: if (madefd) (void) t_close(nfd); - trace3(TR_clnt_tli_create, 1, prog, vers); - return ((CLIENT *)NULL); + return (NULL); } diff --git a/usr/src/lib/librac/rpc/rac.c b/usr/src/lib/librac/rpc/rac.c index 34ba863747..97a2923e16 100644 --- a/usr/src/lib/librac/rpc/rac.c +++ b/usr/src/lib/librac/rpc/rac.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -32,7 +33,6 @@ #include <sys/select.h> #include <sys/types.h> -#include <rpc/trace.h> #include <sys/time.h> #include <sys/poll.h> #include <rpc/rpc.h> @@ -45,6 +45,7 @@ #include <ctype.h> #include <sys/resource.h> #include <netconfig.h> +#include <stdlib.h> #include <malloc.h> #include <string.h> @@ -94,7 +95,7 @@ rac_send(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs, void *argsp, * expensive call every time. */ int -__rpc_dtbsize() +__rpc_dtbsize(void) { static int tbsize = 0; struct rlimit rl; @@ -170,15 +171,13 @@ __rpc_getconfip(char *nettype) char *netid; static char *netid_tcp; static char *netid_udp; - struct netconfig *dummy; if (!netid_udp && !netid_tcp) { struct netconfig *nconf; void *confighandle; - if (!(confighandle = setnetconfig())) { + if (!(confighandle = setnetconfig())) return (NULL); - } while (nconf = getnetconfig(confighandle)) { if (strcmp(nconf->nc_protofmly, NC_INET) == 0) { if (strcmp(nconf->nc_proto, NC_TCP) == 0) @@ -194,13 +193,11 @@ __rpc_getconfip(char *nettype) else if (strcmp(nettype, "tcp") == 0) netid = netid_tcp; else { - return ((struct netconfig *)NULL); - } - if ((netid == NULL) || (netid[0] == NULL)) { - return ((struct netconfig *)NULL); + return (NULL); } - dummy = getnetconfigent(netid); - return (dummy); + if ((netid == NULL) || (netid[0] == NULL)) + return (NULL); + return (getnetconfigent(netid)); } struct handle { @@ -244,9 +241,8 @@ getnettype(char *nettype) { int i; - if ((nettype == NULL) || (nettype[0] == NULL)) { + if ((nettype == NULL) || (nettype[0] == NULL)) return (_RPC_NETPATH); /* Default */ - } nettype = strlocase(nettype); for (i = 0; _rpctypelist[i].name; i++) @@ -265,10 +261,9 @@ __rpc_setconf(char *nettype) { struct handle *handle; - handle = (struct handle *)malloc(sizeof (struct handle)); - if (handle == NULL) { + handle = malloc(sizeof (struct handle)); + if (handle == NULL) return (NULL); - } switch (handle->nettype = getnettype(nettype)) { case _RPC_NETPATH: case _RPC_CIRCUIT_N: @@ -307,16 +302,15 @@ __rpc_getconf(void *vhandle) struct netconfig *nconf; handle = (struct handle *)vhandle; - if (handle == NULL) { + if (handle == NULL) return (NULL); - } /* CONSTCOND */ while (1) { if (handle->nflag) nconf = getnetpath(handle->nhandle); else nconf = getnetconfig(handle->nhandle); - if (nconf == (struct netconfig *)NULL) + if (nconf == NULL) break; if ((nconf->nc_semantics != NC_TPI_CLTS) && (nconf->nc_semantics != NC_TPI_COTS) && @@ -371,9 +365,8 @@ __rpc_endconf(void *vhandle) struct handle *handle; handle = (struct handle *)vhandle; - if (handle == NULL) { + if (handle == NULL) return; - } if (handle->nflag) { (void) endnetpath(handle->nhandle); } else { @@ -394,12 +387,11 @@ __rpc_endconf(void *vhandle) int __rpc_select_to_poll(int fdmax, fd_set *fdset, struct pollfd *p0) { - /* register declarations ordered by expected frequency of use */ - register long *in; - register int j; /* loop counter */ - register ulong_t b; /* bits to test */ - register int n; - register struct pollfd *p = p0; + long *in; + int j; /* loop counter */ + ulong_t b; /* bits to test */ + int n; + struct pollfd *p = p0; /* * For each fd, if the appropriate bit is set convert it into @@ -446,67 +438,54 @@ __rpc_timeval_to_msec(struct timeval *t) static void accepted(enum accept_stat acpt_stat, struct rpc_err *error) { - trace1(TR_accepted, 0); switch (acpt_stat) { case PROG_UNAVAIL: error->re_status = RPC_PROGUNAVAIL; - trace1(TR_accepted, 1); return; case PROG_MISMATCH: error->re_status = RPC_PROGVERSMISMATCH; - trace1(TR_accepted, 1); return; case PROC_UNAVAIL: error->re_status = RPC_PROCUNAVAIL; - trace1(TR_accepted, 1); return; case GARBAGE_ARGS: error->re_status = RPC_CANTDECODEARGS; - trace1(TR_accepted, 1); return; case SYSTEM_ERR: error->re_status = RPC_SYSTEMERROR; - trace1(TR_accepted, 1); return; case SUCCESS: error->re_status = RPC_SUCCESS; - trace1(TR_accepted, 1); return; } /* something's wrong, but we don't know what ... */ error->re_status = RPC_FAILED; error->re_lb.s1 = (int32_t)MSG_ACCEPTED; error->re_lb.s2 = (int32_t)acpt_stat; - trace1(TR_accepted, 1); } static void rejected(enum reject_stat rjct_stat, struct rpc_err *error) { - - trace1(TR_rejected, 0); switch (rjct_stat) { case RPC_MISMATCH: error->re_status = RPC_VERSMISMATCH; - trace1(TR_rejected, 1); return; case AUTH_ERROR: error->re_status = RPC_AUTHERROR; - trace1(TR_rejected, 1); return; } /* something's wrong, but we don't know what ... */ error->re_status = RPC_FAILED; error->re_lb.s1 = (int32_t)MSG_DENIED; error->re_lb.s2 = (int32_t)rjct_stat; - trace1(TR_rejected, 1); } /* diff --git a/usr/src/lib/librac/rpc/rpcb_clnt.c b/usr/src/lib/librac/rpc/rpcb_clnt.c index 62cbd6883d..20c427cd9f 100644 --- a/usr/src/lib/librac/rpc/rpcb_clnt.c +++ b/usr/src/lib/librac/rpc/rpcb_clnt.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1986-1991,1998 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -32,7 +33,6 @@ */ #include <rpc/rpc.h> -#include <rpc/trace.h> #include <rpc/rpcb_prot.h> #include <netconfig.h> #include <netdir.h> @@ -99,7 +99,6 @@ check_cache(const char *host, char *netid) { struct address_cache *cptr; - trace1(TR_check_cache, 0); for (cptr = front; cptr != NULL; cptr = cptr->ac_next) { if (strcmp(cptr->ac_host, host) == 0 && strcmp(cptr->ac_netid, netid) == 0) { @@ -107,12 +106,10 @@ check_cache(const char *host, char *netid) fprintf(stderr, "Found cache entry for %s: %s\n", host, netid); #endif - trace1(TR_check_cache, 1); return (cptr); } } - trace1(TR_check_cache, 1); - return ((struct address_cache *)NULL); + return (NULL); } static void @@ -120,7 +117,6 @@ delete_cache(struct address_cache *ad_cache) { struct address_cache *cptr, *prevptr = NULL; - trace1(TR_delete_cache, 0); for (cptr = front; cptr != NULL; cptr = cptr->ac_next) { if (strcmp(cptr->ac_host, ad_cache->ac_host) == 0 && strcmp(cptr->ac_netid, ad_cache->ac_netid) == 0) { @@ -140,7 +136,6 @@ delete_cache(struct address_cache *ad_cache) } prevptr = cptr; } - trace1(TR_delete_cache, 1); } static void @@ -148,28 +143,20 @@ add_cache(const char *host, char *netid, struct netbuf *taddr, char *uaddr) { struct address_cache *ad_cache, *cptr, *prevptr; - trace1(TR_add_cache, 0); - ad_cache = (struct address_cache *) - malloc(sizeof (struct address_cache)); - if (!ad_cache) { - trace1(TR_add_cache, 1); + ad_cache = malloc(sizeof (struct address_cache)); + if (!ad_cache) return; - } ad_cache->ac_host = strdup(host); ad_cache->ac_netid = strdup(netid); ad_cache->ac_uaddr = uaddr ? strdup(uaddr) : NULL; - ad_cache->ac_taddr = (struct netbuf *)malloc(sizeof (struct netbuf)); + ad_cache->ac_taddr = malloc(sizeof (struct netbuf)); if (!ad_cache->ac_host || !ad_cache->ac_netid || !ad_cache->ac_taddr || - (uaddr && !ad_cache->ac_uaddr)) { - trace1(TR_add_cache, 1); + (uaddr && !ad_cache->ac_uaddr)) return; - } ad_cache->ac_taddr->len = ad_cache->ac_taddr->maxlen = taddr->len; - ad_cache->ac_taddr->buf = (char *)malloc(taddr->len); - if (ad_cache->ac_taddr->buf == NULL) { - trace1(TR_add_cache, 1); + ad_cache->ac_taddr->buf = malloc(taddr->len); + if (ad_cache->ac_taddr->buf == NULL) return; - } (void) memcpy(ad_cache->ac_taddr->buf, taddr->buf, taddr->len); #ifdef ND_DEBUG fprintf(stderr, "Added to cache: %s : %s\n", host, netid); @@ -209,7 +196,6 @@ add_cache(const char *host, char *netid, struct netbuf *taddr, char *uaddr) } free(cptr); } - trace1(TR_add_cache, 1); } /* @@ -219,14 +205,13 @@ add_cache(const char *host, char *netid, struct netbuf *taddr, char *uaddr) static CLIENT * getclnthandle(const char *host, const struct netconfig *nconf, char **targaddr) { - register CLIENT *client; + CLIENT *client; struct netbuf *addr; struct nd_addrlist *nas; struct nd_hostserv rpcbind_hs; struct address_cache *ad_cache; char *tmpaddr; - trace1(TR_getclnthandle, 0); /* Get the address of the rpcbind. Check cache first */ ad_cache = check_cache(host, nconf->nc_netid); if (ad_cache != NULL) { @@ -236,7 +221,6 @@ getclnthandle(const char *host, const struct netconfig *nconf, char **targaddr) if (client != NULL) { if (targaddr) *targaddr = ad_cache->ac_uaddr; - trace1(TR_getclnthandle, 1); return (client); } /* @@ -255,8 +239,7 @@ getclnthandle(const char *host, const struct netconfig *nconf, char **targaddr) if (netdir_getbyname((struct netconfig *)nconf, &rpcbind_hs, &nas)) { rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; - trace1(TR_getclnthandle, 1); - return ((CLIENT *)NULL); + return (NULL); } /* XXX nas should perhaps be cached for better performance */ @@ -286,7 +269,7 @@ getclnthandle(const char *host, const struct netconfig *nconf, char **targaddr) client = clnt_tli_create(RPC_ANYFD, nconf, addr, RPCBPROG, RPCBVERS4, 0, 0); #ifdef ND_DEBUG - if (! client) { + if (!client) { clnt_pcreateerror("rpcbind clnt interface"); } #endif @@ -299,7 +282,6 @@ getclnthandle(const char *host, const struct netconfig *nconf, char **targaddr) *targaddr = tmpaddr; } netdir_free((char *)nas, ND_ADDRLIST); - trace1(TR_getclnthandle, 1); return (client); } @@ -308,30 +290,28 @@ getclnthandle(const char *host, const struct netconfig *nconf, char **targaddr) * rpcbind. Returns NULL on error and free's everything. */ static CLIENT * -local_rpcb() +local_rpcb(void) { static CLIENT *client; static struct netconfig *loopnconf; static char *hostname; - trace1(TR_local_rpcb, 0); if (loopnconf == NULL) { struct utsname utsname; struct netconfig *nconf, *tmpnconf = NULL; void *nc_handle; - if (hostname == (char *)NULL) { + if (hostname == NULL) { if ((uname(&utsname) == -1) || ((hostname = strdup(utsname.nodename)) == NULL)) { rpc_createerr.cf_stat = RPC_UNKNOWNHOST; - return ((CLIENT *)NULL); + return (NULL); } } nc_handle = setnetconfig(); if (nc_handle == NULL) { /* fails to open netconfig file */ rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_local_rpcb, 1); return (NULL); } while (nconf = getnetconfig(nc_handle)) { @@ -350,8 +330,7 @@ local_rpcb() /* loopnconf is never freed */ (void) endnetconfig(nc_handle); } - client = getclnthandle(hostname, loopnconf, (char **)NULL); - trace1(TR_local_rpcb, 1); + client = getclnthandle(hostname, loopnconf, NULL); return (client); } @@ -363,34 +342,28 @@ bool_t rpcb_set(const rpcprog_t program, const rpcvers_t version, const struct netconfig *nconf, const struct netbuf *address) { - register CLIENT *client; + CLIENT *client; bool_t rslt = FALSE; RPCB parms; char uidbuf[32]; - trace3(TR_rpcb_set, 0, program, version); /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_set, 1, program, version); return (FALSE); } if (address == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace3(TR_rpcb_set, 1, program, version); return (FALSE); } client = local_rpcb(); - if (! client) { - trace3(TR_rpcb_set, 1, program, version); + if (!client) return (FALSE); - } parms.r_addr = taddr2uaddr((struct netconfig *)nconf, (struct netbuf *) address); /* convert to universal */ if (!parms.r_addr) { rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; - trace3(TR_rpcb_set, 1, program, version); return (FALSE); /* no universal address */ } parms.r_prog = program; @@ -409,7 +382,6 @@ rpcb_set(const rpcprog_t program, const rpcvers_t version, CLNT_DESTROY(client); free(parms.r_addr); - trace3(TR_rpcb_set, 1, program, version); return (rslt); } @@ -423,17 +395,14 @@ bool_t rpcb_unset(const rpcprog_t program, const rpcvers_t version, const struct netconfig *nconf) { - register CLIENT *client; + CLIENT *client; bool_t rslt = FALSE; RPCB parms; char uidbuf[32]; - trace3(TR_rpcb_unset, 0, program, version); client = local_rpcb(); - if (! client) { - trace3(TR_rpcb_unset, 1, program, version); + if (!client) return (FALSE); - } parms.r_prog = program; parms.r_vers = version; @@ -449,7 +418,6 @@ rpcb_unset(const rpcprog_t program, const rpcvers_t version, (xdrproc_t)xdr_bool, (char *)&rslt, tottimeout); CLNT_DESTROY(client); - trace3(TR_rpcb_unset, 1, program, version); return (rslt); } @@ -463,7 +431,6 @@ got_entry(rpcb_entry_list_ptr relp, const struct netconfig *nconf) rpcb_entry_list_ptr sp; rpcb_entry *rmap; - trace1(TR_got_entry, 0); for (sp = relp; sp != NULL; sp = sp->rpcb_entry_next) { rmap = &sp->rpcb_entry_map; if ((strcmp(nconf->nc_proto, rmap->r_nc_proto) == 0) && @@ -482,7 +449,6 @@ got_entry(rpcb_entry_list_ptr relp, const struct netconfig *nconf) break; } } - trace1(TR_got_entry, 1); return (na); } @@ -508,7 +474,7 @@ struct netbuf * __rpcb_findaddr(rpcprog_t program, rpcvers_t version, const struct netconfig *nconf, const char *host, CLIENT **clpp) { - register CLIENT *client = NULL; + CLIENT *client = NULL; RPCB parms; enum clnt_stat clnt_st; char *ua = NULL; @@ -516,11 +482,9 @@ __rpcb_findaddr(rpcprog_t program, rpcvers_t version, struct netbuf *address = NULL; uint_t start_vers = RPCBVERS4; - trace3(TR_rpcb_findaddr, 0, program, version); /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_findaddr, 1, program, version); return (NULL); } @@ -544,13 +508,11 @@ __rpcb_findaddr(rpcprog_t program, rpcvers_t version, if ((handle = __rpc_setconf("udp")) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_findaddr, 1, program, version); return (NULL); } if ((newnconf = __rpc_getconf(handle)) == NULL) { __rpc_endconf(handle); rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace3(TR_rpcb_findaddr, 1, program, version); return (NULL); } client = getclnthandle(host, newnconf, &parms.r_addr); @@ -558,10 +520,8 @@ __rpcb_findaddr(rpcprog_t program, rpcvers_t version, } else { client = getclnthandle(host, nconf, &parms.r_addr); } - if (client == (CLIENT *)NULL) { - trace3(TR_rpcb_findaddr, 1, program, version); + if (client == NULL) return (NULL); - } /* Set the version */ CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers); @@ -588,10 +548,8 @@ __rpcb_findaddr(rpcprog_t program, rpcvers_t version, } port = htons(port); CLNT_CONTROL(client, CLGET_SVC_ADDR, (char *)&remote); - if (((address = (struct netbuf *) - malloc(sizeof (struct netbuf))) == NULL) || - ((address->buf = (char *) - malloc(remote.len)) == NULL)) { + if (((address = malloc(sizeof (struct netbuf))) == NULL) || + ((address->buf = malloc(remote.len)) == NULL)) { rpc_createerr.cf_stat = RPC_SYSTEMERROR; clnt_geterr(client, &rpc_createerr.cf_error); if (address) { @@ -645,7 +603,7 @@ try_rpcbind: } __rpc_endconf(handle); } - if (client == (CLIENT *)NULL) + if (client == NULL) goto regular_rpcbind; /* Go the regular way */ } else { /* This is a UDP PORTMAP handle. Change to version 4 */ @@ -729,7 +687,7 @@ regular_rpcbind: #endif xdr_free((xdrproc_t)xdr_wrapstring, (char *)&ua); - if (! address) { + if (!address) { /* We don't know about your universal address */ rpc_createerr.cf_stat = RPC_N2AXLATEFAILURE; goto error; @@ -769,7 +727,6 @@ done: } else if (client) { CLNT_DESTROY(client); } - trace3(TR_rpcb_findaddr, 1, program, version); return (address); } @@ -788,22 +745,19 @@ rpcb_getaddr(const rpcprog_t program, const rpcvers_t version, { struct netbuf *na; - trace3(TR_rpcb_getaddr, 0, program, version); if ((na = __rpcb_findaddr(program, version, (struct netconfig *)nconf, - (char *)host, (CLIENT **) NULL)) == NULL) + (char *)host, NULL)) == NULL) return (FALSE); if (na->len > address->maxlen) { /* Too long address */ netdir_free((char *)na, ND_ADDR); rpc_createerr.cf_stat = RPC_FAILED; - trace3(TR_rpcb_getaddr, 1, program, version); return (FALSE); } - (void) memcpy(address->buf, na->buf, (int)na->len); + (void) memcpy(address->buf, na->buf, (size_t)na->len); address->len = na->len; netdir_free((char *)na, ND_ADDR); - trace3(TR_rpcb_getaddr, 1, program, version); return (TRUE); } @@ -817,18 +771,14 @@ rpcb_getaddr(const rpcprog_t program, const rpcvers_t version, rpcblist * rpcb_getmaps(const struct netconfig *nconf, const char *host) { - rpcblist_ptr head = (rpcblist_ptr)NULL; - register CLIENT *client; + rpcblist_ptr head = NULL; + CLIENT *client; enum clnt_stat clnt_st; int vers = 0; - trace1(TR_rpcb_getmaps, 0); - client = getclnthandle((char *)host, (struct netconfig *)nconf, - (char **)NULL); - if (client == (CLIENT *)NULL) { - trace1(TR_rpcb_getmaps, 1); + client = getclnthandle((char *)host, (struct netconfig *)nconf, NULL); + if (client == NULL) return (head); - } clnt_st = CLNT_CALL(client, RPCBPROC_DUMP, (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_rpcblist_ptr, @@ -850,7 +800,7 @@ rpcb_getmaps(const struct netconfig *nconf, const char *host) CLNT_CONTROL(client, CLSET_VERS, (char *)&vers); if (CLNT_CALL(client, RPCBPROC_DUMP, (xdrproc_t)xdr_void, - (char *)NULL, (xdrproc_t)xdr_rpcblist_ptr, + NULL, (xdrproc_t)xdr_rpcblist_ptr, (char *)&head, tottimeout) == RPC_SUCCESS) goto done; } @@ -859,7 +809,6 @@ rpcb_getmaps(const struct netconfig *nconf, const char *host) done: CLNT_DESTROY(client); - trace1(TR_rpcb_getmaps, 1); return (head); } @@ -876,20 +825,15 @@ rpcb_rmtcall(const struct netconfig *nconf, const char *host, const xdrproc_t xdrargs, const caddr_t argsp, const xdrproc_t xdrres, const caddr_t resp, const struct timeval tout, struct netbuf *addr_ptr) { - register CLIENT *client; + CLIENT *client; enum clnt_stat stat; struct r_rpcb_rmtcallargs a; struct r_rpcb_rmtcallres r; int rpcb_vers; - trace4(TR_rpcb_rmtcall, 0, prog, vers, proc); - - client = getclnthandle((char *)host, (struct netconfig *)nconf, - (char **)NULL); - if (client == (CLIENT *)NULL) { - trace4(TR_rpcb_rmtcall, 1, prog, vers, proc); + client = getclnthandle((char *)host, (struct netconfig *)nconf, NULL); + if (client == NULL) return (RPC_FAILED); - } CLNT_CONTROL(client, CLSET_RETRY_TIMEOUT, (char *)&rmttimeout); a.prog = prog; a.vers = vers; @@ -909,7 +853,7 @@ rpcb_rmtcall(const struct netconfig *nconf, const char *host, struct netbuf *na; na = uaddr2taddr((struct netconfig *)nconf, r.addr); - if (! na) { + if (!na) { stat = RPC_N2AXLATEFAILURE; ((struct netbuf *)addr_ptr)->len = 0; goto error; @@ -921,7 +865,7 @@ rpcb_rmtcall(const struct netconfig *nconf, const char *host, ((struct netbuf *)addr_ptr)->len = 0; goto error; } - (void) memcpy(addr_ptr->buf, na->buf, (int)na->len); + (void) memcpy(addr_ptr->buf, na->buf, (size_t)na->len); ((struct netbuf *)addr_ptr)->len = na->len; netdir_free((char *)na, ND_ADDR); break; @@ -934,7 +878,6 @@ error: CLNT_DESTROY(client); if (r.addr) xdr_free((xdrproc_t)xdr_wrapstring, (char *)&r.addr); - trace4(TR_rpcb_rmtcall, 1, prog, vers, proc); return (stat); } @@ -951,38 +894,32 @@ rpcb_gettime(const char *host, time_t *timep) int vers; enum clnt_stat st; - trace1(TR_rpcb_gettime, 0); - if ((host == NULL) || (host[0] == NULL)) { (void) time(timep); - trace1(TR_rpcb_gettime, 1); return (TRUE); } if ((handle = __rpc_setconf("netpath")) == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_rpcb_gettime, 1); return (FALSE); } rpc_createerr.cf_stat = RPC_SUCCESS; - while (client == (CLIENT *)NULL) { + while (client == NULL) { if ((nconf = __rpc_getconf(handle)) == NULL) { if (rpc_createerr.cf_stat == RPC_SUCCESS) rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; break; } - client = getclnthandle((char *)host, nconf, (char **)NULL); + client = getclnthandle((char *)host, nconf, NULL); if (client) break; } __rpc_endconf(handle); - if (client == (CLIENT *)NULL) { - trace1(TR_rpcb_gettime, 1); + if (client == NULL) return (FALSE); - } st = CLNT_CALL(client, RPCBPROC_GETTIME, - (xdrproc_t)xdr_void, (char *)NULL, + (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_int, (char *)timep, tottimeout); if ((st == RPC_PROGVERSMISMATCH) || (st == RPC_PROGUNAVAIL)) { @@ -992,14 +929,13 @@ rpcb_gettime(const char *host, time_t *timep) vers = RPCBVERS; CLNT_CONTROL(client, CLSET_VERS, (char *)&vers); st = CLNT_CALL(client, RPCBPROC_GETTIME, - (xdrproc_t)xdr_void, (char *)NULL, + (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_int, (char *)timep, tottimeout); } } - trace1(TR_rpcb_gettime, 1); CLNT_DESTROY(client); - return (st == RPC_SUCCESS? TRUE: FALSE); + return (st == RPC_SUCCESS ? TRUE : FALSE); } /* @@ -1012,30 +948,23 @@ rpcb_taddr2uaddr(struct netconfig *nconf, struct netbuf *taddr) CLIENT *client; char *uaddr = NULL; - trace1(TR_rpcb_taddr2uaddr, 0); - /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_rpcb_taddr2uaddr, 1); return (NULL); } if (taddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace1(TR_rpcb_taddr2uaddr, 1); return (NULL); } client = local_rpcb(); - if (! client) { - trace1(TR_rpcb_taddr2uaddr, 1); + if (!client) return (NULL); - } CLNT_CALL(client, RPCBPROC_TADDR2UADDR, (xdrproc_t)xdr_netbuf, (char *)taddr, (xdrproc_t)xdr_wrapstring, (char *)&uaddr, tottimeout); CLNT_DESTROY(client); - trace1(TR_rpcb_taddr2uaddr, 1); return (uaddr); } @@ -1049,29 +978,22 @@ rpcb_uaddr2taddr(struct netconfig *nconf, char *uaddr) CLIENT *client; struct netbuf *taddr; - trace1(TR_rpcb_uaddr2taddr, 0); - /* parameter checking */ - if (nconf == (struct netconfig *)NULL) { + if (nconf == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; - trace1(TR_rpcb_uaddr2taddr, 1); return (NULL); } if (uaddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; - trace1(TR_rpcb_uaddr2taddr, 1); return (NULL); } client = local_rpcb(); - if (! client) { - trace1(TR_rpcb_uaddr2taddr, 1); + if (!client) return (NULL); - } - taddr = (struct netbuf *)calloc(1, sizeof (struct netbuf)); + taddr = calloc(1, sizeof (struct netbuf)); if (taddr == NULL) { CLNT_DESTROY(client); - trace1(TR_rpcb_uaddr2taddr, 1); return (NULL); } if (CLNT_CALL(client, RPCBPROC_UADDR2TADDR, (xdrproc_t)xdr_wrapstring, @@ -1081,6 +1003,5 @@ rpcb_uaddr2taddr(struct netconfig *nconf, char *uaddr) taddr = NULL; } CLNT_DESTROY(client); - trace1(TR_rpcb_uaddr2taddr, 1); return (taddr); } diff --git a/usr/src/lib/librac/rpc/xdr_rec.c b/usr/src/lib/librac/rpc/xdr_rec.c index b9781a567d..7e590012c2 100644 --- a/usr/src/lib/librac/rpc/xdr_rec.c +++ b/usr/src/lib/librac/rpc/xdr_rec.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -46,7 +47,6 @@ #include <rpc/types.h> #include <rpc/xdr.h> #include <sys/types.h> -#include <rpc/trace.h> #include <syslog.h> #include <memory.h> #include <stdlib.h> @@ -122,17 +122,14 @@ xdrrec_create(XDR *xdrs, const uint_t sendsize, const uint_t recvsize, int (*readit)(void *, caddr_t, int), int (*writeit)(void *, caddr_t, int)) { uint_t ssize, rsize; - register RECSTREAM *rstrm = - (RECSTREAM *)malloc(sizeof (RECSTREAM)); + RECSTREAM *rstrm = malloc(sizeof (RECSTREAM)); - trace3(TR_xdrrec_create, 0, sendsize, recvsize); if (rstrm == NULL) { (void) syslog(LOG_ERR, mem_err_msg_rec); /* * XXX: This is bad. Should rework xdrrec_create to * return a handle, and in this case return NULL */ - trace1(TR_xdrrec_create, 1); return; } /* @@ -140,11 +137,10 @@ xdrrec_create(XDR *xdrs, const uint_t sendsize, const uint_t recvsize, */ rstrm->sendsize = ssize = fix_buf_size(sendsize); rstrm->recvsize = rsize = fix_buf_size(recvsize); - rstrm->the_buffer = (caddr_t)malloc(ssize + rsize + BYTES_PER_XDR_UNIT); + rstrm->the_buffer = malloc(ssize + rsize + BYTES_PER_XDR_UNIT); if (rstrm->the_buffer == NULL) { (void) syslog(LOG_ERR, mem_err_msg_rec); - (void) free((char *)rstrm); - trace1(TR_xdrrec_create, 1); + (void) free(rstrm); return; } for (rstrm->out_base = rstrm->the_buffer; @@ -170,8 +166,6 @@ xdrrec_create(XDR *xdrs, const uint_t sendsize, const uint_t recvsize, rstrm->in_finger = (rstrm->in_boundry += rsize); rstrm->fbtbc = 0; rstrm->last_frag = TRUE; - - trace1(TR_xdrrec_create, 1); } /* @@ -181,11 +175,10 @@ xdrrec_create(XDR *xdrs, const uint_t sendsize, const uint_t recvsize, static bool_t xdrrec_getint32(XDR *xdrs, int32_t *ip) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - register int32_t *buflp = (int32_t *)(rstrm->in_finger); + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + int32_t *buflp = (int32_t *)(rstrm->in_finger); int32_t mylong; - trace1(TR_xdrrec_getint32, 0); /* first try the inline, fast case */ if ((rstrm->fbtbc >= sizeof (int32_t)) && (((intptr_t)rstrm->in_boundry - (intptr_t)buflp) >= @@ -194,24 +187,20 @@ xdrrec_getint32(XDR *xdrs, int32_t *ip) rstrm->fbtbc -= (int)sizeof (int32_t); rstrm->in_finger += sizeof (int32_t); } else { - if (! xdrrec_getbytes(xdrs, (caddr_t)&mylong, - sizeof (int32_t))) { - trace1(TR_xdrrec_getint32_t, 1); + if (!xdrrec_getbytes(xdrs, (caddr_t)&mylong, + sizeof (int32_t))) return (FALSE); - } *ip = (int32_t)ntohl((uint32_t)mylong); } - trace1(TR_xdrrec_getint32, 1); return (TRUE); } static bool_t xdrrec_putint32(XDR *xdrs, int32_t *ip) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - register int32_t *dest_lp = ((int32_t *)(rstrm->out_finger)); + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + int32_t *dest_lp = ((int32_t *)(rstrm->out_finger)); - trace1(TR_xdrrec_putint32, 0); if ((rstrm->out_finger += sizeof (int32_t)) > rstrm->out_boundry) { /* * this case should almost never happen so the code is @@ -219,15 +208,12 @@ xdrrec_putint32(XDR *xdrs, int32_t *ip) */ rstrm->out_finger -= sizeof (int32_t); rstrm->frag_sent = TRUE; - if (! flush_out(rstrm, FALSE)) { - trace1(TR_xdrrec_putint32, 1); + if (!flush_out(rstrm, FALSE)) return (FALSE); - } dest_lp = ((int32_t *)(rstrm->out_finger)); rstrm->out_finger += sizeof (int32_t); } *dest_lp = (int32_t)htonl((uint32_t)(*ip)); - trace1(TR_xdrrec_putint32, 1); return (TRUE); } @@ -263,43 +249,34 @@ xdrrec_putlong(XDR *xdrs, long *lp) static bool_t /* must manage buffers, fragments, and records */ xdrrec_getbytes(XDR *xdrs, caddr_t addr, int len) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - register int current; + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + int current; - trace2(TR_xdrrec_getbytes, 0, len); while (len > 0) { current = rstrm->fbtbc; if (current == 0) { - if (rstrm->last_frag) { - trace1(TR_xdrrec_getbytes, 1); + if (rstrm->last_frag) return (FALSE); - } - if (! set_input_fragment(rstrm)) { - trace1(TR_xdrrec_getbytes, 1); + if (!set_input_fragment(rstrm)) return (FALSE); - } continue; } current = (len < current) ? len : current; - if (! get_input_bytes(rstrm, addr, current)) { - trace1(TR_xdrrec_getbytes, 1); + if (!get_input_bytes(rstrm, addr, current)) return (FALSE); - } addr += current; rstrm->fbtbc -= current; len -= current; } - trace1(TR_xdrrec_getbytes, 1); return (TRUE); } static bool_t xdrrec_putbytes(XDR *xdrs, caddr_t addr, int len) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - register int current; + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + int current; - trace2(TR_xdrrec_putbytes, 0, len); while (len > 0) { current = (uintptr_t)rstrm->out_boundry - @@ -311,13 +288,10 @@ xdrrec_putbytes(XDR *xdrs, caddr_t addr, int len) len -= current; if (rstrm->out_finger == rstrm->out_boundry) { rstrm->frag_sent = TRUE; - if (! flush_out(rstrm, FALSE)) { - trace1(TR_xdrrec_putbytes, 1); + if (!flush_out(rstrm, FALSE)) return (FALSE); - } } } - trace1(TR_xdrrec_putbytes, 1); return (TRUE); } /* @@ -330,8 +304,8 @@ xdrrec_putbytes(XDR *xdrs, caddr_t addr, int len) uint_t /* must manage buffers, fragments, and records */ xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - register int current, len; + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + int current, len; len = l; while (len > 0) { @@ -339,12 +313,12 @@ xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l) if (current == 0) { if (rstrm->last_frag) return (l - len); - if (! set_input_fragment(rstrm)) + if (!set_input_fragment(rstrm)) return ((uint_t)-1); continue; } current = (len < current) ? len : current; - if (! get_input_bytes(rstrm, addr, current)) + if (!get_input_bytes(rstrm, addr, current)) return ((uint_t)-1); addr += current; rstrm->fbtbc -= current; @@ -356,10 +330,9 @@ xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l) static uint_t xdrrec_getpos(XDR *xdrs) { - register RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; - register int pos; + RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; + int pos; - trace1(TR_xdrrec_getpos, 0); pos = lseek((int)(intptr_t)rstrm->tcp_handle, 0, 1); if (pos != -1) switch (xdrs->x_op) { @@ -376,19 +349,17 @@ xdrrec_getpos(XDR *xdrs) pos = (uint_t)-1; break; } - trace1(TR_xdrrec_getpos, 1); return ((uint_t)pos); } static bool_t xdrrec_setpos(XDR *xdrs, uint_t pos) { - register RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; + RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; uint_t currpos = xdrrec_getpos(xdrs); int delta = currpos - pos; caddr_t newpos; - trace2(TR_xdrrec_setpos, 0, pos); if ((int)currpos != -1) switch (xdrs->x_op) { @@ -397,7 +368,6 @@ xdrrec_setpos(XDR *xdrs, uint_t pos) if ((newpos > (caddr_t)(rstrm->frag_header)) && (newpos < rstrm->out_boundry)) { rstrm->out_finger = newpos; - trace1(TR_xdrrec_setpos, 1); return (TRUE); } break; @@ -409,22 +379,19 @@ xdrrec_setpos(XDR *xdrs, uint_t pos) (newpos >= rstrm->in_base)) { rstrm->in_finger = newpos; rstrm->fbtbc -= delta; - trace1(TR_xdrrec_setpos, 1); return (TRUE); } break; } - trace1(TR_xdrrec_setpos, 1); return (FALSE); } static rpc_inline_t * xdrrec_inline(XDR *xdrs, int len) { - register RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; + RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; rpc_inline_t *buf = NULL; - trace2(TR_xdrrec_inline, 0, len); switch (xdrs->x_op) { case XDR_ENCODE: @@ -443,19 +410,16 @@ xdrrec_inline(XDR *xdrs, int len) } break; } - trace1(TR_xdrrec_inline, 1); return (buf); } static void xdrrec_destroy(XDR *xdrs) { - register RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; + RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; - trace1(TR_xdrrec_destroy, 0); free(rstrm->the_buffer); - free((caddr_t)rstrm); - trace1(TR_xdrrec_destroy, 1); + free(rstrm); } @@ -470,22 +434,16 @@ xdrrec_destroy(XDR *xdrs) bool_t xdrrec_skiprecord(XDR *xdrs) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - trace1(TR_xdrrec_skiprecord, 0); - while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) { - if (! skip_input_bytes(rstrm, rstrm->fbtbc)) { - trace1(TR_xdrrec_skiprecord, 1); + while (rstrm->fbtbc > 0 || (!rstrm->last_frag)) { + if (!skip_input_bytes(rstrm, rstrm->fbtbc)) return (FALSE); - } rstrm->fbtbc = 0; - if ((! rstrm->last_frag) && (! set_input_fragment(rstrm))) { - trace1(TR_xdrrec_skiprecord, 1); + if ((!rstrm->last_frag) && (!set_input_fragment(rstrm))) return (FALSE); - } } rstrm->last_frag = FALSE; - trace1(TR_xdrrec_skiprecord, 1); return (TRUE); } @@ -497,25 +455,17 @@ xdrrec_skiprecord(XDR *xdrs) bool_t xdrrec_eof(XDR *xdrs) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - trace1(TR_xdrrec_eof, 0); - while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) { - if (! skip_input_bytes(rstrm, rstrm->fbtbc)) { - trace1(TR_xdrrec_eof, 1); + while (rstrm->fbtbc > 0 || (!rstrm->last_frag)) { + if (!skip_input_bytes(rstrm, rstrm->fbtbc)) return (TRUE); - } rstrm->fbtbc = 0; - if ((! rstrm->last_frag) && (! set_input_fragment(rstrm))) { - trace1(TR_xdrrec_eof, 1); + if ((!rstrm->last_frag) && (!set_input_fragment(rstrm))) return (TRUE); - } } - if (rstrm->in_finger == rstrm->in_boundry) { - trace1(TR_xdrrec_eof, 1); + if (rstrm->in_finger == rstrm->in_boundry) return (TRUE); - } - trace1(TR_xdrrec_eof, 1); return (FALSE); } @@ -528,25 +478,20 @@ xdrrec_eof(XDR *xdrs) bool_t xdrrec_endofrecord(XDR *xdrs, bool_t sendnow) { - register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - register uint32_t len; /* fragment length */ - bool_t dummy; + RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); + uint32_t len; /* fragment length */ - trace1(TR_xdrrec_endofrecord, 0); if (sendnow || rstrm->frag_sent || ((uintptr_t)rstrm->out_finger + sizeof (uint_t) >= (uintptr_t)rstrm->out_boundry)) { rstrm->frag_sent = FALSE; - dummy = flush_out(rstrm, TRUE); - trace1(TR_xdrrec_endofrecord, 1); - return (dummy); + return (flush_out(rstrm, TRUE)); } len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->frag_header) - sizeof (uint_t); *(rstrm->frag_header) = htonl((uint32_t)len | LAST_FRAG); rstrm->frag_header = (uint32_t *)rstrm->out_finger; rstrm->out_finger += sizeof (uint_t); - trace1(TR_xdrrec_endofrecord, 1); return (TRUE); } @@ -564,66 +509,54 @@ xdrrec_resetinput(XDR *xdrs) static bool_t flush_out(RECSTREAM *rstrm, bool_t eor) { - register uint32_t eormask = (eor == TRUE) ? LAST_FRAG : 0; - register uint_t len = (uintptr_t)(rstrm->out_finger) - + uint32_t eormask = (eor == TRUE) ? LAST_FRAG : 0; + uint_t len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->frag_header) - sizeof (uint_t); - trace1(TR_flush_out, 0); *(rstrm->frag_header) = htonl(len | eormask); - len = (uintptr_t)(rstrm->out_finger) - (uintptr_t)(rstrm->out_base); if ((*(rstrm->writeit))(rstrm->tcp_handle, rstrm->out_base, (int)len) - != (int)len) { - trace1(TR_flush_out, 1); + != (int)len) return (FALSE); - } rstrm->frag_header = (uint32_t *)rstrm->out_base; rstrm->out_finger = (caddr_t)rstrm->out_base + sizeof (uint_t); - trace1(TR_flush_out, 1); return (TRUE); } -/* knows nothing about records! Only about input buffers */ +/* knows nothing about records! Only about input buffers */ static bool_t fill_input_buf(RECSTREAM *rstrm) { - register caddr_t where; + caddr_t where; uint_t i; - register int len; + int len; - trace1(TR_fill_input_buf, 0); where = rstrm->in_base; i = (uintptr_t)rstrm->in_boundry % BYTES_PER_XDR_UNIT; where += i; len = rstrm->in_size - i; - if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1) { - trace1(TR_fill_input_buf, 1); + if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1) return (FALSE); - } rstrm->in_finger = where; where += len; rstrm->in_boundry = where; - trace1(TR_fill_input_buf, 1); return (TRUE); } -/* knows nothing about records! Only about input buffers */ +/* knows nothing about records! Only about input buffers */ static bool_t get_input_bytes(RECSTREAM *rstrm, caddr_t addr, int len) { - register int current; + int current; - trace2(TR_get_input_bytes, 0, len); while (len > 0) { current = (intptr_t)rstrm->in_boundry - (intptr_t)rstrm->in_finger; if (current == 0) { - if (! fill_input_buf(rstrm)) { - trace1(TR_get_input_bytes, 1); + if (!fill_input_buf(rstrm)) return (FALSE); - } continue; } current = (len < current) ? len : current; @@ -632,7 +565,6 @@ get_input_bytes(RECSTREAM *rstrm, caddr_t addr, int len) addr += current; len -= current; } - trace1(TR_get_input_bytes, 1); return (TRUE); } @@ -642,14 +574,10 @@ set_input_fragment(RECSTREAM *rstrm) { uint_t header; - trace1(TR_set_input_fragment, 0); - if (! get_input_bytes(rstrm, (caddr_t)&header, (int)sizeof (header))) { - trace1(TR_set_input_fragment, 1); + if (!get_input_bytes(rstrm, (caddr_t)&header, (int)sizeof (header))) return (FALSE); - } rstrm->last_frag = ((header & LAST_FRAG) == 0) ? FALSE : TRUE; rstrm->fbtbc = header & (~LAST_FRAG); - trace1(TR_set_input_fragment, 1); return (TRUE); } @@ -657,46 +585,36 @@ set_input_fragment(RECSTREAM *rstrm) static bool_t skip_input_bytes(RECSTREAM *rstrm, int cnt) { - register int current; + int current; - trace2(TR_skip_input_bytes, 0, cnt); while (cnt > 0) { current = (intptr_t)rstrm->in_boundry - (intptr_t)rstrm->in_finger; if (current == 0) { - if (! fill_input_buf(rstrm)) { - trace1(TR_skip_input_bytes, 1); + if (!fill_input_buf(rstrm)) return (FALSE); - } continue; } current = (cnt < current) ? cnt : current; rstrm->in_finger += current; cnt -= current; } - trace1(TR_skip_input_bytes, 1); return (TRUE); } static uint_t fix_buf_size(uint_t s) { - static uint_t dummy1; - - trace2(TR_fix_buf_size, 0, s); if (s < 100) s = 4000; - dummy1 = RNDUP(s); - trace1(TR_fix_buf_size, 1); - return (dummy1); + return (RNDUP(s)); } static struct xdr_ops * -xdrrec_ops() +xdrrec_ops(void) { static struct xdr_ops ops; - trace1(TR_xdrrec_ops, 0); if (ops.x_getlong == NULL) { ops.x_getlong = xdrrec_getlong; ops.x_putlong = xdrrec_putlong; @@ -711,6 +629,5 @@ xdrrec_ops() ops.x_putint32 = xdrrec_putint32; #endif } - trace1(TR_xdrrec_ops, 1); return (&ops); } diff --git a/usr/src/lib/rpcsec_gss/rpcsec_gss_utils.c b/usr/src/lib/rpcsec_gss/rpcsec_gss_utils.c index 7b7e1e2f75..b612fba042 100644 --- a/usr/src/lib/rpcsec_gss/rpcsec_gss_utils.c +++ b/usr/src/lib/rpcsec_gss/rpcsec_gss_utils.c @@ -19,9 +19,10 @@ * * CDDL HEADER END */ + /* - * Copyright (c) 1986-1995,1997, by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -38,7 +39,6 @@ #include <gssapi/gssapi_ext.h> #include <rpc/rpc.h> #include <rpc/rpcsec_defs.h> -#include <rpc/trace.h> #define SVC_INTEGRITY "integrity" #define SVC_PRIVACY "privacy" @@ -60,9 +60,9 @@ struct cu_data { XDR cu_outxdrs; char *cu_outbuf_start; char cu_outbuf[MCALL_MSG_SIZE]; - u_int cu_xdrpos; - u_int cu_sendsz; /* send size */ - u_int cu_recvsz; /* recv size */ + uint_t cu_xdrpos; + uint_t cu_sendsz; /* send size */ + uint_t cu_recvsz; /* recv size */ struct pollfd pfdp; char cu_inbuf[1]; }; @@ -71,42 +71,30 @@ struct cu_data { * Internal utility routines. */ bool_t -__rpc_gss_mech_to_oid(mech, oid) - char *mech; - rpc_gss_OID *oid; +__rpc_gss_mech_to_oid(char *mech, rpc_gss_OID *oid) { - if (__gss_mech_to_oid(mech, (gss_OID*)oid) != GSS_S_COMPLETE) return (FALSE); - return (TRUE); } char * -__rpc_gss_oid_to_mech(oid) - rpc_gss_OID oid; +__rpc_gss_oid_to_mech(rpc_gss_OID oid) { - return ((char *)__gss_oid_to_mech((const gss_OID)oid)); } bool_t -__rpc_gss_qop_to_num(qop, mech, num) - char *qop; - char *mech; - OM_uint32 *num; +__rpc_gss_qop_to_num(char *qop, char *mech, OM_uint32 *num) { - if (__gss_qop_to_num(qop, mech, num) != GSS_S_COMPLETE) return (FALSE); return (TRUE); } char * -__rpc_gss_num_to_qop(mech, num) - char *mech; - OM_uint32 num; +__rpc_gss_num_to_qop(char *mech, OM_uint32 num) { char *qop; @@ -116,9 +104,7 @@ __rpc_gss_num_to_qop(mech, num) } bool_t -__rpc_gss_svc_to_num(svc, num) - char *svc; - rpc_gss_service_t *num; +__rpc_gss_svc_to_num(char *svc, rpc_gss_service_t *num) { if (strcasecmp(svc, SVC_INTEGRITY) == 0) *num = rpc_gss_svc_integrity; @@ -134,8 +120,7 @@ __rpc_gss_svc_to_num(svc, num) } char * -__rpc_gss_num_to_svc(num) - rpc_gss_service_t num; +__rpc_gss_num_to_svc(rpc_gss_service_t num) { switch (num) { case rpc_gss_svc_integrity: @@ -156,12 +141,8 @@ __rpc_gss_num_to_svc(num) * specific principal name (for the user name) in exported form. */ bool_t -__rpc_gss_get_principal_name(principal, mech, user, node, secdomain) - rpc_gss_principal_t *principal; - char *mech; - char *user; - char *node; - char *secdomain; +__rpc_gss_get_principal_name(rpc_gss_principal_t *principal, char *mech, + char *user, char *node, char *secdomain) { gss_name_t gss_name, gss_canon_name; gss_buffer_desc name_buf = GSS_C_EMPTY_BUFFER; @@ -239,7 +220,7 @@ __rpc_gss_get_principal_name(principal, mech, user, node, secdomain) * Put the exported name into rpc_gss_principal_t structure. */ plen = RNDUP(name_buf.length) + sizeof (int); - (*principal) = (rpc_gss_principal_t)malloc(plen); + (*principal) = malloc(plen); if ((*principal) == NULL) { gss_release_buffer(&minor, &name_buf); return (FALSE); @@ -257,7 +238,7 @@ __rpc_gss_get_principal_name(principal, mech, user, node, secdomain) * Return supported mechanisms. */ char ** -__rpc_gss_get_mechanisms() +__rpc_gss_get_mechanisms(void) { static char *mech_list[MAX_MECH_OID_PAIRS+1]; @@ -279,9 +260,7 @@ __rpc_gss_get_mechanisms() /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*!!!!!!!!!!! */ char ** -__rpc_gss_get_mech_info(mech, service) - char *mech; - rpc_gss_service_t *service; +__rpc_gss_get_mech_info(char *mech, rpc_gss_service_t *service) { char **l; @@ -303,9 +282,7 @@ __rpc_gss_get_mech_info(mech, service) * Returns highest and lowest versions of RPCSEC_GSS flavor supported. */ bool_t -__rpc_gss_get_versions(vers_hi, vers_lo) - u_int *vers_hi; - u_int *vers_lo; +__rpc_gss_get_versions(uint_t *vers_hi, uint_t *vers_lo) { *vers_hi = RPCSEC_GSS_VERSION; *vers_lo = RPCSEC_GSS_VERSION; @@ -316,8 +293,7 @@ __rpc_gss_get_versions(vers_hi, vers_lo) * Check if a mechanism is installed. */ bool_t -__rpc_gss_is_installed(mech) - char *mech; +__rpc_gss_is_installed(char *mech) { char **l; diff --git a/usr/src/pkgdefs/SUNWhea/prototype_com b/usr/src/pkgdefs/SUNWhea/prototype_com index 0ace8b0b58..8dd6476fe5 100644 --- a/usr/src/pkgdefs/SUNWhea/prototype_com +++ b/usr/src/pkgdefs/SUNWhea/prototype_com @@ -19,6 +19,7 @@ # # CDDL HEADER END # + # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. @@ -377,7 +378,6 @@ f none usr/include/rpc/svc.h 644 root bin f none usr/include/rpc/svc_auth.h 644 root bin f none usr/include/rpc/svc_mt.h 644 root bin f none usr/include/rpc/svc_soc.h 644 root bin -f none usr/include/rpc/trace.h 644 root bin f none usr/include/rpc/types.h 644 root bin f none usr/include/rpc/xdr.h 644 root bin d none usr/include/rpcsvc 755 root bin diff --git a/usr/src/tools/scripts/bfu.sh b/usr/src/tools/scripts/bfu.sh index 8b07de8f85..8a22329b36 100644 --- a/usr/src/tools/scripts/bfu.sh +++ b/usr/src/tools/scripts/bfu.sh @@ -20,6 +20,7 @@ # # CDDL HEADER END # + # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. @@ -5472,6 +5473,11 @@ mondo_loop() { rm -f $usr/include/std.h # + # Remove obsolete rpc/trace.h + # + rm -f $usr/include/rpc/trace.h + + # # Remove acpi_intp module # if [ $target_isa = i386 ]; then diff --git a/usr/src/uts/common/io/lvm/mirror/mirror_resync.c b/usr/src/uts/common/io/lvm/mirror/mirror_resync.c index d22abc4d28..7b6e102bd2 100644 --- a/usr/src/uts/common/io/lvm/mirror/mirror_resync.c +++ b/usr/src/uts/common/io/lvm/mirror/mirror_resync.c @@ -19,6 +19,7 @@ * * CDDL HEADER END */ + /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -1174,7 +1175,7 @@ optimized_resync(mm_unit_t *un) static void recalc_resync_done(mm_unit_t *un, size_t resync_2_do, diskaddr_t initblock, - ulonglong_t blk_size, u_longlong_t skip) + u_longlong_t blk_size, u_longlong_t skip) { diskaddr_t x; uint_t factor = 1; diff --git a/usr/src/uts/common/rpc/Makefile b/usr/src/uts/common/rpc/Makefile index 7d6944cb91..f4ea79bc50 100644 --- a/usr/src/uts/common/rpc/Makefile +++ b/usr/src/uts/common/rpc/Makefile @@ -19,10 +19,11 @@ # # CDDL HEADER END # + # -#ident "%Z%%M% %I% %E% SMI" +# ident "%Z%%M% %I% %E% SMI" # -# Copyright 2003 Sun Microsystems, Inc. All rights reserved. +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # uts/common/rpc/Makefile @@ -40,7 +41,7 @@ bootparam.h clnt.h clnt_soc.h clnt_stat.h des_crypt.h \ nettype.h pmap_clnt.h pmap_rmt.h \ rac.h raw.h rpc.h rpc_com.h rpc_msg.h \ rpcb_clnt.h rpcent.h svc.h svc_auth.h svc_soc.h \ -trace.h types.h xdr.h rpcsec_gss.h svc_mt.h \ +types.h xdr.h rpcsec_gss.h svc_mt.h \ rpcsys.h rpc_rdma.h HDRS= \ @@ -117,11 +118,8 @@ EXPORT_SRC: # EXPORT DELETE END -# The sed stuff is a workaround for an rpcgen bug (bugid 1128007). rpc_sztypes.h: rpc_sztypes.x - $(RPCGEN) -C -h rpc_sztypes.x > rpc_sztypes.tmp - sed -e s/ulonglong/u_longlong/ rpc_sztypes.tmp > $@ - rm rpc_sztypes.tmp + $(RPCGEN) -C -h rpc_sztypes.x > $@ rpcb_prot.h: rpcb_prot.x $(RPCGEN) -h rpcb_prot.x > $@ diff --git a/usr/src/uts/common/rpc/types.h b/usr/src/uts/common/rpc/types.h index af91f485f0..59258793e4 100644 --- a/usr/src/uts/common/rpc/types.h +++ b/usr/src/uts/common/rpc/types.h @@ -18,8 +18,10 @@ * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END - * - * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + */ + +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -48,8 +50,9 @@ typedef int bool_t; typedef int enum_t; /* - * The following is part of a workaround for bug #1128007. - * When it is fixed, this next typedef should be removed. + * The ulonglong_t type was introduced to workaround an rpcgen bug + * that has been fixed, this next typedef will be removed in a future release. + * Do *NOT* use! */ typedef u_longlong_t ulonglong_t; |