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/)
-   -   verify modulu hakkında (https://www.ircforumlari.net/unreal-ircd/335437-verify-modulu-hakkinda.html)

cashmare 19 Mayıs 2010 22:30

verify modulu hakkında
 
Elimde sky dancerin verify koruması var güzelde calışıyor
istegim şu modulde
sendto_one(sptr, ":%s NOTICE %s :Şifreniz Kabul Edildi. iyi Sohbetler..", me.name, sptr->name);
böyle bi satır var bu satırın altına ne eklemem lazım kod dogru girildikten sonra #kanal1 #kanal2 #kanal3 e sajoin yapsın ?
yani Şifreniz kabul edildi iyi sohbetler den sonra
#kanal1 2 ve 3 e sajoin yapsın istiyorum

toXic 20 Mayıs 2010 10:05

Cevap: verify modulu hakkında
 
[FLASH][/FLASH]
Alıntı:

cashmare Nickli Üyeden Alıntı (Mesaj 1040420480)
Elimde sky dancerin verify koruması var güzelde calışıyor
istegim şu modulde
sendto_one(sptr, ":%s NOTICE %s :Şifreniz Kabul Edildi. iyi Sohbetler..", me.name, sptr->name);
böyle bi satır var bu satırın altına ne eklemem lazım kod dogru girildikten sonra #kanal1 #kanal2 #kanal3 e sajoin yapsın ?
yani Şifreniz kabul edildi iyi sohbetler den sonra
#kanal1 2 ve 3 e sajoin yapsın istiyorum

O Satirin altina ekleyin;


Kod:

char *kanal = "#kanal,#kanal2";
char *i[3], channels[512];
strlcpy(channels, kanal, sizeof(channels));
i[0] = sptr->name;
i[1]  = channels;
i[2] = NULL;
do_cmd(sptr, sptr, "JOIN", 2, i);


EceLMeriC 20 Mayıs 2010 17:32

Cevap: verify modulu hakkında
 
Kullandigin modulde 'verifyjoin' diye bir satir varsa bunu unrealircd.conf'una eklenecek bir satir ilede yapabilirsin yani.

cashmare 20 Mayıs 2010 19:57

Cevap: verify modulu hakkında
 
tamam olduda yalnız bunu ecelmeric in m_kanalizin moduluyle kullanıyorum
kod girilince şöyle cıkıyor
[19:53] -Koruma- #kanal2 kanalina sadece web uzerinden giris yapabilirsiniz.
bunu sajoin le yaptırmanın bi yolu yokmu.
yani onay kodu dogru girildiginde sajoin le alıcak joinle degilde

----------

Alıntı:

EceLMeriC Nickli Üyeden Alıntı (Mesaj 1040421057)
Kullandigin modulde 'verifyjoin' diye bir satir varsa bunu unrealircd.conf'una eklenecek bir satir ilede yapabilirsin yani.

nasıl bi satır mesela ecelmeric senin kodladıgın m_kanalizin le beraber kullanıyorum bunu
Şimdi örnegin 6667 portundan girenin önüne bi kod cıkıyor ve /verify kod yazmadan hiçbişe yapamıyor şimdi kodu girdi diyelim.. kod dogru girildikten sonra bu kişinin #kanal1 #kanal2 #kanal3 bu kanallara otomatik girmesi lazım toxic in verdigi kod calışıyor fakat.. join le girdigi için
bu sefer senin verdigin m_kanalizin den dolayı
[19:53] -Koruma- #kanal2 kanalina sadece web uzerinden giris yapabilirsiniz.
bu şekilde girişi engelleniyor.. bunu join yerine sajoin kullandırarak yapabilirmiyiz.

toXic 20 Mayıs 2010 19:58

Cevap: verify modulu hakkında
 
Aşşağidaki kodu kanalizin.c ye ekle.

Kod:


aChannel *chptr;
if (stricmp(chptr->chname, "#Kanal"))


cashmare 20 Mayıs 2010 20:31

Cevap: verify modulu hakkında
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 1040421150)
Aşşağidaki kodu kanalizin.c ye ekle.

