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()