Host library for controlling a WiConnect enabled Wi-Fi module.

Dependents:   wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more

Committer:
dan_ackme
Date:
Mon Feb 23 20:30:18 2015 -0800
Revision:
39:a963f69cb2de
added httpAcceptWebsocket API

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan_ackme 39:a963f69cb2de 1 /*
dan_ackme 39:a963f69cb2de 2 * Copyright 2014, ACKme Networks
dan_ackme 39:a963f69cb2de 3 * All Rights Reserved.
dan_ackme 39:a963f69cb2de 4 *
dan_ackme 39:a963f69cb2de 5 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks;
dan_ackme 39:a963f69cb2de 6 * the contents of this file may not be disclosed to third parties, copied
dan_ackme 39:a963f69cb2de 7 * or duplicated in any form, in whole or in part, without the prior
dan_ackme 39:a963f69cb2de 8 * written permission of ACKme Networks.
dan_ackme 39:a963f69cb2de 9 */
dan_ackme 39:a963f69cb2de 10
dan_ackme 39:a963f69cb2de 11
dan_ackme 39:a963f69cb2de 12 #include "Wiconnect.h"
dan_ackme 39:a963f69cb2de 13 #include "api/types/Socket/Socket.h"
dan_ackme 39:a963f69cb2de 14
dan_ackme 39:a963f69cb2de 15
dan_ackme 39:a963f69cb2de 16
dan_ackme 39:a963f69cb2de 17 /*************************************************************************************************/
dan_ackme 39:a963f69cb2de 18 int gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop)
dan_ackme 39:a963f69cb2de 19 {
dan_ackme 39:a963f69cb2de 20 return -1;
dan_ackme 39:a963f69cb2de 21 }
dan_ackme 39:a963f69cb2de 22
dan_ackme 39:a963f69cb2de 23 /*************************************************************************************************/
dan_ackme 39:a963f69cb2de 24 struct hostent *gethostbyname(const char *name)
dan_ackme 39:a963f69cb2de 25 {
dan_ackme 39:a963f69cb2de 26 static uint8_t buffer[sizeof(struct hostent) + sizeof(void*)*3 + 1*sizeof(uint32_t)];
dan_ackme 39:a963f69cb2de 27 struct hostent *hostPtr = (struct hostent*)buffer;
dan_ackme 39:a963f69cb2de 28 char **ipPtrList = (char**)&buffer[sizeof(struct hostent)];
dan_ackme 39:a963f69cb2de 29 char **aliasPtrList = (char**)&buffer[sizeof(struct hostent) + sizeof(void*)*2];
dan_ackme 39:a963f69cb2de 30 uint32_t *ipPtr = (uint32_t*)&buffer[sizeof(struct hostent) + sizeof(void*)*3];
dan_ackme 39:a963f69cb2de 31
dan_ackme 39:a963f69cb2de 32
dan_ackme 39:a963f69cb2de 33 hostPtr->h_addr_list = ipPtrList;
dan_ackme 39:a963f69cb2de 34 hostPtr->h_aliases = aliasPtrList;
dan_ackme 39:a963f69cb2de 35 hostPtr->h_addrtype = AF_INET;
dan_ackme 39:a963f69cb2de 36 hostPtr->h_length = sizeof(uint32_t);
dan_ackme 39:a963f69cb2de 37 hostPtr->h_name = (char*)name;
dan_ackme 39:a963f69cb2de 38
dan_ackme 39:a963f69cb2de 39 aliasPtrList[0] = NULL;
dan_ackme 39:a963f69cb2de 40 ipPtrList[0] = (char*)ipPtr;
dan_ackme 39:a963f69cb2de 41 ipPtrList[1] = NULL;
dan_ackme 39:a963f69cb2de 42
dan_ackme 39:a963f69cb2de 43 Wiconnect *wiconnect = Wiconnect::getInstance();
dan_ackme 39:a963f69cb2de 44 if(wiconnect->lookup(name, ipPtr) != WICONNECT_SUCCESS)
dan_ackme 39:a963f69cb2de 45 {
dan_ackme 39:a963f69cb2de 46 ipPtrList[0] = NULL;
dan_ackme 39:a963f69cb2de 47 }
dan_ackme 39:a963f69cb2de 48
dan_ackme 39:a963f69cb2de 49 return hostPtr;
dan_ackme 39:a963f69cb2de 50 }
dan_ackme 39:a963f69cb2de 51
dan_ackme 39:a963f69cb2de 52 /*************************************************************************************************/
dan_ackme 39:a963f69cb2de 53 u32_t ipaddr_addr(const char *cp)
dan_ackme 39:a963f69cb2de 54 {
dan_ackme 39:a963f69cb2de 55 u32_t ip = 0;
dan_ackme 39:a963f69cb2de 56
dan_ackme 39:a963f69cb2de 57 Wiconnect::strToIp(cp, &ip);
dan_ackme 39:a963f69cb2de 58
dan_ackme 39:a963f69cb2de 59 return ip;
dan_ackme 39:a963f69cb2de 60 }
dan_ackme 39:a963f69cb2de 61
dan_ackme 39:a963f69cb2de 62 /*************************************************************************************************/
dan_ackme 39:a963f69cb2de 63 int ipaddr_aton(const char *cp, ip_addr_t *addr)
dan_ackme 39:a963f69cb2de 64 {
dan_ackme 39:a963f69cb2de 65 return Wiconnect::strToIp(cp, &addr->addr) ? 0 : -1;
dan_ackme 39:a963f69cb2de 66 }
dan_ackme 39:a963f69cb2de 67
dan_ackme 39:a963f69cb2de 68 /*************************************************************************************************/
dan_ackme 39:a963f69cb2de 69 // returns ptr to static buffer; not reentrant!
dan_ackme 39:a963f69cb2de 70 char *ipaddr_ntoa(const ip_addr_t *addr)
dan_ackme 39:a963f69cb2de 71 {
dan_ackme 39:a963f69cb2de 72 return (char*)Wiconnect::ipToStr(addr->addr);
dan_ackme 39:a963f69cb2de 73 }
dan_ackme 39:a963f69cb2de 74
dan_ackme 39:a963f69cb2de 75 /*************************************************************************************************/
dan_ackme 39:a963f69cb2de 76 char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
dan_ackme 39:a963f69cb2de 77 {
dan_ackme 39:a963f69cb2de 78 return (char*)Wiconnect::ipToStr(addr->addr, buf);
dan_ackme 39:a963f69cb2de 79 }