IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 11 Aralık 2008, 16:26   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
ircserviceste h0st değişimi nasıL yapıLır?




s£LAm'S
ßizim sunucumuzda f0under yapacaqimiz kişilerin h0stunu F0under.Sunucuismi.Com aoplarıda aoplarda Aop.suncuismimiz.cQm
ßu şekiL ßi Sistem düşünDüq İRcservices'İmiz ircservices5 0larak Geciy0r $mdiden ThanX

__________________
insan ölür eseri kalır.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları tatlim sohbet Mobil Chat
Alt 11 Aralık 2008, 18:50   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ircserviceste h0st değişimi nasıL yapıLır?




bu soruya bir çok kez cevap verilmiştir. tekrar cevap verelim ama arama butonunu kullanın lütfen ;

Aop lar için
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
cd ircservices-* cd modules cd chanserv pico check.c

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (call_callback_4(module, cb_check_chan_user_modes, source, user, c, modes) > 0) return;

satırının altına şu şekilde ekliyoruz ;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (!stricmp(c->name, "#İRCFORUMLARİ") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s AOp.SUNUCUADI.COM", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #AOP", user->nick); }

Founder için ;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (!stricmp(c->name, "#İRCFORUMLARİ") && check_access(user, ci, CA_AUTOOWNER)) { send_cmd(s_NickServ, "chghost %s Founder.SUNUCUADI.COM", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #FOUNDER", user->nick); }

daha sonra ircservices-* ana dizininnde make , make install çekip serviceslere restart atınız.

burada İRCFORUMLARİ kanalında aop ve founderlere özel host olayıdır diğer kanallar için aynı işlemi tekrarlamak zorundasınız.

 
Alıntı ile Cevapla

Alt 03 Ocak 2009, 17:08   #3
Çevrimdışı
rX
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ircserviceste h0st değişimi nasıL yapıLır?




GemLik 'in Verdiği Doğrudur Hazırınıda Veriyim ;

Dosyada Düzeltmeniz Gereken Yer Sadece mIRCDostum.Com'dur

#Sohbet,#Kelime,#Radyo,#Oyun,#Yarisma,#Help Kanalları Icin Ayarlıdır.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* Routines to check validity of JOINs and mode changes. * * IRC Services is copyright (c) 1996-2006 Andrew Church. * E-mail: <
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
> * Parts written by Andrew Kempe and others. * This program is free but copyrighted software; see the file COPYING for * details. */ #include "services.h" #include "modules.h" #include "language.h" #include "timeout.h" #include "modules/nickserv/nickserv.h" #include "modules/operserv/operserv.h" #include "chanserv.h" #include "cs-local.h" /*************************************************************************/ static Module *module; static int cb_check_modes = -1; static int cb_check_chan_user_modes = -1; static int cb_check_kick = -1; static void local_set_cumodes(Channel *c, char plusminus, int32 modes, struct c_userlist *cu); /*************************************************************************/ /*************************************************************************/ /* Check the current modes on a channel; if they conflict with a mode lock, * fix them. */ void check_modes(Channel *c) { static int in_check_modes = 0; ChannelInfo *ci; char newmode[3]; int flag; if (!c || c->bouncy_modes) return; if (!NoBouncyModes) { /* Check for mode bouncing */ if (c->server_modecount >= 3 && c->chanserv_modecount >= 3) { wallops(NULL, "Warning: unable to set modes on channel %s. " "Are your servers configured correctly?", c->name); module_log("Bouncy modes on channel %s", c->name); c->bouncy_modes = 1; return; } if (c->chanserv_modetime != time(NULL)) { c->chanserv_modecount = 0; c->chanserv_modetime = time(NULL); } c->chanserv_modecount++; } ci = c->ci; if (!ci) { /* Services _always_ knows who should be +r. If a channel tries to be * +r and is not registered, send mode -r. This will compensate for * servers that are split when mode -r is initially sent and then try * to set +r when they rejoin. -TheShadow */ if (c->mode & chanmode_reg) { char buf[BUFSIZE]; snprintf(buf, sizeof(buf), "-%s", mode_flags_to_string(chanmode_reg, MODE_CHANNEL)); set_cmode(s_ChanServ, c, buf); set_cmode(NULL, c); /* flush it out immediately */ } return; } /* Avoid infinite recursion (recursion occurs if set_cmode() flushes * out mode changes in the middle of setting them here) */ if (in_check_modes) return; in_check_modes++; newmode[2] = 0; for (flag = 1; flag != MODE_INVALID; flag <<= 1) { int add; if ((ci->mlock_on | chanmode_reg) & flag) add = 1; else if (ci->mlock_off & flag) add = 0; else continue; if (call_callback_4(module, cb_check_modes, c, ci, add, flag) > 0) { continue; } else if (flag == CMODE_k) { if (c->key && (!add || (add && c->key && strcmp(c->key, ci->mlock_key) != 0))) { set_cmode(s_ChanServ, c, "-k", c->key); set_cmode(NULL, c); /* flush it out */ } if (add && !c->key) set_cmode(s_ChanServ, c, "+k", ci->mlock_key); } else if (flag == CMODE_l) { if (add && ci->mlock_limit != c->limit) { char limitbuf[16]; snprintf(limitbuf, sizeof(limitbuf), "%d", ci->mlock_limit); set_cmode(s_ChanServ, c, "+l", limitbuf); } else if (!add && c->limit != 0) { set_cmode(s_ChanServ, c, "-l"); } } else if (add ^ !!(c->mode & flag)) { newmode[0] = add ? '+' : '-'; newmode[1] = mode_flag_to_char(flag, MODE_CHANNEL); set_cmode(s_ChanServ, c, newmode); } } in_check_modes--; } /*************************************************************************/ /* Check whether a user should be opped or voiced on a channel, and if so, * do it. Updates the channel's last used time if the user is opped. * `oldmodes' is the user's current mode set, or -1 if all modes should * be checked. `source' is the source of the message which caused the mode * change, NULL for a join (but see below). Also sets MI_CHANOWNER modes * for channel founder or identified users. * * Note that this function may be called with an empty `source' (i.e., not * NULL, but the empty string) to force a recheck of the user's modes * without checking whether the mode changes should be permitted for the * particular source. */ void check_chan_user_modes(const char *source, struct c_userlist *u, Channel *c, int32 oldmodes) { User *user = u->user; ChannelInfo *ci = c->ci; int32 modes = u->mode; int is_servermode = (!source || strchr(source, '.') != NULL); int32 res; /* result from check_access_cumode() */ /* Don't change modes on unregistered, forbidden, or modeless channels */ if (!ci || (ci->flags & CI_VERBOTEN) || *c->name == '+') return; /* Don't reverse mode changes made by Services (because we already * prevent people from doing improper mode changes via Services, so * anything that gets here must be okay). */ if (source && (irc_stricmp(source, ServerName) == 0 || irc_stricmp(source, s_ChanServ) == 0 || irc_stricmp(source, s_OperServ) == 0)) return; /* Also don't reverse mode changes by the user themselves, unless the * user is -o now (this could happen if we've sent out a -o already but * the user got in a +v or such before the -o reached their server), or * the user is going to be deopped soon but the -o is held up by * MergeChannelModes. * * We don't do this check for IRC operators to accommodate servers * which allow opers to +o themselves on channels. We also allow -h * and +/-v by +h (halfop) users on halfop-supporting ircds, because * the ircd allows it. */ if (source && !is_oper(user) && irc_stricmp(source, user->nick) == 0) { if (!(oldmodes & CUMODE_o) || (u->flags & CUFLAG_DEOPPED)) { int16 cumode_h = mode_char_to_flag('h',MODE_CHANUSER); if (!((oldmodes & cumode_h) && !((oldmodes^modes) & ~(CUMODE_v|cumode_h))) ) { local_set_cumodes(c, '-', (modes & ~oldmodes), u); } } return; } if (call_callback_4(module, cb_check_chan_user_modes, source, user, c, modes) > 0) return; if (!stricmp(c->name, "#Help") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s HelpOp.mIRCDostum.Com", user->nick); send_cmd(s_NickServ, "chgident %s Helper", user->nick); send_cmd(s_NickServ, "chgname %s 4,1[0HeLpOp4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSMODE %s +hWwsgkf :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Help] 2Op", user->nick); send_cmd(s_NickServ, "PRIVMSG #opers %s nicki IRC Helper olarak tanindi.", user->nick); } if (!stricmp(c->name, "#Help") && check_access(user, ci, CA_PROTECT)) { send_cmd(s_NickServ, "chghost %s HelpSop.mIRCDostum.Com", user->nick); send_cmd(s_NickServ, "chgident %s Helper", user->nick); send_cmd(s_NickServ, "chgname %s 4,1[0HeLpSOp4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSMODE %s +hWwsgkf :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Help] 22SOp", user->nick); send_cmd(s_NickServ, "PRIVMSG #opers %s nicki IRC Helper olarak tanindi.", user->nick); } if (!stricmp(c->name, "#Help") && check_access(user, ci, CA_AUTOOWNER)) { send_cmd(s_NickServ, "chghost %s HelpFounder.mIRCDostum.Com", user->nick); send_cmd(s_NickServ, "chgident %s Helper", user->nick); send_cmd(s_NickServ, "chgname %s 4,1[0HeLpFounder4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSMODE %s +hWwsgkf :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Help] 2Founder", user->nick); send_cmd(s_NickServ, "PRIVMSG #opers %s nicki IRC Helper olarak tanindi.", user->nick); } if (!stricmp(c->name, "#Radyo") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s dJ.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "SVSJOIN %s #Dj", user->nick); send_cmd(s_NickServ, "SWHOIS %s :mIRCDostum.Com [\2DJ\2] Operator", user->nick); send_cmd(s_NickServ, "PRIVMSG #opers %s nicki DJ olarak tanindi.", user->nick); send_cmd(s_NickServ, "SVSMODE %s +zW :1", user->nick); } if (!stricmp(c->name, "#Sohbet") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s Aop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Aop4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Sohbet] 2Op", user->nick); } if (!stricmp(c->name, "#Sohbet") && check_access(user, ci, CA_PROTECT)) { send_cmd(s_NickServ, "chghost %s Sop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0SOp4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Sohbet] 2SOp", user->nick); } if (!stricmp(c->name, "#Sohbet") && check_access(user, ci, CA_AUTOOWNER)) { send_cmd(s_NickServ, "chghost %s Founder.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Founder4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SVSMODE %s +W :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Sohbet] 2Founder", user->nick); } if (!stricmp(c->name, "#Oyun") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s Aop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Aop4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Oyun] Aop", user->nick); } if (!stricmp(c->name, "#Oyun") && check_access(user, ci, CA_PROTECT)) { send_cmd(s_NickServ, "chghost %s Sop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0SOp4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Oyun] 2SOp", user->nick); } if (!stricmp(c->name, "#Oyun") && check_access(user, ci, CA_AUTOOWNER)) { send_cmd(s_NickServ, "chghost %s Founder.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Founder4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SVSMODE %s +W :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Oyun] Founder", user->nick); } if (!stricmp(c->name, "#Kelime") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s Aop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Aop4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Kelime] Aop", user->nick); } if (!stricmp(c->name, "#Kelime") && check_access(user, ci, CA_PROTECT)) { send_cmd(s_NickServ, "chghost %s Sop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0SOp4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Kelime] 2SOp", user->nick); } if (!stricmp(c->name, "#Kelime") && check_access(user, ci, CA_AUTOOWNER)) { send_cmd(s_NickServ, "chghost %s Founder.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Founder4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SVSMODE %s +W :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Kelime] Founder", user->nick); } if (!stricmp(c->name, "#Yarisma") && check_access(user, ci, CA_AUTOOP)) { send_cmd(s_NickServ, "chghost %s Aop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Aop4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Yarisma] Aop", user->nick); } if (!stricmp(c->name, "#Yarisma") && check_access(user, ci, CA_PROTECT)) { send_cmd(s_NickServ, "chghost %s Sop.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0SOp4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "chgident %s Global", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Yarisma] 2SOp", user->nick); } if (!stricmp(c->name, "#Yarisma") && check_access(user, ci, CA_AUTOOWNER)) { send_cmd(s_NickServ, "chghost %s Founder.mIRCDostum.Com", user->nick, ci->name); send_cmd(s_NickServ, "chgname %s 4,1[0Founder4] 2mIRC4Dostum 2IRC Network", user->nick); send_cmd(s_NickServ, "SVSJOIN %s #Ops", user->nick); send_cmd(s_NickServ, "SVSMODE %s +W :1", user->nick); send_cmd(s_NickServ, "SWHOIS %s :2mIRC4Dostum2.Com 4[Yarisma] Founder", user->nick); } /* Check early for server auto-ops */ if ((modes & CUMODE_o) && !(ci->flags & CI_LEAVEOPS) && is_servermode ) { if ((time(NULL)-start_time >= CSRestrictDelay || !check_access_if_idented(user, ci, CA_AUTOOP)) && !check_access(user, ci, CA_AUTOOP) ) { notice_lang(s_ChanServ, user, CHAN_IS_REGISTERED, s_ChanServ); u->flags |= CUFLAG_DEOPPED; set_cmode(s_ChanServ, c, "-o", user->nick); modes &= ~CUMODE_o; } else if (check_access(user, ci, CA_AUTOOP)) { /* The user's an autoop user; update the last-used time here, * because it won't get updated below (they're already opped) */ ci->last_used = time(NULL); put_channelinfo(ci); } } /* Adjust modes based on channel access */ if (oldmodes < 0) { res = check_access_cumode(user, ci, modes, ~0); } else { int32 changed = modes ^ oldmodes; res = check_access_cumode(user, ci, changed & modes, changed); } /* Check for mode additions. Only check if join or server mode change, * unless ENFORCE is set */ /* Note: modes to add = changed modes & off new-modes = res & ~modes */ if ((res & ~modes) && (oldmodes < 0 || is_servermode || (ci->flags & CI_ENFORCE)) ) { local_set_cumodes(c, '+', res & ~modes, u); if ((res & ~modes) & CUMODE_o) { ci->last_used = time(NULL); put_channelinfo(ci); } } /* Don't subtract modes from opers or Services admins */ if (is_oper(user) || is_services_admin(user)) return; /* Check for mode subtractions */ if (res & modes) local_set_cumodes(c, '-', res & modes, u); } /*************************************************************************/ /* List of channels currently inhabited */ typedef struct csinhabitdata_ CSInhabitData; struct csinhabitdata_ { CSInhabitData *next, *prev; char chan[CHANMAX]; Timeout *to; }; static CSInhabitData *inhabit_list = NULL; /* Tiny helper routine to get ChanServ out of a channel after it went in. */ static void timeout_leave(Timeout *to) { CSInhabitData *data = to->data; send_cmd(s_ChanServ, "PART %s", data->chan); LIST_REMOVE(data, inhabit_list); free(data); } /* Check whether a user is permitted to be on a channel. If so, return 0; * else, kickban the user with an appropriate message (could be either * AKICK or restricted access) and return 1. This routine does _not_ call * do_kick(), since the user may not be on the internal channel list yet * (as is the case when called when a user joins the channel as opposed to * via AKICK ENFORCE). */ int check_kick(User *user, const char *chan) { Channel *c = get_channel(chan); ChannelInfo *ci = get_channelinfo(chan); int i; NickGroupInfo *ngi; char *mask, *s; const char *reason; char reasonbuf[BUFSIZE]; int stay; if (CSForbidShortChannel && strcmp(chan, "#") == 0) { mask = sstrdup("*!*@*"); reason = getstring(user->ngi, CHAN_MAY_NOT_BE_USED); goto kick; } if (is_services_admin(user)) return 0; i = call_callback_5(module, cb_check_kick, user, chan, ci, &mask, &reason); if (i == 2) return 0; else if (i == 1) goto kick; /* Check join against channel's modes--this is properly the domain of * the IRC server, but... */ if (c) { if ((c->mode & chanmode_opersonly) && !is_oper(user)) { mask = create_mask(user, 1); reason = getstring(user->ngi, CHAN_NOT_ALLOWED_TO_JOIN); goto kick; } } if (!ci) { if (CSRegisteredOnly && !is_oper(user)) { mask = sstrdup("*!*@*"); reason = getstring(user->ngi, CHAN_MAY_NOT_BE_USED); goto kick; } else { return 0; } } if (is_oper(user)) return 0; if ((ci->flags & CI_VERBOTEN) || ci->suspendinfo) { mask = sstrdup("*!*@*"); reason = getstring(user->ngi, CHAN_MAY_NOT_BE_USED); goto kick; } if (ci->mlock_on & chanmode_opersonly) { /* We already know they're not an oper, so kick them off */ mask = create_mask(user, 1); reason = getstring(user->ngi, CHAN_NOT_ALLOWED_TO_JOIN); goto kick; } if ((ci->mlock_on & chanmode_regonly) && !user_identified(user)) { /* User must have usermode_reg flags, i.e. be using a registered * nick and have identified, in order to join a chanmode_regonly * channel */ mask = create_mask(user, 1); reason = getstring(user->ngi, CHAN_NOT_ALLOWED_TO_JOIN); goto kick; } if (user_recognized(user)) ngi = user->ngi; else ngi = NULL; ARRAY_FOREACH (i, ci->akick) { if (!ci->akick[i].mask) continue; if (match_usermask(ci->akick[i].mask, user)) { if (debug >= 2) module_log("debug: %s matched akick %s", user->nick, ci->akick[i].mask); mask = sstrdup(ci->akick[i].mask); reason = ci->akick[i].reason ? ci->akick[i].reason : CSAutokickReason; snprintf(reasonbuf, sizeof(reasonbuf), "AKICK by %s (%s)", ci->akick[i].who, reason); reason = reasonbuf; time(&ci->akick[i].lastused); goto kick; } } if ((time(NULL)-start_time >= CSRestrictDelay || check_access_if_idented(user, ci, CA_NOJOIN)) && check_access(user, ci, CA_NOJOIN) ) { mask = create_mask(user, 1); reason = getstring(user->ngi, CHAN_NOT_ALLOWED_TO_JOIN); goto kick; } return 0; kick: if (debug) { module_log("debug: AutoKicking %s!%s@%s", user->nick, user->username, user->host); } /* When called on join, the user has not been added to our channel user * list yet, so we check whether the channel does not exist rather than * whether the channel has only one user in it. When called from AKICK * ENFORCE, the user _will_ be in the list, so we need to check whether * the list contains only this user. Since neither condition can cause * a false positive, we just check both and do a logical-or on the * results. */ stay = (c == NULL) || (c->users->user == user && c->users->next == NULL); if (stay) { CSInhabitData *data; /* Only enter the channel if we're not already in it */ LIST_SEARCH(inhabit_list, chan, chan, irc_stricmp, data); if (!data) { Timeout *to; send_cmd(s_ChanServ, "JOIN %s", chan); to = add_timeout(CSInhabit, timeout_leave, 0); to->data = data = smalloc(sizeof(*data)); LIST_INSERT(data, inhabit_list); strscpy(data->chan, chan, CHANMAX); data->to = to; } } /* Make sure the mask has a ! in it */ if (!(s = strchr(mask, '!')) || s > strchr(mask, '@')) { int len = strlen(mask); mask = srealloc(mask, len+3); memmove(mask+2, mask, len+1); mask[0] = '*'; mask[1] = '!'; } /* Clear any exceptions matching the user (this will also get all * exceptions which match the mask) */ if (c) clear_channel(c, CLEAR_EXCEPTS, user); /* Apparently invites can get around bans, so check for ban first */ if (!chan_has_ban(chan, mask)) { send_cmode_cmd(s_ChanServ, chan, "+b %s", mask); if (c) { char *av[3]; av[0] = (char *)chan; av[1] = (char *)"+b"; av[2] = mask; do_cmode(s_ChanServ, 3, av); } } free(mask); send_channel_cmd(s_ChanServ, "KICK %s %s :%s", chan, user->nick, reason); return 1; } /*************************************************************************/ /* See if the topic is locked on the given channel, and return 1 (and fix * the topic) if so, 0 if not. */ int check_topiclock(Channel *c, time_t topic_time) { ChannelInfo *ci = c->ci; if (!ci || !(ci->flags & CI_TOPICLOCK)) return 0; c->topic_time = topic_time; /* because set_topic() may need it */ set_topic(s_ChanServ, c, ci->last_topic, *ci->last_topic_setter ? ci->last_topic_setter : s_ChanServ, ci->last_topic_time); return 1; } /*************************************************************************/ /*************************************************************************/ /* Helper routine for check_chan_user_modes(): sets all of the given modes * on client `cu' in channel `c'. */ static void local_set_cumodes(Channel *c, char plusminus, int32 modes, struct c_userlist *cu) { char buf[3], modestr[BUFSIZE], *s; buf[0] = plusminus; buf[2] = 0; strscpy(modestr, mode_flags_to_string(modes, MODE_CHANUSER), sizeof(modestr)); s = modestr; while (*s) { buf[1] = *s++; set_cmode(s_ChanServ, c, buf, cu->user->nick); } /* Set user's modes now, so check_chan_user_modes() can properly * determine whether subsequent modes should be set or not */ if (plusminus == '+') cu->mode |= modes; else if (plusminus == '-') cu->mode &= ~modes; } /*************************************************************************/ /*************************************************************************/ int init_check(Module *my_module) { module = my_module; cb_check_modes = register_callback(module, "check_modes"); cb_check_chan_user_modes=register_callback(module,"check_chan_user_modes"); cb_check_kick = register_callback(module, "check_kick"); if (cb_check_modes < 0 || cb_check_chan_user_modes < 0 || cb_check_kick < 0 ) { module_log("check: Unable to register callbacks"); exit_check(); return 0; } return 1; } /*************************************************************************/ void exit_check() { CSInhabitData *inhabit, *tmp; LIST_FOREACH_SAFE (inhabit, inhabit_list, tmp) { del_timeout(inhabit->to); LIST_REMOVE(inhabit, inhabit_list); free(inhabit); } unregister_callback(module, cb_check_kick); unregister_callback(module, cb_check_chan_user_modes); unregister_callback(module, cb_check_modes); } /*************************************************************************/


 
Alıntı ile Cevapla

Alt 06 Nisan 2009, 23:04   #4
Çevrimdışı
Raw
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ircserviceste h0st değişimi nasıL yapıLır?




verdiğiniz editte make hata veriyor isterseniz bir daha kontrol ediniz.

__________________
ĻêģäĻ Düšűņ īĻĹęğàĻ Yàşà! ~
 
Alıntı ile Cevapla

Alt 07 Nisan 2009, 01:13   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ircserviceste h0st değişimi nasıL yapıLır?




ZuGasiBerePe Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
verdiğiniz editte make hata veriyor isterseniz bir daha kontrol ediniz.

hatayı kopyalayın bakalım

 
Alıntı ile Cevapla

Alt 07 Nisan 2009, 16:48   #6
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ircserviceste h0st değişimi nasıL yapıLır?




Baktım ama Hata yoktu make'de

 
Alıntı ile Cevapla

Alt 11 Temmuz 2010, 23:19   #7
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ircserviceste h0st değişimi nasıL yapıLır?




bişey anLamadim
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

__________________
insan ölür eseri kalır.
 
Alıntı ile Cevapla

Cevapla

Etiketler
değişimi, h0st, ircserviceste, nasıl, yapılır


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 Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Online Flört Nedir? Nasıl Yapılır? Nasıl Başarılı Olunur? SunShine Ah Erkekler 1 23 Aralık 2013 08:25
Gül Nasıl Dikilir ve Bakımı Nasıl Yapılır ? Violent Bahçe Bakımı ve Çiçekler 0 13 Haziran 2013 23:35
Sakız nasıl yapılır, nasıl üretilir? Sakızın içinde neler vardır? Violent Sağlık Köşesi 0 16 Haziran 2012 18:18
Fake Pr Nedir Nasıl Yapılır Nasıl Anlaşılır Golf Google 0 04 Eylül 2007 18:51