extern int verbose;
-/* Map an NFS version into the corresponding Mountd version */
-u_long nfsvers_to_mnt(const u_long vers)
-{
- static const u_long nfs_to_mnt[] = { 0, 0, 1, 3 };
- if (vers <= 3)
- return nfs_to_mnt[vers];
- return 0;
-}
-
-/* Map a Mountd version into the corresponding NFS version */
-u_long mntvers_to_nfs(const u_long vers)
-{
- static const u_long mnt_to_nfs[] = { 0, 2, 2, 3 };
- if (vers <= 3)
- return mnt_to_nfs[vers];
- return 0;
-}
-
/*
* Create a socket that is locally bound to a
* reserve or non-reserve port. For any failures,
else
return 0;
}
-
-CLIENT *mnt_openclnt(clnt_addr_t *mnt_server, int *msock)
-{
- struct sockaddr_in *mnt_saddr = &mnt_server->saddr;
- struct pmap *mnt_pmap = &mnt_server->pmap;
- CLIENT *clnt = NULL;
-
- /* contact the mount daemon via TCP */
- mnt_saddr->sin_port = htons((u_short)mnt_pmap->pm_port);
- *msock = get_socket(mnt_saddr, mnt_pmap->pm_prot, TRUE, FALSE);
-
- switch (mnt_pmap->pm_prot) {
- case IPPROTO_UDP:
- clnt = clntudp_bufcreate(mnt_saddr,
- mnt_pmap->pm_prog, mnt_pmap->pm_vers,
- RETRY_TIMEOUT, msock,
- MNT_SENDBUFSIZE, MNT_RECVBUFSIZE);
- break;
- case IPPROTO_TCP:
- clnt = clnttcp_create(mnt_saddr,
- mnt_pmap->pm_prog, mnt_pmap->pm_vers,
- msock,
- MNT_SENDBUFSIZE, MNT_RECVBUFSIZE);
- break;
- }
- if (clnt) {
- /* try to mount hostname:dirname */
- clnt->cl_auth = authunix_create_default();
- return clnt;
- }
- return NULL;
-}
-
-void mnt_closeclnt(CLIENT *clnt, int msock)
-{
- auth_destroy(clnt->cl_auth);
- clnt_destroy(clnt);
- close(msock);
-}
-