lookjapan.COM - IRC ve mIRC dünyasının forumu!   buy vps


  lookjapan.COM - IRC ve mIRC dünyasının forumu! IF - Unreal, Services ve Botlar Services IRCServices Hazır Kodlar


Like Tree1Teşekkürler;
  • 1 Post By Return

Yeni Konu   Cevap Yaz

 
LinkBack Seçenekler Stil
Alt 10 Şubat 2015, 22:30   #1
 
Return - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 25 Ocak 2015
Mesajlar: 109
WEB Sitesi: *
IRC Sunucusu: *
İlgi Alanı:
Alınan Beğeni: 14
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:
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..

Kod yazarı: Sky-Dancer
SatO bu mesaja teşekkür etti
 Return isimli Üye şimdilik offline konumundadır   Alıntı

Yeni Konu   Cevap Yaz

Etiketler
çoklu, eklentisi, ircservices, root


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

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
ROOT Admin Rütbesi Oluşturma.. Entrance Unreal - Parça Kodlar 8 23 Kasım 2018 17:18
UnrealIRCd-4.0.4'de ROOT ADMIN rütbesi.. Entrance Unreal - 4 Parça Kodlar 2 04 Temmuz 2016 13:10
vBulletin - Çoklu(Multi) Üyelik Dedektörü Anti vBulletin 3.x.x 0 07 Ağustos 2015 23:22
Root'a Ruby Kurulumu! Entrance GNU - Linux - UNIX 1 13 Mart 2015 15:39
Wp Çoklu Haber Botu Code WP Eklentileri 2 03 Mart 2015 17:07

web hosting web hosting
 buy vds
 vps buy

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.