NSF update

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4695 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-05-03 23:32:53 +00:00
parent 9e491b4b8e
commit 2092af7208

View File

@ -58,6 +58,7 @@
# include <sys/socket.h>
# include <netinet/in.h>
# include <nuttx/fs/nfs.h>
# include <nuttx/kmalloc.h>
# endif
#endif
#endif
@ -1224,8 +1225,8 @@ int cmd_nfsmount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
struct nfs_args data;
FAR char *address;
FAR char *target;
FAR char *protocol = NULL;
struct sockaddr_in sin;
FAR char *protocol;
struct sockaddr_in *sin;
bool badarg = false;
#ifdef CONFIG_NET_IPv6
struct in6_addr inaddr;
@ -1337,26 +1338,35 @@ int cmd_nfsmount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
return ERROR;
}
/* Create an instance of the sockaddr_in state structure */
sin = (struct sockaddr_in *)kzalloc(sizeof(struct sockaddr_in));
if (!sin)
{
nsh_output(vtbl, g_fmtcmdoutofmemory, argv[0]);
return -ENOMEM;
}
/* Place all of the NFS arguements into the nfs_args structure */
memset(&data, 0, sizeof(data));
data.version = NFS_ARGSVERSION;
data.proto = (tcp) ? IPPROTO_TCP : IPPROTO_UDP;
data.sotype = (tcp) ? SOCK_STREAM : SOCK_DGRAM;
sin.sin_family = AF_INET;
sin.sin_port = htons(NFS_PORT);
sin.sin_addr = inaddr;
data.addr = (struct sockaddr *)&sin;
data.addrlen = sizeof(struct sockaddr);
data.flags = NFSMNT_NFSV3;
data.retrans = 3;
data.acregmin = 3;
data.acregmax = 60;
data.acdirmin = 30;
data.acdirmax = 60;
data.rsize = 0;
data.wsize = 0;
data.timeo = (tcp) ? 70 : 7;
data.version = NFS_ARGSVERSION;
data.proto = (tcp) ? IPPROTO_TCP : IPPROTO_UDP;
data.sotype = (tcp) ? SOCK_STREAM : SOCK_DGRAM;
sin->sin_family = AF_INET;
sin->sin_port = htons(NFS_PORT);
sin->sin_addr = inaddr;
data.addr = (struct sockaddr *)sin;
data.addrlen = sizeof(struct sockaddr);
data.flags = NFSMNT_NFSV3;
data.retrans = 3;
data.acregmin = 3;
data.acregmax = 60;
data.acdirmin = 30;
data.acdirmax = 60;
data.rsize = 0;
data.wsize = 0;
data.timeo = (tcp) ? 70 : 7;
/* Perform the mount */