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

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 30 Kasım 2010, 23:27   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
/EKLE Komutunu Aktifleştirmek istiyorum.




merhaba statüs'ten oper eklemek için /ekle komutunu aktifleştirmek istiyorum.

/Ekle yaptıgımda ;

> EKLE Yalnış komut. diyor.

Yardımcı olabilirseniz sevinirim.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 01 Aralık 2010, 00:51   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




modülü kurulumu sunucunda ?

 
Alıntı ile Cevapla

Alt 04 Aralık 2010, 12:13   #3
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




CmdInfo OperCommands 'den komutu değiştirdikten sonra modulu tekrar derleyip rehashlayin.

 
Alıntı ile Cevapla

Alt 21 Aralık 2010, 12:42   #4
MR_WaR
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




Alıntı:
loadmodule "src/modules/ekle.so";

Olup Olmadığını Kontrol Et.

 
Alıntı ile Cevapla

Alt 21 Aralık 2010, 12:46   #5
Çevrimdışı
Kjm
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include "config.h" #include "struct.h" #include "common.h" #include "sys.h" #include "numeric.h" #include "msg.h" #include "channel.h" #include <time.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef _WIN32 #include <io.h> #endif #include <fcntl.h> #include "h.h" #ifdef STRIPBADWORDS #include "badwords.h" #endif #ifdef _WIN32 #include "version.h" #endif typedef struct _conf_operflag OperFlag; typedef struct _blocklist BlockList; typedef struct _operpass OperPass; typedef struct _cmdinfo CmdInfo; struct _conf_operflag { long flag; char *name; }; struct _operpass { OperPass *prev, *next; aClient *cptr; }; struct _blocklist { BlockList *prev, *next; ConfigItem_oper *oper; }; struct _cmdinfo { char *msg, *tok; iFP func; Command *cmd; }; extern void sendto_one(aClient *to, char *pattern, ...); extern void sendto_serv_butone_token(aClient *one, char *prefix, char *command, char *token, char *pattern, ...); extern OperFlag *config_binary_flags_search(OperFlag *table, char *cmd, int size); extern anAuthStruct AuthTypes[]; #define OPER_DB "yetki.db" #define OPER_DB_VERSION 1001 #define ircstrdup(x,y) if (x) MyFree(x); if (!y) x = NULL; else x = strdup(y) #define ircfree(x) if (x) MyFree(x); x = NULL #define IsParam(x) (parc > (x) && !BadPtr(parv[(x)])) #define IsNotParam(x) (parc <= (x) || BadPtr(parv[(x)])) #define DelCommand(x) if (x) CommandDel(x); x = NULL #define DelHook(x) if (x) HookDel(x); x = NULL /* Helpful macros to make the code a bit more readable */ #define FromLoop(counter, list) \ for (counter = (ConfigItem_oper_from *) list; \ counter; counter = (ConfigItem_oper_from *) (counter)->next) #define FromLoop2(counter, list, next) \ for (counter = (ConfigItem_oper_from *) list; \ counter; counter = (ConfigItem_oper_from *) next) #define NewFrom \ (ConfigItem_oper_from *) MyMallocEx(sizeof(ConfigItem_oper_from)) #define OF_NAME 0x01 #define OF_SWHOIS 0x02 #define OF_SNOMASK 0x04 #define OF_MAXLOGINS 0x08 #define OF_PASSWORD 0x10 #define OF_USERHOST 0x20 #define OF_FLAGS 0x40 #define OF_CLASS 0x80 #define OF_TABLESIZE sizeof(_OperFields)/sizeof(_OperFields[0]) static CMD_FUNC(m_addoper); static CMD_FUNC(m_addroper); static CMD_FUNC(m_addgoper); static CMD_FUNC(m_deloper); static CMD_FUNC(m_delroper); static CMD_FUNC(m_delgoper); static CMD_FUNC(m_modoper); static CMD_FUNC(m_modroper); static CMD_FUNC(m_modgoper); static CMD_FUNC(m_confoper); static CMD_FUNC(m_confroper); static CMD_FUNC(m_masterpass); static Command *AddCommand(Module *module, char *msg, char *token, iFP func); static int add_commands(Module *module); static void del_commands(); static int cb_config_rehash(); static int cb_rehash_complete(); static int cb_test(ConfigFile *, ConfigEntry *, int, int *); static int cb_conf(ConfigFile *, ConfigEntry *, int); static int cb_stats(aClient *sptr, char *stats); static int cb_quit(aClient *, char *); static int save_opers(); static int load_opers(); static void free_extopers(); static void free_operpasslist(); static OperPass *FindOperPass(aClient *cptr); static BlockList *FindExternalOper(ConfigItem_oper *oper); static Hook *HookConfTest, *HookConfRun, *HookStats; static Hook *HookQuit; static Hook *HookConfRehash; static Hook *HookRehashDone; static anAuthStruct *opers_auth; static BlockList *ExternalOpers; static OperPass *OperPassList; static char buf[1024]; static unsigned oper_db_version = OPER_DB_VERSION; static CmdInfo OperCommands[] = { { "ekle", "OA", m_addoper, NULL }, { "ekle1", "ORA", m_addroper, NULL }, { "ekle2", "OGA", m_addgoper, NULL }, { "sil", "OD", m_deloper, NULL }, { "sil1", "ORD", m_delroper, NULL }, { "sil2", "OGD", m_delgoper, NULL }, { "fsd1", "OM", m_modoper, NULL }, { "fsd2", "ORM", m_modroper, NULL }, { "fsd3", "OGM", m_modgoper, NULL }, { "fsd4", "OC", m_confoper, NULL }, { "fsd5", "ORC", m_confroper, NULL }, { "fsddegis", "MP", m_masterpass, NULL }, { NULL, NULL, NULL, NULL } }; static int _OldOperFlags[] = { OFLAG_LOCAL, 'o', OFLAG_GLOBAL, 'O', OFLAG_REHASH, 'r', OFLAG_DIE, 'D', OFLAG_RESTART, 'R', OFLAG_HELPOP, 'h', OFLAG_GLOBOP, 'g', OFLAG_WALLOP, 'w', OFLAG_LOCOP, 'l', OFLAG_LROUTE, 'c', OFLAG_GROUTE, 'L', OFLAG_LKILL, 'k', OFLAG_GKILL, 'K', OFLAG_KLINE, 'b', OFLAG_UNKLINE, 'B', OFLAG_LNOTICE, 'n', OFLAG_GNOTICE, 'G', OFLAG_ADMIN_, 'A', OFLAG_SADMIN_, 'a', OFLAG_NADMIN, 'N', OFLAG_COADMIN, 'C', OFLAG_ZLINE, 'z', OFLAG_WHOIS, 'W', OFLAG_HIDE, 'H', OFLAG_TKL, 't', OFLAG_GZL, 'Z', OFLAG_OVERRIDE, 'v', OFLAG_UMODEQ, 'q', OFLAG_DCCDENY, 'd', 0, 0 }; /* This MUST be alphabetized */ static OperFlag _OperFields[] = { { OF_CLASS, "class" }, { OF_FLAGS, "flags" }, { OF_MAXLOGINS, "maxlogins" }, { OF_NAME, "name" }, { OF_PASSWORD, "password" }, { OF_SNOMASK, "snomask" }, { OF_SWHOIS, "swhois" }, { OF_USERHOST, "userhost" }, }; ModuleHeader MOD_HEADER(opers) = { "OperEkle", "Module Edit: NazarHosting Internet HizmetLeri", "Oper.Conf duzenleyicisi 4Crazy", "3.2-b8-1", NULL }; static void InitConf() { opers_auth = NULL; ExternalOpers = NULL; } static void FreeConf() { if (opers_auth) Auth_DeleteAuthStruct(opers_auth); free_extopers(); } DLLFUNC int MOD_TEST(opers)(ModuleInfo *modinfo) { HookConfTest = HookAddEx(modinfo->handle, HOOKTYPE_CONFIGTEST, cb_test); return MOD_SUCCESS; } DLLFUNC int MOD_INIT(opers)(ModuleInfo *modinfo) { #ifndef STATIC_LINKING ModuleSetOptions(modinfo->handle, MOD_OPT_PERM); #endif InitConf(); HookQuit = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_QUIT, cb_quit); HookConfRehash = HookAddEx(modinfo->handle, HOOKTYPE_REHASH, cb_config_rehash); HookRehashDone = HookAddEx(modinfo->handle, HOOKTYPE_REHASH_COMPLETE, cb_rehash_complete); HookConfRun = HookAddEx(modinfo->handle, HOOKTYPE_CONFIGRUN, cb_conf); HookStats = HookAddEx(modinfo->handle, HOOKTYPE_STATS, cb_stats); return add_commands(modinfo->handle); } DLLFUNC int MOD_LOAD(opers)(int module_load) { load_opers(); return MOD_SUCCESS; } DLLFUNC int MOD_UNLOAD(opers)(int module_unload) { FreeConf(); free_operpasslist(); del_commands(); DelHook(HookStats); DelHook(HookConfRun); DelHook(HookRehashDone); DelHook(HookConfRehash); DelHook(HookQuit); DelHook(HookConfTest); return MOD_SUCCESS; } static Command *AddCommand(Module *module, char *msg, char *token, iFP func) { Command *cmd; if (CommandExists(msg)) { config_error("Bu komut %s zaten kullanilmistir.", msg); return NULL; } if (CommandExists(token)) { config_error("Bu komut %s zaten kullanilmistir.", token); return NULL; } cmd = CommandAdd(module, msg, token, func, MAXPARA, 0); #ifndef STATIC_LINKING if (ModuleGetError(module) != MODERR_NOERROR || !cmd) #else if (!cmd) #endif { #ifndef STATIC_LINKING config_error("Dikkat: islem Basarisizdir. Sonuc: %s: %s", msg, ModuleGetErrorStr(module)); #else config_error("Dikkat: islem Basarisizdir. Sonuc: %s", msg); #endif return NULL; } return cmd; } static int add_commands(Module *module) { CmdInfo *p; int ret = MOD_SUCCESS; for (p = OperCommands; p->msg; p++) { p->cmd = AddCommand(module, p->msg, p->tok, p->func); if (!p->cmd) ret = MOD_FAILED; } return ret; } static void del_commands() { CmdInfo *p; for (p = OperCommands; p->msg; p++) { DelCommand(p->cmd); } } static int cb_config_rehash() { FreeConf(); InitConf(); return 0; } static int cb_rehash_complete() { load_opers(); return 0; } static int cb_quit(aClient *sptr, char *comment) { OperPass *p; for (p = OperPassList; p; p = p->next) if (p->cptr == sptr) break; if (p) { DelListItem(p, OperPassList); MyFree(p); } return 0; } static int cb_test(ConfigFile *cf, ConfigEntry *ce, int type, int *errs) { int errors = 0; if (type != CONFIG_SET) return 0; if (!strcmp(ce->ce_varname, "master-password")) { if (!ce->ce_vardata) { config_error("%s:%i: set::master-password master sifresini giriniz.", ce->ce_fileptr->cf_filename, ce->ce_varlinenum); errors++; } else if (Auth_CheckError(ce) < 0) errors++; *errs = errors; return errors ? -1 : 1; } else return 0; } static int cb_conf(ConfigFile *cf, ConfigEntry *ce, int type) { if (type != CONFIG_SET) return 0; if (!strcmp(ce->ce_varname, "master-password")) { if (opers_auth) Auth_DeleteAuthStruct(opers_auth); opers_auth = Auth_ConvertConf2AuthStruct(ce); return 1; } return 0; } static int cb_stats(aClient *sptr, char *stats) { if (*stats == 'S') { sendto_one(sptr, ":%s %i %s :master-password: <%s>", me.name, RPL_TEXT, sptr->name, opers_auth ? "hidden" : "none"); } return 0; } static void free_operpasslist() { OperPass *p; ListStruct *next; for (p = OperPassList; p; p = (OperPass *) next) { next = (ListStruct *) p->next; DelListItem(p, OperPassList); MyFree(p); } } static OperPass *FindOperPass(aClient *cptr) { OperPass *p; for (p = OperPassList; p; p = p->next) if (p->cptr == cptr) break; return p; } static void AddOperPass(aClient *cptr) { OperPass *p; p = (OperPass *) MyMalloc(sizeof(OperPass)); p->cptr = cptr; AddListItem(p, OperPassList); } static BlockList *FindExternalOper(ConfigItem_oper *oper) { BlockList *p; for (p = ExternalOpers; p; p = p->next) if (p->oper == oper) break; return p; } static void AddExternalOper(ConfigItem_oper *oper) { BlockList *p; p = (BlockList *) MyMalloc(sizeof(BlockList)); p->oper = oper; AddListItem(p, ExternalOpers); } inline static void DelExternalOper(BlockList *extoper) { DelListItem(extoper, ExternalOpers); MyFree(extoper); } static void free_extopers() { BlockList *p; ListStruct *next; for (p = ExternalOpers; p; p = (BlockList *) next) { next = (ListStruct *) p->next; DelListItem(p, ExternalOpers); MyFree(p); } } // ========================================================================= static void free_oper(ConfigItem_oper *oper) { ListStruct *next; ConfigItem_oper_from *from; ircfree(oper->name); ircfree(oper->swhois); ircfree(oper->snomask); Auth_DeleteAuthStruct(oper->auth); FromLoop2(from, oper->from, next) { next = (ListStruct *) from->next; DelListItem(from, oper->from); ircfree(from->name); MyFree(from); } MyFree(oper); } // ========================================================================= #ifndef _WIN32 #define OpenFile(fd, file, flags) fd = open(file, flags, S_IRUSR|S_IWUSR) #else #define OpenFile(fd, file, flags) fd = open(file, flags, S_IREAD|S_IWRITE) #endif #define R_SAFE(x) \ do { \ if ((x)) \ { \ close(fd); \ if (oper) \ free_oper(oper); \ config_error("Okunamadi !!! : %s", OPER_DB); \ return -1; \ } \ } while (0) #define RF_SAFE(x) \ do { \ if ((x)) \ { \ close(fd); \ if (oper) \ free_oper(oper); \ ircfree(from); \ config_error("Okunamadi !!! : %s", OPER_DB); \ return -1; \ } \ } while (0) #define W_SAFE(x) \ do { \ if ((x)) \ { \ close(fd); \ config_error("Yazilim Hatasi %s", OPER_DB); \ return -1; \ } \ } while (0) static inline int read_data(int fd, void *buf, size_t count) { if ((size_t) read(fd, buf, count) < count) return -1; return 0; } static inline int write_data(int fd, void *buf, size_t count) { if ((size_t) write(fd, buf, count) < count) return -1; return 0; } static int write_str(int fd, char *x) { size_t count = x ? strlen(x) : 0; if (write_data(fd, &count, sizeof count)) return -1; if (count) { if (write_data(fd, x, sizeof(char) * count)) return -1; } return 0; } static int read_str(int fd, char **x) { size_t count; if (read_data(fd, &count, sizeof count)) return -1; if (!count) { *x = NULL; return 0; } *x = (char *) MyMalloc(sizeof(char) * count + 1); if (read_data(fd, *x, sizeof(char) * count)) { MyFree(*x); *x = NULL; return -1; } (*x)[count] = 0; return 0; } static int save_opers() { ConfigItem_oper *oper; ConfigItem_oper_from *from; int fd; size_t count, fromcount; OpenFile(fd, OPER_DB, O_CREAT | O_WRONLY | O_TRUNC); if (fd == -1) { config_status("Hata: %s %s Dosyasina Yazilamadi.", OPER_DB, strerror(errno)); return -1; } W_SAFE(write_data(fd, &oper_db_version, sizeof oper_db_version)); count = 0; for (oper = conf_oper; oper; oper = (ConfigItem_oper *) oper->next) if (FindExternalOper(oper)) count++; W_SAFE(write_data(fd, &count, sizeof count)); for (oper = conf_oper; oper; oper = (ConfigItem_oper *) oper->next) { if (!FindExternalOper(oper)) continue; W_SAFE(write_str(fd, oper->name)); W_SAFE(write_str(fd, oper->swhois)); W_SAFE(write_str(fd, oper->snomask)); W_SAFE(write_str(fd, oper->auth->data)); W_SAFE(write_data(fd, &oper->auth->type, sizeof oper->auth->type)); W_SAFE(write_str(fd, oper->class->name)); W_SAFE(write_data(fd, &oper->oflags, sizeof oper->oflags)); W_SAFE(write_data(fd, &oper->maxlogins, sizeof oper->maxlogins)); fromcount = 0; FromLoop(from, oper->from) fromcount++; W_SAFE(write_data(fd, &fromcount, sizeof fromcount)); FromLoop(from, oper->from) W_SAFE(write_str(fd, from->name)); } close(fd); return 0; } static int load_opers() { ConfigItem_oper *oper = NULL; ConfigItem_oper_from *from = NULL; char *class; int fd; size_t count, fromcount, i, j; unsigned version; OpenFile(fd, OPER_DB, O_RDONLY); if (fd == -1) { if (errno != ENOENT) config_status("Hata: %s %s Dosyasina Yazilamadi.", OPER_DB, strerror(errno)); return -1; } R_SAFE(read_data(fd, &version, sizeof version)); if (version != oper_db_version) { config_status("File %s has a wrong database version (expected: %u, got: %u)", OPER_DB, oper_db_version, version); close(fd); return -1; } R_SAFE(read_data(fd, &count, sizeof count)); for (i = 1; i <= count; i++) { from = NULL; oper = MyMallocEx(sizeof(ConfigItem_oper)); oper->auth = (anAuthStruct *) MyMallocEx(sizeof(anAuthStruct)); R_SAFE(read_str(fd, &oper->name)); R_SAFE(read_str(fd, &oper->swhois)); R_SAFE(read_str(fd, &oper->snomask)); R_SAFE(read_str(fd, &oper->auth->data)); R_SAFE(read_data(fd, &oper->auth->type, sizeof oper->auth->type)); R_SAFE(read_str(fd, &class)); oper->class = Find_class(class); if (!oper->class) { config_status("Dikkat: '%s' Nickli oper (%s), Hatayi verdi. Bakynyz: (%s)", oper->name, class, default_class->name); oper->class = default_class; } ircfree(class); R_SAFE(read_data(fd, &oper->oflags, sizeof oper->oflags)); R_SAFE(read_data(fd, &oper->maxlogins, sizeof oper->maxlogins)); R_SAFE(read_data(fd, &fromcount, sizeof fromcount)); for (j = 1; j <= fromcount; j++) { from = NewFrom; RF_SAFE(read_str(fd, &from->name)); AddListItem(from, oper->from); } if (Find_oper(oper->name)) { char *oldname = oper->name; config_status("Dikkat: Hesap Bloke Edildi. Hesap: '%s', " "Zaten Boyle bi hesap bulunmakta. Hesap: '_%s'", oldname, oldname); oper->name = (char *) MyMallocEx(strlen(oldname) + 2); *oper->name = '_'; strcat(oper->name, oldname); MyFree(oldname); } AddListItem(oper, conf_oper); AddExternalOper(oper); } close(fd); return 0; } // ========================================================================= /* * Auth_CheckError2: * makes sure password and authtype are valid */ static int Auth_CheckError2(aClient *sptr, char *password, short type) { #ifdef AUTHENABLE_SSL_CLIENTCERT X509 *x509_filecert = NULL; FILE *x509_f = NULL; #endif switch (type) { #ifdef AUTHENABLE_UNIXCRYPT case AUTHTYPE_UNIXCRYPT: /* If our data is like 1 or none, we just let em through .. */ if (strlen(password) < 2) { sendnotice(sptr, "*** AUTHTYPE_UNIXCRYPT: no salt (crypt strings will always be >2 in length)"); return 0; } break; #endif #ifdef AUTHENABLE_SSL_CLIENTCERT case AUTHTYPE_SSL_CLIENTCERT: if (!(x509_f = fopen(password, "r"))) { sendnotice(sptr, "*** AUTHTYPE_SSL_CLIENTCERT: error opening file %s", password); return 0; } x509_filecert = PEM_read_X509(x509_f, NULL, NULL, NULL); fclose(x509_f); if (!x509_filecert) { sendnotice(sptr, "*** AUTHTYPE_SSL_CLIENTCERT: PEM_read_X509 errored in file %s (format error?)", password); return 0; } X509_free(x509_filecert); break; #endif default: ; } return 1; } /* * Auth_Convert2: * converts password and authtype to anAuthStruct */ static anAuthStruct *Auth_Convert2(char *password, short type) { anAuthStruct *as; as = (anAuthStruct *) MyMalloc(sizeof(anAuthStruct)); as->data = strdup(password); as->type = type; return as; } /* * Auth_FindName: * finds an authentication method name (used by /confoper) */ static char *Auth_FindName(short type) { anAuthStruct *p; for (p = AuthTypes; p->data; p++) if (p->type == type) break; return p->data; } static anAuthStruct *Auth_DoAll(aClient *sptr, char *password, char *authtype) { short type; char *encpass = NULL; if ((type = Auth_FindType(authtype)) == -1) { sendnotice(sptr, "*** %s is not a supported authentication method", authtype); return NULL; } if (!Auth_CheckError2(sptr, password, type)) { /* error message already sent */ return NULL; } if (type == AUTHTYPE_SSL_CLIENTCERT) encpass = password; else if (!(encpass = Auth_Make(type, password))) { sendnotice(sptr, "*** Authentication method %s failed", authtype); return NULL; } return Auth_Convert2(encpass, type); } // ========================================================================= static unsigned parse_password(char **authtype, char **password) { char *p; if ((p = strchr(*password, '@'))) { if (p == *password || !p[1]) return 0; *p = 0; *authtype = *password; *password = p+1; } else *authtype = "plain"; return 1; } /* * is_valid_mask: * checks whether a mask is in a correct user@host form * returns NULL on error, otherwise a pointer to '@'. */ static char *is_valid_mask(char *mask) { char *p, *mid; /* '@' */ if (!*mask || (!(mid = strchr(mask, '@')))) return NULL; if (mid == mask || !mid[1]) return NULL; /* username */ if (*mask != '~' && *mask != '*' && *mask != '?' && !isallowed(*mask)) return NULL; for (p = mask + 1; p < mid; p++) if (*p != '*' && *p != '?' && !isallowed(*p)) return NULL; /* hostname */ for (p = mid + 1; *p; p++) if ((*p != '*') && (*p != '?') && (*p != '_') && (*p != '-') && (*p != '.') && (*p != ':') && !isalnum(*p)) return NULL; return mid; } /* * check_all_masks: * Checks all user@host masks for validity in a string separated by * spaces. Returns the first bad mask, or NULL if all masks are valid. */ static char *check_all_masks(char *userhosts) { char *m, *p = NULL; char *str = strdup(userhosts); for (m = strtoken(&p, str, " "); m; m = strtoken(&p, NULL, " ")) if (!is_valid_mask(m)) { strcpy(buf, m); ircfree(str); return buf; } ircfree(str); return NULL; } static long convert_oflags(char *flags) { long oflags = 0; char *m; int *i, flag; for (m = flags; *m; m++) for (i = _OldOperFlags; (flag = *i); i += 2) if (*m == (char)(*(i + 1))) { oflags |= flag; break; } return oflags; } static void add_userhosts(ConfigItem_oper *oper, char *userhosts) { ConfigItem_oper_from *from; char *str = strdup(userhosts); char *tmp, *p = NULL; for (tmp = strtoken(&p, str, " "); tmp; tmp = strtoken(&p, NULL, " ")) { FromLoop(from, oper->from) if (!strcmp(from->name, tmp)) break; if (from) continue; from = NewFrom; from->name = strdup(tmp); AddListItem(from, oper->from); } ircfree(str); } static unsigned has_privileges(aClient *sptr, int remote) { if (!IsPerson(sptr)) return 0; if (!MyConnect(sptr)) return 1; if (opers_auth) { if (!IsAnOper(sptr) || !FindOperPass(sptr)) return 0; } else { if (!IsOper(sptr)) return 0; if (!remote) { if (!IsAdmin(sptr)) return 0; } else { if (!IsNetAdmin(sptr)) return 0; } } return 1; } static int check_target(aClient *cptr, aClient *sptr, char *command, char *token, int global, int parc, char *parv[]) { static char format[] = "%s %s %s %s %s %s %s %s"; int ret = 0; /* parc > 1 */ format[(parc - 1) * 3 - 1] = 0; if (global) sendto_serv_butone_token(cptr, sptr->name, command, token, format, parv[1], parv[2], parv[3], parv[4], parv[5], parv[6], parv[7], parv[8]); else ret = hunt_server_token(cptr, sptr, command, token, format, 1, parc, parv); format[(parc - 1) * 3 - 1] = ' '; return ret; } /* ** ADDOPER/ADDGOPER ADDROPER ** parv[0] = sender prefix sender prefix ** parv[1] = oper name server mask ** parv[2] = oper password oper name ** parv[3] = flags oper password ** parv[4] = class flags ** parv[5] = userhosts class ** parv[6] = userhosts */ static int add_oper(aClient *sptr, char *name, char *password, char *flags, char *classname, char *userhosts) { ConfigItem_oper *oper = NULL; ConfigItem_class *class = NULL; anAuthStruct *auth; char *p, *authtype; if (Find_oper(name)) { sendnotice(sptr, "*** Uyari: %s Zaten Oper Listesinde", name); return 0; } if (!parse_password(&authtype, &password)) { sendnotice(sptr, "*** Lütfen daha Degisik bi sifre bulunuz."); return 0; } if (!(class = Find_class(classname))) { sendnotice(sptr, "*** Uyari: %s Nickli Oper Kullanilmiyor", classname); return 0; } if (userhosts && (p = check_all_masks(userhosts))) { sendnotice(sptr, "*** Uyari: Sebeb: '%s' . Bu sebepten dolayy islem yapilamadi. ", p); return 0; } if (!(auth = Auth_DoAll(sptr, password, authtype))) return 0; oper = MyMallocEx(sizeof(ConfigItem_oper)); oper->name = strdup(name); oper->auth = auth; oper->class = class; oper->oflags = convert_oflags(flags); add_userhosts(oper, userhosts ? userhosts : "*@*"); AddListItem(oper, conf_oper); AddExternalOper(oper); save_opers(); sendnotice(sptr, "*** %s oper listesine eklendi.", name); ircsprintf(buf, "*** [%s] %s nickini oper listesine ekleyen %s (verdigi flag: %s, klas: %s, hostu: %s)", me.name, name, sptr->name, flags, classname, userhosts ? userhosts : "*@*"); sendto_snomask(SNO_EYES, "%s", buf); sendto_serv_butone_token(NULL, me.name, MSG_SENDSNO, TOK_SENDSNO, "e :%s", buf); return 1; } static CMD_FUNC(m_addoper) { if (!has_privileges(sptr, 0)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(4)) { sendnotice(sptr, "*** Kullanimi: /ekle <oper-nicki> <oper-sifresi> <flaglari> <klas> [:][<userhost masks>]"); sendnotice(sptr, "*** Alttaki Örnekleri Okuyunuz Ve Aynı Sekilde Yazınız Yeni Yazacaklarınızı...!!!"); sendnotice(sptr, "*** Ornek1: NetAdmin => /ekle NICK 1234567 OoawkKbBnCGAreDRhgcLZtGNzvWHe clients"); sendnotice(sptr, "*** Ornek2: Services Admini => /ekle NICK SIFRE OoawkKbBnCGArehgcLZtGzvWHe clients"); sendnotice(sptr, "*** Ornek3: Server Admini => /ekle NICK SIFRE OowkKbBnCGArehgcLZtGzvWHe clients"); sendnotice(sptr, "*** Ornek4: Co Admini => /ekle NICK SIFRE OowkKbBnCGrehgcLZtGzvWHe clients"); sendnotice(sptr, "*** Ornek5: IRCop => /ekle NICK SIFRE OowkKbBnGrehgcLZtGzvWHe clients"); return 0; } add_oper(sptr, parv[1], parv[2], parv[3], parv[4], IsParam(5) ? parv[5] : NULL); return 0; } static CMD_FUNC(m_addroper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(5)) { sendnotice(sptr, "*** Usage: /addroper <servermask> <name> [<auth-type>@]<password> <flags> <class> [:][<userhost masks>]"); sendnotice(sptr, "*** Examples: /addroper irc.server.com newlogin newpass NDRztZWHv clients"); sendnotice(sptr, "*** /addroper server2.* newlogin crypt@newpass NDRztZWHv clients :*@host1.* *@host2.*"); return 0; } if (check_target(cptr, sptr, "ADDROPER", "ORA", 0, parc, parv) == HUNTED_ISME) { add_oper(sptr, parv[2], parv[3], parv[4], parv[5], IsParam(6) ? parv[6] : NULL); } return 0; } static CMD_FUNC(m_addgoper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(4)) { sendnotice(sptr, "*** Usage: /addgoper <name> [<auth-type>@]<password> <flags> <class> [:][<userhost masks>]"); sendnotice(sptr, "*** Examples: /addgoper newlogin newpass NDRztZWHv clients"); sendnotice(sptr, "*** /addgoper newlogin crypt@newpass NDRztZWHv clients :*@host1.* *@host2.*"); return 0; } check_target(cptr, sptr, "ADDGOPER", "OGA", 1, parc, parv); add_oper(sptr, parv[1], parv[2], parv[3], parv[4], IsParam(5) ? parv[5] : NULL); return 0; } /* ** DELOPER/DELGOPER DELROPER ** parv[0] = sender prefix sender prefix ** parv[1] = oper name server mask ** parv[2] = oper name */ static int del_oper(aClient *sptr, char *login) { ConfigItem_oper *oper; BlockList *extoper; if (!(oper = Find_oper(login))) { sendnotice(sptr, "*** Oper %s does not exist", login); return 0; } if (!(extoper = FindExternalOper(oper))) { sendnotice(sptr, "*** Oper %s is not present in the external O:Line database", login); return 0; } DelListItem(oper, conf_oper); DelExternalOper(extoper); free_oper(oper); save_opers(); sendnotice(sptr, "*** %s in Operligi Silindi. ", login); ircsprintf(buf, "*** [%s] %s nickinin operini silen kisi: %s", me.name, login, sptr->name); sendto_snomask(SNO_EYES, "%s", buf); sendto_serv_butone_token(NULL, me.name, MSG_SENDSNO, TOK_SENDSNO, "e :%s", buf); return 0; } static CMD_FUNC(m_deloper) { if (!has_privileges(sptr, 0)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(1)) { sendnotice(sptr, "*** Kullanimi: /sil <oper-nicki>"); sendnotice(sptr, "*** Ornek: /sil NICK"); sendnotice(sptr, "*** Seklinde kisinin operini silebilirsiniz."); return 0; } del_oper(sptr, parv[1]); return 0; } static CMD_FUNC(m_delroper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return -1; } if (IsNotParam(2)) { sendnotice(sptr, "*** Usage: /delroper <servermask> <name>"); return 0; } if (check_target(cptr, sptr, "DELROPER", "ORD", 0, parc, parv) == HUNTED_ISME) del_oper(sptr, parv[2]); return 0; } static CMD_FUNC(m_delgoper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return -1; } if (IsNotParam(1)) { sendnotice(sptr, "*** Usage: /delgoper <name>"); return 0; } check_target(cptr, sptr, "DELGOPER", "OGD", 1, parc, parv); del_oper(sptr, parv[1]); return 0; } /* ** MODOPER/MODGOPER MODROPER ** parv[0] = sender prefix sender prefix ** parv[1] = oper name server mask ** parv[2] = option oper name ** parv[3] = value option ** parv[4] = encryption type value ** parv[5] = encryption type */ #define CHECKVALUE \ if (!value) \ { \ sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), \ me.name, sptr->name, cmd); \ return 0; \ } static int mod_oper(aClient *sptr, char *cmd, char *name, char *option, char *value, char *enctype) { ConfigItem_oper *oper; OperFlag *of; if (!(of = config_binary_flags_search(_OperFields, option, OF_TABLESIZE))) { sendnotice(sptr, "*** Invalid option %s", option); return 0; } if (!(oper = Find_oper(name))) { sendnotice(sptr, "*** Oper %s does not exist", name); return 0; } if (!FindExternalOper(oper)) { sendnotice(sptr, "*** Oper %s is not present in the external O:Line database", name); return 0; } switch (of->flag) { /* name */ case OF_NAME: { CHECKVALUE if (strchr(value, SPACE)) { sendnotice(sptr, "*** Oper names may not contain spaces"); return 0; } if (Find_oper(value)) { sendnotice(sptr, "*** Oper %s already exists", value); return 0; } ircfree(oper->name); oper->name = strdup(value); ircsprintf(buf, "%s changed the name of oper %s to %s", sptr->name, name, value); break; } /* swhois */ case OF_SWHOIS: { ircfree(oper->swhois); if (value) { oper->swhois = strdup(value); ircsprintf(buf, "%s changed the SWHOIS information for oper %s to %s", sptr->name, name, value); } else ircsprintf(buf, "%s removed the SWHOIS information from oper %s", sptr->name, name); break; } /* maxlogins */ case OF_MAXLOGINS: { oper->maxlogins = (value ? atoi(value) : 0); ircsprintf(buf, "%s changed the number of max logins for oper %s to %d", sptr->name, name, oper->maxlogins); break; } /* class */ case OF_CLASS: { ConfigItem_class *class; CHECKVALUE if (!(class = Find_class(value))) { sendnotice(sptr, "*** Unknown class %s", value); return 0; } oper->class = class; ircsprintf(buf, "%s changed the connection class of %s to %s", sptr->name, name, value); break; } /* snomask */ case OF_SNOMASK: { if (value) { if (strchr(value, SPACE)) { sendnotice(sptr, "*** Snomasks may not contain spaces"); return 0; } } ircfree(oper->snomask); if (value) { oper->snomask = strdup(value); ircsprintf(buf, "%s changed the snomask of oper %s to %s", sptr->name, name, value); } else ircsprintf(buf, "%s cleared the snomask of oper %s", sptr->name, name); break; } /* userhost */ case OF_USERHOST: { unsigned add = 1; ConfigItem_oper_from *from; CHECKVALUE if (strchr(value, SPACE)) { sendnotice(sptr, "*** Userhosts may not contain spaces"); return 0; } if (*value == '-') { add = 0; value++; } else if (*value == '+') value++; if (add && !is_valid_mask(value)) { sendnotice(sptr, "*** Bad mask '%s'", value); return 0; } FromLoop(from, oper->from) if (!strcmp(from->name, value)) break; if (add) { if (from) { sendnotice(sptr, "*** Mask %s already added", value); return 0; } from = NewFrom; from->name = strdup(value); AddListItem(from, oper->from); ircsprintf(buf, "%s added userhost '%s' for oper %s", sptr->name, value, name); } else /* del */ { if (!from) { sendnotice(sptr, "*** Mask %s not found", value); return 0; } ircfree(from->name); DelListItem(from, oper->from); MyFree(from); /* add mask *@* if oper->from is NULL */ if (!oper->from) { from = NewFrom; from->name = strdup("*@*"); AddListItem(from, oper->from); } ircsprintf(buf, "%s removed userhost '%s' from oper %s", sptr->name, value, name); } break; } /* flags */ case OF_FLAGS: { CHECKVALUE oper->oflags = convert_oflags(value); ircsprintf(buf, "%s changed the flags of oper %s to %s", sptr->name, name, oflagstr(oper->oflags)); break; } /* password */ case OF_PASSWORD: { anAuthStruct *auth; char *authtype; CHECKVALUE if (enctype) { authtype = value; value = enctype; } else authtype = "plain"; if (strchr(value, SPACE)) { sendnotice(sptr, "*** Passwords may not contain spaces"); return 0; } if (!(auth = Auth_DoAll(sptr, value, authtype))) return 0; Auth_DeleteAuthStruct(oper->auth); oper->auth = auth; ircsprintf(buf, "%s set a new password for oper %s", sptr->name, name); break; } } save_opers(); sendnotice(sptr, "*** Oper %s modified succesfully", name); sendto_snomask(SNO_EYES, "*** [%s] %s", me.name, buf); sendto_serv_butone_token(NULL, me.name, MSG_SENDSNO, TOK_SENDSNO, "e :*** [%s] %s", me.name, buf); return 0; } static CMD_FUNC(m_modoper) { if (!has_privileges(sptr, 0)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(2)) { sendnotice(sptr, "*** Usage: /modoper <name> name|class|flags <value>"); sendnotice(sptr, "*** /modoper <name> swhois|snomask|maxlogins [:][<value>]"); sendnotice(sptr, "*** /modoper <name> password [<auth method>] <password>"); sendnotice(sptr, "*** /modoper <name> userhost +|-<mask>"); sendnotice(sptr, "*** Examples: /modoper someone snomask cFfkejvGq"); sendnotice(sptr, "*** /modoper someone swhois :This is the new swhois info"); sendnotice(sptr, "*** /modoper someone password crypt newpass"); return 0; } mod_oper(sptr, "MODOPER", parv[1], parv[2], IsParam(3) ? parv[3] : NULL, IsParam(4) ? parv[4] : NULL); return 0; } static CMD_FUNC(m_modroper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(3)) { sendnotice(sptr, "*** Usage: /modroper <servermask> <name> name|class|flags <value>"); sendnotice(sptr, "*** /modroper <servermask> <name> swhois|snomask|maxlogins [:][<value>]"); sendnotice(sptr, "*** /modroper <servermask> <name> password [<auth method>] <password>"); sendnotice(sptr, "*** /modroper <servermask> <name> userhost +|-<mask>"); sendnotice(sptr, "*** Examples: /modroper server2.* someone snomask cFfkejvGq"); sendnotice(sptr, "*** /modroper irc.* someone swhois :This is the new swhois info"); sendnotice(sptr, "*** /modroper server1.* someone password crypt newpass"); return 0; } if (check_target(cptr, sptr, "MODROPER", "ORM", 0, parc, parv) == HUNTED_ISME) { mod_oper(sptr, "MODROPER", parv[2], parv[3], IsParam(4) ? parv[4] : NULL, IsParam(5) ? parv[5] : NULL); } return 0; } static CMD_FUNC(m_modgoper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(2)) { sendnotice(sptr, "*** Usage: /modgoper <name> name|class|flags <value>"); sendnotice(sptr, "*** /modgoper <name> swhois|snomask|maxlogins [:][<value>]"); sendnotice(sptr, "*** /modgoper <name> password [<auth method>] <password>"); sendnotice(sptr, "*** /modgoper <name> userhost +|-<mask>"); sendnotice(sptr, "*** Examples: /modgoper someone snomask cFfkejvGq"); sendnotice(sptr, "*** /modgoper someone swhois :This is the new swhois info"); sendnotice(sptr, "*** /modgoper someone password crypt newpass"); return 0; } check_target(cptr, sptr, "MODGOPER", "OGM", 1, parc, parv); mod_oper(sptr, "MODGOPER", parv[1], parv[2], IsParam(3) ? parv[3] : NULL, IsParam(4) ? parv[4] : NULL); return 0; } /* ** CONFOPER CONFROPER ** parv[0] = sender prefix sender prefix ** parv[1] = oper name server mask ** parv[2] = oper name */ #define MaxSize (sizeof(confstr) - strlen(confstr) - 1) static int show_oper(aClient *sptr, char *login) { static char confstr[BUFSIZE+1], tmp[BUFSIZE+1]; ConfigItem_oper *oper; ConfigItem_oper_from *from; char *authtype; if (!(oper = Find_oper(login))) { sendnotice(sptr, "*** Oper %s does not exist", login); return 0; } memset(&confstr, 0, sizeof confstr); memset(&tmp, 0, sizeof tmp); snprintf(confstr, sizeof confstr, "oper %s { password \"%s\" { %s; }; flags %s; class %s; ", oper->name, oper->auth->data, (authtype = Auth_FindName(oper->auth->type)) ? authtype : "plain", oflagstr(oper->oflags), oper->class->name); strncat(confstr, "from { ", MaxSize); FromLoop(from, oper->from) { snprintf(tmp, sizeof tmp, "userhost %s; ", from->name); strncat(confstr, tmp, MaxSize); } strncat(confstr, "}; ", MaxSize); if (oper->swhois) { snprintf(tmp, sizeof tmp, "swhois \"%s\"; ", oper->swhois); strncat(confstr, tmp, MaxSize); } if (oper->snomask) { snprintf(tmp, sizeof tmp, "snomask %s; ", oper->snomask); strncat(confstr, tmp, MaxSize); } if (oper->maxlogins) { snprintf(tmp, sizeof tmp, "maxlogins %d; ", oper->maxlogins); strncat(confstr, tmp, MaxSize); } strncat(confstr, "};", MaxSize); sendnotice(sptr, "*** %s", confstr); return 0; } static CMD_FUNC(m_confoper) { if (!has_privileges(sptr, 0)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(1)) { sendnotice(sptr, "*** Usage: /confoper <name>"); return 0; } show_oper(sptr, parv[1]); return 0; } static CMD_FUNC(m_confroper) { if (!has_privileges(sptr, 1)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; } if (IsNotParam(2)) { sendnotice(sptr, "*** Usage: /confroper <servermask> <name>"); return 0; } if (check_target(cptr, sptr, "CONFROPER", "ORC", 0, parc, parv) == HUNTED_ISME) show_oper(sptr, parv[2]); return 0; } static int m_masterpass(aClient *cptr, aClient *sptr, int parc, char *parv[]) { char *password; if (!MyClient(sptr) || !IsPerson(sptr) || !IsAnOper(sptr)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, sptr->name); return 0; } password = IsParam(1) ? parv[1] : NULL; if (!password) { sendnotice(sptr, "*** Usage: /masterpass <password>"); return 0; } if (!opers_auth) { sendnotice(sptr, "*** Password authentication is disabled"); return 0; } if (FindOperPass(sptr)) { sendnotice(sptr, "*** You have already authenticated"); return 0; } if (Auth_Check(sptr, opers_auth, password) == -1) { sendto_one(sptr, err_str(ERR_PASSWDMISMATCH), me.name, sptr->name); ircsprintf(buf, "*** [%s] %s tried to use /masterpass with a wrong password", me.name, sptr->name); sendto_snomask(SNO_EYES, "%s", buf); sendto_serv_butone_token(NULL, me.name, MSG_SENDSNO, TOK_SENDSNO, "e :%s", buf); return 0; } AddOperPass(sptr); sendnotice(sptr, "*** Successful authentication"); ircsprintf(buf, "*** [%s] %s has passed the master password authentication", me.name, sptr->name); sendto_snomask(SNO_EYES, "%s", buf); sendto_serv_butone_token(NULL, me.name, MSG_SENDSNO, TOK_SENDSNO, "e :%s", buf); return 0; }

