[4458] in Athena Bugs
nfsc and mapping reference counts
daemon@ATHENA.MIT.EDU (John Carr)
Thu Mar 8 03:58:27 1990
To: bugs@ATHENA.MIT.EDU
Date: Thu, 08 Mar 90 03:58:09 EST
From: John Carr <jfc@ATHENA.MIT.EDU>
This message contains changes to make nfsc print reference counts of
mappings when the "list" option is used.
[Reference: changes.70 #95]
*** /source/bsd-4.3/common/usr.etc/nfsc/nfsc.c Mon Sep 18 09:36:45 1989
--- nfsc.c Thu Mar 8 03:50:51 1990
***************
*** 186,192 ****
} else {
/* should add something to tables.. */
printf("add: ");
! print_cred(&sin.sin_addr, uid, credp);
}
return;
usage:
--- 186,192 ----
} else {
/* should add something to tables.. */
printf("add: ");
! print_cred(&sin.sin_addr, uid, credp, 0);
}
return;
usage:
***************
*** 198,204 ****
#endif
}
! void print_cred(addr, uid, credp)
struct in_addr *addr;
rpc_uid_t uid;
struct authunix_parms *credp;
--- 198,204 ----
#endif
}
! void print_cred(addr, uid, credp, cnt)
struct in_addr *addr;
rpc_uid_t uid;
struct authunix_parms *credp;
***************
*** 222,229 ****
printf(" %s",
getgroupbygid(credp->aup_gids[i]));
}
! printf("]\n");
! } else printf("no credential\n");
}
--- 222,233 ----
printf(" %s",
getgroupbygid(credp->aup_gids[i]));
}
! printf("]");
! } else printf("no credential");
! if(cnt > 0)
! printf(", reference count %d\n", cnt);
! else
! printf("\n");
}
***************
*** 255,261 ****
ss_perror(ss_idx, errno, (char *)0);
goto usage;
} else if (credp == NULL) printf("get: no credential returned.\n");
! else print_cred(&sin.sin_addr, uid, credp);
return (0);
usage:
printf("Usage: get host [user|uid]\n");
--- 259,265 ----
ss_perror(ss_idx, errno, (char *)0);
goto usage;
} else if (credp == NULL) printf("get: no credential returned.\n");
! else print_cred(&sin.sin_addr, uid, credp, 0);
return (0);
usage:
printf("Usage: get host [user|uid]\n");
*** /source/bsd-4.3/common/usr.etc/nfsc/nfsc_show.c Tue Feb 2 13:44:52 1988
--- nfsc_show.c Thu Mar 8 03:52:16 1990
***************
*** 43,48 ****
--- 43,49 ----
struct sockaddr e_sock;
int e_len;
struct authunix_parms *e_credp;
+ u_short e_rfcnt;
};
struct nfsmap_ent *nfsmap_htable[256];
***************
*** 122,128 ****
};
sock = (struct sockaddr_in *)&ent->e_sock;
(*print_func)((char *)&(sock->sin_addr.s_addr),
! (rpc_uid_t)ent->e_uid, credp);
if (credp) {
if (credp->aup_gids) free((char *)(credp->aup_gids));
free ((char *)credp);
--- 123,129 ----
};
sock = (struct sockaddr_in *)&ent->e_sock;
(*print_func)((char *)&(sock->sin_addr.s_addr),
! (rpc_uid_t)ent->e_uid, credp,ent->e_rfcnt);
if (credp) {
if (credp->aup_gids) free((char *)(credp->aup_gids));
free ((char *)credp);
***************
*** 179,188 ****
return(1);
}
! static void dump_cred(addr, uid, credp)
struct in_addr *addr;
rpc_uid_t uid;
struct authunix_parms *credp;
{
char *s;
extern char *inet_ntoa();
--- 180,190 ----
return(1);
}
! static void dump_cred(addr, uid, credp, cnt)
struct in_addr *addr;
rpc_uid_t uid;
struct authunix_parms *credp;
+ int cnt;
{
char *s;
extern char *inet_ntoa();