IRCRehber  



Yanıtla
 
LinkBack Seçenekler Stil
Eski 10 Kasım 2009, 17:20
1,038 mesaj yazmış Yaşadığı yer: Cehennem.. Kayıt tarihi: 18 Ağustos 2008
#1 (Kalıcı Bağlantı)
Forumdan Atıldı


Rep Puanı : 0
IR Puanı : 2233
CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!CONSTANTiN 'in tanımadığı bir popülerlik yok!
Standart ircservices çoklu root eklentisi

Bir zamanlar çok istenen bir özellik..
16.06.2007 tarihinde yapmıştım, ve yayınlamaya karar verdim.
kodlama : orta~zor
ekleme (edit) : kolay~orta

tek dosya içerisinde işlem yapıyoruz:

Aşama #0:
Kod:
cd ircservices-xxx
cd modules
cd operserv
pico main.c
Aşama #1:


Kod:
  char * ServicesRoot;

bu kodu bulup "hemen altına" şu kodları ekleyin:



Kod:
        char **Sky_Roots_Char;
    static int Sky_Roots_Int;
    static int Sky_Realod=0;

Aşama #2:


Kod:
static int introduce_operserv(const char *nick)

bu kodu bulup "hemen üstüne" şu kodları ekleyin:



Kod:
     void Root_Ayir(char *ServicesRoot_);
void Root_Ayir(char *ServicesRoot_) {
 char *Sky_Temp=NULL;
 Sky_Realod=1;
    if (ServicesRoot_) {
        Sky_Roots_Int = 0;
        Sky_Temp = strtok(ServicesRoot_, " ");
        do {
            if (Sky_Temp) {
                 Sky_Roots_Int++;
                Sky_Roots_Char = realloc(Sky_Roots_Char, sizeof(char *) * Sky_Roots_Int);
                Sky_Roots_Char[Sky_Roots_Int - 1] = sstrdup(Sky_Temp);
            }
        }
  while ((Sky_Temp = strtok(NULL, " ")));
    }
    if (!Sky_Roots_Int)
  config_error("operserv/main", 0, "No Root NickName(s) Defined");
}

Aşama #3:


Kod:
  int is_services_root(User *u)
{
    NickInfo *ni;
    int rootid;
    static int warned_ni = 0, warned_id = 0;
    if (u->flags & UF_SERVROOT)
 return 1;
    if (!(ni = get_nickinfo(ServicesRoot))) {
 if (!warned_ni) {
     wallops(s_OperServ, "Warning: Services super-user nickname %s"
      " is not registered", ServicesRoot);
     warned_ni = 1;
 }
 module_log("warning: ServicesRoot nickname not registered");
 return 0;
    }
    warned_ni = 0;
    if (!(rootid = ni->nickgroup)) {
 if (!warned_id) {
     wallops(s_OperServ, "Warning: Services super-user nickname %s"
      " is forbidden or not properly registered", ServicesRoot);
     warned_id = 1;
 }
 module_log("warning: ServicesRoot nickname forbidden or registered"
     " data corrupt");
 return 0;
    }
    if (!is_oper(u) || !u->ni || u->ni->nickgroup != rootid)
 return 0;
    if (user_identified(u))
 return 1;
    return 0;
}

bu kodları silip yerine şu kodları ekleyin (7~8 yerde değişim olduğu için iş karışabilir, o yüzden eskiyi silip yeniyi ekleyin diyorum)



Kod:
     int is_services_root(User *u)
{
 int i;
 int ret=0;
    NickInfo *ni;
    int rootid;
    static int warned_ni = 0, warned_id = 0;
    if (u->flags & UF_SERVROOT)
 return 1;
 for (i = 0; i < Sky_Roots_Int; i++) {
 
  if (!(ni = get_nickinfo(Sky_Roots_Char[i]))) {
//   if (!warned_ni) {
    wallops(s_OperServ, "Warning: Services super-user nickname %s"
     " is not registered", Sky_Roots_Char[i]);
    warned_ni = 1;
//   }
   module_log("warning: ServicesRoot nickname not registered");
   continue;
  }
//  warned_ni = 0;
  if (!(rootid = ni->nickgroup)) {
//   if (!warned_id) {
    wallops(s_OperServ, "Warning: Services super-user nickname %s"
    " is forbidden or not properly registered", Sky_Roots_Char[i]);
//   warned_id = 1;
//   }
   module_log("warning: ServicesRoot nickname forbidden or registered"
     " data corrupt");
  continue;
  }
 }
 for (i = 0; i < Sky_Roots_Int; i++) {
  if (!(ni = get_nickinfo(Sky_Roots_Char[i])))
   continue;
  if (!(rootid = ni->nickgroup))
   continue;
  if (!is_oper(u) || !u->ni || u->ni->nickgroup != rootid) {
   ret=0;
  }
  else {
   ret=1;
  break;
  }
 }
    if (ret && user_identified(u))
 return 1;
    return 0;
}

