From 02b74112721d13a27b0bbaece714d5c8ea743d43 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 10 Dec 2022 01:08:56 +0100 Subject: Move some methods out of util.{cc,h} --- src/lib/json_server.cc | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'src/lib/json_server.cc') diff --git a/src/lib/json_server.cc b/src/lib/json_server.cc index 8c626ad1f..92d5c1171 100644 --- a/src/lib/json_server.cc +++ b/src/lib/json_server.cc @@ -24,7 +24,6 @@ #include "job_manager.h" #include "json_server.h" #include "transcode_job.h" -#include "util.h" #include #include #include @@ -152,6 +151,53 @@ JSONServer::handle (shared_ptr socket) } +map +split_get_request(string url) +{ + enum { + AWAITING_QUESTION_MARK, + KEY, + VALUE + } state = AWAITING_QUESTION_MARK; + + map r; + string k; + string v; + for (size_t i = 0; i < url.length(); ++i) { + switch (state) { + case AWAITING_QUESTION_MARK: + if (url[i] == '?') { + state = KEY; + } + break; + case KEY: + if (url[i] == '=') { + v.clear(); + state = VALUE; + } else { + k += url[i]; + } + break; + case VALUE: + if (url[i] == '&') { + r.insert(make_pair(k, v)); + k.clear (); + state = KEY; + } else { + v += url[i]; + } + break; + } + } + + if (state == VALUE) { + r.insert (make_pair (k, v)); + } + + return r; +} + + void JSONServer::request (string url, shared_ptr socket) { -- cgit v1.2.3