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.


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

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