Aşama #4:


Kod:
        int nick_is_services_admin(NickInfo *ni)
{
    NickGroupInfo *ngi;
    if (!ni || !(ngi = get_ngi(ni)))
 return 0;
    if (stricmp(ni->nick, ServicesRoot) == 0)
 return 1;
    return ngi->os_priv >= NP_SERVADMIN;
}

bu kodları silip, yerine şu kodları ekleyin;



Kod:
       int nick_is_services_admin(NickInfo *ni)
{
 int i;
    NickGroupInfo *ngi;
    if (!ni || !(ngi = get_ngi(ni)))
 return 0;
 for (i = 0; i < Sky_Roots_Int; i++)
  if (stricmp(ni->nick, Sky_Roots_Char[i]) == 0)
   return 1;
    //if (stricmp(ni->nick, ServicesRoot) == 0)
 //return 1;
    return ngi->os_priv >= NP_SERVADMIN;
}

Aşama #5:


Kod:
old_clearchan_sender_set = 1;

yukarıdaki kodu bulup, hemen altına şu kodları ekleyin;



Kod:
 if (Sky_Realod==0)
  Root_Ayir(ServicesRoot);

make & make install çekip, servislerinizi yeniden başlatınız..

kodlar biraz karışık. Bu yüzden anlayamayabilirsiniz nerde ne yapıldığını.. ama kısaca özetlemek gerekir ise;
Root satırından gelen nick verisini, aradaki boşluklara göre ayırıp, array'e aktarıp, is_service_root vs. kısmında bu arraydeki nicklerin varlığı||yokluğu şeklinde bakıyoruz.. Varsa root diyoruz. Yok ise root değil diyoruz

moduels.conf unuzdaki Root satırınıza bilgi girerken;
ServicesRoot Nick1 Nick2
yukarıdaki şekilde DEĞİL;
ServicesRoot "Nick1 Nick2"
şeklinde girmeniz gerekiyor..

Not : 1 defa test edip olumlu sonuç aldım..

Başka forumlarda paylaşırsanız; Kodun Kimin tarafından yapıldığını da söylemeniz dileğiyle

iyi Çalışmalar..

Programcı[IMG] : Sky-Dancer
CONSTANTiN isimli Üye şimdilik offline konumundadır



CONSTANTiN - MSN'den İletişime Geç



    Alıntı ile Cevapla
Yanıtla

Yer İmleri

Etiketler
çoklu


Şu anda bu başlığı 1 kişi görüntülemekte. (0 kayıtlı kullanıcı, 1 ziyaretçi)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML kodları, Kapalı.
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Hızlı Geç

Benzer Konular
Konu Başlığı açan Forum Yanıtlar Son ileti
Çoklu msn açma endLeSS MSN Messenger 1 20 Nisan 2009 18:16
NICK INFO'da TAKIM Eklentisi toXic Hazır Services Kodları 1 25 Mart 2009 18:53
OP Kanalı Eklentisi For IRCServices-5.0.* DaTa Hazır Services Kodları 0 09 Ocak 2009 22:56
op kanalı eklentisi PoLiCeS IRCServices 0 28 Eylül 2008 11:38
Çoklu Oturum Nasıl Açılır? NaRqoZ MSN Messenger 0 19 Temmuz 2008 21:16


Zaman formatı, GMT +2 şeklinde ayarlanmıştır.
Şu anki saat: 08:09.

IRCRehber: IRCRehber.Com - IRC, IRC Forum, IRC Forumları

Site açıklaması: IRC sunucu tanıtabileceğiniz, IRCd ve mIRC Scripting yardımı alabileceğiniz, ayrıca diğer konularda da bilgi paylaşabileceğiniz kaliteli bir forum.

Arama kriterleri: irc, irc forum, irc forumları, mirc scripting, irc daemon, mirc yardım, sohbet siteleri, chat siteleri, google webmaster, wordpress, vbulletin, yardım, bilgi, paylaşım, kadınca, genel, güncel konular, haberler, komik, eğlence, fıkra, geyik, irc, rehber




IRCRehber, vBulletin® yazılımının 3.8.5 sürümünü kullanmaktadır.
Copyright © 2000-2010, Telif hakları bakımından "Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0" şirketine aittir.
Türkçe'ye çevirenler: Regex ve Supervisor.

Dış bağlantılar: sohbet, mirc indir

Site sayacı:


Tema: Lanet - the audiØ injected sØuŁ