]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
util-lib: move web-related calls into web-util.[ch]
authorLennart Poettering <lennart@poettering.net>
Mon, 26 Oct 2015 23:41:29 +0000 (00:41 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 27 Oct 2015 12:25:57 +0000 (13:25 +0100)
14 files changed:
Makefile.am
src/basic/util.c
src/basic/util.h
src/basic/web-util.c [new file with mode: 0644]
src/basic/web-util.h [new file with mode: 0644]
src/core/load-fragment.c
src/import/importd.c
src/import/pull-common.c
src/import/pull-dkr.c
src/import/pull-raw.c
src/import/pull-tar.c
src/import/pull.c
src/machine/machinectl.c
src/test/test-util.c

index 78788f65e962bd40f0a779195b1778a0278796e7..d851e96f38d9f10e801426be74107915fb8f2b29 100644 (file)
@@ -844,6 +844,8 @@ libbasic_la_SOURCES = \
        src/basic/fdset.h \
        src/basic/prioq.c \
        src/basic/prioq.h \
+       src/basic/web-util.c \
+       src/basic/web-util.h \
        src/basic/strv.c \
        src/basic/strv.h \
        src/basic/env-util.c \
index 55decc7eea0a52f216835c0d185ed034fcc4a249..412ea50b9684d10cb98691306f0eac684559eb0f 100644 (file)
@@ -646,58 +646,6 @@ int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *pa
         _exit(EXIT_FAILURE);
 }
 
-bool http_etag_is_valid(const char *etag) {
-        if (isempty(etag))
-                return false;
-
-        if (!endswith(etag, "\""))
-                return false;
-
-        if (!startswith(etag, "\"") && !startswith(etag, "W/\""))
-                return false;
-
-        return true;
-}
-
-bool http_url_is_valid(const char *url) {
-        const char *p;
-
-        if (isempty(url))
-                return false;
-
-        p = startswith(url, "http://");
-        if (!p)
-                p = startswith(url, "https://");
-        if (!p)
-                return false;
-
-        if (isempty(p))
-                return false;
-
-        return ascii_is_valid(p);
-}
-
-bool documentation_url_is_valid(const char *url) {
-        const char *p;
-
-        if (isempty(url))
-                return false;
-
-        if (http_url_is_valid(url))
-                return true;
-
-        p = startswith(url, "file:/");
-        if (!p)
-                p = startswith(url, "info:");
-        if (!p)
-                p = startswith(url, "man:");
-
-        if (isempty(p))
-                return false;
-
-        return ascii_is_valid(p);
-}
-
 bool in_initrd(void) {
         static int saved = -1;
         struct statfs s;
index 6c3434d15b853da9bdeb83ce4e1100032cf1849e..078c4313b54b9a79698494415d3487ad9ebe50a6 100644 (file)
@@ -129,11 +129,6 @@ void* memdup(const void *p, size_t l) _alloc_(2);
 
 int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *path, ...);
 
