aboutsummaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'libraries')
-rw-r--r--libraries/Ethernet/Client.cpp6
-rw-r--r--libraries/Ethernet/Client.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/libraries/Ethernet/Client.cpp b/libraries/Ethernet/Client.cpp
index 9d3e0df..6c19b8f 100644
--- a/libraries/Ethernet/Client.cpp
+++ b/libraries/Ethernet/Client.cpp
@@ -8,6 +8,8 @@ extern "C" {
#include "Client.h"
#include "Server.h"
+uint16_t Client::_srcport = 0;
+
Client::Client(uint8_t sock) {
_sock = sock;
}
@@ -29,8 +31,10 @@ uint8_t Client::connect() {
if (_sock == 255)
return 0;
+ _srcport++;
+
// XXX: what port should we connect from?
- socket(_sock, Sn_MR_TCP, _port, 0);
+ socket(_sock, Sn_MR_TCP, _port, 1024 + _srcport);
if (!::connect(_sock, _ip, _port))
return 0;
diff --git a/libraries/Ethernet/Client.h b/libraries/Ethernet/Client.h
index 5911b95..f269e9b 100644
--- a/libraries/Ethernet/Client.h
+++ b/libraries/Ethernet/Client.h
@@ -5,6 +5,7 @@
class Client : public Print {
private:
+ static uint16_t _srcport;
uint8_t _sock;
uint8_t *_ip;
uint16_t _port;