IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Unreal IRCd (https://www.ircforumlari.net/unreal-ircd/)
-   -   Join-Part saldirilari icin module (https://www.ircforumlari.net/unreal-ircd/26336-join-part-saldirilari-icin-module.html)

AlwaysGooD 20 Ekim 2006 00:06

Join-Part saldirilari icin module
 
Join part saldirilari icin jointhrottle üzerinden çalışmış olduğum module'dur. Join part yapan botları tespit edip gzline atıyor. /mode #kanal +J 1:10
olarak ayarlamamız gerekiyor. Bu modu sadece ircop ve adminler kullanabiliyor...

Kod:


/*
* AlwaysGooD ( ALTUĞ KARAALİ) tarafından düzenlenmiştir.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "proto.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 STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
#ifndef EXTCMODE
#error "This module requires extended channel modes to be enabled."
#error "See the EXTCMODE macro in include/config.h for more information."
#error "Compilation aborted." f
#endif
#define FLAG_joinpart 'J'
#define ERR_TOOMUCHJOINS 496
#define HasJoinLimit(x) ((x)->mode.extmode & MODE_joinpart)
#define ClearMem(x) memset(&(x), 0, sizeof (x))
#define DelCmode(x) if (x) CmodeDel(x); x = NULL
#define DelHook(x) if (x) HookDel(x); x = NULL
/* Backward compatibility */
#ifndef EX_DENY
#define EX_DENY 0
#define EX_ALLOW 1
#define EX_ALWAYS_DENY 0
#endif
#ifndef HOOK_CONTINUE
#define HOOK_CONTINUE 0
#define HOOK_ALLOW -1
#define HOOK_DENY 1
#endif
typedef struct
{
EXTCM_PAR_HEADER
int joins;
long seconds;
} aModeJTEntry;
typedef struct _joinflood JoinFlood;
struct _joinflood
{
JoinFlood *prev, *next;
aChannel *chptr;
aClient *sptr;
int joins;
TS last;
};
static Cmode *AddCmode(Module *module, CmodeInfo *req, Cmode_t *mode);
static int ModeJT_is_ok(aClient *, aChannel *, char *, int, int);
static CmodeParam *ModeJT_put_param(CmodeParam *, char *);
static char *ModeJT_get_param(CmodeParam *);
static char *ModeJT_conv_param(char *);
static void ModeJT_free_param(CmodeParam *);
static CmodeParam *ModeJT_dup_struct(CmodeParam *);
static int ModeJT_sjoin_check(aChannel *, CmodeParam *, CmodeParam *);
static int cb_channel_destroy(aChannel *);
static int cb_join(aClient *, aChannel *, char *[]);
static int cb_quit(aClient *, char *);
static void InitConf();
static void FreeConf();
Cmode_t MODE_joinpart = 0L;
JoinFlood *JFlist;
ModuleHeader MOD_HEADER(joinpart)
= {
"Join+Part Flood",
"v1.0",
"Kanal mod +J join flood banned Administrator.",
"3.2-b8-1",
NULL
};
DLLFUNC int MOD_TEST(joinpart)(ModuleInfo *modinfo)
{
CmodeInfo ModeJT;
ClearMem(ModeJT);
ModeJT.flag = FLAG_joinpart;
ModeJT.paracount = 1;
ModeJT.is_ok = ModeJT_is_ok;
ModeJT.put_param = ModeJT_put_param;
ModeJT.get_param = ModeJT_get_param;
ModeJT.conv_param = ModeJT_conv_param;
ModeJT.free_param = ModeJT_free_param;
ModeJT.sjoin_check = ModeJT_sjoin_check;
ModeJT.dup_struct = ModeJT_dup_struct;
AddCmode(modinfo->handle, &ModeJT, &MODE_joinpart);
return MOD_SUCCESS;
}
DLLFUNC int MOD_INIT(joinpart)(ModuleInfo *modinfo)
{
ModuleSetOptions(modinfo->handle, MOD_OPT_PERM);
InitConf();
HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, cb_join);
HookAddEx(modinfo->handle, HOOKTYPE_CHANNEL_DESTROY, cb_channel_destroy);
HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_QUIT, cb_quit);
HookAddEx(modinfo->handle, HOOKTYPE_REMOTE_QUIT, cb_quit);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(joinpart)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(joinpart)(int module_unload)
{
FreeConf();
return MOD_SUCCESS;
}
static void InitConf()
{
JFlist = NULL;
}
static void FreeConf()
{
JoinFlood *J;
ListStruct *next;
for (J = JFlist; J; J = (JoinFlood *) next)
{
next = (ListStruct *) J->next;
DelListItem(J, JFlist);
MyFree(J);
}
}
static Cmode *AddCmode(Module *module, CmodeInfo *req, Cmode_t *mode)
{
Cmode *cmode;
*mode = 0;
cmode = CmodeAdd(module, *req, mode);
if (ModuleGetError(module) != MODERR_NOERROR || !cmode)
{
config_error("Error adding channel mode +%c when loading module %s: %s",
req->flag, MOD_HEADER(joinpart).name, ModuleGetErrorStr(module));
return NULL;
}
return cmode;
}
static int cb_channel_destroy(aChannel *chptr)
{
JoinFlood *J;
ListStruct *next;
for (J = JFlist; J; J = (JoinFlood *) next)
{
next = (ListStruct *) J->next;
if (J->chptr == chptr)
{
DelListItem(J, JFlist);
MyFree(J);
}
}
return 0;
}
static int cb_quit(aClient *sptr, char *comment)
{
JoinFlood *J;
ListStruct *next;
for (J = JFlist; J; J = (JoinFlood *) next)
{
next = (ListStruct *) J->next;
if (J->sptr == sptr)
{
DelListItem(J, JFlist);
MyFree(J);
}
}
return 0;
}
static int cb_join(aClient *sptr, aChannel *chptr, char *parv[])
{
JoinFlood *J;
aModeJTEntry *p;
TS now = TStime();
if (!HasJoinLimit(chptr))
return HOOK_CONTINUE;
for (J = JFlist; J; J = J->next)
if ((J->chptr == chptr && J->sptr == sptr))
break;
if (!J)
{
J = (JoinFlood *) MyMallocEx(sizeof(JoinFlood));
J->sptr = sptr;
J->chptr = chptr;
J->last = now;
J->joins = 1;
AddListItem(J, JFlist);
}
else
{
p = (aModeJTEntry *) extcmode_get_struct(chptr->mode.extmodeparam, FLAG_joinpart);
if (now - J->last >= p->seconds)
{
J->last = now;
J->joins = 1;
}
else
{
J->joins++;
if (J->joins > p->joins && now - J->last < p->seconds)
{
#ifndef NO_OPEROVERRIDE
if (IsOper(sptr) && OPCanOverride(sptr))
{
sendto_snomask(SNO_EYES,
"*** OperOverride -- %s (%s@%s) joined %s (overriding +%c).",
sptr->name, sptr->user->username, sptr->user->realhost,
chptr->chname, FLAG_joinpart);
return HOOK_CONTINUE;
}
#endif
place_host_ban(sptr, BAN_ACT_GZLINE, "Join+Part Saldirisi yaptığınız tespit edilmiştir. [MTS]", 864000);
sendto_one(sptr, ":Join Part yaptiniz"
"[Reksnet Protection Systems].",
me.name, ERR_TOOMUCHJOINS, parv[0], chptr->chname,
J->last + p->seconds - now);
return HOOK_DENY;
}
}
}
return HOOK_CONTINUE;
}
static int ModeJT_is_ok(aClient *sptr, aChannel *chptr, char *param, int type, int what)
{
char *p;
int num;
long sec;
int ok;
if (type == EXCHK_ACCESS || type == EXCHK_ACCESS_ERR)
{
if (!IsPerson(sptr) || IsULine(sptr))
return EX_ALLOW;
if (!IsOper(sptr))
{
if (type == EXCHK_ACCESS_ERR)
sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED),
me.name, sptr->name, chptr->chname);
sendto_one(sptr, "Chanserv notice %s :Bu mod sadece operlar tarafindan kullanilmaktadir.", me.name, sptr->name);
return EX_DENY;
}
return EX_ALLOW;
}
else if (type == EXCHK_PARAM)
{
ok = 1;
p = strchr(param, ':');
if (!p)
{
ok = 0;
sendnotice(sptr, "Kanal modu +%c giris:saniye seklinde olacaktir.",
FLAG_joinpart);
}
else
{
*p = '\0';
num = atoi(param);
sec = config_checkval(p+1, CFG_TIME);
if (num < 1 || sec < 1 || num > 10000 || sec > 86400)
{
ok = 0;
sendnotice(sptr, "Parameter for channel mode +%c is out of range",
FLAG_joinpart);
}
*p = ':';
}
return ok;
}
return 0;
}
static CmodeParam *ModeJT_put_param(CmodeParam *param, char *text)
{
aModeJTEntry *m = (aModeJTEntry *) param;
char *p;
if (!m)
{
m = (aModeJTEntry *) MyMallocEx(sizeof(aModeJTEntry));
m->flag = FLAG_joinpart;
}
p = strchr(text, ':');
*p = '\0';
m->joins = atoi(text);
m->seconds = config_checkval(p+1, CFG_TIME);
*p = ':';
return (CmodeParam *)m;
}
static char *ModeJT_get_param(CmodeParam *param)
{
aModeJTEntry *m = (aModeJTEntry *)param;
static char text[64];
if (!m)
return NULL;
ClearMem(text);
sprintf(text, "%d:%ld", m->joins, m->seconds);
return text;
}
static char *ModeJT_conv_param(char *in)
{
int joins;
long seconds;
static char text[64];
char *p;
p = strchr(in, ':');
*p = '\0';
joins = atoi(in);
seconds = config_checkval(p+1, CFG_TIME);
*p = ':';
ClearMem(text);
sprintf(text, "%d:%ld", joins, seconds);
return text;
}
static void ModeJT_free_param(CmodeParam *param)
{
MyFree(param);
}
static CmodeParam *ModeJT_dup_struct(CmodeParam *in)
{
aModeJTEntry *m = MyMalloc(sizeof(aModeJTEntry));
memcpy(m, in, sizeof(aModeJTEntry));
m->prev = m->next = NULL;
return (CmodeParam *) m;
}
static int ModeJT_sjoin_check(aChannel *chptr, CmodeParam *ours, CmodeParam *theirs)
{
aModeJTEntry *o = (aModeJTEntry *)ours;
aModeJTEntry *t = (aModeJTEntry *)theirs;
if ((o->joins == t->joins) && (o->seconds == t->seconds))
return EXSJ_SAME;
if (o->seconds < t->seconds)
return EXSJ_THEYWON;
else if (o->joins < t->joins)
return EXSJ_THEYWON;
else
return EXSJ_WEWON;
}


