summaryrefslogtreecommitdiff
path: root/src/core/ns_getpass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ns_getpass.c')
-rw-r--r--src/core/ns_getpass.c23
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;
}