aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@bug.st>2013-07-01 19:09:43 +0200
committerCristian Maglie <c.maglie@bug.st>2013-07-01 19:12:49 +0200
commitef0f1e593f7af6463642154ec1eb675e1231cb45 (patch)
tree1956be57b42219da85a63e6e1e1141c28b9e73b2
parenta22033dd5d1b867def45b80d607592bf76cde052 (diff)
YunServer: added method to allow listening on localhost only
-rw-r--r--libraries/Bridge/YunServer.cpp7
-rw-r--r--libraries/Bridge/YunServer.h4
2 files changed, 9 insertions, 2 deletions
diff --git a/libraries/Bridge/YunServer.cpp b/libraries/Bridge/YunServer.cpp
index c6d54e4..c0ed88c 100644
--- a/libraries/Bridge/YunServer.cpp
+++ b/libraries/Bridge/YunServer.cpp
@@ -19,7 +19,7 @@
#include <YunServer.h>
YunServer::YunServer(uint16_t _p, BridgeClass &_b) :
- bridge(_b), port(_p), listening(false) {
+ bridge(_b), port(_p), listening(false), useLocalhost(false) {
}
void YunServer::begin() {
@@ -29,7 +29,10 @@ void YunServer::begin() {
port & 0xFF
};
uint8_t res[1];
- bridge.transfer(tmp, 3, (const uint8_t *)"0.0.0.0", 7, res, 1);
+ String address = F("127.0.0.1");
+ if (!useLocalhost)
+ address = F("0.0.0.0");
+ bridge.transfer(tmp, 3, (const uint8_t *)address.c_str(), address.length(), res, 1);
listening = (res[0] == 1);
}
diff --git a/libraries/Bridge/YunServer.h b/libraries/Bridge/YunServer.h
index e1be55a..eb16703 100644
--- a/libraries/Bridge/YunServer.h
+++ b/libraries/Bridge/YunServer.h
@@ -35,9 +35,13 @@ public:
virtual size_t write(uint8_t c) { /* TODO */ }
+ void listenOnLocalhost() { useLocalhost = true; }
+ void noListenOnLocalhost() { useLocalhost = false; }
+
private:
uint16_t port;
bool listening;
+ bool useLocalhost;
BridgeClass &bridge;
};