From 54c1cd05e88aa7a7d143902f267878ff8367696c Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Mon, 23 Mar 2015 04:11:57 +0000 Subject: [PATCH] Simplify the page name to script mapping --- .../cc26xx/cc26xx-web-demo/httpd-simple.c | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/examples/cc26xx/cc26xx-web-demo/httpd-simple.c b/examples/cc26xx/cc26xx-web-demo/httpd-simple.c index 04c3e7208..4f63340b1 100644 --- a/examples/cc26xx/cc26xx-web-demo/httpd-simple.c +++ b/examples/cc26xx/cc26xx-web-demo/httpd-simple.c @@ -192,37 +192,49 @@ static const char config_div_left[] = "
"; static const char config_div_right[] = "
"; static const char config_div_close[] = "
"; /*---------------------------------------------------------------------------*/ +static char generate_index(struct httpd_state *s); +static char generate_config(struct httpd_state *s); +/*---------------------------------------------------------------------------*/ typedef struct page { struct page *next; char *filename; char *title; + char (*script)(struct httpd_state *s); } page_t; static page_t http_index_page = { NULL, "index.html", "Index", + generate_index, }; static page_t http_dev_cfg_page = { NULL, "config.html", "Device Config", + generate_config, }; #if CC26XX_WEB_DEMO_NET_UART +static char generate_net_uart_config(struct httpd_state *s); + static page_t http_net_cfg_page = { NULL, - "net.html", + "netu.html", "Net-UART Config", + generate_net_uart_config, }; #endif #if CC26XX_WEB_DEMO_MQTT_CLIENT +static char generate_mqtt_config(struct httpd_state *s); + static page_t http_mqtt_cfg_page = { NULL, "mqtt.html", "MQTT/IBM Cloud Config", + generate_mqtt_config, }; #endif /*---------------------------------------------------------------------------*/ @@ -969,18 +981,13 @@ parse_post_request_chunk(char *buf, int buf_len, int last_chunk) static httpd_simple_script_t get_script(const char *name) { - if(strlen(name) == 10 && strncmp(name, "index.html", 10) == 0) { - return generate_index; - } else if(strlen(name) == 11 && strncmp(name, "config.html", 11) == 0) { - return generate_config; -#if CC26XX_WEB_DEMO_MQTT_CLIENT - } else if(strlen(name) == 9 && strncmp(name, "mqtt.html", 9) == 0) { - return generate_mqtt_config; -#endif -#if CC26XX_WEB_DEMO_NET_UART - } else if(strlen(name) == 8 && strncmp(name, "net.html", 8) == 0) { - return generate_net_uart_config; -#endif + page_t *page; + + for(page = list_head(pages_list); page != NULL; + page = list_item_next(page)) { + if(strncmp(name, page->filename, strlen(page->filename)) == 0) { + return page->script; + } } return NULL;