Total Online Time

Oncelikle kod sadece ircservices-5.0.59 ve ircservices-5.0.61 surumlerinde test edilmistir ve hicbir sorun ile karsilasilmamistir, bunu belirteyim.

 

cd ircservices-x.x.xx
pico modules/nickserv/main.cyazarak main.c icerisine giriyoruz.

 

 strftime_lang(buf, sizeof(buf), u->ngi, STRFTIME_DATE_TIME_FORMAT,
        ni->time_registered);bu satirin hemen uzerine
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.

 

pico modules/nickserv/nickserv.hyazarak nickserv.h dosyasina giris yapiyoruz.

 

char nick[NICKMAX];yazan satirin altina

 

    int giriszamani;
    int toplamzaman;satirlarini ekleyip kaydedip cikin.

 

pico modules/nickserv/util.cyazarak yine ayni klasorde bulunan util.c dosyasina giris yapin.

 

if (nick_id_or_rec(ni)) {satirinin hemen altina,

 

  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:

 

    if (!nick_recognized(ni)) {
 update_userinfo(u);
 ni->authstat |= NA_RECOGNIZED;
    }bunlarin hemen altina
ni->giriszamani=time(NULL);satirini ekleyin ve kaydedip cikin.

Simdi,
pico modules/database/version4.cyazarak version4.c dosyasina giris yapiyoruz. Dikkat edin, nickserv ile ayni klasorde degil gordugunuz gibi. database klasoru icerisinde.

 

SAFE(write_string(ni->last_quit, f));bu satirin hemen altina

 

SAFE(write_int32(ni->toplamzaman, f));satirini ekleyin.

şimdi yapmanız gereken işlem:
make
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;

 

pico modules/database/version4.cyazarak tekrar version4.c dosyasina giris yapin.

 

SAFE(read_string(&ni->last_quit, f));bu satırı bulunuz.

Bir alt satıra şu 3 kodu ekleyiniz:

 

    SAFE(read_int32(&tmp32, f));
    ni->toplamzaman = tmp32;
    ni->giriszamani = 0;kaydedip çıkınız.

tekrar
makeve
make installkomutları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

Yorumlar

  1. Paylaşım için teşekkürler. Yararlı bir kod olacağı kesin.. Toxic başladın artık kodları paylaşmaya hadi hayırlısı :)

Bir yanıt yazın