-bool http_url_is_valid(const char *url) _pure_;
-bool documentation_url_is_valid(const char *url) _pure_;
-
-bool http_etag_is_valid(const char *etag);
-
 bool in_initrd(void);
 
 static inline void freep(void *p) {
diff --git a/src/basic/web-util.c b/src/basic/web-util.c
new file mode 100644 (file)
index 0000000..68ec040
--- /dev/null
@@ -0,0 +1,78 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+  This file is part of systemd.
+
+  Copyright 2010 Lennart Poettering
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdbool.h>
+
+#include "string-util.h"
+#include "utf8.h"
+#include "web-util.h"
+
+bool http_etag_is_valid(const char *etag) {
+        if (isempty(etag))
+                return false;
+
+        if (!endswith(etag, "\""))
+                return false;
+
+        if (!startswith(etag, "\"") && !startswith(etag, "W/\""))
+                return false;
+
+        return true;
+}
+
+bool http_url_is_valid(const char *url) {
+        const char *p;
+
+        if (isempty(url))
+                return false;
+
+        p = startswith(url, "http://");
+        if (!p)
+                p = startswith(url, "https://");
+        if (!p)
+                return false;
+
+        if (isempty(p))
+                return false;
+
+        return ascii_is_valid(p);
+}
+
+bool documentation_url_is_valid(const char *url) {
+        const char *p;
+
+        if (isempty(url))
+                return false;
+
+        if (http_url_is_valid(url))
+                return true;
+
+        p = startswith(url, "file:/");
+        if (!p)
+                p = startswith(url, "info:");
+        if (!p)
+                p = startswith(url, "man:");
+
+        if (isempty(p))
+                return false;
+
+        return ascii_is_valid(p);
+}
diff --git a/src/basic/web-util.h b/src/basic/web-util.h
new file mode 100644 (file)
index 0000000..40c1509
--- /dev/null
@@ -0,0 +1,32 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+  This file is part of systemd.
+
+  Copyright 2010 Lennart Poettering
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdbool.h>
+
+#include "macro.h"
+
+bool http_url_is_valid(const char *url) _pure_;
+
+bool documentation_url_is_valid(const char *url) _pure_;
+
+bool http_etag_is_valid(const char *etag);
index 89ab8f4cef903621e19a3e520d67433c3cf0a48e..72e918ed54cb1045d4c337b6a684339cde7ddbe8 100644 (file)
@@ -63,6 +63,7 @@
 #include "unit-printf.h"
 #include "unit.h"
 #include "utf8.h"
+#include "web-util.h"
 
 int config_parse_warn_compat(
                 const char *unit,
index 3c57713fa55f1d80b48493a486a27a7fd500764d..601652231b02767f8474c2dc7f7c50086d57cf8f 100644 (file)
@@ -41,6 +41,7 @@
 #include "strv.h"
 #include "syslog-util.h"
 #include "util.h"
+#include "web-util.h"
 
 typedef struct Transfer Transfer;
 typedef struct Manager Manager;
index f9c168e37472c4154c428c972f29917ba375840e..c23584882152df355d0847db6b64c281d4838c41 100644 (file)
@@ -38,6 +38,7 @@
 #include "string-util.h"
 #include "strv.h"
 #include "util.h"
+#include "web-util.h"
 
 #define FILENAME_ESCAPE "/.#\"\'"
 #define HASH_URL_THRESHOLD_LENGTH (_POSIX_PATH_MAX - 16)
index 2420b9a5f43d15dead38b8291bb14dfdcf1bc348..786651d581cf8003668b57c3712058753bbcf382 100644 (file)
@@ -44,6 +44,7 @@
 #include "string-util.h"
 #include "strv.h"
 #include "utf8.h"
+#include "web-util.h"
 
 typedef enum DkrProgress {
         DKR_SEARCHING,
index 0e9b5ca2b250f4a71ba5f95397825f26024e6db9..c3476714c85c26de663cab7d1bbbb0478fc7af98 100644 (file)
@@ -47,6 +47,7 @@
 #include "strv.h"
 #include "utf8.h"
 #include "util.h"
+#include "web-util.h"
 
 typedef enum RawProgress {
         RAW_DOWNLOADING,
index 306fbe720a2b5dea8afc55ed146da4fc6f26dc4b..43b7b65586959a450b29c95b9e55b8b04984cfd8 100644 (file)
@@ -45,6 +45,7 @@
 #include "strv.h"
 #include "utf8.h"
 #include "util.h"
+#include "web-util.h"
 
 typedef enum TarProgress {
         TAR_DOWNLOADING,
index 502993307486f0e1e90594863d862f67979846fe..5e6cd50688f25b269e9040f1695ad81ccdd848b5 100644 (file)
@@ -34,6 +34,7 @@
 #include "signal-util.h"
 #include "string-util.h"
 #include "verbs.h"
+#include "web-util.h"
 
 static bool arg_force = false;
 static const char *arg_image_root = "/var/lib/machines";
index 274952b8ce2f5dcdca1511cfe90db2959f0eace6..b8b9e0f51911c2b6ba0cf43abd75c060d4f451e9 100644 (file)
@@ -59,6 +59,7 @@
 #include "unit-name.h"
 #include "util.h"
 #include "verbs.h"
+#include "web-util.h"
 
 static char **arg_property = NULL;
 static bool arg_all = false;
index a020b33e7509d803361be60dd8229635b33cbc21..6c6fce2d6a1adf5bbb475fd88b10ca0a8d85ac24 100644 (file)
@@ -55,6 +55,7 @@
 #include "util.h"
 #include "virt.h"
 #include "xattr-util.h"
+#include "web-util.h"
 
 static void test_streq_ptr(void) {
         assert_se(streq_ptr(NULL, NULL));