frogbak
view release on metacpan or search on metacpan
char **argv;
{
extern char *optarg;
extern int optind;
struct passwd *pw;
struct servent *sp;
long omask;
int argoff, asrsh, ch, dflag, nflag, one, pid, rem, uid;
register char *p;
char *args, *host, *user, *copyargs();
void sendsig();
char *time_message;
int timeout;
argoff = asrsh = dflag = nflag = 0;
one = 1;
host = user = NULL;
timeout = 0;
time_message = NULL;
/* if called as something other than "rsh", use it as the host name */
strerror(errno));
if (setsockopt(rfd2, SOL_SOCKET, SO_DEBUG, &one,
sizeof(one)) < 0)
(void)fprintf(stderr, "rsh: setsockopt: %s.\n",
strerror(errno));
}
(void)setuid(uid);
omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGTERM));
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
(void)signal(SIGINT, sendsig);
if (signal(SIGQUIT, SIG_IGN) != SIG_IGN)
(void)signal(SIGQUIT, sendsig);
if (signal(SIGTERM, SIG_IGN) != SIG_IGN)
(void)signal(SIGTERM, sendsig);
if (!nflag) {
pid = fork();
if (pid < 0) {
(void)fprintf(stderr,
"rsh: fork: %s.\n", strerror(errno));
exit(1);
}
}
if (cc <= 0) {
if (errno != EWOULDBLOCK)
readfrom &= ~(1 << rem);
} else
(void)write(1, buf, cc);
}
} while (readfrom);
}
void
sendsig(signo)
char signo;
{
#ifdef KERBEROS
#ifdef CRYPT
if (doencrypt)
(void)des_write(rfd2, &signo, 1);
else
#endif
#endif
(void)write(rfd2, &signo, 1);
rsh.c.freebsd view on Meta::CPAN
char dst_realm_buf[REALM_SZ], *dest_realm;
extern char *krb_realmofhost();
#endif
/*
* rsh - remote shell
*/
int rfd2;
char *copyargs __P((char **));
void sendsig __P((int));
void talk __P((int, long, pid_t, int, int));
void usage __P((void));
void warning __P(());
int
main(argc, argv)
int argc;
char **argv;
{
struct passwd *pw;
rsh.c.freebsd view on Meta::CPAN
sizeof(one)) < 0)
warn("setsockopt");
if (setsockopt(rfd2, SOL_SOCKET, SO_DEBUG, &one,
sizeof(one)) < 0)
warn("setsockopt");
}
(void)setuid(uid);
omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGTERM));
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
(void)signal(SIGINT, sendsig);
if (signal(SIGQUIT, SIG_IGN) != SIG_IGN)
(void)signal(SIGQUIT, sendsig);
if (signal(SIGTERM, SIG_IGN) != SIG_IGN)
(void)signal(SIGTERM, sendsig);
if (!nflag) {
pid = fork();
if (pid < 0)
err(1, "fork");
}
#ifdef KERBEROS
#ifdef CRYPT
if (!doencrypt)
rsh.c.freebsd view on Meta::CPAN
if (cc <= 0) {
if (errno != EWOULDBLOCK)
FD_CLR(rem, &readfrom);
} else
(void)write(1, buf, cc);
}
} while (FD_ISSET(rfd2, &readfrom) || FD_ISSET(rem, &readfrom));
}
void
sendsig(sig)
int sig;
{
char signo;
signo = sig;
#ifdef KERBEROS
#ifdef CRYPT
if (doencrypt)
(void)des_write(rfd2, &signo, 1);
else
( run in 1.627 second using v1.01-cache-2.11-cpan-71847e10f99 )