diff --git a/esp-link.vcxproj b/esp-link.vcxproj
index 369d0cb..4a1ef3a 100644
--- a/esp-link.vcxproj
+++ b/esp-link.vcxproj
@@ -24,7 +24,6 @@
-
@@ -62,7 +61,6 @@
-
diff --git a/esp-link/mdns.c b/esp-link/mdns.c
deleted file mode 100644
index 89ae337..0000000
--- a/esp-link/mdns.c
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
-* mdns.h
-*
-* Simple mDNS responder.
-* It replys to mDNS IP (IPv4/A) queries and optionally broadcasts ip advertisements
-* using the mDNS protocol
-* Created on: Apr 10, 2015
-* Author: Kevin Uhlir (n0bel)
-*
-*/
-
-#include
-#include "mdns.h"
-
-#ifdef MDNS_DBG
-#define DBG(format, ...) do { os_printf(format, ## __VA_ARGS__); } while(0)
-#else
-#define DBG(format, ...) do { } while(0)
-#endif
-
-static int mdns_initialized = 0;
-static int ttl = 0;
-static os_timer_t bc_timer;
-
-static struct espconn mdns_conn;
-
-#define MAX_HOSTS 5
-static struct _host {
- char *hostname;
- unsigned char *mdns;
- struct ip_addr ip;
- int len;
-} hosts[MAX_HOSTS] = { { NULL } };
-
-int nhosts = 0;
-
-struct ip_addr mdns_multicast;
-struct ip_addr ipaddr_any;
-
-#ifdef MDNS_DBG
-
-void ICACHE_FLASH_ATTR hexdump(char *desc, void *addr, int len) {
- int i;
- unsigned char buff[17];
- unsigned char *pc = (unsigned char*)addr;
-
- // Output description if given.
- if (desc != NULL)
- DBG("%s:\n", desc);
-
- // Process every byte in the data.
- for (i = 0; i < len; i++) {
- // Multiple of 16 means new line (with line offset).
-
- if ((i % 16) == 0) {
- // Just don't print ASCII for the zeroth line.
- if (i != 0)
- DBG(" %s\n", buff);
-
- // Output the offset.
- DBG(" %04x ", i);
- }
-
- // Now the hex code for the specific character.
- DBG(" %02x", pc[i]);
-
- // And store a printable ASCII character for later.
- if ((pc[i] < 0x20) || (pc[i] > 0x7e))
- buff[i % 16] = '.';
- else
- buff[i % 16] = pc[i];
- buff[(i % 16) + 1] = '\0';
- }
-
- // Pad out last line if not exactly 16 characters.
- while ((i % 16) != 0) {
- DBG(" ");
- i++;
- }
-
- // And print the final ASCII bit.
- DBG(" %s\n", buff);
-}
-#endif
-
-unsigned ICACHE_FLASH_ATTR char * encodeResp(struct ip_addr * addr, char *name, int *len)
-{
- *len = 12 + strlen(name) + 16;
- unsigned char *data = (unsigned char *)os_zalloc(*len);
-
- data[2] = 0x84;
- data[7] = 1;
-
- unsigned char *p = data + 12;
- char *np = name;
- char *i;
- while ((i = strchr(np, '.')))
- {
- *p = i - np;
- p++;
- memcpy(p, np, i - np);
- p += i - np;
- np = i + 1;
- }
- *p = strlen(np);
- p++;
- memcpy(p, np, strlen(np));
- p += strlen(np);
- *p++ = 0; // terminate string sequence
-
- *p++ = 0; *p++ = 1; // type 0001 (A)
-
- *p++ = 0x80; *p++ = 1; // class code (IPV4)
-
- *p++ = ttl >> 24;
- *p++ = ttl >> 16;
- *p++ = ttl >> 8;
- *p++ = ttl;
-
- *p++ = 0; *p++ = 4; // length (of ip)
-
- memcpy(p, addr, 4);
- return data;
-}
-
-char ICACHE_FLASH_ATTR *decode_name_strings(unsigned char *p, int *len)
-{
- unsigned char *s = p;
- int c;
- *len = 0;
- while ((c = *s++))
- {
- *len += c + 1;
- s += c;
- }
- char *name = (char *)os_zalloc(*len + 1);
- char *np = name;
- s = p;
- while ((c = *s++))
- {
- memcpy(np, s, c);
- np += c;
- *np++ = '.';
- s += c;
- }
- np--; *np = 0;
- return name;
-}
-
-void ICACHE_FLASH_ATTR sendOne(struct _host *h)
-{
- mdns_conn.proto.udp->remote_ip[0] = 224;
- mdns_conn.proto.udp->remote_ip[1] = 0;
- mdns_conn.proto.udp->remote_ip[2] = 0;
- mdns_conn.proto.udp->remote_ip[3] = 251;
- mdns_conn.proto.udp->remote_port = 5353;
- mdns_conn.proto.udp->local_port = 5353;
-#ifdef MDNS_DBG
-// hexdump("sending", h->mdns, h->len);
-#endif
- espconn_sent(&mdns_conn, h->mdns, h->len);
-
-}
-void ICACHE_FLASH_ATTR decodeQuery(unsigned char *data)
-{
- if (data[0] != 0 || data[1] != 0 || data[2] != 0 || data[3] != 0) return; // only queries
-
- int qcount = data[5]; // purposely ignore qcount > 255
- unsigned char *p = data + 12;
- char *name;
- int len;
- while (qcount-- > 0)
- {
- if (*p == 0xc0) // pointer
- {
- name = decode_name_strings(data + p[1], &len);
- p += 2;
- }
- else
- {
- name = decode_name_strings(p, &len);
- p += len + 1;
- }
- int qtype = p[0] * 256 + p[1];
- int qclass = p[2] * 256 + p[3];
- p += 4;
-// DBG("decoded name %s qtype=%d qclass=%d\n", name, qtype, qclass);
-
- if (qtype == 1 && (qclass & 0x7fff) == 1)
- {
- struct _host *h;
- int i;
- for (h = hosts, i = 0; i < nhosts; i++, h++)
- {
- if (h->hostname && strcmp(name, h->hostname) == 0)
- {
-// DBG("its %s!\n", h->hostname);
- sendOne(h);
- }
- }
- os_free(name);
- }
- }
-
- return;
-}
-
-static void ICACHE_FLASH_ATTR broadcast(void *arg)
-{
- struct _host *h;
- int i;
- for (h = hosts, i = 0; i < nhosts; i++, h++)
- {
-// DBG("broadcast for %s\n", h->hostname);
- sendOne(h);
- }
-}
-
-static void ICACHE_FLASH_ATTR mdns_udp_recv(void *arg, char *pusrdata, unsigned short length) {
- unsigned char *data = (unsigned char *)pusrdata;
-
-
-// DBG("remote port=%d remoteip=%d.%d.%d.%d\n", mdns_conn.proto.udp->remote_port,
-// mdns_conn.proto.udp->remote_ip[0],
-// mdns_conn.proto.udp->remote_ip[1],
-// mdns_conn.proto.udp->remote_ip[2],
-// mdns_conn.proto.udp->remote_ip[3]
-// );
-#ifdef MDNS_DBG
-// hexdump("rec mNDS:", data, length);
-#endif
- decodeQuery(data);
-}
-
-int ICACHE_FLASH_ATTR mdns_addhost(char *hn, struct ip_addr* ip)
-{
- struct _host *h = &hosts[nhosts];
- if (nhosts >= MAX_HOSTS)
- {
- int i;
- for (h = hosts, i = 0; i < MAX_HOSTS; i++, h++)
- {
- if (!h->hostname) break;
- }
- if (i >= MAX_HOSTS) return -1;
- }
- else
- {
- nhosts++;
- }
- h->hostname = (char *)os_zalloc(os_strlen(hn) + 1);
- os_strcpy(h->hostname, hn);
- h->ip.addr = ip->addr;
- h->mdns = encodeResp(ip, hn, &(h->len));
-// DBG("resp len: %d\n", ets_strlen(h->mdns));
-#ifdef MDNS_DBG
- hexdump("addhost", hosts, sizeof(hosts));
-#endif
- return(0);
-}
-
-int ICACHE_FLASH_ATTR mdns_delhost(char *hn, struct ip_addr* ip)
-{
- if (nhosts < 1) return -1;
- struct _host *h;
- int i;
- for (h = hosts, i = 0; i < MAX_HOSTS; i++, h++)
- {
- if ((hn && strcmp(hn, h->hostname) == 0)
- || (ip && h->ip.addr == ip->addr))
- {
- if (h->hostname) os_free(h->hostname);
- if (h->mdns) os_free(h->mdns);
- h->ip.addr = 0;
- }
- }
-#ifdef MDNS_DBG
-// hexdump("delhost", hosts, sizeof(hosts));
-#endif
- return(0);
-}
-
-int ICACHE_FLASH_ATTR mdns_init(int bctime, int sttl)
-{
- if (mdns_initialized) mdns_stop();
- mdns_initialized = 1;
- ttl = sttl;
-
- IP4_ADDR(&mdns_multicast, 224, 0, 0, 251);
- ipaddr_any.addr = IPADDR_ANY;
-
- espconn_igmp_join(&ipaddr_any, &mdns_multicast);
-
- static esp_udp mdns_udp;
- mdns_conn.type = ESPCONN_UDP;
- mdns_conn.state = ESPCONN_NONE;
- mdns_conn.proto.udp = &mdns_udp;
- mdns_udp.local_port = 5353;
- mdns_conn.reverse = NULL;
-
- espconn_regist_recvcb(&mdns_conn, mdns_udp_recv);
- espconn_create(&mdns_conn);
-
- os_timer_disarm(&bc_timer);
- if (bctime > 0)
- {
- os_timer_setfn(&bc_timer, (os_timer_func_t *)broadcast, (void *)0);
- os_timer_arm(&bc_timer, bctime * 1000, 1);
- }
-
- return 0;
-}
-
-int ICACHE_FLASH_ATTR mdns_stop()
-{
- if (!mdns_initialized) return(0);
- os_timer_disarm(&bc_timer);
- espconn_disconnect(&mdns_conn);
- espconn_delete(&mdns_conn);
- espconn_igmp_leave(&ipaddr_any, &mdns_multicast);
- mdns_initialized = 0;
- struct _host *h;
- int i;
- for (h = hosts, i = 0; i < MAX_HOSTS; i++, h++)
- {
- if (h->hostname) os_free(h->hostname);
- if (h->mdns) os_free(h->mdns);
- h->ip.addr = 0;
- }
- nhosts = 0;
- return(0);
-}
\ No newline at end of file
diff --git a/esp-link/mdns.h b/esp-link/mdns.h
deleted file mode 100644
index 49273a1..0000000
--- a/esp-link/mdns.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-* mdns.h
-*
-* Simple mDNS responder.
-* It replys to mDNS IP (IPv4/A) queries and optionally broadcasts ip advertisements
-* using the mDNS protocol
-* Created on: Apr 10, 2015
-* Author: Kevin Uhlir (n0bel)
-*
-*/
-
-#ifndef MDNS_H
-#define MDNS_H
-
-/******************************************************************************
-* FunctionName : mdns_init
-* Description : Initialize the module
-* done once after the system is up and ready to run
-* Parameters : bctime -- broadcast timer (seconds) can be 0 for no broadcasting
-* ttl -- Time To Live must be > 0, should be a reasonable DNS ttl
-* Returns : 0 success, -1 failed
-*******************************************************************************/
-int mdns_init(int bctime, int ttl);
-/******************************************************************************
-* FunctionName : mdns_stop
-* Description : Stop the module.
-* Parameters : None
-* Returns : 0 success, -1 failed
-*******************************************************************************/
-int mdns_stop(void);
-/******************************************************************************
-* FunctionName : mdns_addhost
-* Description : Add a host to be resolved by mDNS
-* Parameters : hostname -- the hostname to add (must end in .local)
-* for most clients to function
-* ip -- the ip address of the host
-* Returns : 0 success, -1 failed
-*******************************************************************************/
-int mdns_addhost(char *hostname, struct ip_addr* ip);
-/******************************************************************************
-* FunctionName : mdns_delhost
-* Description : Delete a host to be resolved by mDNS
-* Parameters : hostname -- the hostname to delete
-* if NULL, hostname won't be used
-* ip -- the ip address of the host to delete
-* if NULL, ip won't be used
-* Returns : 0 success, -1 failed
-*******************************************************************************/
-int mdns_delhost(char *hostname, struct ip_addr* ip);
-
-
-#endif /* MDNS_H */
\ No newline at end of file