Mafya84 21 Ekim 2006 01:46

Yanıt: Join-Part saldirilari icin module
 
Guzel oLmus eline saglikda cok ban atiyor yanliz

AlwaysGooD 22 Ekim 2006 01:26

Yanıt: Join-Part saldirilari icin module
 
Sadece saldırın anında atması gerekiyor test edilmişti...

Mafya84 22 Ekim 2006 02:03

Yanıt: Join-Part saldirilari icin module
 
bilmem beLkide bende problem vardir bende surekli atmalar yapiyordu kaldirdim

AlwaysGooD 22 Ekim 2006 02:04

Yanıt: Join-Part saldirilari icin module
 
Anladım 1:10 limitini yükseltmeyi deneyebilirsin. Çünkü devamlı /hop yapan userlarda atılmaktadır. Belki ona rast gelmişsin, bilemiyorum.

CaSt 18 Şubat 2007 16:06

Cevap: Join-Part saldirilari icin module
 
Selamun aleykum.
Bu modulün nasıl kuralacağını anlatabilirmisiniz lütfen?
Teşekkürler..
vesselam.

Holyzone 18 Şubat 2007 16:39

Cevap: Join-Part saldirilari icin module
 
Module kurulumu şeklinde aratın forumda mevcut.

CaSt 18 Şubat 2007 17:18