Kod:


aChannel *chptr;
if (stricmp(chptr->chname, "#Kanal"))


Toxic üstad kanal izin c ye bunu eklersem bu sefer. de sunucuya girişte direk girer kanala :)
yani şöyle diyeyim ben şimdi eschat portunu m_kanalizin.c den muaf tuttum. ve eschat portu harici bir porttan girenleri. m_kanalizin.c ile statuste durdurarak sky_dancerin verify kod uygulaması yöntemiyle userin önüne bi kod cıkmasını sagladım.
buraya kadar güzel.
bana tek lazım olan. verify kod dogru girildiginde #kanal1 #kanal2 ye useri oto joinlemesi.
senin verdigin kodlada bunu hallettim buraya kadarda bi sorun yok ama şimdi tek sorun şu
verify kod dogru girildiginde.. #kanal1 ve #kanal2 ye userin girebilmesi için. sajoin olması gerekiyor çünki join le giriş yaptıramıyoruz. ecelmericin m_kanalizin devrede oldugu için.
senin dedigin gibi m_kanalizin e #kanal1 ve #kanal2 yi muaf tutsam bu sefer. m_kanalizin bişeye yaramıycak benim amacım useri statuste durdurmak. umarım anlatabilmişimdir.

Eğer bunu becerebilirsem IRC adına güzel birşey olacak düşüncesindeyim..
giriş kod devrini bitiricek bi düşünce. en aızndan mantıgı yine giriş kod şeklinde olsa bile. şu giriş kodundan 3 haneli giriş kodlarından bug sorunu yaşayanlar için güzel birşey olacak kanaatindeyim

----------

#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

DLLFUNC int m_kanalizin(aClient *, aChannel *);

ModuleHeader MOD_HEADER(m_kanalizin)
= {
"m_kanalizin",
"Kanal Giris izinleri EceLMeriC",
"Kanal Giris izinleri EceLMeriC",
"3.2-b8-1",
NULL
};

DLLFUNC int MOD_INIT(m_kanalizin)(ModuleInfo *modinfo)
{
HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, m_kanalizin);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_kanalizin)(int module_load)
{
return MOD_SUCCESS;
}

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

DLLFUNC int m_kanalizin(aClient *sptr, aChannel *chptr)
{

/* Buraya web portunu yazicaksin, Default port 1234 */
if (sptr->listener->port != 8795)

/* izin verebilecegin IP */
//if (stricmp(sptr->user->realhost, "IP"))

/* izin verebilecegin identd */
//if (stricmp(sptr->user->username, "Webidentd"))

/* izin verebilecegin fullname */
//if (stricmp(sptr->info, "Fullname"))

/* izin verebilecegin Nick/Rumuz */
//if (stricmp(sptr->name, "Nick"))

/* Oper ve sifreli nickler kanallara girebilcek */
if (!IsOper(sptr) && !IsARegNick(sptr)) {
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2 kanalina sadece web uzerinden giris yapabilirsiniz.", sptr->name, chptr->chname);
return HOOK_DENY;
}
}

bu m_kanalizin.c buna şöyle bişeyde yapabilirsek olur.. verify kodu dogru giren m_kanalizin.c den de muaf olsun .. m_kanalizin.c ye ne eklemem lazım
şöyle bişe denedim ama olmadı :)

if (!IsOper(sptr) !Isverifyjoin(sptr) && !IsARegNick(sptr)) {

toXic 20 Mayıs 2010 20:44

Cevap: verify modulu hakkında
 
Eğer öyle yapmak istiyorsan ( ben verify modulu görmedim hiç ) Modul giriş doğru ise kullaniciya bir değişken atar muhtemelen o değişkeni kullanarak yapabilirsin belki. Cünkü ben verify modulunu hiç görmediğim icin maalesef yardimci olamiycam. Kusura bakma :)

