svn commit: samba r24832 - in branches: SAMBA_3_2/source/libads
SAMBA_3_2_0/source/libads
gd at samba.org
gd at samba.org
Fri Aug 31 12:18:23 GMT 2007
Author: gd
Date: 2007-08-31 12:18:21 +0000 (Fri, 31 Aug 2007)
New Revision: 24832
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24832
Log:
In the winbind-locator recursion case, try to pick up the kdc from the
environment.
Guenther
Modified:
branches/SAMBA_3_2/source/libads/smb_krb5_locator.c
branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c
Changeset:
Modified: branches/SAMBA_3_2/source/libads/smb_krb5_locator.c
===================================================================
--- branches/SAMBA_3_2/source/libads/smb_krb5_locator.c 2007-08-31 11:19:09 UTC (rev 24831)
+++ branches/SAMBA_3_2/source/libads/smb_krb5_locator.c 2007-08-31 12:18:21 UTC (rev 24832)
@@ -335,9 +335,28 @@
goto failed;
}
} else {
- /* FIXME: here comes code for locator being called from within
- * winbind */
- goto failed;
+ const char *env = NULL;
+ char *var = NULL;
+ if (asprintf(&var, "%s_%s",
+ WINBINDD_LOCATOR_KDC_ADDRESS, realm) == -1) {
+ goto failed;
+ }
+ env = getenv(var);
+ if (!env) {
+#ifdef DEBUG_KRB5
+ fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "
+ "failed to get kdc from env %s\n",
+ (unsigned int)getpid(), var);
+#endif
+ free(var);
+ goto failed;
+ }
+ free(var);
+
+ kdc_name = strdup(env);
+ if (!kdc_name) {
+ goto failed;
+ }
}
#ifdef DEBUG_KRB5
fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "
Modified: branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c
===================================================================
--- branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c 2007-08-31 11:19:09 UTC (rev 24831)
+++ branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c 2007-08-31 12:18:21 UTC (rev 24832)
@@ -335,9 +335,28 @@
goto failed;
}
} else {
- /* FIXME: here comes code for locator being called from within
- * winbind */
- goto failed;
+ const char *env = NULL;
+ char *var = NULL;
+ if (asprintf(&var, "%s_%s",
+ WINBINDD_LOCATOR_KDC_ADDRESS, realm) == -1) {
+ goto failed;
+ }
+ env = getenv(var);
+ if (!env) {
+#ifdef DEBUG_KRB5
+ fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "
+ "failed to get kdc from env %s\n",
+ (unsigned int)getpid(), var);
+#endif
+ free(var);
+ goto failed;
+ }
+ free(var);
+
+ kdc_name = strdup(env);
+ if (!kdc_name) {
+ goto failed;
+ }
}
#ifdef DEBUG_KRB5
fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "
More information about the samba-cvs
mailing list