Merhaba arkadaşlar. Şimdiki konumuz Modül yazarı Entrance (Taner) arkadaşımızın yapmış olduğu cinsel ağırlıklı Identd kullanıcıların belirtilmiş olduğu kanala yönlendirmek. Belirtilen kanal haricinde hiç bir kanala giriş sağlayamaz.
NOT: Bu modülü kullanacak olan kişi veya kişilerin UnrealIRCd versiyonu 3.2.3 ‘ten yüksek olması gerekmektedir.
Modül :
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include
#include
#include
#include
#include
#ifdef _WIN32
#include
#endif
#include
#include "h.h"
#ifdef _WIN32
#include "version.h"
#endif
char *kanal = "#+18";
char *E[3], channels[512];
static int m_Kanal(aClient *, aChannel *);
static int m_Kanalx(aClient *, aChannel *);
ModuleHeader MOD_HEADER(m_identdkanal)
= {
"m_identdkanal",
"Identde göre belirtilen kanala alma by Entrance",
"Identde göre belirtilen kanala alma by Entrance",
"3.2-b8-1",
NULL
};
DLLFUNC int MOD_INIT(m_identdkanal)(ModuleInfo *modinfo)
{
HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_Kanal);
HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, m_Kanalx);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_identdkanal)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_identdkanal)(int module_unload)
{
return MOD_SUCCESS;
}
static char *IdentdListesi[] = {
"Identd1",
"Identd2",
"Identd3",
"Identd4",
"Identd5",
NULL
};
static int Identd_Listesi(char *identd)
{
char **ilist;
for (ilist=IdentdListesi; *ilist; *ilist++)
{
if (strstr(identd, *ilist))
return 1;
}
return 0;
}
static int m_Kanal(aClient *sptr, aChannel *chptr) {
if (Identd_Listesi(sptr->user->username)) {
strlcpy(channels, kanal, sizeof(channels));
E[0] = sptr->name;
E[1] = channels;
E[2] = NULL;
do_cmd(sptr, sptr, "JOIN", 2, E);
return 0;
}
}
static int m_Kanalx(aClient *sptr, aChannel *chptr) {
if (Identd_Listesi(sptr->user->username)) {
if (!is_autojoin_chan(chptr->chname))
return HOOK_CONTINUE;
}
}