Bonjour/Zerconf library

Dependencies:   mbed

Committer:
dirkx
Date:
Sat Aug 14 15:54:31 2010 +0000
Revision:
5:8e53abda9900
Parent:
2:816cbd922d3e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dirkx 0:355018f44c9f 1 #include "mbed.h"
dirkx 0:355018f44c9f 2
dirkx 0:355018f44c9f 3 #include "EthernetNetIf.h"
dirkx 1:59820ca5c83a 4 #include "HTTPServer.h"
dirkx 0:355018f44c9f 5
dirkx 0:355018f44c9f 6 // mDNS response to announce oneselve
dirkx 0:355018f44c9f 7 #include "services/mDNS/mDNSResponder.h"
dirkx 0:355018f44c9f 8
dirkx 0:355018f44c9f 9 DigitalOut myled(LED1);
dirkx 0:355018f44c9f 10 EthernetNetIf eth;
dirkx 1:59820ca5c83a 11 HTTPServer srv;
dirkx 2:816cbd922d3e 12 mDNSResponder mdns; // make sure LWIP_IGMP is set in netCfg.h !
dirkx 0:355018f44c9f 13
dirkx 0:355018f44c9f 14 int main() {
dirkx 0:355018f44c9f 15 EthernetErr ethErr = eth.setup();
dirkx 0:355018f44c9f 16 if (ethErr) {
dirkx 0:355018f44c9f 17 printf("Error %d in setup on DHCP.\r\n", ethErr);
dirkx 0:355018f44c9f 18 return -1;
dirkx 0:355018f44c9f 19 }
dirkx 1:59820ca5c83a 20 srv.addHandler<SimpleHandler>("/"); // Something.
dirkx 1:59820ca5c83a 21 srv.addHandler<SimpleHandler>("/sample"); // Something too
dirkx 1:59820ca5c83a 22 srv.bind(80);
dirkx 1:59820ca5c83a 23
dirkx 0:355018f44c9f 24 IpAddr ip = eth.getIp();
dirkx 0:355018f44c9f 25 printf("mbed IP Address is %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]);
dirkx 0:355018f44c9f 26
dirkx 1:59820ca5c83a 27 // Announce above web server - and keep doing that every minute or so.
dirkx 1:59820ca5c83a 28 //
dirkx 1:59820ca5c83a 29 mdns.announce(
dirkx 1:59820ca5c83a 30 ip, // (My) IP address - where announced service runs.
dirkx 1:59820ca5c83a 31 "propername", // DNS name server or service
dirkx 1:59820ca5c83a 32 "_http._tcp", // protocol
dirkx 1:59820ca5c83a 33 80, // Port number
dirkx 1:59820ca5c83a 34 "May the blood run free", // User interface name service
dirkx 1:59820ca5c83a 35 (char *[]) { // NULL terminated list of KV's = see // http://www.zeroconf.org/Rendezvous/txtrecords.html
dirkx 1:59820ca5c83a 36 "path=/sample", // http://www.zeroconf.org/Rendezvous/txtrecords.html
dirkx 1:59820ca5c83a 37 // "key2=someval",
dirkx 1:59820ca5c83a 38 // "and=more",
dirkx 1:59820ca5c83a 39 NULL
dirkx 1:59820ca5c83a 40 }
dirkx 1:59820ca5c83a 41 );
dirkx 1:59820ca5c83a 42
dirkx 1:59820ca5c83a 43 // So that clicking on 'May the blood run free' will jump to:
dirkx 1:59820ca5c83a 44 //
dirkx 1:59820ca5c83a 45 // http://propername.local.:80/sample (or http://propername/sample in the bar)
dirkx 0:355018f44c9f 46
dirkx 0:355018f44c9f 47 printf("Entering while loop Net::poll()ing\r\n");
dirkx 0:355018f44c9f 48 while (1) {
dirkx 0:355018f44c9f 49 Net::poll();
dirkx 0:355018f44c9f 50 }
dirkx 0:355018f44c9f 51 }