IRCGundem - Gündemi Belirleyen IRC Forum!  

Geri git   IRCGundem - Gündemi Belirleyen IRC Forum! > Genel IRCd > Unreal IRCd > Hazır Kodlar

Yeni Konu Oluştur Cevapla
 
Bookmark and Share LinkBack Seçenekler Stil
Eski 08-05-10   #1 (permalink)
 
CONSTANTiN Kullanıcısının Avatarı
 
Giriş Tarihi: 03-18-10
Yer: Cehennem..
Mesajlar: 565
IRC:
Web: www.mircmirc.com
İlgi Alanı:
İtibar Gücü: 40
Rep Puanı : 762
Rep Derecesi :
CONSTANTiN is a splendid one to beholdCONSTANTiN is a splendid one to beholdCONSTANTiN is a splendid one to beholdCONSTANTiN is a splendid one to beholdCONSTANTiN is a splendid one to beholdCONSTANTiN is a splendid one to beholdCONSTANTiN is a splendid one to behold
Post tekrar koruması norepeat.c

Merhaba değerli arkadaşlar. elimde sunucuda tekrar koruması sağlayan bir modul var. bu modulu aldım inceledim bazı dezavantajları var

kodlamadan anlayan arkadaslarımdan bazı ricalarım olacak yapılabilirse sevinirim. bu modul daha önce verildi mi bilmiyorum forumda arattırdım bulamadım. umarım işinize yarar arkadaslar. Moduldeki aksaklıklardan biri. gülücük işaretini :d i de tekrardan sayması ve engellemesidir. ayrıca tekrar icin sabit bir süre konmuşmu anlamadım ikinci tekrarı engelledigini biliyorum denedim. ben bu modul için bir set blogu oluştararak şu kadar zaman icin de şu kadar tekrar yapılırsa bir sonraki tekrar icin şukarda süre beklet gibi bir seçenek yaratmanın iyi olacağını dusunuyorum. böylece sunucularda flood engellenmiş olacak en azından tekrar bazında. yardımlarınızı bekliyorum tşkler.



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 STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
 
// Channel Mode  Flag. Change Z to whatever you want but MUST be one character.
#define FLAG_NOREPEAT        'Z' 
#define IsNoRepeat(x)        ((x)->mode.extmode & MODE_NOREPEAT)
 
Cmode_t                MODE_NOREPEAT = 0L;
Cmode                *ModeNoRepeat;
 
static char            *cb_chanmsg(aClient *, aClient *, aChannel *, char *, int);
static Hook            *HookChanMsg;
 
 
typedef struct _norepeat norepeat;
struct _norepeat {
    norepeat *prev,*next;
    aClient *cptr;
    aChannel *chptr;
    char msg[BUFSIZE];
};
norepeat *norepeat_last;
 
norepeat *new_norepeat(void);
void remove_norepeat(norepeat *);
norepeat *find_norepeat(aClient *,aChannel *);
 
 
ModuleHeader MOD_HEADER(NoRepeat)
  = {
    "NoRepeat",
    "v0.1",
    "+Z No repeat by penna",
    "3.2-b8-1",
    NULL 
    };
 
DLLFUNC int MOD_INIT(NoRepeat)(ModuleInfo *modinfo)
{
    CmodeInfo ModeNR;
#ifndef STATIC_LINKING
    ModuleSetOptions(modinfo->handle, MOD_OPT_PERM);
#endif
    memset(&ModeNoRepeat, 0, sizeof ModeNoRepeat);
 
    ModeNR.paracount    = 0;
    ModeNR.is_ok        = extcmode_default_requirechop;
    ModeNR.flag        = FLAG_NOREPEAT;
    ModeNoRepeat        = CmodeAdd(modinfo->handle, ModeNR, &MODE_NOREPEAT);
 
#ifndef STATIC_LINKING
        if (ModuleGetError(modinfo->handle) != MODERR_NOERROR || !ModeNoRepeat)
        {
            config_error("Error adding channel mode +%c when loading module %s: %s",
                ModeNR.flag,MOD_HEADER(NoRepeat).name,ModuleGetErrorStr(modinfo->handle));
        }
#else
        if (!ModeNoRepeat)
        {
            config_error("Error adding channel mode +%c when loading module %s:",
                ModeNR.flag,MOD_HEADER(NoRepeat).name);
        }
#endif
 
    HookChanMsg        = HookAddPCharEx(modinfo->handle,HOOKTYPE_CHANMSG,cb_chanmsg);
 
    return MOD_SUCCESS;
}
 
