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/)
-   IRCServices (https://www.ircforumlari.net/ircservices/)
-   -   Yardım Edermisiniz. (https://www.ircforumlari.net/ircservices/308899-yardim-edermisiniz.html)

RahmetLi 02 Ocak 2010 03:40

Yardım Edermisiniz.
 
S.a iyi geceler .. ben ircservices kullanıyorum operler global atınca modulesde belirlediğim global niki atıyo ben anopedeki gibi kım global atıyosa onun nıkı cıksın istiyorum bi kaç yerde gormustum öle global atan operin nicki cıkıyordu


Bide arkadaslar auth code sistemı kurdum mynetteki gibi sadece benım belirlediğim mail adrersiyle nıck kaydedilsin istiyorum

yardımcı olursanız sevinirim şimdiden tşkler..

¿ 02 Ocak 2010 05:57

Cevap: Yardım Edermisiniz.
 
GLOBAL MESAJDA NICK GOSTERME:

cd ircservices-*/modules/operserv/main.c


BUL:

Kod:


static void do_global(User *u)
{
    char *msg = strtok_remaining();

    if (!msg) {
    syntax_error(s_OperServ, u, "GLOBAL", OPER_GLOBAL_SYNTAX);
    return;
    }
    notice_all(s_GlobalNoticer, "%s", msg);
}



DEGISTIR:

Kod:


static void do_global(User *u)
{
    char *msg = strtok_remaining();

    if (!msg) {
    syntax_error(s_OperServ, u, "GLOBAL", OPER_GLOBAL_SYNTAX);
    return;
    }
    notice_all(s_GlobalNoticer, "[%s] %s", u->nick, msg);
}


Su Mynet tarzi belirledigin mail uzantisi haricinde register olamama olayina gelince, Sky-Dancer'in yardim edecegine eminim. Aklimdan geciyordu o olay ama sormayi unuttum Sky'a ins. gorurde yardimci olur, lakin gormez ise sorarim yardimci olacagina eminim.

Iyi forumlar, Serdar bey. :)

RahmetLi 02 Ocak 2010 06:23

Cevap: Yardım Edermisiniz.
 
Namesis Saollll Bebemmm :))) E-mail olayını sabırsızlıkla beklıyom sky dancere selamlar mucuks size :)

toXic 02 Ocak 2010 11:40

Cevap: Yardım Edermisiniz.
 
mail adreslerinden kastın [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] gibimi? veya [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]?
Pek anlamadim ama, Bir yol göstereyim;

if (param) {
if (param[strspn(param, [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...])] != 0) {

;)

RahmetLi 02 Ocak 2010 12:08

Cevap: Yardım Edermisiniz.
 
toxic paşam mynette var ya sadece mynetin mailine gore nıck kaydede bilion su sekilde ornek verım sıze :

NickServ : Nick kaydınızı sadece @sunucu.net email adresi ile gerçekleştirebilirsiniz. Lütfen [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] uzantılı bir email ile deneyiniz.

toXic 02 Ocak 2010 12:57

Cevap: Yardım Edermisiniz.
 
Hmmm.

Kod:

if (!strstr(!email, "@mynet.com")) {
        notice_lang(s_NickServ, u, PERMISSION_DENIED);
}

gibi falan denemek lazim, denemeden olmaz.

RahmetLi 02 Ocak 2010 18:41

Cevap: Yardım Edermisiniz.
 
if (!strstr(!email, "@mynet.com")) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
}

toxic paşam bu kodu nereye eklıyoruz peki ? onuda bi açıklamalı yazarmısın sana zahmet

toXic 02 Ocak 2010 18:44

Cevap: Yardım Edermisiniz.
 
void do_register'da bi yere salla işte :)

yeterki do_Register'da olsun.

mynet.com uzantılı değilse izin verme anlaminda kodlar tabi denemek lazim. pek sanmıyorum ama..

RahmetLi 02 Ocak 2010 19:17

Cevap: Yardım Edermisiniz.
 
