diff --git a/src/httpserver/new_http.h b/src/httpserver/new_http.h index d4a0b8b59..dc3553f74 100644 --- a/src/httpserver/new_http.h +++ b/src/httpserver/new_http.h @@ -11,6 +11,7 @@ extern const char htmlReturnToMenu[]; extern const char *htmlPinRoleNames[]; +extern const char *g_build_str; #define HTTP_RESPONSE_OK 200 #define HTTP_RESPONSE_NOT_FOUND 404 diff --git a/src/httpserver/rest_interface.c b/src/httpserver/rest_interface.c index 6dc84d99d..291bfcf32 100644 --- a/src/httpserver/rest_interface.c +++ b/src/httpserver/rest_interface.c @@ -40,6 +40,7 @@ static int http_rest_post_reboot(http_request_t *request); static int http_rest_post_flash(http_request_t *request, int startaddr); static int http_rest_get_flash(http_request_t *request, int startaddr, int len); +static int http_rest_get_info(http_request_t *request); void init_rest(){ @@ -297,6 +298,10 @@ static int http_rest_get(http_request_t *request){ } #endif + if (!strcmp(request->url, "api/info")){ + return http_rest_get_info(request); + } + http_setup(request, httpMimeTypeHTML); poststr(request, "GET of "); poststr(request, request->url); @@ -462,6 +467,16 @@ static int http_rest_post_logconfig(http_request_t *request){ ///////////////////////////////////////////////// +static int http_rest_get_info(http_request_t *request){ + int i; + http_setup(request, httpMimeTypeJson); + hprintf128(request, "{\"uptimes\":%d,", Time_getUpTimeSeconds()); + hprintf128(request, "\"build\":\"%s\"}", g_build_str); + poststr(request, NULL); + return 0; +} + + static int http_rest_post(http_request_t *request){ char tmp[20]; ADDLOG_DEBUG(LOG_FEATURE_API, "POST to %s", request->url); diff --git a/src/new_common.h b/src/new_common.h index 1f84226c2..e8a4dfb5e 100644 --- a/src/new_common.h +++ b/src/new_common.h @@ -78,4 +78,4 @@ typedef unsigned char byte; int strcat_safe(char *tg, const char *src, int tgMaxLen); int strcpy_safe(char *tg, const char *src, int tgMaxLen); void urldecode2_safe(char *dst, const char *srcin, int maxDstLen); - +int Time_getUpTimeSeconds();