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; } }