Unreal3.2 Fullname ve İdent Koruma Modülü

Aytac

Developer
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
373
Tepkime puanı
17
Puanları
18
Konum
ircland
Web sitesi
www.ircalem.net
Modül, içerisine yapımcısı tarafından açıklamalar eklenmiş o yüzden ek bir açıklama yapmıyorum normâl modül kurulumunu gerçekleştirip, aktif edebilirsiniz.

m_koruma.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 

#define module     "m_koruma"
#define aciklama   "Sunucu Korumasi By EceLMeriC"
#define unversion  "3.2-b8-1"

/* Kullaniciya gidecek olan uyari mesaji. */
#define sebeb      "Uyari Mesaji"

/* Admin ve operlere uyari. */
#define monitor    "#Opers"

/* Korumaya takilanlarin girecegi kanal. */
char *kanal = "#X";
char *eco[3], channels[512];

static Hook *ConFullname, *Conidentd;
static int m_fullname(aClient *, aChannel *); 
static int m_identd(aClient *, aChannel *); 

ModuleHeader MOD_HEADER(m_koruma) 
= { 
     module, 
     aciklama, 
     aciklama, 
     unversion, 
     NULL 
};

DLLFUNC int MOD_INIT(m_koruma)(ModuleInfo *modinfo) 
{ 

   ConFullname = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_fullname); 
   Conidentd   = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_identd);
   return MOD_SUCCESS; 
} 

DLLFUNC int MOD_LOAD(m_koruma)(int module_load) 
{ 
   return MOD_SUCCESS; 
} 

DLLFUNC int MOD_UNLOAD(m_koruma)(int module_unload) 
{ 
   return MOD_SUCCESS; 
}

/* Fullname listesi */

static char *fullnamelistesi[] = {
  "Ornek-Fullname1",
  "Ornek-Fullname2",
  "Ornek-Fullname3",
  "Ornek-Fullname4",
  "Ornek-Fullname5",
  "Ornek-Fullname6",
  "Ornek-Fullname7",
  "Ornek-Fullname8",
  "Ornek-Fullname9",
   NULL
};

static int fullname_listesi(char *fullname)
 {

 char **flist;

 for (flist=fullnamelistesi; *flist; *flist++)
 {

 if (!strcmp(fullname, *flist))
   return 1;
  }
  return 0;
}

static int m_fullname(aClient *sptr, aChannel *chptr) { 

if (fullname_listesi(sptr->info)) {
SetShunned(sptr);
if ((chptr = find_channel(monitor, NullChn)) != NullChn)
sendto_channel_butone(&me, &me, chptr, ":Koruma PRIVMSG %s :Nick: \2%s\2 Fullname: \2%s\2 IP: \2%s\2", monitor, sptr->name, sptr->info, sptr->user->realhost);
sendto_one(sptr, ":Koruma PRIVMSG %s :%s", sptr->name, sebeb);
strlcpy(channels, kanal, sizeof(channels));
eco[0] = sptr->name;
eco[1] = channels;
eco[2] = NULL;
return do_cmd(sptr, sptr, "JOIN", 2, eco);
 }
return 0;
}

/* identd listesi */

static char *identdlistesi[] = {
  "Ornek-identd1",
  "Ornek-identd2",
  "Ornek-identd3",
  "Ornek-identd4",
  "Ornek-identd5",
  "Ornek-identd6",
  "Ornek-identd7",
  "Ornek-identd8",
  "Ornek-identd9",
   NULL
};

static int identd_listesi(char *identd)
{

 char **ilist;

 for (ilist=identdlistesi; *ilist; *ilist++)
 {
 if (!strcmp(identd, *ilist))
   return 1;
  }
  return 0;
}

static int m_identd(aClient *sptr, aChannel *chptr) { 

if (identd_listesi(sptr->user->username)) {
SetShunned(sptr);
if ((chptr = find_channel(monitor, NullChn)) != NullChn)
sendto_channel_butone(&me, &me, chptr, ":Koruma PRIVMSG %s :Nick: \2%s\2 identd: \2%s\2 IP: \2%s\2", monitor, sptr->name, sptr->user->username, sptr->user->realhost);
sendto_one(sptr, ":Koruma PRIVMSG %s :%s", sptr->name, sebeb);
strlcpy(channels, kanal, sizeof(channels));
eco[0] = sptr->name;
eco[1] = channels;
eco[2] = NULL;
return do_cmd(sptr, sptr, "JOIN", 2, eco);
 }
return 0;
}
 
Üst