summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/util.c15
-rw-r--r--src/util/util.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/src/util/util.c b/src/util/util.c
index 48029676..fb3bed14 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -724,3 +724,18 @@ int domain_to_basedn(TALLOC_CTX *memctx, const char *domain, char **basedn)
*basedn = dn;
return EOK;
}
+
+bool is_host_in_domain(const char *host, const char *domain)
+{
+ int diff = strlen(host) - strlen(domain);
+
+ if (diff == 0 && strcmp(host, domain) == 0) {
+ return true;
+ }
+
+ if (diff > 0 && strcmp(host + diff, domain) == 0 && host[diff - 1] == '.') {
+ return true;
+ }
+
+ return false;
+}
diff --git a/src/util/util.h b/src/util/util.h
index 516edc81..c2c31f5d 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -506,6 +506,8 @@ void safezero(void *data, size_t size);
int domain_to_basedn(TALLOC_CTX *memctx, const char *domain, char **basedn);
+bool is_host_in_domain(const char *host, const char *domain);
+
/* from nscd.c */
enum nscd_db {
NSCD_DB_PASSWD,