From 1cb920f713c88eecaad600ca81b1e029cce1d7c5 Mon Sep 17 00:00:00 2001
From: ficeto <ficeto@Hristos-Mac-mini-2.local>
Date: Thu, 7 May 2015 16:42:10 +0300
Subject: [PATCH] fixes for sd server example

---
 .../examples/SDWebServer/SDWebServer.ino           | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino b/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino
index 02198fae3..d7e2863af 100644
--- a/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino
+++ b/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino
@@ -87,12 +87,20 @@ bool loadFromSdCard(String path){
     uint8_t obuf[WWW_BUF_SIZE];
     while (dataFile.available() > WWW_BUF_SIZE){
       dataFile.read(obuf, WWW_BUF_SIZE);
-      client.write(obuf, WWW_BUF_SIZE);
+      if(client.write(obuf, WWW_BUF_SIZE) != WWW_BUF_SIZE){
+        Serial.println("Sent less data than expected!");
+        dataFile.close();
+        return true;
+      }
     }
     //stream the last data left (size is at most WWW_BUF_SIZE bytes)
     uint16_t leftLen = dataFile.available();
     dataFile.read(obuf, leftLen);
-    client.write(obuf, leftLen);
+    if(client.write(obuf, leftLen) != leftLen){
+      Serial.println("Sent less data than expected!");
+      dataFile.close();
+      return true;
+    }
     
     dataFile.close();
     return true;
@@ -124,7 +132,7 @@ void setup(void){
   while (WiFi.status() != WL_CONNECTED && i++ < 20) delay(500);
   
   //check if we have connected?
-  if(i == 20){
+  if(i == 21){
     Serial.print("Could not connect to");
     Serial.println(ssid);
     //stop execution and wait forever