changeset 1960:f79e16d8baa4

megawifi: stub common commands to get config. * CMD_AP_CFG_GET * CMD_IP_CFG_GET * CMD_DEF_AP_CFG_GET * CMD_SERVER_URL_GET
author doragasu <doragasu@hotmail.com>
date Sun, 03 May 2020 12:39:05 -0700
parents 6d99bdbf1e3e
children d14630883b1d
files megawifi.c
diffstat 1 files changed, 46 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/megawifi.c	Sun May 03 12:38:28 2020 -0700
+++ b/megawifi.c	Sun May 03 12:39:05 2020 -0700
@@ -210,6 +210,35 @@
 	mw_putc(mw, ETX);
 }
 
+static void cmd_ap_cfg_get(megawifi *mw)
+{
+	char ssid[32] = {0};
+	char pass[64] = {0};
+	uint8_t slot = mw->transmit_buffer[4];
+
+	sprintf(ssid, "BLASTEM! SSID %d", slot + 1);
+	sprintf(pass, "BLASTEM! PASS %d", slot + 1);
+	start_reply(mw, CMD_OK);
+	mw_putc(mw, slot);
+	mw_putc(mw, 7);	/// 11bgn
+	mw_putraw(mw, ssid, 32);
+	mw_putraw(mw, pass, 64);
+	end_reply(mw);
+}
+
+static void cmd_ip_cfg_get(megawifi *mw)
+{
+	uint32_t ipv4s[5] = {0};
+
+	start_reply(mw, CMD_OK);
+	mw_putc(mw, mw->transmit_buffer[4]);
+	mw_putc(mw, 0);
+	mw_putc(mw, 0);
+	mw_putc(mw, 0);
+	mw_putraw(mw, (char*)ipv4s, sizeof(ipv4s));
+	end_reply(mw);
+}
+
 static void process_command(megawifi *mw)
 {
 	uint32_t command = mw->transmit_buffer[0] << 8 | mw->transmit_buffer[1];
@@ -232,6 +261,9 @@
 		mw->receive_bytes = mw->transmit_bytes;
 		memcpy(mw->receive_buffer, mw->transmit_buffer, mw->transmit_bytes);
 		break;
+	case CMD_AP_CFG_GET:
+		cmd_ap_cfg_get(mw);
+		break;
 	case CMD_IP_CURRENT: {
 		iface_info i;
 		if (get_host_address(&i)) {
@@ -258,6 +290,14 @@
 		end_reply(mw);
 		break;
 	}
+	case CMD_IP_CFG_GET:
+		cmd_ip_cfg_get(mw);
+		break;
+	case CMD_DEF_AP_CFG_GET:
+		start_reply(mw, CMD_OK);
+		mw_putc(mw, 0);
+		end_reply(mw);
+		break;
 	case CMD_AP_JOIN:
 		mw->module_state = STATE_READY;
 		start_reply(mw, CMD_OK);
@@ -338,6 +378,12 @@
 		mw_putc(mw, mw->channel_flags);
 		end_reply(mw);
 		break;
+	case CMD_SERVER_URL_GET:
+		start_reply(mw, CMD_OK);
+		// FIXME: This should be get from config file
+		mw_puts(mw, "192.168.1.32");
+		end_reply(mw);
+		break;
 	default:
 		printf("Unhandled MegaWiFi command %s(%d) with length %X\n", cmd_names[command], command, size);
 		break;