DTLS example using CyaSSL 2.7.0 and x509 certs. Doesn't work at present due to DTLS handshake failure. Debugging.

Dependencies:   NTPClient VodafoneUSBModem cyassl-lib mbed-rtos mbed-src

Committer:
ashleymills
Date:
Thu Sep 05 15:56:41 2013 +0000
Revision:
0:35b690909566
Initial commit. Doesn't work properly. DTLS handshake fails.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 0:35b690909566 1 #ifndef BSD_SOCKET_H_
ashleymills 0:35b690909566 2 #define BSD_SOCKET_H_
ashleymills 0:35b690909566 3
ashleymills 0:35b690909566 4 #ifdef __cplusplus
ashleymills 0:35b690909566 5 extern "C" {
ashleymills 0:35b690909566 6 #endif
ashleymills 0:35b690909566 7
ashleymills 0:35b690909566 8 #include "lwip/sockets.h"
ashleymills 0:35b690909566 9
ashleymills 0:35b690909566 10 #include "lwip/inet.h"
ashleymills 0:35b690909566 11
ashleymills 0:35b690909566 12 #include "lwip/netdb.h"
ashleymills 0:35b690909566 13
ashleymills 0:35b690909566 14 //Sockets
ashleymills 0:35b690909566 15
ashleymills 0:35b690909566 16 inline int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
ashleymills 0:35b690909566 17 {
ashleymills 0:35b690909566 18 return lwip_accept(s, addr, addrlen);
ashleymills 0:35b690909566 19 }
ashleymills 0:35b690909566 20
ashleymills 0:35b690909566 21 inline int bind(int s, const struct sockaddr *name, socklen_t namelen)
ashleymills 0:35b690909566 22 {
ashleymills 0:35b690909566 23 return lwip_bind(s, name, namelen);
ashleymills 0:35b690909566 24 }
ashleymills 0:35b690909566 25
ashleymills 0:35b690909566 26 inline int shutdown(int s, int how)
ashleymills 0:35b690909566 27 {
ashleymills 0:35b690909566 28 return lwip_shutdown(s, how);
ashleymills 0:35b690909566 29 }
ashleymills 0:35b690909566 30
ashleymills 0:35b690909566 31 inline int getsockname (int s, struct sockaddr *name, socklen_t *namelen)
ashleymills 0:35b690909566 32 {
ashleymills 0:35b690909566 33 return lwip_getsockname(s, name, namelen);
ashleymills 0:35b690909566 34 }
ashleymills 0:35b690909566 35
ashleymills 0:35b690909566 36 inline int getpeername (int s, struct sockaddr *name, socklen_t *namelen)
ashleymills 0:35b690909566 37 {
ashleymills 0:35b690909566 38 return lwip_getpeername(s, name, namelen);
ashleymills 0:35b690909566 39 }
ashleymills 0:35b690909566 40
ashleymills 0:35b690909566 41 inline int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen)
ashleymills 0:35b690909566 42 {
ashleymills 0:35b690909566 43 return lwip_getsockopt(s, level, optname, optval, optlen);
ashleymills 0:35b690909566 44 }
ashleymills 0:35b690909566 45
ashleymills 0:35b690909566 46 inline int setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen)
ashleymills 0:35b690909566 47 {
ashleymills 0:35b690909566 48 return lwip_setsockopt(s, level, optname, optval, optlen);
ashleymills 0:35b690909566 49 }
ashleymills 0:35b690909566 50
ashleymills 0:35b690909566 51 inline int connect(int s, const struct sockaddr *name, socklen_t namelen)
ashleymills 0:35b690909566 52 {
ashleymills 0:35b690909566 53 return lwip_connect(s, name, namelen);
ashleymills 0:35b690909566 54 }
ashleymills 0:35b690909566 55
ashleymills 0:35b690909566 56 inline int listen(int s, int backlog)
ashleymills 0:35b690909566 57 {
ashleymills 0:35b690909566 58 return lwip_listen(s, backlog);
ashleymills 0:35b690909566 59 }
ashleymills 0:35b690909566 60
ashleymills 0:35b690909566 61 inline int recv(int s, void *mem, size_t len, int flags)
ashleymills 0:35b690909566 62 {
ashleymills 0:35b690909566 63 return lwip_recv(s, mem, len, flags);
ashleymills 0:35b690909566 64 }
ashleymills 0:35b690909566 65
ashleymills 0:35b690909566 66 inline int recvfrom(int s, void *mem, size_t len, int flags,
ashleymills 0:35b690909566 67 struct sockaddr *from, socklen_t *fromlen)
ashleymills 0:35b690909566 68 {
ashleymills 0:35b690909566 69 return lwip_recvfrom(s, mem, len, flags, from, fromlen);
ashleymills 0:35b690909566 70 }
ashleymills 0:35b690909566 71
ashleymills 0:35b690909566 72 inline int send(int s, const void *dataptr, size_t size, int flags)
ashleymills 0:35b690909566 73 {
ashleymills 0:35b690909566 74 return lwip_send(s, dataptr, size, flags);
ashleymills 0:35b690909566 75 }
ashleymills 0:35b690909566 76
ashleymills 0:35b690909566 77 inline int sendto(int s, const void *dataptr, size_t size, int flags,
ashleymills 0:35b690909566 78 const struct sockaddr *to, socklen_t tolen)
ashleymills 0:35b690909566 79 {
ashleymills 0:35b690909566 80 return lwip_sendto(s, dataptr, size, flags, to, tolen);
ashleymills 0:35b690909566 81 }
ashleymills 0:35b690909566 82
ashleymills 0:35b690909566 83 inline int socket(int domain, int type, int protocol)
ashleymills 0:35b690909566 84 {
ashleymills 0:35b690909566 85 return lwip_socket(domain, type, protocol);
ashleymills 0:35b690909566 86 }
ashleymills 0:35b690909566 87
ashleymills 0:35b690909566 88 inline int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
ashleymills 0:35b690909566 89 struct timeval *timeout)
ashleymills 0:35b690909566 90 {
ashleymills 0:35b690909566 91 return lwip_select(maxfdp1, readset, writeset, exceptset, timeout);
ashleymills 0:35b690909566 92 }
ashleymills 0:35b690909566 93
ashleymills 0:35b690909566 94 inline int ioctlsocket(int s, long cmd, void *argp)
ashleymills 0:35b690909566 95 {
ashleymills 0:35b690909566 96 return lwip_ioctl(s, cmd, argp);
ashleymills 0:35b690909566 97 }
ashleymills 0:35b690909566 98
ashleymills 0:35b690909566 99 inline int read(int s, void *mem, size_t len)
ashleymills 0:35b690909566 100 {
ashleymills 0:35b690909566 101 return lwip_read(s, mem, len);
ashleymills 0:35b690909566 102 }
ashleymills 0:35b690909566 103
ashleymills 0:35b690909566 104 inline int write(int s, const void *dataptr, size_t size)
ashleymills 0:35b690909566 105 {
ashleymills 0:35b690909566 106 return lwip_write(s, dataptr, size);
ashleymills 0:35b690909566 107 }
ashleymills 0:35b690909566 108
ashleymills 0:35b690909566 109 inline int close(int s)
ashleymills 0:35b690909566 110 {
ashleymills 0:35b690909566 111 return lwip_close(s);
ashleymills 0:35b690909566 112 }
ashleymills 0:35b690909566 113
ashleymills 0:35b690909566 114 //DNS
ashleymills 0:35b690909566 115 /*
ashleymills 0:35b690909566 116 inline struct hostent *gethostbyname(const char *name)
ashleymills 0:35b690909566 117 {
ashleymills 0:35b690909566 118 return lwip_gethostbyname(name);
ashleymills 0:35b690909566 119 }
ashleymills 0:35b690909566 120
ashleymills 0:35b690909566 121 inline int gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop)
ashleymills 0:35b690909566 122 {
ashleymills 0:35b690909566 123 return lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
ashleymills 0:35b690909566 124 }*/
ashleymills 0:35b690909566 125
ashleymills 0:35b690909566 126 inline void freeaddrinfo(struct addrinfo *ai)
ashleymills 0:35b690909566 127 {
ashleymills 0:35b690909566 128 return lwip_freeaddrinfo(ai);
ashleymills 0:35b690909566 129 }
ashleymills 0:35b690909566 130
ashleymills 0:35b690909566 131 inline int getaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res)
ashleymills 0:35b690909566 132 {
ashleymills 0:35b690909566 133 return lwip_getaddrinfo(nodename, servname, hints, res);
ashleymills 0:35b690909566 134 }
ashleymills 0:35b690909566 135
ashleymills 0:35b690909566 136 #ifdef __cplusplus
ashleymills 0:35b690909566 137 }
ashleymills 0:35b690909566 138 #endif
ashleymills 0:35b690909566 139
ashleymills 0:35b690909566 140 #endif