bool_t
mount_dump_1_svc(struct svc_req *rqstp, void *argp, mountlist *res)
{
+ struct sockaddr_in *addr =
+ (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
xlog(L_NOTICE, "dump request from %s",
- inet_ntoa(svc_getcaller(rqstp->rq_xprt)->sin_addr));
+ inet_ntoa(addr->sin_addr));
*res = mountlist_list();
return 1;
bool_t
mount_umnt_1_svc(struct svc_req *rqstp, dirpath *argp, void *resp)
{
- struct sockaddr_in *sin = svc_getcaller(rqstp->rq_xprt);
+ struct sockaddr_in *sin
+ = (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
nfs_export *exp;
char *p = *argp;
char rpath[MAXPATHLEN+1];
/* Reload /etc/xtab if necessary */
auth_reload();
- mountlist_del_all(svc_getcaller(rqstp->rq_xprt));
+ mountlist_del_all((struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt));
return 1;
}
bool_t
mount_export_1_svc(struct svc_req *rqstp, void *argp, exports *resp)
{
+ struct sockaddr_in *addr =
+ (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
xlog(L_NOTICE, "export request from %s",
- inet_ntoa(svc_getcaller(rqstp->rq_xprt)->sin_addr));
+ inet_ntoa(addr->sin_addr));
*resp = get_exportlist();
return 1;
}
bool_t
mount_exportall_1_svc(struct svc_req *rqstp, void *argp, exports *resp)
{
+ struct sockaddr_in *addr =
+ (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
xlog(L_NOTICE, "exportall request from %s",
- inet_ntoa(svc_getcaller(rqstp->rq_xprt)->sin_addr));
+ inet_ntoa(addr->sin_addr));
*resp = get_exportlist();
return 1;
}
bool_t
mount_pathconf_2_svc(struct svc_req *rqstp, dirpath *path, ppathcnf *res)
{
- struct sockaddr_in *sin = svc_getcaller(rqstp->rq_xprt);
+ struct sockaddr_in *sin
+ = (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
struct stat stb;
nfs_export *exp;
char rpath[MAXPATHLEN+1];
static struct nfs_fh_len *
get_rootfh(struct svc_req *rqstp, dirpath *path, int *error, int v3)
{
- struct sockaddr_in *sin = svc_getcaller(rqstp->rq_xprt);
+ struct sockaddr_in *sin =
+ (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
struct stat stb;
nfs_export *exp;
char rpath[MAXPATHLEN+1];
} else {
struct nfs_fh_len *fh;
- if (!exp->m_exported)
+ if (exp->m_exported<1)
export_export(exp);
if (!exp->m_xtabent)
xtab_append(exp);
sigaction(SIGHUP, &sa, NULL);
sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL);
+ /* WARNING: the following works on Linux and SysV, but not BSD! */
+ sigaction(SIGCHLD, &sa, NULL);
if (nfs_version & 0x1)
rpc_init("mountd", MOUNTPROG, MOUNTVERS,