Cevap: Join-Part saldirilari icin module
 
2 sefer denedim olmadı. Acaba yanlış bişiymi yapıyorum?

Yaptıklarım ;

önce joinpart olarak adlandırdım modulu.Sonra modulesin içine joinpart.c olarak attım. telnnetten make custommodule MODULEFILE=joinpart yazıp enter yaptım. sonra unrealircd.conf içinde loadmodule "src/modules/joinpart.so"; yaptım ve sunucuya rehash cektiğimde hata iletisi verdi.

[17:17] -Irc.sunucuismi.com- *** Notice -- unrealircd.conf:258: loadmodule src/modules/joinpart.so: failed to load: tmp/9C74A645.joinpart.so: cannot open shared object file: No such file or directory

TreMex 19 Şubat 2007 23:24

Cevap: Join-Part saldirilari icin module
 
Test Amacli Kurdum Modulu Herhangi ßir Sorun Görmedim + Modul Calisiyor sağLamdir. Saygılar.. zaten sağLam oLmassa buraya konuLmaz mantikli düşünecek olursak test edilmeden konulurmu siz kurulumda hata yapıor olmalisiniz..

CaSt 20 Şubat 2007 00:35

Cevap: Join-Part saldirilari icin module
 
Alıntı:

delisinsen Nickli Üyeden Alıntı
Test Amacli Kurdum Modulu Herhangi ßir Sorun Görmedim + Modul Calisiyor sağLamdir. Saygılar.. zaten sağLam oLmassa buraya konuLmaz mantikli düşünecek olursak test edilmeden konulurmu siz kurulumda hata yapıor olmalisiniz..


