diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-05-03 23:32:53 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-05-03 23:32:53 +0000 |
commit | 5f82983c7540bb0a0470be79ef2a3e4bde6c3f99 (patch) | |
tree | 662cae77b7a5d6911a79fca1222cb71eeff401e1 /apps | |
parent | 2ec5eb0789bd0f180f910267b99dd52d35b34517 (diff) |
NSF update
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4695 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'apps')
-rw-r--r-- | apps/nshlib/nsh_fscmds.c | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/apps/nshlib/nsh_fscmds.c b/apps/nshlib/nsh_fscmds.c index a398179c00..92d19e3714 100644 --- a/apps/nshlib/nsh_fscmds.c +++ b/apps/nshlib/nsh_fscmds.c @@ -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 */ |