aboutsummaryrefslogtreecommitdiff
path: root/libraries/Ethernet/EthernetServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/Ethernet/EthernetServer.cpp')
-rw-r--r--libraries/Ethernet/EthernetServer.cpp91
1 files changed, 0 insertions, 91 deletions
diff --git a/libraries/Ethernet/EthernetServer.cpp b/libraries/Ethernet/EthernetServer.cpp
deleted file mode 100644
index 0308b92..0000000
--- a/libraries/Ethernet/EthernetServer.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "w5100.h"
-#include "socket.h"
-extern "C" {
-#include "string.h"
-}
-
-#include "Ethernet.h"
-#include "EthernetClient.h"
-#include "EthernetServer.h"
-
-EthernetServer::EthernetServer(uint16_t port)
-{
- _port = port;
-}
-
-void EthernetServer::begin()
-{
- for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
- EthernetClient client(sock);
- if (client.status() == SnSR::CLOSED) {
- socket(sock, SnMR::TCP, _port, 0);
- listen(sock);
- EthernetClass::_server_port[sock] = _port;
- break;
- }
- }
-}
-
-void EthernetServer::accept()
-{
- int listening = 0;
-
- for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
- EthernetClient client(sock);
-
- if (EthernetClass::_server_port[sock] == _port) {
- if (client.status() == SnSR::LISTEN) {
- listening = 1;
- }
- else if (client.status() == SnSR::CLOSE_WAIT && !client.available()) {
- client.stop();
- }
- }
- }
-
- if (!listening) {
- begin();
- }
-}
-
-EthernetClient EthernetServer::available()
-{
- accept();
-
- for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
- EthernetClient client(sock);
- if (EthernetClass::_server_port[sock] == _port &&
- (client.status() == SnSR::ESTABLISHED ||
- client.status() == SnSR::CLOSE_WAIT)) {
- if (client.available()) {
- // XXX: don't always pick the lowest numbered socket.
- return client;
- }
- }
- }
-
- return EthernetClient(MAX_SOCK_NUM);
-}
-
-size_t EthernetServer::write(uint8_t b)
-{
- return write(&b, 1);
-}
-
-size_t EthernetServer::write(const uint8_t *buffer, size_t size)
-{
- size_t n = 0;
-
- accept();
-
- for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
- EthernetClient client(sock);
-
- if (EthernetClass::_server_port[sock] == _port &&
- client.status() == SnSR::ESTABLISHED) {
- n += client.write(buffer, size);
- }
- }
-
- return n;
-}