SimpleLink CC3120/CC3220 Host Driver  Version 2.0.1.15
Simplifies the implementation of Internet connectivity
socket.c
1 #include <ti/drivers/net/wifi/sys/socket.h>
2 #include <ti/drivers/net/wifi/sys/errno.h>
3 #include <ti/drivers/net/wifi/sys/netdb.h>
4 #include <ti/drivers/net/wifi/simplelink.h>
5 
6 /*******************************************************************************/
7 /* socket */
8 /*******************************************************************************/
9 
10 #if _SL_INCLUDE_FUNC(sl_Socket)
11 int socket(int Domain, int Type, int Protocol)
12 {
13  int RetVal = (int)sl_Socket(Domain, Type, Protocol);
14  return _SlDrvSetErrno(RetVal);
15 }
16 #endif
17 
18 /*******************************************************************************/
19 /* bind */
20 /*******************************************************************************/
21 
22 #if _SL_INCLUDE_FUNC(sl_Bind)
23 int bind(int sd, const sockaddr *addr, socklen_t addrlen)
24 {
25  int RetVal = (int)sl_Bind(sd, addr, addrlen);
26  return _SlDrvSetErrno(RetVal);
27 }
28 #endif
29 
30 /*******************************************************************************/
31 /* sendto */
32 /*******************************************************************************/
33 
34 #if _SL_INCLUDE_FUNC(sl_SendTo)
35 ssize_t sendto(int sd, const void *pBuf, size_t Len, int flags, const sockaddr *to, socklen_t tolen)
36 {
37  ssize_t RetVal = (ssize_t)sl_SendTo(sd, pBuf, (_i16)Len, flags, to, tolen);
38  return (ssize_t)(_SlDrvSetErrno(RetVal));
39 }
40 #endif
41 
42 /*******************************************************************************/
43 /* recvfrom */
44 /*******************************************************************************/
45 #if _SL_INCLUDE_FUNC(sl_RecvFrom)
46 ssize_t recvfrom(int sd, void *buf, _i16 Len, _i16 flags, sockaddr *from, socklen_t *fromlen)
47 {
48  ssize_t RetVal = (ssize_t)sl_RecvFrom(sd, buf, Len, flags, from, fromlen);
49  return (ssize_t)(_SlDrvSetErrno(RetVal));
50 }
51 #endif
52 
53 /*******************************************************************************/
54 /* connect */
55 /*******************************************************************************/
56 #if _SL_INCLUDE_FUNC(sl_Connect)
57 int connect(int sd, const sockaddr *addr, socklen_t addrlen)
58 {
59  int RetVal = (int)sl_Connect(sd, addr, addrlen);
60  return _SlDrvSetErrno(RetVal);
61 }
62 #endif
63 
64 /*******************************************************************************/
65 /* send */
66 /*******************************************************************************/
67 #if _SL_INCLUDE_FUNC(sl_Send)
68 ssize_t send(int sd, const void *pBuf, _i16 Len, _i16 flags)
69 {
70  ssize_t RetVal = (ssize_t)sl_Send(sd, pBuf, Len, flags);
71  return (ssize_t)(_SlDrvSetErrno(RetVal));
72 }
73 #endif
74 
75 /*******************************************************************************/
76 /* listen */
77 /*******************************************************************************/
78 #if _SL_INCLUDE_FUNC(sl_Listen)
79 int listen(int sd, int backlog)
80 {
81  int RetVal = (int)sl_Listen(sd, backlog);
82  return _SlDrvSetErrno(RetVal);
83 }
84 #endif
85 
86 /*******************************************************************************/
87 /* accept */
88 /*******************************************************************************/
89 #if _SL_INCLUDE_FUNC(sl_Accept)
90 int accept(int sd, sockaddr *addr, socklen_t *addrlen)
91 {
92  int RetVal = (int)sl_Accept(sd, addr, addrlen);
93  return _SlDrvSetErrno(RetVal);
94 }
95 #endif
96 
97 /*******************************************************************************/
98 /* recv */
99 /*******************************************************************************/
100 #if _SL_INCLUDE_FUNC(sl_Recv)
101 ssize_t recv(int sd, void *pBuf, size_t Len, int flags)
102 {
103  ssize_t RetVal = (ssize_t)sl_Recv(sd, pBuf, (_i16)Len, flags);
104  return (ssize_t)(_SlDrvSetErrno(RetVal));
105 }
106 #endif
107 
108 /*******************************************************************************/
109 /* setsockopt */
110 /*******************************************************************************/
111 #if _SL_INCLUDE_FUNC(sl_SetSockOpt)
112 int setsockopt(int sd, int level, int optname, const void *optval, socklen_t optlen)
113 {
114  int RetVal = (int)sl_SetSockOpt(sd, level, optname, optval, optlen);
115  return _SlDrvSetErrno(RetVal);
116 }
117 #endif
118 
119 /*******************************************************************************/
120 /* getsockopt */
121 /*******************************************************************************/
122 #if _SL_INCLUDE_FUNC(sl_GetSockOpt)
123 int getsockopt(int sd, int level, int optname, void *optval, socklen_t *optlen)
124 {
125  int RetVal = (int)sl_GetSockOpt(sd, level, optname, optval, optlen);
126  return _SlDrvSetErrno(RetVal);
127 }
128 #endif
129 
130 /*******************************************************************************/
131 /* select */
132 /*******************************************************************************/
133 #if _SL_INCLUDE_FUNC(sl_Select)
134 int select(int nfds, fd_set *readsds, fd_set *writesds, fd_set *exceptsds, struct timeval *timeout)
135 {
136  int RetVal = (int)sl_Select(nfds, readsds, writesds, exceptsds, timeout);
137  return _SlDrvSetErrno(RetVal);
138 }
139 #endif
140 
141 /*******************************************************************************/
142 /* gethostbyname */
143 /*******************************************************************************/
144 #if _SL_INCLUDE_FUNC(sl_NetAppDnsGetHostByName)
145 struct hostent* gethostbyname(const char *name)
146 {
147  static struct hostent Hostent;
148  static char* AddrArray[2];
149  static char Addr[16];
150 
151  int RetVal = 0;
152 
153  /* Clear the reused buffer */
154  _SlDrvMemZero(&Hostent, sizeof(struct hostent));
155  _SlDrvMemZero(&AddrArray, sizeof(AddrArray));
156  _SlDrvMemZero(&Addr, sizeof(Addr));
157 
158  /* Set the host name */
159  Hostent.h_name = (char*)name;
160  /* Query DNS for IPv4 address. */
161  RetVal = sl_NetAppDnsGetHostByName((signed char*)name , (_u16)strlen(name), (unsigned long*)(&Addr), AF_INET);
162 
163  if(RetVal < 0)
164  {
165  /* If call fails, try again for IPv6. */
166  RetVal = sl_NetAppDnsGetHostByName((signed char*)name , (_u16)strlen(name), (unsigned long*)(&Addr), AF_INET6);
167  if(RetVal < 0)
168  {
169  /* if the request failed twice, there's an error, return NULL. */
170  return NULL;
171  }
172  else
173  {
174  /* fill the answer fields */
175  Hostent.h_addrtype = AF_INET6 ;
176  Hostent.h_length = IPv6_ADDR_LEN;
177  }
178  }
179  else
180  {
181  /* fill the answer fields */
182  Hostent.h_addrtype = AF_INET ;
183  Hostent.h_length = IPv4_ADDR_LEN;
184  }
185 
186  AddrArray[0] = &Addr[0];
187  Hostent.h_addr_list = AddrArray;
188 
189  /* Return the address of the reused buffer */
190  return (&Hostent);
191 }
192 #endif
193 
ssize_t send(int sd, const void *pBuf, _i16 Len, _i16 flags)
Write data to TCP socket.
Definition: socket.c:68
int select(int nfds, fd_set *readsds, fd_set *writesds, fd_set *exceptsds, struct timeval *timeout)
Monitor socket activity.
Definition: socket.c:134
_i16 sl_Bind(_i16 sd, const SlSockAddr_t *addr, _i16 addrlen)
Assign a name to a socket.
Definition: sl_socket.c:221
_i16 sl_Select(_i16 nfds, SlFdSet_t *readsds, SlFdSet_t *writesds, SlFdSet_t *exceptsds, struct SlTimeval_t *timeout)
Monitor socket activity.
Definition: sl_socket.c:1096
_i16 sl_SetSockOpt(_i16 sd, _i16 level, _i16 optname, const void *optval, SlSocklen_t optlen)
Set socket options-.
Definition: sl_socket.c:962
Definition: netdb.h:30
int accept(int sd, sockaddr *addr, socklen_t *addrlen)
Accept a connection on a socket.
Definition: socket.c:90
int bind(int sd, const sockaddr *addr, socklen_t addrlen)
Assign a name to a socket.
Definition: socket.c:23
ssize_t sendto(int sd, const void *pBuf, size_t Len, int flags, const sockaddr *to, socklen_t tolen)
Write data to socket.
Definition: socket.c:35
struct hostent * gethostbyname(const char *name)
Get host IP by name Obtain the IP Address of machine on network, by machine name. ...
Definition: socket.c:145
int socket(int Domain, int Type, int Protocol)
Create an endpoint for communication.
Definition: socket.c:11
_i16 sl_Recv(_i16 sd, void *buf, _i16 len, _i16 flags)
Read data from TCP socket.
Definition: sl_socket.c:911
_i16 sl_GetSockOpt(_i16 sd, _i16 level, _i16 optname, void *optval, SlSocklen_t *optlen)
Get socket options.
Definition: sl_socket.c:1005
ssize_t recvfrom(int sd, void *buf, _i16 Len, _i16 flags, sockaddr *from, socklen_t *fromlen)
Read data from socket.
Definition: socket.c:46
_i16 sl_NetAppDnsGetHostByName(_i8 *pHostName, const _u16 NameLen, _u32 *OutIpAddr, const _u8 Family)
Get host IP by name Obtain the IP Address of machine on network, by machine name. ...
Definition: netapp.c:833
_i16 sl_Socket(_i16 Domain, _i16 Type, _i16 Protocol)
Create an endpoint for communication.
Definition: sl_socket.c:118
int getsockopt(int sd, int level, int optname, void *optval, socklen_t *optlen)
Get socket options.
Definition: socket.c:123
_i16 sl_RecvFrom(_i16 sd, void *buf, _i16 len, _i16 flags, SlSockAddr_t *from, SlSocklen_t *fromlen)
Read data from socket.
Definition: sl_socket.c:351
_i16 sl_Accept(_i16 sd, SlSockAddr_t *addr, SlSocklen_t *addrlen)
Accept a connection on a socket.
Definition: sl_socket.c:683
_i16 sl_Connect(_i16 sd, const SlSockAddr_t *addr, _i16 addrlen)
Initiate a connection on a socket.
Definition: sl_socket.c:440
int connect(int sd, const sockaddr *addr, socklen_t addrlen)
Initiate a connection on a socket.
Definition: socket.c:57
_i16 sl_Listen(_i16 sd, _i16 backlog)
Listen for connections on a socket.
Definition: sl_socket.c:647
_i16 sl_SendTo(_i16 sd, const void *buf, _i16 len, _i16 flags, const SlSockAddr_t *to, SlSocklen_t tolen)
Write data to socket.
Definition: sl_socket.c:270
int listen(int sd, int backlog)
Listen for connections on a socket.
Definition: socket.c:79
_i16 sl_Send(_i16 sd, const void *buf, _i16 len, _i16 flags)
Write data to TCP socket.
Definition: sl_socket.c:581
ssize_t recv(int sd, void *pBuf, size_t Len, int flags)
Read data from TCP socket.
Definition: socket.c:101
int setsockopt(int sd, int level, int optname, const void *optval, socklen_t optlen)
Set socket options-.
Definition: socket.c:112