summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-05-03 23:32:53 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-05-03 23:32:53 +0000
commitb33b2cd1e16be3b2592693fcd85a9fd998a3fd1c (patch)
tree662cae77b7a5d6911a79fca1222cb71eeff401e1 /apps
parentaaf45d80e084cf715374b0b6a8833a8d938c7585 (diff)
downloadpx4-nuttx-b33b2cd1e16be3b2592693fcd85a9fd998a3fd1c.tar.gz
px4-nuttx-b33b2cd1e16be3b2592693fcd85a9fd998a3fd1c.tar.bz2
px4-nuttx-b33b2cd1e16be3b2592693fcd85a9fd998a3fd1c.zip
NSF update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4695 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps')
-rw-r--r--apps/nshlib/nsh_fscmds.c48
1 files changed, 29 insertions, 19 deletions
diff --git a/apps/nshlib/nsh_fscmds.c b/apps/nshlib/nsh_fscmds.c
index a398179c0..92d19e371 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 */