svn commit: samba r21396 - in branches: SAMBA_3_0/source
SAMBA_3_0/source/nsswitch SAMBA_3_0_25/source
SAMBA_3_0_25/source/nsswitch
herb at samba.org
herb at samba.org
Fri Feb 16 19:49:13 GMT 2007
Author: herb
Date: 2007-02-16 19:49:12 +0000 (Fri, 16 Feb 2007)
New Revision: 21396
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21396
Log:
fix wbinfo --lookup-rids command
allow detection of libbiconv if all others fail - need for FreeBSD
Modified:
branches/SAMBA_3_0/source/aclocal.m4
branches/SAMBA_3_0/source/nsswitch/wb_common.c
branches/SAMBA_3_0/source/nsswitch/wbinfo.c
branches/SAMBA_3_0_25/source/aclocal.m4
branches/SAMBA_3_0_25/source/nsswitch/wb_common.c
branches/SAMBA_3_0_25/source/nsswitch/wbinfo.c
Changeset:
Modified: branches/SAMBA_3_0/source/aclocal.m4
===================================================================
--- branches/SAMBA_3_0/source/aclocal.m4 2007-02-16 17:36:58 UTC (rev 21395)
+++ branches/SAMBA_3_0/source/aclocal.m4 2007-02-16 19:49:12 UTC (rev 21396)
@@ -362,6 +362,23 @@
jm_cv_func_iconv=yes
jm_cv_lib_iconv="iconv")
LIBS="$jm_save_LIBS"
+
+ if test "$jm_cv_lib_iconv" != yes; then
+ jm_save_LIBS="$LIBS"
+ LIBS="$LIBS -lbiconv"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <biconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ jm_cv_lib_iconv=yes
+ jm_cv_func_iconv=yes
+ jm_cv_include="biconv.h"
+ jm_cv_biconv=yes
+ jm_cv_lib_iconv="biconv")
+
+ LIBS="$jm_save_LIBS"
+ fi
fi
fi
fi
Modified: branches/SAMBA_3_0/source/nsswitch/wb_common.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/wb_common.c 2007-02-16 17:36:58 UTC (rev 21395)
+++ branches/SAMBA_3_0/source/nsswitch/wb_common.c 2007-02-16 19:49:12 UTC (rev 21396)
@@ -504,7 +504,7 @@
/* Mallocate memory for extra data */
- if (!(response->extra_data.data = malloc(extra_data_len))) {
+ if (!(response->extra_data.data = SMB_MALLOC(extra_data_len))) {
return -1;
}
Modified: branches/SAMBA_3_0/source/nsswitch/wbinfo.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/wbinfo.c 2007-02-16 17:36:58 UTC (rev 21395)
+++ branches/SAMBA_3_0/source/nsswitch/wbinfo.c 2007-02-16 19:49:12 UTC (rev 21396)
@@ -638,7 +638,7 @@
/* Lookup a list of RIDs */
-static BOOL wbinfo_lookuprids(char *domain_sid, char *arg)
+static BOOL wbinfo_lookuprids(char *domain, char *arg)
{
size_t i;
DOM_SID sid;
@@ -650,12 +650,27 @@
enum lsa_SidType *types;
const char *domain_name;
TALLOC_CTX *mem_ctx;
+ struct winbindd_request request;
+ struct winbindd_response response;
- if (!string_to_sid(&sid, domain_sid)) {
- d_printf("Could not convert %s to sid\n", domain_sid);
+ if ((domain == NULL) || (strequal(domain, ".")) || (domain[0] == '\0'))
+ fstrcpy(request.domain_name, get_winbind_domain());
+ else
+ fstrcpy(request.domain_name, domain);
+
+ /* Send request */
+
+ if (winbindd_request_response(WINBINDD_DOMAIN_INFO, &request, &response) !=
+ NSS_STATUS_SUCCESS) {
+ d_printf("Could not get domain sid for %s\n", request.domain_name);
return False;
}
+ if (!string_to_sid(&sid, response.data.domain_info.sid)) {
+ d_printf("Could not convert %s to sid\n", response.data.domain_info.sid);
+ return False;
+ }
+
mem_ctx = talloc_new(NULL);
if (mem_ctx == NULL) {
d_printf("talloc_new failed\n");
Modified: branches/SAMBA_3_0_25/source/aclocal.m4
===================================================================
--- branches/SAMBA_3_0_25/source/aclocal.m4 2007-02-16 17:36:58 UTC (rev 21395)
+++ branches/SAMBA_3_0_25/source/aclocal.m4 2007-02-16 19:49:12 UTC (rev 21396)
@@ -362,6 +362,23 @@
jm_cv_func_iconv=yes
jm_cv_lib_iconv="iconv")
LIBS="$jm_save_LIBS"
+
+ if test "$jm_cv_lib_iconv" != yes; then
+ jm_save_LIBS="$LIBS"
+ LIBS="$LIBS -lbiconv"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <biconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ jm_cv_lib_iconv=yes
+ jm_cv_func_iconv=yes
+ jm_cv_include="biconv.h"
+ jm_cv_biconv=yes
+ jm_cv_lib_iconv="biconv")
+
+ LIBS="$jm_save_LIBS"
+ fi
fi
fi
fi
Modified: branches/SAMBA_3_0_25/source/nsswitch/wb_common.c
===================================================================
--- branches/SAMBA_3_0_25/source/nsswitch/wb_common.c 2007-02-16 17:36:58 UTC (rev 21395)
+++ branches/SAMBA_3_0_25/source/nsswitch/wb_common.c 2007-02-16 19:49:12 UTC (rev 21396)
@@ -504,7 +504,7 @@
/* Mallocate memory for extra data */
- if (!(response->extra_data.data = malloc(extra_data_len))) {
+ if (!(response->extra_data.data = SMB_MALLOC(extra_data_len))) {
return -1;
}
Modified: branches/SAMBA_3_0_25/source/nsswitch/wbinfo.c
===================================================================
--- branches/SAMBA_3_0_25/source/nsswitch/wbinfo.c 2007-02-16 17:36:58 UTC (rev 21395)
+++ branches/SAMBA_3_0_25/source/nsswitch/wbinfo.c 2007-02-16 19:49:12 UTC (rev 21396)
@@ -638,7 +638,7 @@
/* Lookup a list of RIDs */
-static BOOL wbinfo_lookuprids(char *domain_sid, char *arg)
+static BOOL wbinfo_lookuprids(char *domain, char *arg)
{
size_t i;
DOM_SID sid;
@@ -650,12 +650,27 @@
enum lsa_SidType *types;
const char *domain_name;
TALLOC_CTX *mem_ctx;
+ struct winbindd_request request;
+ struct winbindd_response response;
- if (!string_to_sid(&sid, domain_sid)) {
- d_printf("Could not convert %s to sid\n", domain_sid);
+ if ((domain == NULL) || (strequal(domain, ".")) || (domain[0] == '\0'))
+ fstrcpy(request.domain_name, get_winbind_domain());
+ else
+ fstrcpy(request.domain_name, domain);
+
+ /* Send request */
+
+ if (winbindd_request_response(WINBINDD_DOMAIN_INFO, &request, &response) !=
+ NSS_STATUS_SUCCESS) {
+ d_printf("Could not get domain sid for %s\n", request.domain_name);
return False;
}
+ if (!string_to_sid(&sid, response.data.domain_info.sid)) {
+ d_printf("Could not convert %s to sid\n", response.data.domain_info.sid);
+ return False;
+ }
+
mem_ctx = talloc_new(NULL);
if (mem_ctx == NULL) {
d_printf("talloc_new failed\n");
More information about the samba-cvs
mailing list