Unreal Belirtilen Identde göre kanala alma

Aytac

nicktag
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
379
Tepkime puanı
50
Puanları
28
Konum
ircland
Web sitesi
www.ircalem.net
Merhabalar,
* Açıklama

• Modülün amacı/yazılma sebebi cinsel ağırlıklı Identd kullanıcılarını belirtilen kanala almak, ve o kanal haricinde herhangi bir odaya giriş yapmalarını önlemek.

NOT: Bu modülü kullanacak olan kişi veya kişilerin UnrealIRCd versiyonu 3.2.3'ten yüksek olması gerekmektedir.

m_ikanal.c modülü;

Kod:
#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" 
#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_kanal)
= {
"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[] = {
"-",
"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;
}
}
 
Üst