projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 4_1_snap release
[unix-history]
/
usr
/
src
/
cmd
/
berknet
/
netlpr.c
diff --git
a/usr/src/cmd/berknet/netlpr.c
b/usr/src/cmd/berknet/netlpr.c
index
858019f
..
99089dd
100644
(file)
--- a/
usr/src/cmd/berknet/netlpr.c
+++ b/
usr/src/cmd/berknet/netlpr.c
@@
-1,3
+1,5
@@
+/* sccs id variable */
+static char *netlpr_sid = "@(#)netlpr.c 1.4";
/*
netlpr [-m mach] [-l login] [-p password] [-f] [-n] [-q] [-c ?pr] [file1 ... filen]
/*
netlpr [-m mach] [-l login] [-p password] [-f] [-n] [-q] [-c ?pr] [file1 ... filen]
@@
-28,7
+30,7
@@
struct userinfo status;
main(argc,argv)
char **argv; {
/* parms are flags to the lpr command on the rem mach */
main(argc,argv)
char **argv; {
/* parms are flags to the lpr command on the rem mach */
- int rcode,uid,pid;
+ int rcode,uid,pid
, Iflag
;
char parms[BUFSIZ], fnoacct, *sn, suid[20], sLprCommand[20];
static char tomachstr[BUFSIZ], realcmd[BUFSIZ], tempbuf[BUFSIZ],
sCmdAct[BUFSIZ];
char parms[BUFSIZ], fnoacct, *sn, suid[20], sLprCommand[20];
static char tomachstr[BUFSIZ], realcmd[BUFSIZ], tempbuf[BUFSIZ],
sCmdAct[BUFSIZ];
@@
-39,13
+41,19
@@
main(argc,argv)
strcpy(sLprCommand,"lpr");
argv++; argc--;
strcpy(sLprCommand,"lpr");
argv++; argc--;
+ Iflag = 0;
while(argc > 0 && argv[0][0] == '-'){
while(argc > 0 && argv[0][0] == '-'){
+ if( Iflag ) {
+ strcat( parms, argv[0] );
+ strcat( parms, " " );
+ argc--; argv++;
+ continue;
+ }
switch(argv[0][1]){
switch(argv[0][1]){
- case 'b': status.nonotify++; break;
- case 'c': harg(sLprCommand,&argc,&argv); break;
+ case 'c': harg(sLprCommand); break;
case 'f': status.force++; break;
case 'f': status.force++; break;
- case 'l': harg(status.login
,&argc,&argv
); break;
- case 'm': harg(tempbuf
,&argc,&argv
);
+ case 'l': harg(status.login); break;
+ case 'm': harg(tempbuf);
remote = lookup(tempbuf);
if(remote == 0){
fprintf(stderr,"Unknown machine %s\n",tempbuf);
remote = lookup(tempbuf);
if(remote == 0){
fprintf(stderr,"Unknown machine %s\n",tempbuf);
@@
-53,8
+61,9
@@
main(argc,argv)
}
break;
case 'n': status.nowrite++; break;
}
break;
case 'n': status.nowrite++; break;
- case 'p': harg(status.mpasswd
,&argc,&argv
); break;
+ case 'p': harg(status.mpasswd); break;
case 'q': status.quiet++; break;
case 'q': status.quiet++; break;
+ case 'I': Iflag++; break;
default: strcat(parms,argv[0]); strcat(parms," "); break;
}
argc--, argv++;
default: strcat(parms,argv[0]); strcat(parms," "); break;
}
argc--, argv++;
@@
-63,7
+72,8
@@
main(argc,argv)
commandfile();
if(remote == 0)remote = getremote(local);
/* fnoacct is true if no password is needed to netlpr */
commandfile();
if(remote == 0)remote = getremote(local);
/* fnoacct is true if no password is needed to netlpr */
- fnoacct = machtype[remote-'a']==M_CC&&machtype[local-'a']==M_CC;
+ fnoacct = machtype[chtoinx(remote)]==M_CC
+ && machtype[chtoinx(local)]==M_CC;
if(fnoacct){ /* no acct needed. */
/* look in passwd file for jobno */
if(fnoacct){ /* no acct needed. */
/* look in passwd file for jobno */
@@
-96,7
+106,7
@@
main(argc,argv)
do {
if(fnoacct)
do {
if(fnoacct)
- sprintf(sCmdAct,"%s -c%
04d
,%s %s",
+ sprintf(sCmdAct,"%s -c%
s
,%s %s",
sLprCommand,status.jobno,status.localname,parms);
else sprintf(sCmdAct,"%s %s",sLprCommand,parms);
sLprCommand,status.jobno,status.localname,parms);
else sprintf(sCmdAct,"%s %s",sLprCommand,parms);
@@
-130,8
+140,8
@@
main(argc,argv)
# ifdef NOREMACCT
if(fnoacct){
setuid(0);
# ifdef NOREMACCT
if(fnoacct){
setuid(0);
- mexecl(netcmd,"net",tomachstr,"-y","-",
- "-l",
status.localname
,"-u",suid,
+ mexecl(netcmd,"net",tomachstr,"-y","-
b","-
",
+ "-l",
"root"
,"-u",suid,
"-c",realcmd,sCmdAct,0);
perror(netcmd);
}
"-c",realcmd,sCmdAct,0);
perror(netcmd);
}