svn commit: samba r12196 - branches/SAMBA_3_0/source/libads
trunk/source/libads
jerry at samba.org
jerry at samba.org
Mon Dec 12 18:55:55 GMT 2005
Author: jerry
Date: 2005-12-12 18:55:54 +0000 (Mon, 12 Dec 2005)
New Revision: 12196
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12196
Log:
patch from Krishna Ganugapati <krishnag at centeris.com>
Use the subtree delete ldap control when running 'net ads leave'
to ensure that the machine account is actually deleted.
Modified:
branches/SAMBA_3_0/source/libads/ldap.c
trunk/source/libads/ldap.c
Changeset:
Modified: branches/SAMBA_3_0/source/libads/ldap.c
===================================================================
--- branches/SAMBA_3_0/source/libads/ldap.c 2005-12-12 18:22:02 UTC (rev 12195)
+++ branches/SAMBA_3_0/source/libads/ldap.c 2005-12-12 18:55:54 UTC (rev 12196)
@@ -37,6 +37,9 @@
* codepoints in UTF-8). This may have to change at some point
**/
+
+#define LDAP_SERVER_TREE_DELETE_OID "1.2.840.113556.1.4.805"
+
static SIG_ATOMIC_T gotalarm;
/***************************************************************
@@ -1796,7 +1799,12 @@
void *res, *msg;
char *hostnameDN, *host;
int rc;
+ LDAPControl ldap_control;
+ LDAPControl * pldap_control[] = {&ldap_control, 0};
+ memset(&ldap_control, 0, sizeof(LDAPControl));
+ ldap_control.ldctl_oid = (char *)LDAP_SERVER_TREE_DELETE_OID;
+
/* hostname must be lowercase */
host = SMB_STRDUP(hostname);
strlower_m(host);
@@ -1813,7 +1821,15 @@
}
hostnameDN = ads_get_dn(ads, (LDAPMessage *)msg);
- rc = ldap_delete_s(ads->ld, hostnameDN);
+
+
+ rc = ldap_delete_ext_s(ads->ld, hostnameDN, pldap_control, NULL);
+ if (rc) {
+ DEBUG(3,("ldap_delete_ext_s failed with error code %d\n", rc));
+ }else {
+ DEBUG(3,("ldap_delete_ext_s succeeded with error code %d\n", rc));
+ }
+
ads_memfree(ads, hostnameDN);
if (rc != LDAP_SUCCESS) {
return ADS_ERROR(rc);
Modified: trunk/source/libads/ldap.c
===================================================================
--- trunk/source/libads/ldap.c 2005-12-12 18:22:02 UTC (rev 12195)
+++ trunk/source/libads/ldap.c 2005-12-12 18:55:54 UTC (rev 12196)
@@ -37,6 +37,9 @@
* codepoints in UTF-8). This may have to change at some point
**/
+
+#define LDAP_SERVER_TREE_DELETE_OID "1.2.840.113556.1.4.805"
+
static SIG_ATOMIC_T gotalarm;
/***************************************************************
@@ -1796,7 +1799,12 @@
void *res, *msg;
char *hostnameDN, *host;
int rc;
+ LDAPControl ldap_control;
+ LDAPControl * pldap_control[] = {&ldap_control, 0};
+ memset(&ldap_control, 0, sizeof(LDAPControl));
+ ldap_control.ldctl_oid = (char *)LDAP_SERVER_TREE_DELETE_OID;
+
/* hostname must be lowercase */
host = SMB_STRDUP(hostname);
strlower_m(host);
@@ -1813,7 +1821,15 @@
}
hostnameDN = ads_get_dn(ads, (LDAPMessage *)msg);
- rc = ldap_delete_s(ads->ld, hostnameDN);
+
+
+ rc = ldap_delete_ext_s(ads->ld, hostnameDN, pldap_control, NULL);
+ if (rc) {
+ DEBUG(3,("ldap_delete_ext_s failed with error code %d\n", rc));
+ }else {
+ DEBUG(3,("ldap_delete_ext_s succeeded with error code %d\n", rc));
+ }
+
ads_memfree(ads, hostnameDN);
if (rc != LDAP_SUCCESS) {
return ADS_ERROR(rc);
More information about the samba-cvs
mailing list