summaryrefslogtreecommitdiff
path: root/usr/src/lib/libadutils/common/addisc.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libadutils/common/addisc.h')
-rw-r--r--usr/src/lib/libadutils/common/addisc.h55
1 files changed, 49 insertions, 6 deletions
diff --git a/usr/src/lib/libadutils/common/addisc.h b/usr/src/lib/libadutils/common/addisc.h
index 786e79a66d..b3a0b44cc3 100644
--- a/usr/src/lib/libadutils/common/addisc.h
+++ b/usr/src/lib/libadutils/common/addisc.h
@@ -21,12 +21,14 @@
/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
*/
#ifndef _ADINFO_H
#define _ADINFO_H
-#include <rpcsvc/idmap_prot.h>
+#include <sys/socket.h>
+#include <sys/uuid.h>
#include "libadutils.h"
@@ -41,6 +43,7 @@ extern "C" {
*/
#define MAXSTRSID 185
#define MAXDOMAINNAME 256
+#define AD_DISC_MAXHOSTNAME 256
typedef struct ad_disc *ad_disc_t;
@@ -66,6 +69,24 @@ enum ad_disc_req {
AD_DISC_GLOBAL /* Request global version */
};
+/*
+ * First four members of this are like idmap_ad_disc_ds_t
+ * (for compatiblity) until that can be eliminated.
+ * See PROP_DOMAIN_CONTROLLER in idmapd/server.c
+ */
+typedef struct ad_disc_ds {
+ /* Keep these first four in sync with idmap_ad_disc_ds_t */
+ int port;
+ int priority;
+ int weight;
+ char host[AD_DISC_MAXHOSTNAME];
+ /* Members after this are private and free to change. */
+ char site[AD_DISC_MAXHOSTNAME];
+ struct sockaddr_storage addr;
+ uint32_t flags;
+ uint32_t ttl;
+} ad_disc_ds_t;
+
ad_disc_t ad_disc_init(void);
void ad_disc_fini(ad_disc_t);
@@ -76,17 +97,23 @@ void ad_disc_fini(ad_disc_t);
char *
ad_disc_get_DomainName(ad_disc_t ctx, boolean_t *auto_discovered);
-idmap_ad_disc_ds_t *
+uchar_t *
+ad_disc_get_DomainGUID(ad_disc_t ctx, boolean_t *auto_discovered);
+
+ad_disc_ds_t *
ad_disc_get_DomainController(ad_disc_t ctx,
enum ad_disc_req req, boolean_t *auto_discovered);
+ad_disc_ds_t *
+ad_disc_get_PreferredDC(ad_disc_t ctx, boolean_t *auto_discovered);
+
char *
ad_disc_get_SiteName(ad_disc_t ctx, boolean_t *auto_discovered);
char *
ad_disc_get_ForestName(ad_disc_t ctx, boolean_t *auto_discovered);
-idmap_ad_disc_ds_t *
+ad_disc_ds_t *
ad_disc_get_GlobalCatalog(ad_disc_t ctx, enum ad_disc_req,
boolean_t *auto_discovered);
@@ -105,8 +132,13 @@ int
ad_disc_set_DomainName(ad_disc_t ctx, const char *domainName);
int
+ad_disc_set_DomainGUID(ad_disc_t ctx, uchar_t *u);
+
+int
ad_disc_set_DomainController(ad_disc_t ctx,
- const idmap_ad_disc_ds_t *domainController);
+ const ad_disc_ds_t *domainController);
+int
+ad_disc_set_PreferredDC(ad_disc_t ctx, const ad_disc_ds_t *dc);
int
ad_disc_set_SiteName(ad_disc_t ctx, const char *siteName);
@@ -116,8 +148,17 @@ ad_disc_set_ForestName(ad_disc_t ctx, const char *forestName);
int
ad_disc_set_GlobalCatalog(ad_disc_t ctx,
- const idmap_ad_disc_ds_t *globalCatalog);
+ const ad_disc_ds_t *globalCatalog);
+
+/*
+ * This function sets a FILE * on which this library will write
+ * progress information during DC Location.
+ */
+void
+ad_disc_set_StatusFP(ad_disc_t ctx, struct __FILE_TAG *);
+int
+ad_disc_getnameinfo(char *, int, struct sockaddr_storage *);
/*
* This routine forces all auto discovery item to be recomputed
@@ -140,7 +181,9 @@ boolean_t ad_disc_SubnetChanged(ad_disc_t);
/* This routine returns the Time To Live for auto discovered items */
int ad_disc_get_TTL(ad_disc_t);
-int ad_disc_compare_ds(idmap_ad_disc_ds_t *ds1, idmap_ad_disc_ds_t *ds2);
+int ad_disc_compare_uuid(uuid_t *u1, uuid_t *u2);
+
+int ad_disc_compare_ds(ad_disc_ds_t *ds1, ad_disc_ds_t *ds2);
int ad_disc_compare_trusteddomains(ad_disc_trusteddomains_t *td1,
ad_disc_trusteddomains_t *td2);