Giriş

Orijinalini görmek için tıklayınız : IRCServices'de Access Ekleyenin Kimliği


Code
11 Temmuz 2016, 19:44
cd ircservices-*

pico -w modules/chan*/main.c



int access_add(ChannelInfo *ci, const char *nick, int level, int uacc)

üstteki satırı bulun.

bu satırı;



int access_add(ChannelInfo *ci, const char *nick, int level, int uacc, char *ekleyen)olarak değiştirin. daha sonra yine aynı dosyada, access_add fonksiyonu içerisinde bulunan;



ci->access[i].nickgroup = ni->nickgroup;

ci->access[i].level = level;satırlarını bulup bi alt satırına;



ci->access[i].ekleyen = sstrdup(ekleyen);satırını ekleyip, kaydedip dosyayı kapatın. daha sonra yine aynı klasörde bulunan

access-levels.c dosyasını;



pico access-levels.ckomutuyla açtıktan sonra;



switch (access_add(ci, nick, level,

is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci)))satırlarını bulup;



switch (access_add(ci, nick, level,

is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci), u->nick))olarak değiştirin. yine aynı dosya içerisinde;



RET_LISTEDsatırını bulup bi üst satırında bulunan



notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,

index+1, access->level, ngi_mainnick(ngi));satırlarını ;



notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,

index+1, access->level, ngi_mainnick(ngi), access->ekleyen);şeklinde değiştirin. kaydedip dosyayı kapatın. aynı klasörde bulunan

access-xop.c dosyasini



pico access-xop.c komutuyla açip



switch (access_add(ci, nick, level,

is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci)))satırlarını bulup bu satırları



switch (access_add(ci, nick, level,

is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci), u->nick))olarak değiştirin. kaydedip dosyayı kapatın.aynı klasörde bulunan chanserv.h dosyasını



pico chanserv.h komutuyla açin ve



typedef struct {

uint32 nickgroup; /* Zero if entry is not in use */

int16 level;

}

satirlarini bulup;



typedef struct {

uint32 nickgroup; /* Zero if entry is not in use */

int16 level;

char *ekleyen;

} olarak değiştirin kaydedin kapatin.



pico cs-local.hkomutu ile cs-local.h dosyasini acip



E int access_add(ChannelInfo *ci, const char *nick, int level, int uacc);satırını bulun ve bu satırı



E int access_add(ChannelInfo *ci, const char *nick, int level, int uacc, char *ekleyen);olarak değiştirin. kaydedip dosyayı kapatın.daha sonra /home/login/ircservices-5.0.x/lang/

klasörüne girip



pico tr.l komutuyla tr.l dosyasını açın.



CHAN_ACCESS_LIST_HEADER

%s Kanali Erisim Listesi:

Sira Seviye Nick

CHAN_ACCESS_LIST_FORMAT

%4d %4d %ssatırlarını bulup;



CHAN_ACCESS_LIST_HEADER

%s Kanali Erisim Listesi:

Sira Seviye Nick Ekleyen

CHAN_ACCESS_LIST_FORMAT

%4d %4d %s %sşeklinde değiştirin. kaydedip dosyayı kapatın.



daha sonra /home/login/ircservices-5.0.x/modules/database/ klasörüne girip



pico version4.ckomutuyla version4.c dosyasını açın.bu dosyada



SAFE(write_int16(ci->access_count, f));

ARRAY_FOREACH (i, ci->access) {

if (ci->access[i].nickgroup)

ngi = get_ngi_id(ci->access[i].nickgroup);

else

ngi = NULL;

SAFE(write_int16(ngi != NULL, f));

if (ngi) {

SAFE(write_int16(convert_new_level(ci->access[i].level), f));

SAFE(write_string(ngi_mainnick(ngi), f));

}

}satırlarını bulup hemen altına



SAFE(write_int16(ci->access_count, f));

ARRAY_FOREACH (i, ci->access) {

SAFE(write_string(ci->access[i].ekleyen, f));

}satırlarını ekleyin. kaydedip çıkın. /home/login/ircservices-5.0.x/ klasörüne girip

önce

makebitince de make install komutunu uygulayıp servisleri ÇALIŞTIRIN.denemek amacıyla resgele bi kanalda rasgele bi nicke

access ekleyip access listesine bakın.



daha sonra;



/home/login/ircservices-5.0.x/modules/database/ klasörüne girip;



pico version4.ckomutuyla yine version4.c dosyasını açın.bu dosyada ;



SAFE(read_int16(&ci->access_count, f));

if (ci->access_count) {

ci->access = scalloc(ci->access_count, sizeof(ChanAccess));

ARRAY_FOREACH (i, ci->access) {

SAFE(read_int16(&tmp16, f)); /* in_use */

if (tmp16) {

SAFE(read_int16(&lev, f));

ci->access[i].level = convert_old_level(lev);

SAFE(read_string(&s, f));

if (s) {

ni = get_nickinfo(s);

if (ni) {

ci->access[i].nickgroup = ni->nickgroup;

} free(s);

}

}

}



} else {

ci->access = NULL;

}satırlarını bulup en son parantezin bi alt satırına;



SAFE(read_int16(&ci->access_count, f));

if (ci->access_count) {

ARRAY_FOREACH (i, ci->access) {

SAFE(read_string(&ci->access[i].ekleyen, f));

}

}

else {

ci->access = NULL;

}

ircservices-* dosyasına girip;


önce

makebitince de make install

ALINTI