(1) Remove ISO support, it's dead in the kernel anyway.

(2) Check for ENOENT when checking for /var/db/mountdtab
(3) Remove a signal handler that called broken functions.
(4) Remove the broken functions.

Submitted by:	Martin Blapp <mb@imp.ch>
Reviewed by:	bde (1), billf ([234])
This commit is contained in:
billf 1999-11-12 21:52:10 +00:00
parent 858cd0e9d8
commit 695cb40382
2 changed files with 12 additions and 188 deletions

View File

@ -56,9 +56,6 @@ static const char rcsid[] =
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
#ifdef ISO
#include <netiso/iso.h>
#endif
#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfs/nfs.h>
@ -127,9 +124,6 @@ struct netmsk {
union grouptypes {
struct hostent *gt_hostent;
struct netmsk gt_net;
#ifdef ISO
struct sockaddr_iso *gt_isoaddr;
#endif
};
struct grouplist {
@ -141,7 +135,6 @@ struct grouplist {
#define GT_NULL 0x0
#define GT_HOST 0x1
#define GT_NET 0x2
#define GT_ISO 0x4
#define GT_IGNORE 0x5
struct hostlist {
@ -193,8 +186,6 @@ void out_of_mem __P((void));
void parsecred __P((char *, struct ucred *));
int put_exlist __P((struct dirlist *, XDR *, struct dirlist *, int *));
int scan_tree __P((struct dirlist *, u_int32_t));
void send_umntall __P((void));
int umntall_each __P((caddr_t, struct sockaddr_in *));
static void usage __P((void));
int xdr_dir __P((XDR *, char *));
int xdr_explist __P((XDR *, caddr_t));
@ -206,10 +197,6 @@ int getnetgrent();
void endnetgrent();
void setnetgrent();
#ifdef ISO
struct iso_addr *iso_addr();
#endif
struct exportlist *exphead;
struct mountlist *mlhead;
struct grouplist *grphead;
@ -231,7 +218,6 @@ int opt_flags;
#define OP_KERB 0x04
#define OP_MASK 0x08
#define OP_NET 0x10
#define OP_ISO 0x20
#define OP_ALLDIRS 0x40
#ifdef DEBUG
@ -313,7 +299,6 @@ main(argc, argv)
signal(SIGQUIT, SIG_IGN);
}
signal(SIGHUP, (void (*) __P((int))) get_exportlist);
signal(SIGTERM, (void (*) __P((int))) send_umntall);
{ FILE *pidfile = fopen(_PATH_MOUNTDPID, "w");
if (pidfile != NULL) {
fprintf(pidfile, "%d\n", getpid());
@ -1423,16 +1408,6 @@ do_opt(cpp, endcpp, ep, grp, has_hostp, exflagsp, cr)
opt_flags |= OP_MAPALL;
} else if (cpoptarg && !strcmp(cpopt, "index")) {
ep->ex_indexfile = strdup(cpoptarg);
#ifdef ISO
} else if (cpoptarg && !strcmp(cpopt, "iso")) {
if (get_isoaddr(cpoptarg, grp)) {
syslog(LOG_ERR, "bad iso addr: %s", cpoptarg);
return (1);
}
*has_hostp = 1;
usedarg++;
opt_flags |= OP_ISO;
#endif /* ISO */
} else {
syslog(LOG_ERR, "bad opt %s", cpopt);
return (1);
@ -1593,36 +1568,6 @@ get_ht()
return (hp);
}
#ifdef ISO
/*
* Translate an iso address.
*/
get_isoaddr(cp, grp)
char *cp;
struct grouplist *grp;
{
struct iso_addr *isop;
struct sockaddr_iso *isoaddr;
if (grp->gr_type != GT_NULL)
return (1);
if ((isop = iso_addr(cp)) == NULL) {
syslog(LOG_ERR, "iso_addr failed, ignored");
return (1);
}
isoaddr = (struct sockaddr_iso *)malloc(sizeof (struct sockaddr_iso));
if (isoaddr == (struct sockaddr_iso *)NULL)
out_of_mem();
memset(isoaddr, 0, sizeof(struct sockaddr_iso));
memmove(&isoaddr->siso_addr, isop, sizeof(struct iso_addr));
isoaddr->siso_len = sizeof(struct sockaddr_iso);
isoaddr->siso_family = AF_ISO;
grp->gr_type = GT_ISO;
grp->gr_ptr.gt_isoaddr = isoaddr;
return (0);
}
#endif /* ISO */
/*
* Out of memory, fatal
*/
@ -1710,15 +1655,6 @@ do_mount(ep, grp, exflags, anoncrp, dirp, dirplen, fsb)
args.ua.export.ex_mask = (struct sockaddr *)&imask;
args.ua.export.ex_masklen = sizeof (imask);
break;
#ifdef ISO
case GT_ISO:
args.ua.export.ex_addr =
(struct sockaddr *)grp->gr_ptr.gt_isoaddr;
args.ua.export.ex_addrlen =
sizeof(struct sockaddr_iso);
args.ua.export.ex_masklen = 0;
break;
#endif /* ISO */
case GT_IGNORE:
return(0);
break;
@ -1990,8 +1926,12 @@ get_mountlist()
FILE *mlfile;
if ((mlfile = fopen(_PATH_RMOUNTLIST, "r")) == NULL) {
syslog(LOG_ERR, "can't open %s", _PATH_RMOUNTLIST);
return;
if (errno == ENOENT)
return;
else {
syslog(LOG_ERR, "can't open %s", _PATH_RMOUNTLIST);
return;
}
}
mlpp = &mlhead;
while (fgets(str, STRSIZ, mlfile) != NULL) {
@ -2083,26 +2023,6 @@ add_mlist(hostp, dirp)
fclose(mlfile);
}
/*
* This function is called via. SIGTERM when the system is going down.
* It sends a broadcast RPCMNT_UMNTALL.
*/
void
send_umntall()
{
(void) clnt_broadcast(RPCPROG_MNT, RPCMNT_VER1, RPCMNT_UMNTALL,
xdr_void, (caddr_t)0, xdr_void, (caddr_t)0, umntall_each);
exit(0);
}
int
umntall_each(resultsp, raddr)
caddr_t resultsp;
struct sockaddr_in *raddr;
{
return (1);
}
/*
* Free up a group list.
*/
@ -2125,10 +2045,6 @@ free_grp(grp)
if (grp->gr_ptr.gt_net.nt_name)
free(grp->gr_ptr.gt_net.nt_name);
}
#ifdef ISO
else if (grp->gr_type == GT_ISO)
free((caddr_t)grp->gr_ptr.gt_isoaddr);
#endif
free((caddr_t)grp);
}
@ -2164,10 +2080,6 @@ check_options(dp)
syslog(LOG_ERR, "-mask requires -net");
return (1);
}
if ((opt_flags & (OP_NET | OP_ISO)) == (OP_NET | OP_ISO)) {
syslog(LOG_ERR, "-net and -iso mutually exclusive");
return (1);
}
if ((opt_flags & OP_ALLDIRS) && dp->dp_left) {
syslog(LOG_ERR, "-alldirs has multiple directories");
return (1);

View File

@ -56,9 +56,6 @@ static const char rcsid[] =
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
#ifdef ISO
#include <netiso/iso.h>
#endif
#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfs/nfs.h>
@ -127,9 +124,6 @@ struct netmsk {
union grouptypes {
struct hostent *gt_hostent;
struct netmsk gt_net;
#ifdef ISO
struct sockaddr_iso *gt_isoaddr;
#endif
};
struct grouplist {
@ -141,7 +135,6 @@ struct grouplist {
#define GT_NULL 0x0
#define GT_HOST 0x1
#define GT_NET 0x2
#define GT_ISO 0x4
#define GT_IGNORE 0x5
struct hostlist {
@ -193,8 +186,6 @@ void out_of_mem __P((void));
void parsecred __P((char *, struct ucred *));
int put_exlist __P((struct dirlist *, XDR *, struct dirlist *, int *));
int scan_tree __P((struct dirlist *, u_int32_t));
void send_umntall __P((void));
int umntall_each __P((caddr_t, struct sockaddr_in *));
static void usage __P((void));
int xdr_dir __P((XDR *, char *));
int xdr_explist __P((XDR *, caddr_t));
@ -206,10 +197,6 @@ int getnetgrent();
void endnetgrent();
void setnetgrent();
#ifdef ISO
struct iso_addr *iso_addr();
#endif
struct exportlist *exphead;
struct mountlist *mlhead;
struct grouplist *grphead;
@ -231,7 +218,6 @@ int opt_flags;
#define OP_KERB 0x04
#define OP_MASK 0x08
#define OP_NET 0x10
#define OP_ISO 0x20
#define OP_ALLDIRS 0x40
#ifdef DEBUG
@ -313,7 +299,6 @@ main(argc, argv)
signal(SIGQUIT, SIG_IGN);
}
signal(SIGHUP, (void (*) __P((int))) get_exportlist);
signal(SIGTERM, (void (*) __P((int))) send_umntall);
{ FILE *pidfile = fopen(_PATH_MOUNTDPID, "w");
if (pidfile != NULL) {
fprintf(pidfile, "%d\n", getpid());
@ -1423,16 +1408,6 @@ do_opt(cpp, endcpp, ep, grp, has_hostp, exflagsp, cr)
opt_flags |= OP_MAPALL;
} else if (cpoptarg && !strcmp(cpopt, "index")) {
ep->ex_indexfile = strdup(cpoptarg);
#ifdef ISO
} else if (cpoptarg && !strcmp(cpopt, "iso")) {
if (get_isoaddr(cpoptarg, grp)) {
syslog(LOG_ERR, "bad iso addr: %s", cpoptarg);
return (1);
}
*has_hostp = 1;
usedarg++;
opt_flags |= OP_ISO;
#endif /* ISO */
} else {
syslog(LOG_ERR, "bad opt %s", cpopt);
return (1);
@ -1593,36 +1568,6 @@ get_ht()
return (hp);
}
#ifdef ISO
/*
* Translate an iso address.
*/
get_isoaddr(cp, grp)
char *cp;
struct grouplist *grp;
{
struct iso_addr *isop;
struct sockaddr_iso *isoaddr;
if (grp->gr_type != GT_NULL)
return (1);
if ((isop = iso_addr(cp)) == NULL) {
syslog(LOG_ERR, "iso_addr failed, ignored");
return (1);
}
isoaddr = (struct sockaddr_iso *)malloc(sizeof (struct sockaddr_iso));
if (isoaddr == (struct sockaddr_iso *)NULL)
out_of_mem();
memset(isoaddr, 0, sizeof(struct sockaddr_iso));
memmove(&isoaddr->siso_addr, isop, sizeof(struct iso_addr));
isoaddr->siso_len = sizeof(struct sockaddr_iso);
isoaddr->siso_family = AF_ISO;
grp->gr_type = GT_ISO;
grp->gr_ptr.gt_isoaddr = isoaddr;
return (0);
}
#endif /* ISO */
/*
* Out of memory, fatal
*/
@ -1710,15 +1655,6 @@ do_mount(ep, grp, exflags, anoncrp, dirp, dirplen, fsb)
args.ua.export.ex_mask = (struct sockaddr *)&imask;
args.ua.export.ex_masklen = sizeof (imask);
break;
#ifdef ISO
case GT_ISO:
args.ua.export.ex_addr =
(struct sockaddr *)grp->gr_ptr.gt_isoaddr;
args.ua.export.ex_addrlen =
sizeof(struct sockaddr_iso);
args.ua.export.ex_masklen = 0;
break;
#endif /* ISO */
case GT_IGNORE:
return(0);
break;
@ -1990,8 +1926,12 @@ get_mountlist()
FILE *mlfile;
if ((mlfile = fopen(_PATH_RMOUNTLIST, "r")) == NULL) {
syslog(LOG_ERR, "can't open %s", _PATH_RMOUNTLIST);
return;
if (errno == ENOENT)
return;
else {
syslog(LOG_ERR, "can't open %s", _PATH_RMOUNTLIST);
return;
}
}
mlpp = &mlhead;
while (fgets(str, STRSIZ, mlfile) != NULL) {
@ -2083,26 +2023,6 @@ add_mlist(hostp, dirp)
fclose(mlfile);
}
/*
* This function is called via. SIGTERM when the system is going down.
* It sends a broadcast RPCMNT_UMNTALL.
*/
void
send_umntall()
{
(void) clnt_broadcast(RPCPROG_MNT, RPCMNT_VER1, RPCMNT_UMNTALL,
xdr_void, (caddr_t)0, xdr_void, (caddr_t)0, umntall_each);
exit(0);
}
int
umntall_each(resultsp, raddr)
caddr_t resultsp;
struct sockaddr_in *raddr;
{
return (1);
}
/*
* Free up a group list.
*/
@ -2125,10 +2045,6 @@ free_grp(grp)
if (grp->gr_ptr.gt_net.nt_name)
free(grp->gr_ptr.gt_net.nt_name);
}
#ifdef ISO
else if (grp->gr_type == GT_ISO)
free((caddr_t)grp->gr_ptr.gt_isoaddr);
#endif
free((caddr_t)grp);
}
@ -2164,10 +2080,6 @@ check_options(dp)
syslog(LOG_ERR, "-mask requires -net");
return (1);
}
if ((opt_flags & (OP_NET | OP_ISO)) == (OP_NET | OP_ISO)) {
syslog(LOG_ERR, "-net and -iso mutually exclusive");
return (1);
}
if ((opt_flags & OP_ALLDIRS) && dp->dp_left) {
syslog(LOG_ERR, "-alldirs has multiple directories");
return (1);