From 9bda0fdfd507c2499ccfe1713d41d85e6a7c2fed Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 2 Nov 2018 15:00:03 +0100 Subject: [PATCH] api: check version --- include/villas/api.hpp | 2 ++ lib/api/sessions/http.cpp | 5 ++++- lib/api/sessions/websocket.cpp | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/villas/api.hpp b/include/villas/api.hpp index df8881827..2b9cebfff 100644 --- a/include/villas/api.hpp +++ b/include/villas/api.hpp @@ -39,6 +39,8 @@ namespace villas { namespace node { namespace api { +const int version = 1; + /* Forward declarations */ class Session; diff --git a/lib/api/sessions/http.cpp b/lib/api/sessions/http.cpp index 820689e2e..ba8d6e874 100644 --- a/lib/api/sessions/http.cpp +++ b/lib/api/sessions/http.cpp @@ -24,11 +24,13 @@ #include +#include #include #include #include #include +using namespace villas; using namespace villas::node; using namespace villas::node::api::sessions; @@ -49,7 +51,8 @@ Http::Http(Api *a, lws *w) : /* Parse request URI */ sscanf(uri, "/api/v%d", (int *) &version); - /** @todo Check version */ + if (version != api::version) + throw RuntimeError("Unsupported API version: {}", version); /* This is an OPTIONS request. * diff --git a/lib/api/sessions/websocket.cpp b/lib/api/sessions/websocket.cpp index 596cc9dce..0b58080c3 100644 --- a/lib/api/sessions/websocket.cpp +++ b/lib/api/sessions/websocket.cpp @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -41,7 +42,8 @@ WebSocket::WebSocket(Api *a, lws *w) : sscanf(uri, "/v%d", (int *) &version); - /** @todo Check version */ + if (version != api::version) + throw RuntimeError("Unsupported API version: {}", version); } WebSocket::~WebSocket()