cashmare 20 Mayıs 2010 20:58

Cevap: verify modulu hakkında
 
Sky dagıtmadıysa silelim modulu :D

toXic 21 Mayıs 2010 12:10

Cevap: verify modulu hakkında
 
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
 
 
 
 extern void sendto_one(aClient *to, char *pattern, ...);
 
 #define CFLAG_GIRIS  'X'
 #define UFLAG_GIRIS  'X'
 #define DelCmode(x)  if (x) CmodeDel(x); x = NULL
 #define DelUmode(x)  if (x) UmodeDel(x); x = NULL
 #define DelHook(x)  if (x) HookDel(x); x = NULL
 
 
 DLLFUNC int  MOD_UNLOAD(agiris)(int module_unload);
 DLLFUNC int  cb_join(aClient *sptr, aChannel *chptr, char *parv[]);
 
 static Cmode  *AddCmode(Module *module, CmodeInfo *req, Cmode_t *mode);
 static Umode  *AddUmode(Module *module, char ch, long *mode);
 static int  cmode_check(aClient *, aChannel *, char *, int, int);
 Hook *HookJoin = NULL;
 static ModuleInfo      *thismodinfo = NULL;
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
 static int  cb_rehash_complete();
 Hook *HookRehashDone;
 #endif
 
 Cmode_t MODE_GIRIS = 0L;
 long UMODE_GIRIS = 0;
 Cmode *ModeGiris = NULL;
 Umode *UmodeGiris = NULL;
 
 ModuleHeader MOD_HEADER(giris) = { "m_giris", "$Id: m_giris.c,v 1.11 2008/05/31 16:58 $", "Guvenli Baglanti.. ", "3.2-b8-1", NULL };
 
 DLLFUNC int MOD_TEST(giris)(ModuleInfo *modinfo)
 {
        CmodeInfo req;
 
        memset(&req, 0, sizeof req);
 
        req.paracount  = 0;
        req.is_ok      = cmode_check;
        req.flag        = CFLAG_GIRIS;
        ModeGiris      = AddCmode(modinfo->handle, &req, &MODE_GIRIS);
        UmodeGiris      = AddUmode(modinfo->handle, UFLAG_GIRIS, &UMODE_GIRIS);
         
        if (!ModeGiris || !UmodeGiris)
        {
                MOD_UNLOAD(giris)(0);
                return MOD_FAILED;
        }
 
        return MOD_SUCCESS;
 }
 
 DLLFUNC int MOD_INIT(giris)(ModuleInfo *modinfo)
 {
        thismodinfo = modinfo;
         
 #ifndef STATIC_LINKING
        ModuleSetOptions(modinfo->handle, MOD_OPT_PERM);
 #endif
 
        return MOD_SUCCESS;
 }
 
 DLLFUNC int MOD_LOAD(giris)(int module_load)
 {
        HookJoin = HookAddEx(thismodinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, cb_join);
         
        if (!HookJoin)
        {
                sendto_realops("m_giris: Couldn't load properly: %s", ModuleGetErrorStr(thismodinfo->handle));
                return MOD_FAILED;
        }
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
        HookRehashDone  = HookAddEx(thismodinfo->handle, HOOKTYPE_REHASH_COMPLETE, cb_rehash_complete);
        if (!HookRehashDone)
        {
                sendto_realops("m_giris: Couldn't load properly: %s", ModuleGetErrorStr(thismodinfo->handle));
                return MOD_FAILED;
        }
 #endif
 
        return MOD_SUCCESS;
 }
 
 DLLFUNC int MOD_UNLOAD(giris)(int module_unload)
 {
        DelCmode(ModeGiris);
        DelUmode(UmodeGiris);
        DelHook(HookJoin);
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
        DelHook(HookRehashDone);
 #endif
 
        return MOD_SUCCESS;
 }
 
 static Cmode *AddCmode(Module *module, CmodeInfo *req, Cmode_t *mode)
 {
        Cmode *cmode;
 
        *mode = 0;
        cmode = CmodeAdd(module, *req, mode);
 
 #ifndef STATIC_LINKING
        if (ModuleGetError(module) != MODERR_NOERROR || !cmode)
        {
                config_error("HATA! +%c Modul yüklenemedi.. %s: %s", req->flag, MOD_HEADER(giris).name, ModuleGetErrorStr(module));
                return NULL;
        }
 #else
        if (!cmode)
        {
                config_error("HATA! +%c Modul yüklenemedi.. %s", req->flag, MOD_HEADER(giris).name);
                return NULL;
        }
 #endif
 
        return cmode;
 }
 
 static Umode *AddUmode(Module *module, char ch, long *mode)
 {
        Umode *umode;
 
        *mode = 0;
        umode = UmodeAdd(module, ch, UMODE_GLOBAL, NULL, mode);
  #ifndef STATIC_LINKING
        if (ModuleGetError(module) != MODERR_NOERROR || !umode)
        {
                config_error("Hata.. +%c Modul yüklenemedi.. %s: %s", ch, MOD_HEADER(giris).name, ModuleGetErrorStr(module));
                return NULL;
        }
 #else
        if (!umode)
        {
                config_error("Hata! +%c  Modul yüklenemedi.. %s", ch, MOD_HEADER(giris).name);
                return NULL;
        }
 #endif
 
        return umode;
 }
 
 static int cmode_check(aClient *sptr, aChannel *chptr, char *para, int type, int what)
 {
        if ((type == EXCHK_ACCESS) || (type == EXCHK_ACCESS_ERR))
        {
                if (IsPerson(sptr) && !IsULine(sptr) && !is_chan_op(sptr, chptr))
                {
                        if (type == EXCHK_ACCESS_ERR)
                        sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, sptr->name, chptr->chname);
                        return EX_DENY;
                }
 
                return EX_ALLOW;
        }
 
        return 0;
 }
 
 int cb_join(aClient *sptr, aChannel *chptr, char *parv[])
 {
 
        if (chptr && !IsMember(sptr, chptr))
        {
   
                if ((chptr->mode.extmode & CFLAG_GIRIS) && !(sptr->umodes & UMODE_GIRIS))
                {
   
 
                        sendto_one(sptr, ":%s %s %s :Kanal Guvenlidir, Bu Kanala giremezsiniz.", me.name, IsWebTV(sptr) ? "PRIVMSG" : "NOTICE", sptr->name, chptr->chname, sptr->name);
   
                        return HOOK_DENY;
                }
        }
 
        return HOOK_CONTINUE;
 }
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
 static int cb_rehash_complete()
 {
        HookJoin = HookAddEx(thismodinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, cb_join);
 
        if (!HookJoin)
        {
                sendto_realops("m_giris: Modul acilamiyor.. %s", ModuleGetErrorStr(thismodinfo->handle));
                return MOD_FAILED;
        }
 }
 #endif


