コード例 #1
0
ファイル: nsldap.c プロジェクト: HumbleRepose/dcerpc
void rpc_ns_binding_unexport
(
	unsigned32              entry_name_syntax,
	unsigned_char_p_t       entry_name,
	rpc_if_handle_t         if_spec,
	uuid_vector_p_t         object_uuid_vector ATTRIBUTE_UNUSED,
	unsigned32              *status
)
{
	LDAP *ld = NULL;
	unsigned_char_p_t elementDN = NULL;
	unsigned_char_p_t serverDN = NULL;

	rpc_ns__ldap_connect_to_server(&ld, status);
	if (*status != rpc_s_ok) {
		goto out;
	}

	rpc_ns__ldap_crack_name(entry_name_syntax, entry_name, &serverDN, status);
	if (*status != rpc_s_ok) {
		goto out;
	}

	rpc_ns__ldap_lookup_server_element(ld, serverDN, if_spec, &elementDN, status);
	if (*status == rpc_s_ok) {
		if (ldap_delete_s(ld, elementDN) != LDAP_SUCCESS) {
			*status = rpc_s_update_failed;
			goto out;
		}
	}
	if (ldap_delete_s(ld, serverDN) != LDAP_SUCCESS) {
		*status = rpc_s_update_failed;
		goto out;
	}

	*status = rpc_s_ok;

out:
	if (ld != NULL) {
		ldap_unbind(ld);
	}
	if (elementDN != NULL) {
		RPC_MEM_FREE(elementDN, RPC_C_MEM_NSRESOLUTION);
	}
	if (serverDN != NULL) {
		RPC_MEM_FREE(serverDN, RPC_C_MEM_NSRESOLUTION);
	}
}
コード例 #2
0
ファイル: ns_wrapper.c プロジェクト: andreiw/polaris
/* ARGSUSED */
int _ns_ldap_delete_s(char *service, int flags,
	char *dn)
{
	LDAP *ld = __s_api_getLDAPconn(flags);

	return (ldap_delete_s(ld, dn));
}
コード例 #3
0
ファイル: main.c プロジェクト: meersjo/ldapfs
static int fldap_rm(const char* path) {
  char* dn;

  if (!(dn = is_dn_exist(path)))
    return -ENOENT;
  if (ldap_delete_s(ld, dn) != LDAP_SUCCESS) {
    free(dn);
    return -EIO;
  }
  free(dn);

  return 0;
}
コード例 #4
0
ファイル: x3ldap.c プロジェクト: evilnet/x3
int ldap_delete_account(char *account)
{
    char dn[MAXLEN];
    int rc;

    if(!admin_bind && LDAP_SUCCESS != ( rc = ldap_do_admin_bind())) {
       log_module(MAIN_LOG, LOG_ERROR, "failed to bind as admin");
       return rc;
    }

    memset(dn, 0, MAXLEN);
    snprintf(dn, MAXLEN-1, nickserv_conf.ldap_dn_fmt, account);
    return(ldap_delete_s(ld, dn));
}
コード例 #5
0
ファイル: hdb-ldap.c プロジェクト: alepharchives/bitrig
static krb5_error_code
LDAP_remove(krb5_context context, HDB * db, hdb_entry * entry)
{
    krb5_error_code ret;
    LDAPMessage *msg, *e;
    char *dn = NULL;
    int rc, limit = LDAP_NO_LIMIT;

    ret = LDAP_principal2message(context, db, entry->principal, &msg);
    if (ret)
	goto out;

    e = ldap_first_entry(HDB2LDAP(db), msg);
    if (e == NULL) {
	ret = HDB_ERR_NOENTRY;
	goto out;
    }

    dn = ldap_get_dn(HDB2LDAP(db), e);
    if (dn == NULL) {
	ret = HDB_ERR_NOENTRY;
	goto out;
    }

    rc = ldap_set_option(HDB2LDAP(db), LDAP_OPT_SIZELIMIT, (const void *)&limit);
    if (rc != LDAP_SUCCESS) {
	krb5_set_error_string(context, "ldap_set_option: %s",
			      ldap_err2string(rc));
	ret = HDB_ERR_BADVERSION;
	goto out;
    }

    rc = ldap_delete_s(HDB2LDAP(db), dn);
    if (check_ldap(context, db, rc)) {
	krb5_set_error_string(context, "ldap_delete_s: %s", 
			      ldap_err2string(rc));
	ret = HDB_ERR_CANT_LOCK_DB;
    } else
	ret = 0;

  out:
    if (dn != NULL)
	free(dn);
    if (msg != NULL)
	ldap_msgfree(msg);

    return ret;
}
コード例 #6
0
/* ad_object_delete deletes the given dn
	returns non-zero on success */
int ad_object_delete(char *dn) {
	LDAP *ds;
	int result;

	ds=ad_login();
	if(!ds) return ad_error_code;

	result=ldap_delete_s(ds, dn);
	if(result!=LDAP_SUCCESS) {
		snprintf(ad_error_msg, MAX_ERR_LENGTH, "Error in ldap_delete: %s", ldap_err2string(result));
		ad_error_code=AD_LDAP_OPERATION_FAILURE;
	} else {
		ad_error_code=AD_SUCCESS;
	}
	return ad_error_code;
}
コード例 #7
0
ファイル: ol_ldap.c プロジェクト: hww3/pexts
static void
f_ldap_delete(INT32 args)
{
    struct pike_string   *dn;
    int                   ret;

    if (!THIS->bound)
        Pike_error("OpenLDAP.Client: attempting operation on an unbound connection\n");
    
    get_all_args("OpenLDAP.Client->delete()", args, "%S", &dn);
    ret = ldap_delete_s(THIS->conn, dn->str);
    if (ret != LDAP_SUCCESS)
        Pike_error("OpenLDAP.Client->delete(): %s\n",
                   ldap_err2string(ret));

    pop_n_elems(args);
}
コード例 #8
0
ファイル: metadb_ldap.c プロジェクト: krichter722/gfarm
char *
gfarm_generic_info_remove(
	void *key,
	const struct gfarm_generic_info_ops *ops)
{
	int rv;
	char *dn = ops->make_dn(key);

	if (dn == NULL)
		return (GFARM_ERR_NO_MEMORY);
	rv = ldap_delete_s(gfarm_ldap_server, dn);
	free(dn);
	if (rv != LDAP_SUCCESS) {
		if (rv == LDAP_NO_SUCH_OBJECT)
			return (GFARM_ERR_NO_SUCH_OBJECT);
		return (ldap_err2string(rv));
	}
	return (NULL);
}
コード例 #9
0
ファイル: LDAPSession.cpp プロジェクト: obalci/x2goclient
void LDAPSession::remove ( string dn )
{
	int errc= ldap_delete_s ( ld,dn.c_str() );
	if ( errc != LDAP_SUCCESS )
		throw LDAPExeption ( "ldap_delete_s",ldap_err2string ( errc ) );
}