Oncelikle kod sadece ircservices-5.0.59 ve ircservices-5.0.61 surumlerinde test edilmistir ve hicbir sorun ile karsilasilmamistir, bunu belirteyim.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
cd ircservices-x.x.xx
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/main.c
yazarak main.c icerisine giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
strftime_lang(buf, sizeof(buf), u->ngi, STRFTIME_DATE_TIME_FORMAT,
ni->time_registered);
bu satirin hemen uzerine
Kod: Kodu kopyalamak için üzerine çift tıklayın!
send_cmd(s_NickServ,
"NOTICE %s :Toplam Online Süresi: %d Gun %d Saat %d Dakika ve %d Saniye.",
u->nick, (ni->toplamzaman / 86400), ((ni->toplamzaman % 86400) / 3600),
(((ni->toplamzaman % 86400) % 3600) / 60),
((((ni->toplamzaman % 86400) % 3600) % 60) % 60));
bu satirlari ekleyiniz ve kaydedip cikiniz.
Simdi yine ayni klasorde bulunan nickserv.h dosyasinda degisiklik yapiyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/nickserv.h
yazarak nickserv.h dosyasina giris yapiyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
char nick[NICKMAX];
yazan satirin altina
Kod: Kodu kopyalamak için üzerine çift tıklayın!
int giriszamani;
int toplamzaman;
satirlarini ekleyip kaydedip cikin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/util.c
yazarak yine ayni klasorde bulunan util.c dosyasina giris yapin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (nick_id_or_rec(ni)) {
satirinin hemen altina,
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ni->giriszamani != 0) {
ni->toplamzaman=ni->toplamzaman + (time(NULL) - ni->giriszamani);
ni->giriszamani=0;
}
satirlarini ekleyiniz.
yine aynı dosyada (util.c dosyası içinde) şu satırları bulun:
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (!nick_recognized(ni)) {
update_userinfo(u);
ni->authstat |= NA_RECOGNIZED;
}
bunlarin hemen altina
Kod: Kodu kopyalamak için üzerine çift tıklayın!
ni->giriszamani=time(NULL);
satirini ekleyin ve kaydedip cikin.
Simdi,
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/database/version4.c
yazarak version4.c dosyasina giris yapiyoruz. Dikkat edin, nickserv ile ayni klasorde degil gordugunuz gibi. database klasoru icerisinde.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_string(ni->last_quit, f));
bu satirin hemen altina
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_int32(ni->toplamzaman, f));
satirini ekleyin.
şimdi yapmanız gereken işlem:
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make install
çekeceksiniz. (ircservices-x.x.xx icerisinde)
sonrasında
servislerinizi kapatıp tekrar çalıştıracaksınız.
/os update komutunu kullanacaksınız.
şimdi servislerinizi kapatın (ps x listesinden kill -9 pid ile.)
servisler kapalı halde;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/database/version4.c
yazarak tekrar version4.c dosyasina giris yapin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_string(&ni->last_quit, f));
bu satırı bulunuz.
Bir alt satıra şu 3 kodu ekleyiniz:
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_int32(&tmp32, f));
ni->toplamzaman = tmp32;
ni->giriszamani = 0;
kaydedip kapatın.
tekrar
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make
ve
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make install
komutlarını uygulayıp, servislerinizi getiriniz.
ve işlem bitti demektir.
aradaki servisin kapalı kalmasını istediğim yer şunun için:
servisler orada kapalı iken eski dblerinizin gitmemesi için.
Kod yazarı : Sky-Dancer