# HG changeset patch # User doragasu # Date 1588534745 25200 # Node ID f79e16d8baa4503e2061681e7012853e670ea81d # Parent 6d99bdbf1e3e860dc18413f78eedfbaa9216ffba megawifi: stub common commands to get config. * CMD_AP_CFG_GET * CMD_IP_CFG_GET * CMD_DEF_AP_CFG_GET * CMD_SERVER_URL_GET diff -r 6d99bdbf1e3e -r f79e16d8baa4 megawifi.c --- 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;