DLLFUNC int MOD_LOAD(NoRepeat)(int module_load)
{
    return MOD_SUCCESS;
}
 
DLLFUNC int MOD_UNLOAD(NoRepeat)(int module_unload)
{
    if (ModeNoRepeat)
        CmodeDel(ModeNoRepeat);
    HookDel(HookChanMsg);
 
    return MOD_SUCCESS;
}
 
DLLFUNC char *cb_chanmsg(aClient *cptr, aClient *sptr, aChannel *chptr, char *text, int notice)
{
    static char retbuf[4096];
    norepeat *nr;
 
    if (!IsNoRepeat(chptr) || !MyClient(sptr))
        return text;
 
    nr = find_norepeat(cptr,chptr);
    if (nr == NULL)
    {
    nr = new_norepeat();
    nr->cptr = cptr;
    nr->chptr = chptr;
    }
    if (!strcmp(nr->msg,text))
    return NULL;
 
    strcpy(nr->msg,text);
    return text;
}
 
norepeat *new_norepeat(void)
{
    norepeat *nr;
 
    nr = (norepeat *)malloc(sizeof(norepeat));
    memset(nr,0, sizeof(norepeat));
 
    nr->next = norepeat_last;
    norepeat_last = nr;
    if (nr->next)
        nr->next->prev = nr;
 
    return nr;
}
 
void remove_norepeat(norepeat *nr)
{
    if (nr->prev)
        nr->prev->next = nr->next;
    else
    {
        norepeat_last = nr->next;
        if (norepeat_last)
            norepeat_last->prev = NULL;
    }
    if (nr->next)
        nr->next->prev = nr->prev;
 
    free(nr);
    nr = NULL;
}
 
norepeat *find_norepeat(aClient *cptr,aChannel *chptr)
{
    norepeat *nr;
    for (nr = norepeat_last;nr;nr = nr->next)
    {
        if ((nr->cptr == cptr) && (nr->chptr == chptr))
        return nr;
    }
    return NULL;
}
Not: Alıntıdır..
__________________
sus. sakın konuşma çünkü konuşursan sana inanırım yalan olduğunu bilirim ama yinede sana inanırım onun için sus konuşma yaşanan onca şeyden sonra beni sevdiğini bile söylesen yalan olduğunu adım gibi bilirim ama yinede inanırım çünkü ben ben seni öylesine değil ölesiye sevdim...
CONSTANTiN Şuan Çevrimdışı   Alıntı ile Cevapla

Cevapla

Etiketler
koruması, norepeatc, tekrar


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Mesaj Yazma Kuralları
Konu Açma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

İfadeler Açık
[IMG] Kodları Açık
HTML Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Foruma Zıpla


Tüm zamanlar GMT +1 olarak düzenlenmiştir. Şuan Saat: 05:48 AM.

Lisans Bağlantılar İstatistik
IRCGundem.Com, vBulletin® altyapısını kullanarak tasarlanan ve kullanıcılarına başta IRC olmak üzere, çeşitli alanlarda bilgi edinme olanağı sunan bir IRCForum sitesidir.
Copyright © 2000 - 2010, Jelsoft Enterprises Ltd.

IRCGundem.Com © @ 2010
Forumumuzdaki materyallerin, farklı sitelerde kaynak gösterilmeden yayımlanması suçtur.
Arama motorları üzerinde hizmet verdiğimiz kelimeler; irc, irc forum, ircforumlari, irc forumları, mirc, ircfrm ve web site tanıtımları kelimeleridir. Site başlığımızsa; IRC, IRC Forum, IRC Forumu ve IRC Forumları sözcükleriyle oluşturulmuştur.

Dış bağlantı yoluyla desteklenen IRC forum sitesi: irc


IRC Forum olarak kullanabilir ve başta IRC, mIRC ve Web olmak üzere diğer alanlarda da yardım ve bilgi alabilirsiniz.
Anahtar Kelimeler: irc, irc forum, ircforum, ircfrm, irc frm, ircforumlari, irc forumlari, ircforumları, irc forumları, mirc scripting, sunucu tanıtımları, irc sunucuları, site tanıtımları, ircgundem

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230