![]() |
|
|||||||
| Kayıt Ol | S.S.S. | Üye Listesi | Banlı Üyeler | Banlı Kullanıcılar | Arama | Bugünün Mesajları | Forumları Okundu Olarak İşaretle |
![]() |
|
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
![]()
Giriş Tarihi: 03-18-10
Yer: Cehennem.. Mesajlar: 565 IRC: Web: www.mircmirc.com İlgi Alanı: İtibar Gücü: 40 Rep Puanı : 762 Rep Derecesi : ![]() ![]() ![]() ![]() ![]() ![]() |
Kod:
/*
* Özel Edit m_whois.c Dosyasıdır.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
static char buf[BUFSIZE];
DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]);
/* Place includes here */
#define MSG_WHOIS "WHOIS" /* WHOI */
#define TOK_WHOIS "#" /* 35 */
ModuleHeader MOD_HEADER(m_whois)
= {
"whois", /* Name of module */
"$Id: m_whois.c,v 1.1.2.30.2.10 2007/01/22 12:36:51 syzop Exp $", /* Version */
"command /whois", /* Short description of module */
"3.2-b8-1",
NULL
};
/* This is called on module init, before Server Ready */
DLLFUNC int MOD_INIT(m_whois)(ModuleInfo *modinfo)
{
/*
* We call our add_Command crap here
*/
add_Command(MSG_WHOIS, TOK_WHOIS, m_whois, MAXPARA);
MARK_AS_OFFICIAL_MODULE(modinfo);
return MOD_SUCCESS;
}
/* Is first run when server is 100% ready */
DLLFUNC int MOD_LOAD(m_whois)(int module_load)
{
return MOD_SUCCESS;
}
/* Called when module is unloaded */
DLLFUNC int MOD_UNLOAD(m_whois)(int module_unload)
{
if (del_Command(MSG_WHOIS, TOK_WHOIS, m_whois) < 0)
{
sendto_realops("Failed to delete commands when unloading %s",
MOD_HEADER(m_whois).name);
}
return MOD_SUCCESS;
}
/*
** m_whois
** parv[0] = sender prefix
** parv[1] = nickname masklist
*/
DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
Membership *lp;
anUser *user;
aClient *acptr, *a2cptr;
aChannel *chptr;
char *nick, *tmp, *name;
char *p = NULL;
int found, len, mlen, cnt = 0;
char querybuf[BUFSIZE];
if (IsServer(sptr))
return 0;
if (parc < 2)
{
sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN),
me.name, parv[0]);
return 0;
}
if (parc > 2)
{
if (hunt_server_token(cptr, sptr, MSG_WHOIS, TOK_WHOIS, "%s :%s", 1, parc,
parv) != HUNTED_ISME)
return 0;
parv[1] = parv[2];
}
strcpy(querybuf, parv[1]);
for (tmp = canonize(parv[1]); (nick = strtoken(&p, tmp, ",")); tmp = NULL)
{
unsigned char invis, showchannel, member, wilds, hideoper; /* <- these are all boolean-alike */
if (++cnt > MAXTARGETS)
break;
found = 0;
/* We do not support "WHOIS *" */
wilds = (index(nick, '?') || index(nick, '*'));
if (wilds)
continue;
if ((acptr = find_client(nick, NULL)))
{
if (IsServer(acptr))
continue;
/*
* I'm always last :-) and acptr->next == NULL!!
*/
if (IsMe(acptr))
break;
/*
* 'Rules' established for sending a WHOIS reply:
* - only send replies about common or public channels
* the target user(s) are on;
*/
if (!IsPerson(acptr))
continue;
user = acptr->user;
name = (!*acptr->name) ? "?" : acptr->name;
invis = acptr != sptr && IsInvisible(acptr);
member = (user->channel) ? 1 : 0;
a2cptr = find_server_quick(user->server);
hideoper = 0;
if (IsHideOper(acptr) && (acptr != sptr) && !IsAnOper(sptr))
hideoper = 1;
if (IsWhois(acptr) && (sptr != acptr))
{
sendto_one(acptr,
":%s %s %s :*** %s (%s@%s) did a /whois on you.",
me.name, IsWebTV(acptr) ? "PRIVMSG" : "NOTICE", acptr->name, sptr->name,
sptr->user->username, sptr->user->realhost);
}
sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name,
parv[0], name,
user->username,
IsHidden(acptr) ? user->virthost : user->realhost,
acptr->info);
if (IsOper(sptr))
{
char sno[512];
strcpy(sno, get_sno_str(acptr));
/* send the target user's modes */
sendto_one(sptr, rpl_str(RPL_WHOISMODES),
me.name, parv[0], name,
get_mode_str(acptr), sno[1] == 0 ? "" : sno);
}
if ((acptr == sptr) || IsAnOper(sptr))
{
sendto_one(sptr, rpl_str(RPL_WHOISHOST),
me.name, parv[0], acptr->name,
(MyConnect(acptr) && strcmp(acptr->username, "unknown")) ? acptr->username : "*",
user->realhost, user->ip_str ? user->ip_str : "");
}
if (IsARegNick(acptr))
sendto_one(sptr, rpl_str(RPL_WHOISREGNICK), me.name, parv[0], name);
found = 1;
mlen = strlen(me.name) + strlen(parv[0]) + 10 + strlen(name);
for (len = 0, *buf = '\0', lp = user->channel; lp; lp = lp->next)
{
chptr = lp->chptr;
showchannel = 0;
if (ShowChannel(sptr, chptr))
showchannel = 1;
if (OPCanSeeSecret(sptr))
showchannel = 1;
if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr))
showchannel = 0;
if (IsServices(acptr) && !IsNetAdmin(sptr) && !IsSAdmin(sptr))
showchannel = 0;
if (acptr == sptr)
showchannel = 1;
/* Hey, if you are editting here... don't forget to change the webtv w_whois ;p. */
if (showchannel)
{
long access;
if (len + strlen(chptr->chname) > (size_t)BUFSIZE - 4 - mlen)
{
sendto_one(sptr,
":%s %d %s %s :%s",
me.name,
RPL_WHOISCHANNELS,
parv[0], name, buf);
*buf = '\0';
len = 0;
}
#ifdef SHOW_SECRET
if (IsAnOper(sptr)
#else
if (IsNetAdmin(sptr)
#endif
&& SecretChannel(chptr) && !IsMember(sptr, chptr))
*(buf + len++) = '?';
if (acptr->umodes & UMODE_HIDEWHOIS && !IsMember(sptr, chptr)
&& IsAnOper(sptr))
*(buf + len++) = '!';
access = get_access(acptr, chptr);
#ifdef PREFIX_AQ
if (access & CHFL_CHANOWNER)
*(buf + len++) = '~';
else if (access & CHFL_CHANPROT)
*(buf + len++) = '&';
else
#endif
if (access & CHFL_CHANOP)
*(buf + len++) = '@';
else if (access & CHFL_HALFOP)
*(buf + len++) = '%';
else if (access & CHFL_VOICE)
*(buf + len++) = '+';
if (len)
*(buf + len) = '\0';
(void)strcpy(buf + len, chptr->chname);
len += strlen(chptr->chname);
(void)strcat(buf + len, " ");
len++;
}
}
if (buf[0] != '\0')
sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), me.name, parv[0], name, buf);
if (!(IsULine(acptr) && !IsOper(sptr) && HIDE_ULINES))
sendto_one(sptr, rpl_str(RPL_WHOISSERVER),
me.name, parv[0], name, user->server,
a2cptr ? a2cptr->info : "*Not On This Net*");
if (user->away)
sendto_one(sptr, rpl_str(RPL_AWAY), me.name,
parv[0], name, user->away);
/* makesure they aren't +H (we'll also check
before we display a helpop or IRCD Coder msg)
-- codemastr */
if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsNetAdmin(acptr))
strlcat(buf, "a Ağ Yoneticisi", sizeof buf);
else if (IsSAdmin(acptr))
strlcat(buf, "a Servis Yoneticisi", sizeof buf);
else if (IsAdmin(acptr) && !IsCoAdmin(acptr))
strlcat(buf, "a Server Yoneticisi", sizeof buf);
else if (IsCoAdmin(acptr))
strlcat(buf, "a Yardımcı Yonetici", sizeof buf);
else if (IsServices(acptr))
strlcat(buf, "a Eggdrop Servisi", sizeof buf);
else if (IsOper(acptr))
strlcat(buf, "an Server Operator", sizeof buf);
else
strlcat(buf, "a Yardımcı Operator", sizeof buf);
if (buf[0])
sendto_one(sptr,
rpl_str(RPL_WHOISOPERATOR), me.name,
parv[0], name, buf);
}
if (IsHelpOp(acptr) && !hideoper && !user->away)
sendto_one(sptr, rpl_str(RPL_WHOISHELPOP), me.name, parv[0], name);
if (acptr->umodes & UMODE_BOT)
sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name, ircnetwork);
if (acptr->umodes & UMODE_SECURE)
sendto_one(sptr, rpl_str(RPL_WHOISSECURE), me.name, parv[0], name,
"is using a Secure Connection");
if (!BadPtr(user->swhois) && !hideoper)
sendto_one(sptr, ":%s %d %s %s :%s",
me.name, RPL_WHOISSPECIAL, parv[0],
name, acptr->user->swhois);
/*
* Fix /whois to not show idle times of
* global opers to anyone except another
* global oper or services.
* -CodeM/Barubary
*/
if (IsAnOper(sptr)) {
if (MyConnect(acptr))
sendto_one(sptr, rpl_str(RPL_WHOISIDLE),
me.name, parv[0], name,
TStime() - acptr->last, acptr->firsttime);
}
}
if (!found)
sendto_one(sptr, err_str(ERR_NOSUCHNICK),
me.name, parv[0], nick);
if (p)
p[-1] = ',';
}
sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]);
return 0;
}
__________________
sus. sakın konuşma çünkü konuşursan sana inanırım yalan olduğunu bilirim ama yinede sana inanırım onun için sus konuşma yaşanan onca şeyden sonra beni sevdiğini bile söylesen yalan olduğunu adım gibi bilirim ama yinede inanırım çünkü ben ben seni öylesine değil ölesiye sevdim... |
|
|
|
![]() |
| Etiketler |
| idlesi, mwhoisc, saklıdır, türkçe |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|
| Lisans | Bağlantılar | İstatistik | ||
|
IRCGundem.Com, vBulletin® altyapısını kullanarak tasarlanan ve kullanıcılarına başta IRC olmak üzere, çeşitli alanlarda bilgi edinme olanağı sunan bir IRCForum sitesidir. Copyright © 2000 - 2010, Jelsoft Enterprises Ltd. IRCGundem.Com © @ 2010 Forumumuzdaki materyallerin, farklı sitelerde kaynak gösterilmeden yayımlanması suçtur. Arama motorları üzerinde hizmet verdiğimiz kelimeler; irc, irc forum, ircforumlari, irc forumları, mirc, ircfrm ve web site tanıtımları kelimeleridir. Site başlığımızsa; IRC, IRC Forum, IRC Forumu ve IRC Forumları sözcükleriyle oluşturulmuştur. |
Dış bağlantı yoluyla desteklenen IRC forum sitesi: irc |