Bu modulu kurarsın;

şifre onayindan sonrada;

Kod:

sendto_one(sptr, ":%s MODE %s :+X",
                    sptr->name, sptr->name);

verirsin bu sekil olabilir bence dediğin..

cashmare 21 Mayıs 2010 20:01

Cevap: verify modulu hakkında
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 1040421512)
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
 
 
 
 extern void sendto_one(aClient *to, char *pattern, ...);
 
 #define CFLAG_GIRIS  'X'
 #define UFLAG_GIRIS  'X'
 #define DelCmode(x)  if (x) CmodeDel(x); x = NULL
 #define DelUmode(x)  if (x) UmodeDel(x); x = NULL
 #define DelHook(x)  if (x) HookDel(x); x = NULL
 
 
 DLLFUNC int  MOD_UNLOAD(agiris)(int module_unload);
 DLLFUNC int  cb_join(aClient *sptr, aChannel *chptr, char *parv[]);
 
 static Cmode  *AddCmode(Module *module, CmodeInfo *req, Cmode_t *mode);
 static Umode  *AddUmode(Module *module, char ch, long *mode);
 static int  cmode_check(aClient *, aChannel *, char *, int, int);
 Hook *HookJoin = NULL;
 static ModuleInfo      *thismodinfo = NULL;
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
 static int  cb_rehash_complete();
 Hook *HookRehashDone;
 #endif
 
 Cmode_t MODE_GIRIS = 0L;
 long UMODE_GIRIS = 0;
 Cmode *ModeGiris = NULL;
 Umode *UmodeGiris = NULL;
 
 ModuleHeader MOD_HEADER(giris) = { "m_giris", "$Id: m_giris.c,v 1.11 2008/05/31 16:58 $", "Guvenli Baglanti.. ", "3.2-b8-1", NULL };
 
 DLLFUNC int MOD_TEST(giris)(ModuleInfo *modinfo)
 {
        CmodeInfo req;
 
        memset(&req, 0, sizeof req);
 
        req.paracount  = 0;
        req.is_ok      = cmode_check;
        req.flag        = CFLAG_GIRIS;
        ModeGiris      = AddCmode(modinfo->handle, &req, &MODE_GIRIS);
        UmodeGiris      = AddUmode(modinfo->handle, UFLAG_GIRIS, &UMODE_GIRIS);
 
        if (!ModeGiris || !UmodeGiris)
        {
                MOD_UNLOAD(giris)(0);
                return MOD_FAILED;
        }
 
        return MOD_SUCCESS;
 }
 
 DLLFUNC int MOD_INIT(giris)(ModuleInfo *modinfo)
 {
        thismodinfo = modinfo;
 
 #ifndef STATIC_LINKING
        ModuleSetOptions(modinfo->handle, MOD_OPT_PERM);
 #endif
 
        return MOD_SUCCESS;
 }
 
 DLLFUNC int MOD_LOAD(giris)(int module_load)
 {
        HookJoin = HookAddEx(thismodinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, cb_join);
 
        if (!HookJoin)
        {
                sendto_realops("m_giris: Couldn't load properly: %s", ModuleGetErrorStr(thismodinfo->handle));
                return MOD_FAILED;
        }
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
        HookRehashDone  = HookAddEx(thismodinfo->handle, HOOKTYPE_REHASH_COMPLETE, cb_rehash_complete);
        if (!HookRehashDone)
        {
                sendto_realops("m_giris: Couldn't load properly: %s", ModuleGetErrorStr(thismodinfo->handle));
                return MOD_FAILED;
        }
 #endif
 
        return MOD_SUCCESS;
 }
 
 DLLFUNC int MOD_UNLOAD(giris)(int module_unload)
 {
        DelCmode(ModeGiris);
        DelUmode(UmodeGiris);
        DelHook(HookJoin);
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
        DelHook(HookRehashDone);
 #endif
 
        return MOD_SUCCESS;
 }
 
 static Cmode *AddCmode(Module *module, CmodeInfo *req, Cmode_t *mode)
 {
        Cmode *cmode;
 
        *mode = 0;
        cmode = CmodeAdd(module, *req, mode);
 
 #ifndef STATIC_LINKING
        if (ModuleGetError(module) != MODERR_NOERROR || !cmode)
        {
                config_error("HATA! +%c Modul yüklenemedi.. %s: %s", req->flag, MOD_HEADER(giris).name, ModuleGetErrorStr(module));
                return NULL;
        }
 #else
        if (!cmode)
        {
                config_error("HATA! +%c Modul yüklenemedi.. %s", req->flag, MOD_HEADER(giris).name);
                return NULL;
        }
 #endif
 
        return cmode;
 }
 
 static Umode *AddUmode(Module *module, char ch, long *mode)
 {
        Umode *umode;
 
        *mode = 0;
        umode = UmodeAdd(module, ch, UMODE_GLOBAL, NULL, mode);
  #ifndef STATIC_LINKING
        if (ModuleGetError(module) != MODERR_NOERROR || !umode)
        {
                config_error("Hata.. +%c Modul yüklenemedi.. %s: %s", ch, MOD_HEADER(giris).name, ModuleGetErrorStr(module));
                return NULL;
        }
 #else
        if (!umode)
        {
                config_error("Hata! +%c  Modul yüklenemedi.. %s", ch, MOD_HEADER(giris).name);
                return NULL;
        }
 #endif
 
        return umode;
 }
 
 static int cmode_check(aClient *sptr, aChannel *chptr, char *para, int type, int what)
 {
        if ((type == EXCHK_ACCESS) || (type == EXCHK_ACCESS_ERR))
        {
                if (IsPerson(sptr) && !IsULine(sptr) && !is_chan_op(sptr, chptr))
                {
                        if (type == EXCHK_ACCESS_ERR)
                        sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, sptr->name, chptr->chname);
                        return EX_DENY;
                }
 
                return EX_ALLOW;
        }
 
        return 0;
 }
 
 int cb_join(aClient *sptr, aChannel *chptr, char *parv[])
 {
 
        if (chptr && !IsMember(sptr, chptr))
        {
 
                if ((chptr->mode.extmode & CFLAG_GIRIS) && !(sptr->umodes & UMODE_GIRIS))
                {
 
 
                        sendto_one(sptr, ":%s %s %s :Kanal Guvenlidir, Bu Kanala giremezsiniz.", me.name, IsWebTV(sptr) ? "PRIVMSG" : "NOTICE", sptr->name, chptr->chname, sptr->name);
 
                        return HOOK_DENY;
                }
        }
 
        return HOOK_CONTINUE;
 }
 
 #ifdef HOOKTYPE_REHASH_COMPLETE
 static int cb_rehash_complete()
 {
        HookJoin = HookAddEx(thismodinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, cb_join);
 
        if (!HookJoin)
        {
                sendto_realops("m_giris: Modul acilamiyor.. %s", ModuleGetErrorStr(thismodinfo->handle));
                return MOD_FAILED;
        }
 }
 #endif