sallıcam toxic bozulursa full editli ircservices isterim :) tşkler yinede :)

¿ 02 Ocak 2010 21:29

Cevap: Yardım Edermisiniz.
 
Kod:


if (!strstr(!email, "@mynet.com")) {
        notice_lang(s_NickServ, u, PERMISSION_DENIED);
}

Bu sekilde denedim sonuc olumsuz. :)

RahmetLi 02 Ocak 2010 22:06

Cevap: Yardım Edermisiniz.
 
Toxic sana zahmet detaylı bi yardım yaparmısın paşam neyi nereye eklıcez vs... çözemedım su olayı bi bi yardım edersen hallederiz inş. şimdiden tşkler...

Raw 03 Ocak 2010 05:15

Cevap: Yardım Edermisiniz.
 
nickserv/main.c dosyasının içinde ;
Kod:

    if (now < u->lastnickreg + NSRegDelay) {
    time_t left = (u->lastnickreg + NSRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (time(NULL) < u->my_signon + NSInitialRegDelay) {
    time_t left = (u->my_signon + NSInitialRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT_FIRST,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (!pass || (NSRequireEmail && !email)
          || (stricmp(pass, u->nick) == 0
          && (strtok(NULL, "")
              || (email && (!strchr(email,'@')
                    || !strchr(email,'.')))))
    ) {
    /* No password/email, or they (apparently) tried to include the nick
    * in the command. */

satırlarını aşağıdaki gibi değiştirin ;

Kod:

    if (now < u->lastnickreg + NSRegDelay) {
    time_t left = (u->lastnickreg + NSRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (time(NULL) < u->my_signon + NSInitialRegDelay) {
    time_t left = (u->my_signon + NSInitialRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT_FIRST,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (!strchr(email,'@domain.com')) {
    send_cmd(s_NickServ, "NOTICE %s :E-Posta Adresleri @domain.com uzantılı olmak zorundadır.",
        u->nick);
    } else if (!pass || (NSRequireEmail && !email)
          || (stricmp(pass, u->nick) == 0
          && (strtok(NULL, "")
              || (email && (!strchr(email,'@')
                    || !strchr(email,'.')))))
    ) {
    /* No password/email, or they (apparently) tried to include the nick
    * in the command. */

yapıştırdıktan sonra ana dizinde

make
make install

çekip deneyiniz. Biraz mantık yürüterek böle olduğu kanısına vardım. Yinede doğrusunu Mehmet bilir. İyi forumlar ..

¿ 03 Ocak 2010 07:39

Cevap: Yardım Edermisiniz.
 
Alıntı:

Raw Nickli Üyeden Alıntı (Mesaj 1040286079)
nickserv/main.c dosyasının içinde ;
Kod:

    if (now < u->lastnickreg + NSRegDelay) {
    time_t left = (u->lastnickreg + NSRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (time(NULL) < u->my_signon + NSInitialRegDelay) {
    time_t left = (u->my_signon + NSInitialRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT_FIRST,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (!pass || (NSRequireEmail && !email)
          || (stricmp(pass, u->nick) == 0
          && (strtok(NULL, "")
              || (email && (!strchr(email,'@')
                    || !strchr(email,'.')))))
    ) {
    /* No password/email, or they (apparently) tried to include the nick
    * in the command. */

satırlarını aşağıdaki gibi değiştirin ;

Kod:

    if (now < u->lastnickreg + NSRegDelay) {
    time_t left = (u->lastnickreg + NSRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (time(NULL) < u->my_signon + NSInitialRegDelay) {
    time_t left = (u->my_signon + NSInitialRegDelay) - now;
    notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT_FIRST,
            maketime(u->ngi, left, MT_SECONDS));

    } else if (!strchr(email,'@domain.com')) {
    send_cmd(s_NickServ, "NOTICE %s :E-Posta Adresleri @domain.com uzantılı olmak zorundadır.",
        u->nick);
    } else if (!pass || (NSRequireEmail && !email)
          || (stricmp(pass, u->nick) == 0
          && (strtok(NULL, "")
              || (email && (!strchr(email,'@')
                    || !strchr(email,'.')))))
    ) {
    /* No password/email, or they (apparently) tried to include the nick
    * in the command. */

yapıştırdıktan sonra ana dizinde

make
make install

çekip deneyiniz. Biraz mantık yürüterek böle olduğu kanısına vardım. Yinede doğrusunu Mehmet bilir. İyi forumlar ..

Olmadi Ale :)
Sky'i bekleyelim. :)

RahmetLi 03 Ocak 2010 08:40

Cevap: Yardım Edermisiniz.
 
evet evet bu işi çözerse Sky dancer cozer beklıyoz:)

toXic 03 Ocak 2010 10:38

Cevap: Yardım Edermisiniz.
 
Kod:


|| (email && (!strchr(email,'@')
|| !strchr(email,'.')))))

burayı

Kod:


|| (email && (!strchr(email,'@')
|| !strchr(email,'mynet.com')))))

yapin

RahmetLi 04 Ocak 2010 00:39

Cevap: Yardım Edermisiniz.
 
Toxic paşam yaptım ama hiç bi değişliklik olmadı gene baska maille nık kaydedio :S

----------

Yaw bi yapamadım su olayı :(( inş. yardım edersnız şimdiden tşkler arkadaslar...

BehroozWolf 05 Ocak 2010 22:22

Cevap: Yardım Edermisiniz.
 
Bahsedilen olay, ircservices-5.1.21 sürümünde RejectEmail olarak geçiyor. Eğer ki, böyle bir şey yapmak istiyorsanız servis sürümünü yükseletebilirsiniz. ircservices.conf dosyasından;

Kod:

RejectEmail    *@mynet.com
gibi ayarlanıyor.

Diablo 06 Ocak 2010 00:47

Cevap: Yardım Edermisiniz.
 
ircservices5.0.xx dosyasına girin

extern.h dosyası içerisinde

Kod:


E char * GuestNickPrefix;

satırını hemen altına

Kod:

E char **RejectEmail;
E int    RejectEmail_count;

satırını ekleyin ve aynı dosya içerisinde

Kod:

E int valid_url(const char *str);
satırını bulup hemen altına

Kod:

E int rejected_email(const char *email);
satırını ekleyin ve kaydedip çıkın.

===========================

aynı klasör içerinde init.c dosyasına girip

Kod:

char * GuestNickPrefix;
satırını bulup hemen altına

Kod:

char **RejectEmail;
int    RejectEmail_count;

şeklinde ekleyin ve aynı satır altında

Kod:

static int do_LoadModule(const char *filename, int linenum, char *param);
satırının altına

Kod:

static int do_RejectEmail(const char *filename, int linenum, char *param);
şeklinde ekleyin ve aynı dosya içerisinde

Kod:

{ "RunGroup",        { { CD_FUNC, 0, do_RunGroup } } },
satırının üzerine veya altına

Kod:

{ "RejectEmail",      { { CD_FUNC, 0, do_RejectEmail } } },
şeklinde ekleyin ve aynı satır aşağısında

Kod:

new_LoadModules[new_LoadModules_count++] = param;
    return 1;
}

satırını bulup hemen altına

Kod:

static int do_RejectEmail(const char *filename, int linenum, char *param)
{
    static char **new_RejectEmail = NULL;
    static int new_RejectEmail_count = 0;
    int i;
    if (!filename) {
        switch (linenum) {
          case CDFUNC_INIT:
            ARRAY_FOREACH (i, new_RejectEmail)
                free(new_RejectEmail[i]);
            free(new_RejectEmail);
            new_RejectEmail = NULL;
            new_RejectEmail_count = 0;
            break;
          case CDFUNC_SET:
            ARRAY_FOREACH (i, RejectEmail)
                free(RejectEmail[i]);
            free(RejectEmail);
            RejectEmail = new_RejectEmail;
            RejectEmail_count = new_RejectEmail_count;
            new_RejectEmail = NULL;
            new_RejectEmail_count = 0;
            break;
          case CDFUNC_DECONFIG:
            ARRAY_FOREACH (i, RejectEmail)
                free(RejectEmail[i]);
            free(RejectEmail);
            RejectEmail = NULL;
            RejectEmail_count = 0;
            break;
        }
        return 1;
    }
    ARRAY_EXTEND(new_RejectEmail);
    new_RejectEmail[new_RejectEmail_count-1] = sstrdup(param);
    return 1;
}

kodu tamamıyla ekleyin ve kaydedip çıkın.

=================================

aynı klasör içerisinde misc.c içerisine girip

Kod:

return strchr(domainbuf, '.') && valid_domain(domainbuf);
}

satırını bulup hemen altına

Kod:

int rejected_email(const char *email)
{
    int i;
    if (!email) {
        return 0;
    }
    ARRAY_FOREACH (i, RejectEmail) {
        if (match_wild_nocase(RejectEmail[i], email)) {
            return 1;
        }
    }
    return 0;
}

satırını ekleyip ve kaydedip çıkın.

===============================

ircservices-5.0.xx\modules\nickserv

içerisine girip main.c dosyasını açın

Kod:

notice_lang(s_NickServ, u, SYNTAX_ERROR, buf);
 notice_lang(s_NickServ, u, BAD_EMAIL);

satırının hemen altına

Kod:

} else if (email && !rejected_email(email)) {
        send_cmd(s_NickServ, "NOTICE %s :Nick kaydınızı sadece < [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] > email adresi ile gerçekleştirebilirsiniz.", u->nick);
        send_cmd(s_NickServ, "NOTICE %s :Lütfen [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] uzantılı bir email ile deneyiniz.", u->nick);
        return;

şeklinde ekleyip kaydedin ve çıkın ve ana klasörünüzde

Kod:

make & make install
yapın ve daha sonra ircservices klasörünüze girip ircservices.conf dosyasını açıp

Kod:

GuestNickPrefix
satırınızın altına

Kod:

RejectEmail [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
şeklinde ekleyip kaydedin.sonra servislerini kapatıp tekrar açın.

DIPNOT: Ben örnek olarak RejectEmail satırını "[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]" olarak belirttim siz kendi domaininizi belirtiniz.

BehroozWolf 06 Ocak 2010 02:31

Cevap: Yardım Edermisiniz.
 
Ben 63 sürümünde denemiştim fakat, tek bir adresi engellediği için birden çok adres için uğraşıyordum. Tabi eğer yapabilirsem :)

¿ 06 Ocak 2010 11:26

Cevap: Yardım Edermisiniz.
 
Diablo bunu acip kapatmak icin bir tus yapamaz miyiz ? :D

toXic 03 Mart 2010 14:20

Cevap: Yardım Edermisiniz.
 
Alıntı:

BehroozWolf Nickli Üyeden Alıntı (Mesaj 1040288333)
Ben 63 sürümünde denemiştim fakat, tek bir adresi engellediği için birden çok adres için uğraşıyordum. Tabi eğer yapabilirsem :)


Bir program ile örnek vereyim. :)



Kod:

int main(void)
 
{
 
char *dizi[4];
char giris[5];
int sonuc=0;
dizi[0] = "sifir";
dizi[1] = "bir";
dizi[2] = "iki";
dizi[3] = "uc";
dizi[4] = "4";
printf("Giris yapiniz\n");
gets(giris);
int i;
for (i=0; i<4;i++ )
{
if (!strncpy(giris, dizi[i]))
{
        printf("Girilen %d\n",i);
        sonuc=1;
        break;
}
}
 
if (sonuc==0)
{
        printf("Gecersiz Giris\n");
}
 
}


zaten nick register ederken email bilgileri var sabit olarak eşitleyerek kayıt anında katarda var ise mail uzantısı izin verip değil ise kaydettirmeyip yapilir. ( Suan ssh giremediğimden gösteremiyorum ne yazikki :S )

Bunun dısındada yollar olabilir.


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

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net