diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/util.c | 15 | ||||
-rw-r--r-- | src/util/util.h | 2 |
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, |