Bu modulu kurarsın;

şifre onayindan sonrada;

Kod:

sendto_one(sptr, ":%s MODE %s :+X",
                    sptr->name, sptr->name);

verirsin bu sekil olabilir bence dediğin..

toxic ustad +X modunu alanı m_kanalizin.c den muaf mı tutmamız gerekiyor.

toXic 21 Mayıs 2010 20:07

Cevap: verify modulu hakkında
 
Hayır kanalizini nerden cıkardın kanallara +X modesi verirsin, kimse giremez girmek icin +X modesi gerekir, sende şifrenin doğru olmasının onaylandıgı bildirimin altina;

sendto_one(sptr, ":%s MODE %s :+X",
sptr->name, sptr->name);

ekleyeceksin buda +X verecek kullanıcıya sen dene aklına yatarsa bunu yaparız.
Bu ara verdiğin koda bakmadım pek uzun yazı okumam uzun kitap okumam huy işte :D
O buraya yazdiğin verify modulunude silersen iyi olur ki sky sanıyorum dağitmamıştı..

cashmare 21 Mayıs 2010 20:14

Cevap: verify modulu hakkında
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 1040421874)
Hayır kanalizini nerden cıkardın kanallara +X modesi verirsin, kimse giremez girmek icin +X modesi gerekir, sende şifrenin doğru olmasının onaylandıgı bildirimin altina;