nasıl kurdugunuzu anlatırmısınız lütfen?

TreMex 20 Şubat 2007 00:54

Cevap: Join-Part saldirilari icin module
 
:) peki Anlatayim.. ALwayS'in verdiği Module'yi Kopyaladim saldiri.c olarak kaydettim. Ftp iLe Hesabıma Login oLdum. UnreaL/src/modules Klasörüne attim daha sonra putty iLe hesabıma login oLdum

Kod:

cd Unreal3.2
Kod:

make custommodule MODULEFILE=saldiri
Ardindan..
Kod:

pico unrealircd.conf
modules kısmına eklememi yaptim aynen su sekilde..
Kod:

loadmodule "src/modules/saldiri.so";
Ardindan

Kod:

./unreal rehash
ve sunucuda Modullere Baktıgım zaman

Kod:

*** Join+Part Flood - v1.0 (Kanal mod +J join flood banned Administrator.) [PERM] [3RD]
Aynen Cikti :) Sorun ya$amadim yani.. Eğerki haLan yapamassanız pm ile sunucunu belirtirsen ßakariz. saygılar

CaSt 20 Şubat 2007 01:14

Cevap: Join-Part saldirilari icin module
 
Kardeş çok tşk. ederim. şimdi kurabildim.
Meğersem ben buradan copy ile alırken fazladan karakterleride almışım.Ondan dolayı olmuyormuş.Hayırlısı olsun neticede sizin vesilenizle kurabildim.
Teşekkür ederim tekrar.
vesselam.

TreMex 20 Şubat 2007 01:42

Cevap: Join-Part saldirilari icin module
 
ßazen ufak hataLar gözden kacmalar olabilir doğaldir insanlik hali illaki hersey anında 4 4 lük olacak diye bir kaide yoktur :) Sorununuzun çözülmesine Yardımda bulunduysam ne mutlu bana iyi calismalar kardeşim..

BuCaLI 20 Şubat 2007 14:19

Cevap: Join-Part saldirilari icin module
 
denedim gayet kullanışlı bişey yanlız /mode #kanal +J 1:10 şeklinde ayarlanması gerekiyor denmiş ordan sanırım arkadaşlar yanlış anlamış illa zamanlamayı 1:10 diye yaptıklarından sürekli userler zline yiyor olabilir /mode #kanal +J 3:10 şeklinde ayarlama yaparsanız 10 saniye içerisinde kullanıcıya 3 kere join part hakkı tanıyacağından pek rahatsız edici olmaz. teşekkürler ayrıca

bLueStar` 01 Ağustos 2007 03:50

Cevap: Join-Part saldirilari icin module
 
-o saldiri.so saldiri.c
saldiri.c:345:2: warning: no newline at end of file
make[2]: Leaving directory `/home/trk/Unreal3.2/src/modules'
make[1]: Leaving directory `/home/trk/Unreal3.2/src'


böyle bir hatayla karşılaştım sebebi ne olabilir?

daRkMoRGaN 08 Ağustos 2008 01:11

Cevap: Join-Part saldirilari icin module
 
basit bi kod yinede tşk.

ysfm 08 Ağustos 2008 01:19

Cevap: Join-Part saldirilari icin module
 
kodların karmasık olmasını isteyen kım kı zaten :)


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 17:10.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk