diff options
Diffstat (limited to 'src/core/ns_getpass.c')
-rw-r--r-- | src/core/ns_getpass.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/core/ns_getpass.c b/src/core/ns_getpass.c index afacd63a9..4a526a10a 100644 --- a/src/core/ns_getpass.c +++ b/src/core/ns_getpass.c @@ -39,11 +39,7 @@ int AnopeInit(int argc, char **argv) moduleSetNickHelp(myNickServHelp); -#ifdef USE_ENCRYPTION - return MOD_STOP; -#else return MOD_CONT; -#endif } /** @@ -73,6 +69,7 @@ void myNickServHelp(User * u) int do_getpass(User * u) { char *nick = strtok(NULL, " "); + char tmp_pass[PASSMAX]; NickAlias *na; NickRequest *nr = NULL; @@ -99,13 +96,17 @@ int do_getpass(User * u) } else if (NSRestrictGetPass && !is_services_root(u)) { notice_lang(s_NickServ, u, PERMISSION_DENIED); } else { - alog("%s: %s!%s@%s used GETPASS on %s", s_NickServ, u->nick, - u->username, u->host, nick); - if (WallGetpass) - anope_cmd_global(s_NickServ, "\2%s\2 used GETPASS on \2%s\2", - u->nick, nick); - notice_lang(s_NickServ, u, NICK_GETPASS_PASSWORD_IS, nick, - na->nc->pass); + if(enc_decrypt(na->nc->pass,tmp_pass,PASSMAX)==1) { + alog("%s: %s!%s@%s used GETPASS on %s", s_NickServ, u->nick, + u->username, u->host, nick); + if (WallGetpass) + anope_cmd_global(s_NickServ, "\2%s\2 used GETPASS on \2%s\2", + u->nick, nick); + notice_lang(s_NickServ, u, NICK_GETPASS_PASSWORD_IS, nick, + na->nc->pass); + } else { + notice_lang(s_NickServ, u, NICK_GETPASS_UNAVAILABLE); + } } return MOD_CONT; } |