[IRCServices] what do they think ?
root of all evil
climber at rionet.com.br
Thu Oct 7 13:46:37 PDT 1999
i had wrote this function on my services, it is working well, but i wold like
to hear coments and sugestions on it
it send password information to the nick email (ni->email) and i changed the
do_register, so users must give a mail
the function is it :
static void do_sendpass(User *u)
{
#ifndef USE_ENCRYPTION
char *nick = strtok(NULL, " ");
NickInfo *ni;
FILE *tosend;
FILE *lock;
#endif
#ifdef USE_ENCRYPTION
notice(s_NickServ, u->nick, "SENDPASS not avaliable");
#else
lock = fopen(".senpass.nick", "r");
if (lock) {
notice(s_NickServ, u->nick, "Sendpass is busy, try again later");
fclose(lock);
return ;
}else if (!nick) {
notice(s_NickServ, u->nick, "Sintax: /msg NickServ SENDPASS nick");
return ;
} else if (!(ni = findnick(nick))) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return ;
} else if (nick_is_services_admin(ni) && !is_services_root(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
return ;
} else if (!ni->email) {
notice(s_NickServ, u->nick, "No email set");
return ;
} else if (!strchr(ni->email, '@')) {
notice(s_NickServ, u->nick, "bad email");
return ;
} else if(strlen(ni->email)>50) {
notice(s_NickServ, u->nick, "bad email");
return ;
} else {
char illsend[256];
strcpy(illsend,"/usr/sbin/sendmail ");
strcat(illsend, ni->email);
strcat(illsend," < .sendpass.nick");
tosend = fopen(".sendpass.nick", "w");
if (tosend) {
fprintf(tosend, "From: brasirc at brasirc.com.br\n");
fprintf(tosend, "Subject: [%s] Password\n", ni->nick);
fprintf(tosend, "\n");
fprintf(tosend, "Dear user\n");
fprintf(tosend, "yor nick %s password is:%s\n", ni->nick, ni->pass);
fprintf(tosend, "if u need help write to ajuda at brasirc.com.br\n");
fprintf(tosend, "or join #BrasIRCOP\n");
fprintf(tosend, "\n");
fprintf(tosend, "BrasIRC.com.br network");
fprintf(tosend,".\n"); /* this get us out on sendmail */
fclose(tosend);
system(illsend);
system("rm -f .sendpass.nick");
log("%s: %s!%s@%s used SENDPASS on %s email: %s", s_NickServ, u->nick,
u ->username, u->host, nick, ni->email);
if (WallGetpass)
wallops(s_NickServ, "\2%s\2 used SENDPASS on \2%s\2, mail: %s",
u->nick, nick, ni->email);
} else { notice(s_NickServ, u->nick, "Ooops, Something gone
wrong on SendPass");
} }
}
#endif
Fighter ircadmin irc.rionet.com.br
Brasirc.com.br Network
---------------------------------------------------------------
To unsubscribe, send email to majordomo at ender.shadowfire.org
with "unsubscribe ircservices" in the body, without the quotes.