sendto_one(sptr, ":%s MODE %s :+X",
sptr->name, sptr->name);

ekleyeceksin buda +X verecek kullanıcıya sen dene aklına yatarsa bunu yaparız.
Bu ara verdiğin koda bakmadım pek uzun yazı okumam uzun kitap okumam huy işte :D
O buraya yazdiğin verify modulunude silersen iyi olur ki sky sanıyorum dağitmamıştı..

peki eschat portunu nasıl edicez :) yani eschatten girenler daha dogrusu belli bi porttan girenlere muaf tutmamız gerek

toXic 21 Mayıs 2010 20:16

Cevap: verify modulu hakkında
 
Sende biton dert cikariyon:P
Sen ne yapmak istediğini bi yaz ben bi düşüneyim ne yapabiliriz diye.. Ama önce bi sigara içmem gerek müsadenizle siz yazin ben bakayim bi 2 3 yöntemi bir arada kullanarak karışıyor iş cünkü. :)

cashmare 21 Mayıs 2010 20:27

Cevap: verify modulu hakkında
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 1040421883)
Sende biton dert cikariyon:P
Sen ne yapmak istediğini bi yaz ben bi düşüneyim ne yapabiliriz diye.. Ama önce bi sigara içmem gerek müsadenizle siz yazin ben bakayim bi 2 3 yöntemi bir arada kullanarak karışıyor iş cünkü. :)