Buyrun Modul

 
Alıntı ile Cevapla

Alt 01 Ocak 2011, 18:43   #6
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




Bu modulu kullanmamanızı tavsiye ederim çünkü bütün adminlerin bu modul ile kafalarına göre admin ekleme imkanı var yani bunda nick kısıtlaması vs. yok.....

 
Alıntı ile Cevapla

Alt 05 Ekim 2011, 12:42   #7
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




Bu Yetkiyi Sadece RootAdmine Veremezmiyiz?

 
Alıntı ile Cevapla

Alt 05 Ekim 2011, 16:12   #8
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /EKLE Komutunu Aktifleştirmek istiyorum.




Root Admin diye bir flag yaptıysanız verebilirsiniz, fakat yapmadıysanız NETWORK Adminlerin hepsi kullanabilir bu komutu.

__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

Cevapla

Etiketler
aktifleştirmek, istiyorum, komutunu, or ekle


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

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
SendRaw Komutunu Aktifleştirmek istiyorum. CoKraiL Unreal IRCd 1 18 Ekim 2010 00:25
/ekle komutunu nasıl silebiliriz Mustafa Servisler 5 25 Şubat 2009 04:52
/Map komutunu sadece RootAdmin'in kullanmasini istiyorum? k3y Unreal IRCd 4 06 Ocak 2008 12:12