Fork of HttpServer_snapshot_mbed-os library

Fork of HttpServer_snapshot_mbed-os by Renesas

Revision:
15:371fbad587ed
Parent:
14:d3dc6ad09790
--- a/Handler/SnapshotHandler.cpp	Fri Jun 09 13:26:14 2017 +0000
+++ b/Handler/SnapshotHandler.cpp	Fri Jun 23 11:34:54 2017 +0000
@@ -25,6 +25,7 @@
 
 int (*SnapshotHandler::callback_func_req)(const char ** pp_data);
 int (*SnapshotHandler::callback_func_req2)(const char* rootPath, const char* path, const char ** pp_data);
+void (*SnapshotHandler::callback_func_send_end)(const char* rootPath, const char* path, const char * p_data);
 Semaphore SnapshotHandler::req_sem(1);
 
 
@@ -50,6 +51,9 @@
     }
 
     if ((p_data == NULL) || (size <= 0)) {
+        if (callback_func_send_end != NULL) {
+            callback_func_send_end((rootPath()).c_str(), (path()).c_str(), p_data);
+        }
         m_err404 = true;
         setErrCode(404);
         const char* msg = "File not found.";
@@ -107,12 +111,18 @@
                 int writtenLen = writeData((char *)&send_data_buf[send_index], len);
                 if (writtenLen < 0) { //Socket error
                     close();
+                    if (callback_func_send_end != NULL) {
+                        callback_func_send_end((rootPath()).c_str(), (path()).c_str(), send_data_buf);
+                    }
                     return;
                 } else {
                     send_index += writtenLen;
                 }
             } else {
                 close();
+                if (callback_func_send_end != NULL) {
+                    callback_func_send_end((rootPath()).c_str(), (path()).c_str(), send_data_buf);
+                }
                 return;
             }
         }