summaryrefslogtreecommitdiff
path: root/libproxy/modules/ignore_domain.cpp
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2023-05-02 10:53:36 +0200
committerGitHub <noreply@github.com>2023-05-02 10:53:36 +0200
commitd159c5f40ff7e82354e45116d9b66b1f596d9320 (patch)
tree34506d9ee6c699444a170c6bba8c925c45407d3e /libproxy/modules/ignore_domain.cpp
parent8fec01ed4b95afc71bf7710bf5b736a5de03b343 (diff)
parent5272fb3d114f0d012871380bd429546c73f0226d (diff)
downloadlibproxy-git-d159c5f40ff7e82354e45116d9b66b1f596d9320.tar.gz
Merge pull request #201 from janbrummer/rewrite
Complete rewrite
Diffstat (limited to 'libproxy/modules/ignore_domain.cpp')
-rw-r--r--libproxy/modules/ignore_domain.cpp59
1 files changed, 0 insertions, 59 deletions
diff --git a/libproxy/modules/ignore_domain.cpp b/libproxy/modules/ignore_domain.cpp
deleted file mode 100644
index f39e545..0000000
--- a/libproxy/modules/ignore_domain.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * libproxy - A library for proxy configuration
- * Copyright (C) 2006 Nathaniel McCallum <nathaniel@natemccallum.com>
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ******************************************************************************/
-
-#include <cstdio>
-
-#include "../extension_ignore.hpp"
-using namespace libproxy;
-
-class domain_ignore_extension : public ignore_extension {
-public:
- virtual bool ignore(url& url, const string &ignorestr) {
- /* Get our URL's hostname and port */
- string host = url.get_host();
- int port = url.get_port();
-
- /* Get our ignore pattern's hostname and port */
- string ihost = ignorestr;
- int iport = 0;
- if (ihost.find(':') != string::npos) {
- if (sscanf(ignorestr.substr(ihost.find(':')+1).c_str(), "%d", &iport) == 1)
- ihost = ihost.substr(0, ihost.find(':'));
- else
- iport = 0;
- }
-
- /* Hostname match (domain.com or domain.com:80) */
- if (host == ihost)
- return (iport == 0 || port == iport);
-
- /* Endswith (.domain.com or .domain.com:80) */
- if (ihost[0] == '.' && host.find(ihost) == host.size() - ihost.size() && host.size() >= ihost.size())
- return (iport == 0 || port == iport);
-
- /* Glob (*.domain.com or *.domain.com:80) */
- if (ihost[0] == '*' && host.find(ihost.substr(1)) == host.size() - ihost.substr(1).size() && host.size() >= ihost.substr(1).size())
- return (iport == 0 || port == iport);
-
- /* No match was found */
- return false;
- }
-};
-
-MM_MODULE_INIT_EZ(domain_ignore_extension, true, NULL, NULL);