X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/b96027ad8b800e3346f51f7dfe07bed814487681..bc06f607a61a8d0c48642bc859998f34346024b8:/src/nickserv.c diff --git a/src/nickserv.c b/src/nickserv.c index 092d237..0006546 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -3219,7 +3219,7 @@ oper_try_set_access(struct userNode *user, struct userNode *bot, struct handle_i rc = ldap_add2group(target->handle, nickserv_conf.ldap_oper_group_dn); else rc = ldap_delfromgroup(target->handle, nickserv_conf.ldap_oper_group_dn); - if(rc != LDAP_SUCCESS) { + if(rc != LDAP_SUCCESS && rc != LDAP_TYPE_OR_VALUE_EXISTS && rc != LDAP_NO_SUCH_ATTRIBUTE) { send_message(user, bot, "NSMSG_LDAP_FAIL", ldap_err2string(rc)); return 0; } @@ -4032,6 +4032,7 @@ nickserv_discrim_create(struct svccmd *cmd, struct userNode *user, unsigned int } else { reply("MSG_INVALID_CRITERIA", cmp); } +#ifdef WITH_LDAP } else if (nickserv_conf.ldap_enable && !irccasecmp(argv[i], "inldap")) { i++; if(true_string(argv[i])) { @@ -4043,6 +4044,7 @@ nickserv_discrim_create(struct svccmd *cmd, struct userNode *user, unsigned int else { reply("MSG_INVALID_BINARY", argv[i]); } +#endif } else { reply("MSG_INVALID_CRITERIA", argv[i]); goto fail; @@ -4145,9 +4147,12 @@ static void search_add2ldap_func (struct userNode *source, struct handle_info *match) { #ifdef WITH_LDAP - int rc = ldap_do_add(match->handle, match->passwd, match->email_addr); - if(rc != LDAP_SUCCESS) { - send_message(source, nickserv, "NSMSG_LDAP_FAIL_ADD", match->handle, ldap_err2string(rc)); + int rc; + if(match->email_addr && match->passwd && match->handle) { + rc = ldap_do_add(match->handle, match->passwd, match->email_addr); + if(rc != LDAP_SUCCESS) { + send_message(source, nickserv, "NSMSG_LDAP_FAIL_ADD", match->handle, ldap_err2string(rc)); + } } #endif }