summaryrefslogtreecommitdiff
path: root/src/core/cs_getpass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/cs_getpass.c')
-rw-r--r--src/core/cs_getpass.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/core/cs_getpass.c b/src/core/cs_getpass.c
index ef9ea3cbb..fd1f241e1 100644
--- a/src/core/cs_getpass.c
+++ b/src/core/cs_getpass.c
@@ -38,11 +38,8 @@ int AnopeInit(int argc, char **argv)
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
moduleSetChanHelp(myChanServHelp);
-#ifdef USE_ENCRYPTION
- return MOD_STOP;
-#else
+
return MOD_CONT;
-#endif
}
/**
@@ -75,6 +72,7 @@ void myChanServHelp(User * u)
int do_getpass(User * u)
{
char *chan = strtok(NULL, " ");
+ char tmp_pass[PASSMAX];
ChannelInfo *ci;
if (!chan) {
@@ -86,15 +84,19 @@ int do_getpass(User * u)
} else if (CSRestrictGetPass && !is_services_root(u)) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else {
- alog("%s: %s!%s@%s used GETPASS on %s",
- s_ChanServ, u->nick, u->username, u->host, ci->name);
- if (WallGetpass) {
- anope_cmd_global(s_ChanServ,
- "\2%s\2 used GETPASS on channel \2%s\2",
- u->nick, chan);
- }
- notice_lang(s_ChanServ, u, CHAN_GETPASS_PASSWORD_IS,
- chan, ci->founderpass);
+ if(enc_decrypt(ci->founderpass,tmp_pass,PASSMAX)==1) {
+ alog("%s: %s!%s@%s used GETPASS on %s",
+ s_ChanServ, u->nick, u->username, u->host, ci->name);
+ if (WallGetpass) {
+ anope_cmd_global(s_ChanServ,
+ "\2%s\2 used GETPASS on channel \2%s\2",
+ u->nick, chan);
+ }
+ notice_lang(s_ChanServ, u, CHAN_GETPASS_PASSWORD_IS,
+ chan, ci->founderpass);
+ } else {
+ notice_lang(s_ChanServ, u, CHAN_GETPASS_UNAVAILABLE);
+ }
}
return MOD_CONT;
}