summaryrefslogtreecommitdiffstats
path: root/polycom_recv/upgrade.c
diff options
context:
space:
mode:
Diffstat (limited to 'polycom_recv/upgrade.c')
-rw-r--r--polycom_recv/upgrade.c83
1 files changed, 83 insertions, 0 deletions
diff --git a/polycom_recv/upgrade.c b/polycom_recv/upgrade.c
new file mode 100644
index 0000000..2bf0c99
--- /dev/null
+++ b/polycom_recv/upgrade.c
@@ -0,0 +1,83 @@
+#include "project.h"
+
+
+#define pheadbuffer "Connection: keep-alive\r\n\
+Cache-Control: no-cache\r\n\
+User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 \r\n\
+Accept: */*\r\n\
+\r\n\r\n"
+
+
+static void ICACHE_FLASH_ATTR
+upgrade_check_cb (void *arg)
+{
+ struct upgrade_server_info *server = arg;
+
+ if (server->upgrade_flag == true)
+ {
+ os_printf ("upgrade finished sucesfully\n");
+ }
+ else
+ {
+ os_printf ("upgrade finished un-sucessfully\n");
+ }
+
+ os_free (server->url);
+ server->url = NULL;
+ os_free (server);
+ server = NULL;
+}
+
+
+void ICACHE_FLASH_ATTR
+upgrade (void)
+{
+ struct upgrade_server_info *server = NULL;
+ char user_bin[10];
+
+ server = (struct upgrade_server_info *) os_zalloc (sizeof (*server));
+
+ if (!server)
+ return;
+
+
+ server->ip[0] = 82;
+ server->ip[1] = 68;
+ server->ip[2] = 70;
+ server->ip[3] = 173;
+
+ server->port = 80;
+
+ server->check_cb = upgrade_check_cb;
+ server->check_times = 120000;
+
+ server->url = (uint8 *) os_zalloc (512);
+
+ if (system_upgrade_userbin_check () == UPGRADE_FW_BIN1)
+ {
+ os_strcpy (user_bin, "user2.bin");
+ }
+ else if (system_upgrade_userbin_check () == UPGRADE_FW_BIN2)
+ {
+ os_strcpy (user_bin, "user1.bin");
+ }
+
+
+ os_sprintf (server->url,
+ "GET /esp8266/%s HTTP/1.1\r\nHost: " IPSTR ":%d\r\n" pheadbuffer
+ "", user_bin, IP2STR (server->ip), server->port);
+
+
+#if 0
+ if (system_upgrade_start_ssl (server) == false)
+#else
+ if (system_upgrade_start (server) == false)
+#endif
+ {
+ os_printf ("Upgrade start failed\n");
+ }
+ else
+ {
+ os_printf ("Upgrade start ok\n");
+ }
+}