LOCAL void network_recv_cb(void *arg, char *data, unsigned short len) { dhstatistic_add_bytes_received(len); const char *rc = find_http_responce_code(data, len); if (rc) { // HTTP if (*rc == '2') { // HTTP responce code 2xx - Success if (mConnectionState == CS_REGISTER) { dhdebug("Successfully register"); } else { char *content = (char *) os_strstr(data, (char *) "\r\n\r\n"); if (content) { int deep = 0; unsigned int pos = 0; unsigned int jsonstart = 0; while (pos < len) { if (data[pos] == '{') { if (deep == 0) jsonstart = pos; deep++; } else if (data[pos] == '}') { deep--; if (deep == 0) { struct jsonparse_state jparser; jsonparse_setup(&jparser, &data[jsonstart], pos - jsonstart); parse_json(&jparser); } } pos++; } } } } else { mConnectionState = CS_DISCONNECT; dhdebug("Connector HTTP response bad status %c%c%c", rc[0],rc[1],rc[2]); dhdebug(data); dhdebug("--------------------------------------"); dhstatistic_server_errors_count(); } } else { mConnectionState = CS_DISCONNECT; dhdebug("Connector HTTP magic number is wrong"); dhstatistic_server_errors_count(); } espconn_disconnect(&mDHConnector); }
LOCAL void ICACHE_FLASH_ATTR senderRecvCb(void *arg, char *data, unsigned short len) { dhstatistic_add_bytes_received(len); const char *rc = find_http_responce_code(data, len); if (rc) { // HTTP if (*rc == '2') { // HTTP responce code 2xx - Success mSenderTook = 0; dhdebug("Sender received OK"); } else { dhdebug("Sender HTTP response bad status %c%c%c", rc[0],rc[1],rc[2]); dhdebug_ram(data); dhdebug("--------------------------------------"); dhstatistic_server_errors_count(); } } else { dhdebug("Sender received wrong HTTP magic"); dhstatistic_server_errors_count(); } espconn_disconnect(&mDHSender); }