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:
Sat Aug 23 05:57:52 2014 -0700
Revision:
20:7b67c3f94de9
Added mbed socket api

Who changed what in which revision?

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