yaw üstadım benim yapmak istedigim aslında çok basit birşey ama araya başka şeylerde girdiginden karışık gibi gözüküyor
Şimdi benim yapmak istedigim kısaca şu
m_verify.c moduluyle. eschat portum harici giren portlarda userin önüne 4 haneli bi kod cıkararak bunu /onayla kod şeklinde girdirmem. buraya kadar problem yok. Şimdi proxy saldırılarının kanala yansımaması için bu olayı statuste yaptırmam gerektiginden ecelmericin m_kanalizin.c siyle de eschat portu harici girişleri statuste durdurarak önüne cıkan kodu girdirmesini saglamak ve eğer kod dogru girildiyse. #kanal1 #kanal2 #kanal3 e useri oto sajoinlemek. buraya kadarda sorun yok burayıda hallettik senin verdigin kodla.. Şimdi sorun kısaca şu
userin kodu dogru girdikten sonra kanallara joinlenmesi gerekiyor. oto olarak
ama bu seferde m_kanalizin.c devrede oldugundan #kanal1 e joinlenmeye çalışıldıgnda #kanal1 e sdaece web uzerinden girebilirsiniz diyor bunu nasıl m_kanalizin.c den muaf tutarız.
yani kod dogru girilirse m_kanalizin.c den muaf tutmak useri

toxic aklıma başka bişeyde geldi bu arada :) bu m_kanalizin.c de kayıtlı nikler muaf !İSARegnick olayı yani. acaba diyorum.. nick şifresini gireni #kanal1 #kanal2 #kanal3 e sajoinle se nickserv tarafından :) bilmem olabilir mi

toXic 21 Mayıs 2010 20:39

Cevap: verify modulu hakkında
 
madem verify kullanıyorsun neden kanalizin.c kullanıyorsun ki zaten bunu verify ile yapiyorsun girişi onaylatarak verify'den botmu giriyor biraz aşırı olmuş bu şekilde. verify'deki kullanici bilgilerini kanalizin'e aktarmak olucaktır sorundaki cevabi. Diğer şekilde kanala joinliyor ama sajoin istiyorsun;

Alıntı:

#define chanss "#kanal,#kanal2,#kanal3"
sendto_one(acptr, ":%s SAJOIN %s %s", me.name,
sptr->name, chanss);
bu tür şekiller dene m_sajoin.c deki kodlardan birisi ile sajoinlemeye calismayi denesene verify'den dediğim satirin altina bu tür kodlari dene o sekil cok uğraşirsin cünkü.

Alıntı:

toxic aklıma başka bişeyde geldi bu arada :) bu m_kanalizin.c de kayıtlı nikler muaf !İSARegnick olayı yani. acaba diyorum.. nick şifresini gireni #kanal1 #kanal2 #kanal3 e sajoinle se nickserv tarafından :) bilmem olabilir mi
Kod:

cd ircservices*-*
Kod:

pico -w modules/nickserv/main.c
Kod:

  } else if (call_callback_2(module, cb_id_check, u, pass) <= 0) {
        int old_authstat = ni->authstat;
        set_identified(u, ni, ngi);
        module_log("%s!%s@%s identified for nick %s",
                  u->nick, u->username, u->host, u->nick);
        notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);

altina;

Kod:

send_cmd(s_NickServ, "Sajoin %s #kanal1,#kanal2", u->nick);
ekle.

kanalizin.c modulundende;

Kod:

if (!IsOper(sptr) && !IsARegNick(sptr)) {
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2 kanalina sadece web uzerinden giris yapabilirsiniz.", sptr->name, chptr->chname);
return HOOK_DENY;
 }

satirinida;

Kod:


#define uyari "Kanala girmek icin nickinizi kaydedin."
#define uyari2 "Eger kayitli ise; /ns identify sifre komutunu uygulayin."
 
if (!IsOper(sptr) && !IsARegNick(sptr)) {
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2", sptr->name, uyari);
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2", sptr->name, uyari2);
 
return HOOK_DENY;
}

olarak değişin.

cashmare 21 Mayıs 2010 21:15

Cevap: verify modulu hakkında
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 1040421901)
madem verify kullanıyorsun neden kanalizin.c kullanıyorsun ki zaten bunu verify ile yapiyorsun girişi onaylatarak verify'den botmu giriyor biraz aşırı olmuş bu şekilde. verify'deki kullanici bilgilerini kanalizin'e aktarmak olucaktır sorundaki cevabi. Diğer şekilde kanala joinliyor ama sajoin istiyorsun;



bu tür şekiller dene m_sajoin.c deki kodlardan birisi ile sajoinlemeye calismayi denesene verify'den dediğim satirin altina bu tür kodlari dene o sekil cok uğraşirsin cünkü.



Kod:

cd ircservices*-*
Kod:

pico -w modules/nickserv/main.c
Kod:

  } else if (call_callback_2(module, cb_id_check, u, pass) <= 0) {
        int old_authstat = ni->authstat;
        set_identified(u, ni, ngi);
        module_log("%s!%s@%s identified for nick %s",
                  u->nick, u->username, u->host, u->nick);
        notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);

altina;

Kod:

send_cmd(s_NickServ, "Sajoin %s #kanal1,#kanal2", u->nick);
ekle.

kanalizin.c modulundende;

Kod:

if (!IsOper(sptr) && !IsARegNick(sptr)) {
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2 kanalina sadece web uzerinden giris yapabilirsiniz.", sptr->name, chptr->chname);
return HOOK_DENY;
 }

satirinida;

Kod:


#define uyari "Kanala girmek icin nickinizi kaydedin."
#define uyari2 "Eger kayitli ise; /ns identify sifre komutunu uygulayin."
 
if (!IsOper(sptr) && !IsARegNick(sptr)) {
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2", sptr->name, uyari);
sendto_one(sptr, ":Koruma NOTICE %s :\2%s\2", sptr->name, uyari2);
 
return HOOK_DENY;
}

olarak değişin.


send_cmd(s_NickServ, "Sajoin %s #kanal1,#kanal2", u->nick);
bu olmadı toxic denedim şimdi. servicesleri restartladım olmadı

toXic 22 Mayıs 2010 10:48

Cevap: verify modulu hakkında
 
Kullanici nnick'ini identify edince olacak o. Yani kanala girmek icin nick'ini identify etmesi gerekecek. Ardindan senin belirlediğin kanallara otomatikmen sokulacak.


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

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