hs_del_secondlevel(slfh, 0);
}
- struct hs_toplevel *ctlfh;
+ struct hs_toplevel *ctlfh, *last_tlfh = NULL;
for(ctlfh = toplevels; ctlfh; ctlfh = ctlfh->next) {
- if(ctlfh->next == tlfh) {
- ctlfh->next = tlfh->next;
- } else if(ctlfh == tlfh) {
- ctlfh = tlfh;
- }
- }
- /*free(tlfh->fakehost);
- free(tlfh);*/
+ if(ctlfh == tlfh) {
+ if(last_tlfh)
+ last_tlfh->next = ctlfh->next;
+ else
+ toplevels = ctlfh->next;
+ } else
+ last_tlfh = ctlfh;
+ }
+ free(tlfh->fakehost);
+ free(tlfh);
}
static struct hs_secondlevel *hs_add_secondlevel(struct hs_toplevel *tlfh, const char *name) {
}
static void activateAssignment(struct hs_assignment *assignment) {
- struct hs_toplevel *tlfh;
- struct hs_secondlevel *slfh;
- struct hs_user *hs_user;
- struct hs_assignment *assgn;
- char fakehost[140];
- char *prefix = "$";
-
- hs_user = assignment->user;
- if(hs_user->assignments) {
- for(assgn = hs_user->assignments; assgn; assgn = assgn->unext) {
- assgn->active = 0;
- }
- }
- slfh = assignment->secondlevel;
- tlfh = slfh->toplevel;
- sprintf(fakehost, "%s.%s.%s", prefix, slfh->fakehost, tlfh->fakehost);
- hs_user->hi->fakehost = strdup(fakehost);
- apply_fakehost(hs_user->hi, NULL);
- assignment->active = 1;
+ struct hs_toplevel *tlfh;
+ struct hs_secondlevel *slfh;
+ struct hs_user *hs_user;
+ struct hs_assignment *assgn;
+ char fakehost[140];
+ char *prefix = "$";
+
+ hs_user = assignment->user;
+ if(hs_user->assignments) {
+ for(assgn = hs_user->assignments; assgn; assgn = assgn->unext) {
+ assgn->active = 0;
+ }
+ }
+ slfh = assignment->secondlevel;
+ tlfh = slfh->toplevel;
+ sprintf(fakehost, "%s.%s.%s", prefix, slfh->fakehost, tlfh->fakehost);
+ hs_user->hi->fakehost = strdup(fakehost);
+ apply_fakehost(hs_user->hi, NULL);
+ assignment->active = 1;
}
static struct hs_assignment *hs_add_assignment(struct hs_secondlevel *slfh, struct hs_user *user) {
prev_assignment = NULL;
}
if(remove_from_slfh != 2) {
+ prev_assignment = NULL;
for(cassignment = assignment->user->assignments; cassignment; cassignment = cassignment->unext) {
if(cassignment == assignment) {
if(prev_assignment)
}
}
if(tlfh) {
- for(manager = user->managements; manager; manager = manager->next) {
- if(manager->type == 1 && manager->object == tlfh)
- return 1;
- }
+ for(manager = user->managements; manager; manager = manager->next) {
+ if(manager->type == 1 && manager->object == tlfh)
+ return 1;
+ }
}
return 0;
}
}
static MODCMD_FUNC(cmd_addhost) {
- struct handle_info *hi;
- if (!(hi = user->handle_info)) {
+ struct handle_info *hi;
+ if (!(hi = user->handle_info)) {
reply("NSMSG_MUST_AUTH");
return 0;
}
- char *slfh_name = argv[1];
+ char *slfh_name = argv[1];
char *tlfh_name = strchr(argv[1], '.');
if(!tlfh_name) {
- reply("HSMSG_TOPLEVEL_INVALID", slfh_name);
- return 0;
+ reply("HSMSG_TOPLEVEL_INVALID", slfh_name);
+ return 0;
}
*tlfh_name = '\0';
tlfh_name++;
return 0;
}
if(!irccasecmp(slfh_name, "*")) {
- if(hi->opserv_level >= hostserv_conf.toplevel_access) {
- struct hs_toplevel *tlfh;
- for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
- if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
- }
- if(tlfh) {
- reply("HSMSG_FAKEHOST_TOPLEVEL_ALREADY_EXISTS", slfh_name, tlfh_name);
- return 0;
- }
- hs_add_toplevel(tlfh_name);
- reply("HSMSG_FAKEHOST_TOPLEVEL_ADDED", tlfh_name);
- return 1;
- }
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ if(hi->opserv_level >= hostserv_conf.toplevel_access) {
+ struct hs_toplevel *tlfh;
+ for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
+ if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
+ }
+ if(tlfh) {
+ reply("HSMSG_FAKEHOST_TOPLEVEL_ALREADY_EXISTS", slfh_name, tlfh_name);
+ return 0;
+ }
+ hs_add_toplevel(tlfh_name);
+ reply("HSMSG_FAKEHOST_TOPLEVEL_ADDED", tlfh_name);
+ return 1;
+ }
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
- } else {
- struct hs_secondlevel *slfh;
- struct hs_toplevel *tlfh;
- for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
- if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
- }
- if(!tlfh) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
- if(!irccasecmp(slfh->fakehost, slfh_name)) break;
- }
- if(slfh) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- if(!check_management_access(hi, tlfh, NULL)) {
- reply("HSMSG_FAKEHOST_SECONDLEVEL_ALREADY_EXISTS", slfh_name, tlfh_name);
- return 0;
- }
- hs_add_secondlevel(tlfh, slfh_name);
- reply("HSMSG_FAKEHOST_SECONDLEVEL_ADDED", slfh_name, tlfh_name);
- }
- return 0;
+ } else {
+ struct hs_secondlevel *slfh;
+ struct hs_toplevel *tlfh;
+ for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
+ if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
+ }
+ if(!tlfh) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
+ if(!irccasecmp(slfh->fakehost, slfh_name)) break;
+ }
+ if(slfh) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ if(!check_management_access(hi, tlfh, NULL)) {
+ reply("HSMSG_FAKEHOST_SECONDLEVEL_ALREADY_EXISTS", slfh_name, tlfh_name);
+ return 0;
+ }
+ hs_add_secondlevel(tlfh, slfh_name);
+ reply("HSMSG_FAKEHOST_SECONDLEVEL_ADDED", slfh_name, tlfh_name);
+ }
+ return 0;
}
static MODCMD_FUNC(cmd_delhost) {
- struct handle_info *hi;
- if (!(hi = user->handle_info)) {
+ struct handle_info *hi;
+ if (!(hi = user->handle_info)) {
reply("NSMSG_MUST_AUTH");
return 0;
}
- char *slfh_name = argv[1];
+ char *slfh_name = argv[1];
char *tlfh_name = strchr(argv[1], '.');
*tlfh_name = '\0';
tlfh_name++;
if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
}
if(!tlfh) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
}
if(!irccasecmp(slfh_name, "*")) {
- if(hi->opserv_level < hostserv_conf.toplevel_access) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- hs_del_toplevel(tlfh);
- reply("HSMSG_FAKEHOST_TOPLEVEL_DELETED", tlfh_name);
- return 1;
- } else {
- struct hs_secondlevel *slfh;
- for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
- if(!irccasecmp(slfh->fakehost, slfh_name)) break;
- }
- if(!slfh || !check_management_access(hi, tlfh, NULL)) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- hs_del_secondlevel(slfh, 1);
- reply("HSMSG_FAKEHOST_SECONDLEVEL_DELETED", slfh_name, tlfh_name);
- }
- return 0;
+ if(hi->opserv_level < hostserv_conf.toplevel_access) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ hs_del_toplevel(tlfh);
+ reply("HSMSG_FAKEHOST_TOPLEVEL_DELETED", tlfh_name);
+ return 1;
+ } else {
+ struct hs_secondlevel *slfh;
+ for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
+ if(!irccasecmp(slfh->fakehost, slfh_name)) break;
+ }
+ if(!slfh || !check_management_access(hi, tlfh, NULL)) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ hs_del_secondlevel(slfh, 1);
+ reply("HSMSG_FAKEHOST_SECONDLEVEL_DELETED", slfh_name, tlfh_name);
+ }
+ return 0;
}
static MODCMD_FUNC(cmd_view) {
if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
}
if(!tlfh) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
}
if(!irccasecmp(slfh_name, "*")) {
if(!check_management_access(hi, tlfh, NULL)) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
}
cmd_view_toplevel_information(user, cmd, tlfh);
if(!irccasecmp(slfh->fakehost, slfh_name)) break;
}
if(!slfh || !check_management_access(hi, tlfh, slfh)) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
}
cmd_view_secondlevel_information(user, cmd, slfh);
struct handle_info *hi;
char *fakehost;
if(argc >= 3) {
- if(!strchr(argv[1], '.')) {
- if (!(hi = modcmd_get_handle_info(user, argv[1])))
- return 0;
- fakehost = argv[2];
- } else {
- if (!(hi = modcmd_get_handle_info(user, argv[2])))
- return 0;
- fakehost = argv[1];
- }
- char *slfh_name = fakehost;
- char *tlfh_name = strchr(fakehost, '.');
- *tlfh_name = '\0';
- tlfh_name++;
- if(strchr(tlfh_name, '.')) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- struct hs_toplevel *tlfh;
- struct hs_secondlevel *slfh = NULL;
- for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
- if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
- }
- if(!tlfh) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- if(!irccasecmp(slfh_name, "*")) {
- if(!check_management_access(user->handle_info, tlfh, NULL)) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- } else {
- for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
- if(!irccasecmp(slfh->fakehost, slfh_name)) break;
- }
- if(!slfh || !check_management_access(user->handle_info, tlfh, slfh)) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- }
- struct hs_user *huser = hs_get_user(hi, 1);
- struct hs_manager *manager;
- if(slfh) {
- for(manager = huser->managements; manager; manager = manager->next) {
- if(manager->type == 2 && manager->object == slfh) {
- reply("HSMSG_MANAGER_ALREADY", hi->handle, slfh_name, tlfh_name);
- return 0;
- }
- }
- }
- for(manager = huser->managements; manager; manager = manager->next) {
- if(manager->type == 1 && manager->object == tlfh) {
- reply("HSMSG_MANAGER_ALREADY", hi->handle, "*", tlfh_name);
- return 0;
- }
- }
- if(slfh)
- hs_add_manager_secondlevel(slfh, huser);
- else
- hs_add_manager_toplevel(tlfh, huser);
- reply("HSMSG_MANAGER_ADDED", hi->handle, slfh_name, tlfh_name);
+ if(!strchr(argv[1], '.')) {
+ if (!(hi = modcmd_get_handle_info(user, argv[1])))
+ return 0;
+ fakehost = argv[2];
+ } else {
+ if (!(hi = modcmd_get_handle_info(user, argv[2])))
+ return 0;
+ fakehost = argv[1];
+ }
+ char *slfh_name = fakehost;
+ char *tlfh_name = strchr(fakehost, '.');
+ *tlfh_name = '\0';
+ tlfh_name++;
+ if(strchr(tlfh_name, '.')) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ struct hs_toplevel *tlfh;
+ struct hs_secondlevel *slfh = NULL;
+ for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
+ if(!irccasecmp(tlfh->fakehost, tlfh_name)) break;
+ }
+ if(!tlfh) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ if(!irccasecmp(slfh_name, "*")) {
+ if(!check_management_access(user->handle_info, tlfh, NULL)) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ } else {
+ for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
+ if(!irccasecmp(slfh->fakehost, slfh_name)) break;
+ }
+ if(!slfh || !check_management_access(user->handle_info, tlfh, slfh)) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ }
+ struct hs_user *huser = hs_get_user(hi, 1);
+ struct hs_manager *manager;
+ if(slfh) {
+ for(manager = huser->managements; manager; manager = manager->next) {
+ if(manager->type == 2 && manager->object == slfh) {
+ reply("HSMSG_MANAGER_ALREADY", hi->handle, slfh_name, tlfh_name);
+ return 0;
+ }
+ }
+ }
+ for(manager = huser->managements; manager; manager = manager->next) {
+ if(manager->type == 1 && manager->object == tlfh) {
+ reply("HSMSG_MANAGER_ALREADY", hi->handle, "*", tlfh_name);
+ return 0;
+ }
+ }
+ if(slfh)
+ hs_add_manager_secondlevel(slfh, huser);
+ else
+ hs_add_manager_toplevel(tlfh, huser);
+ reply("HSMSG_MANAGER_ADDED", hi->handle, slfh_name, tlfh_name);
return 1;
}
return 0;
fakehost = argv[1];
}
if(!fakehost) {
- reply("HSMSG_ASSIGNED_NONE");
- return 0;
+ reply("HSMSG_ASSIGNED_NONE");
+ return 0;
}
char *slfh_name = fakehost;
char *tlfh_name = strchr(fakehost, '.');
if(tlfh_name) {
- *tlfh_name = '\0';
+ *tlfh_name = '\0';
} else {
- reply("HSMSG_ASSIGNED_NONE");
- return 0;
+ reply("HSMSG_ASSIGNED_NONE");
+ return 0;
}
tlfh_name++;
if(strchr(tlfh_name, '.')) {
}
static MODCMD_FUNC(cmd_set) {
- struct handle_info *hi;
- struct hs_user *hs_user;
- struct hs_assignment *assignment;
- struct hs_assignment *assgn;
- struct hs_toplevel *tlfh;
- struct hs_secondlevel *slfh;
- char *fakehost;
-
- if (!(hi = user->handle_info)) {
- reply("NSMSG_MUST_AUTH");
- return 0;
- }
- hs_user = hs_get_user(hi, 0);
- if(!strcmp(argv[1], "*")) {
- hi->fakehost = NULL;
- apply_fakehost(hi, NULL);
- if(hs_user->assignments) {
- for(assgn = hs_user->assignments; assgn; assgn = assgn->unext) {
- assgn->active = 0;
- }
- }
- return 1;
- } else {
- if(!strchr(argv[1], '.')) {
- return 0;
- }
- fakehost = argv[1];
- char *slfh_name = fakehost;
- char *tlfh_name = strchr(fakehost, '.');
- *tlfh_name = '\0';
- tlfh_name++;
- if(strchr(tlfh_name, '.')) {
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- for(assignment = hs_user->assignments; assignment; assignment = assignment->unext) {
- slfh = assignment->secondlevel;
- tlfh = slfh->toplevel;
- if(!irccasecmp(slfh_name, slfh->fakehost)) {
- if(!irccasecmp(tlfh_name, tlfh->fakehost)) {
- activateAssignment(assignment);
- reply("HSMSG_FAKEHOST_SET_SUCCESS", slfh->fakehost, tlfh->fakehost);
- return 1;
- }
- }
- }
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
+ struct handle_info *hi;
+ struct hs_user *hs_user;
+ struct hs_assignment *assignment;
+ struct hs_assignment *assgn;
+ struct hs_toplevel *tlfh;
+ struct hs_secondlevel *slfh;
+ char *fakehost;
+
+ if (!(hi = user->handle_info)) {
+ reply("NSMSG_MUST_AUTH");
+ return 0;
+ }
+ hs_user = hs_get_user(hi, 0);
+ if(!strcmp(argv[1], "*")) {
+ hi->fakehost = NULL;
+ apply_fakehost(hi, NULL);
+ if(hs_user->assignments) {
+ for(assgn = hs_user->assignments; assgn; assgn = assgn->unext) {
+ assgn->active = 0;
+ }
+ }
+ return 1;
+ } else {
+ if(!strchr(argv[1], '.')) {
+ return 0;
+ }
+ fakehost = argv[1];
+ char *slfh_name = fakehost;
+ char *tlfh_name = strchr(fakehost, '.');
+ *tlfh_name = '\0';
+ tlfh_name++;
+ if(strchr(tlfh_name, '.')) {
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ for(assignment = hs_user->assignments; assignment; assignment = assignment->unext) {
+ slfh = assignment->secondlevel;
+ tlfh = slfh->toplevel;
+ if(!irccasecmp(slfh_name, slfh->fakehost)) {
+ if(!irccasecmp(tlfh_name, tlfh->fakehost)) {
+ activateAssignment(assignment);
+ reply("HSMSG_FAKEHOST_SET_SUCCESS", slfh->fakehost, tlfh->fakehost);
+ return 1;
+ }
+ }
+ }
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
}
static MODCMD_FUNC(cmd_assign) {
- struct handle_info *hi;
- struct handle_info *hiuser;
+ struct handle_info *hi;
+ struct handle_info *hiuser;
char *fakehost;
if(!strchr(argv[1], '.')) {
if (!(hi = modcmd_get_handle_info(user, argv[1])))
fakehost = argv[1];
}
if (!(hiuser = user->handle_info)) {
- reply("NSMSG_MUST_AUTH");
- return 0;
- }
+ reply("NSMSG_MUST_AUTH");
+ return 0;
+ }
if(!fakehost) {
- reply("HSMSG_ASSIGNED_NONE");
- return 0;
+ reply("HSMSG_ASSIGNED_NONE");
+ return 0;
}
char *slfh_name = fakehost;
char *tlfh_name = strchr(fakehost, '.');
if(tlfh_name) {
- *tlfh_name = '\0';
+ *tlfh_name = '\0';
} else {
- reply("HSMSG_ASSIGNED_NONE");
- return 0;
+ reply("HSMSG_ASSIGNED_NONE");
+ return 0;
}
tlfh_name++;
if(strchr(tlfh_name, '.')) {
struct hs_secondlevel *slfh;
struct hs_user *hs_user = hs_get_user(hi, 1);
for(tlfh = toplevels; tlfh; tlfh = tlfh->next) {
- if(!irccasecmp(tlfh_name, tlfh->fakehost)) {
- for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
- if(!irccasecmp(slfh_name, slfh->fakehost)) {
- if(check_management_access(hiuser, tlfh, slfh)) {
- hs_add_assignment(slfh, hs_user);
- reply("HSMSG_FAKEHOST_ASSIGN_SUCCESS", slfh_name, tlfh_name);
- return 1;
- }
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- }
- }
+ if(!irccasecmp(tlfh_name, tlfh->fakehost)) {
+ for(slfh = tlfh->secondlevel; slfh; slfh = slfh->next) {
+ if(!irccasecmp(slfh_name, slfh->fakehost)) {
+ if(check_management_access(hiuser, tlfh, slfh)) {
+ hs_add_assignment(slfh, hs_user);
+ reply("HSMSG_FAKEHOST_ASSIGN_SUCCESS", slfh_name, tlfh_name);
+ return 1;
+ }
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ }
+ }
}
reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
}
static MODCMD_FUNC(cmd_revoke) {
- struct handle_info *hi;
- struct handle_info *hiuser;
+ struct handle_info *hi;
+ struct handle_info *hiuser;
char *fakehost;
if(!strchr(argv[1], '.')) {
if (!(hi = modcmd_get_handle_info(user, argv[1])))
fakehost = argv[1];
}
if (!(hiuser = user->handle_info)) {
- reply("NSMSG_MUST_AUTH");
- return 0;
- }
+ reply("NSMSG_MUST_AUTH");
+ return 0;
+ }
if(!fakehost) {
- reply("HSMSG_ASSIGNED_NONE");
- return 0;
+ reply("HSMSG_ASSIGNED_NONE");
+ return 0;
}
char *slfh_name = fakehost;
char *tlfh_name = strchr(fakehost, '.');
if(tlfh_name) {
- *tlfh_name = '\0';
+ *tlfh_name = '\0';
} else {
- reply("HSMSG_ASSIGNED_NONE");
- return 0;
+ reply("HSMSG_ASSIGNED_NONE");
+ return 0;
}
tlfh_name++;
if(strchr(tlfh_name, '.')) {
struct hs_assignment *assignment;
struct hs_user *hs_user = hs_get_user(hi, 0);
for(assignment = hs_user->assignments; assignment; assignment = assignment->unext) {
- if(!irccasecmp(slfh_name, assignment->secondlevel->fakehost)) {
- if(!irccasecmp(tlfh_name, assignment->secondlevel->toplevel->fakehost)) {
- if(check_management_access(hi, assignment->secondlevel->toplevel, assignment->secondlevel)) {
- hs_del_assignment(assignment, 1);
- reply("HSMSG_FAKEHOST_REVOKE_SUCCESS", slfh_name, tlfh_name);
- return 1;
- }
- reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
- return 0;
- }
- }
+ if(!irccasecmp(slfh_name, assignment->secondlevel->fakehost)) {
+ if(!irccasecmp(tlfh_name, assignment->secondlevel->toplevel->fakehost)) {
+ if(check_management_access(hi, assignment->secondlevel->toplevel, assignment->secondlevel)) {
+ hs_del_assignment(assignment, 1);
+ reply("HSMSG_FAKEHOST_REVOKE_SUCCESS", slfh_name, tlfh_name);
+ return 1;
+ }
+ reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
+ return 0;
+ }
+ }
}
reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
return 0;
/*str = database_get_data(conf_node, "description", RECDB_QSTRING);
hostserv_conf.description = (str ? str : NULL);*/
- str = database_get_data(conf_node, KEY_TITLEHOST_SUFFIX, RECDB_QSTRING);
+ str = database_get_data(conf_node, KEY_TITLEHOST_SUFFIX, RECDB_QSTRING);
title_suffix = str ? str : "example.net";
}
/* nothing in here, yet */
managerTL = hs_add_manager_toplevel(tlfh, user);
if (database_get_data(db, KEY_ACTIVE, RECDB_QSTRING))
- managerTL->active = 1;
+ managerTL->active = 1;
else
- managerTL->active = 0;
+ managerTL->active = 0;
}
}
/* nothing in here, yet */
managerSL = hs_add_manager_secondlevel(slfh, user);
if (database_get_data(db, KEY_ACTIVE, RECDB_QSTRING))
- managerSL->active = 1;
+ managerSL->active = 1;
else
- managerSL->active = 0;
+ managerSL->active = 0;
}
}
saxdb_start_record(ctx, manager->user->hi->handle, 0);
//additional manager information?
if(manager->active)
- saxdb_write_int(ctx, KEY_ACTIVE, manager->active);
+ saxdb_write_int(ctx, KEY_ACTIVE, manager->active);
saxdb_end_record(ctx);
}
saxdb_end_record(ctx);
saxdb_start_record(ctx, manager->user->hi->handle, 0);
//additional manager information?
if(manager->active)
- saxdb_write_int(ctx, KEY_ACTIVE, manager->active);
+ saxdb_write_int(ctx, KEY_ACTIVE, manager->active);
saxdb_end_record(ctx);
}
saxdb_end_record(ctx);
}
int hostserv_init() {
- HS_LOG = log_register_type("HostServ", "file:hostserv.log");
+ HS_LOG = log_register_type("HostServ", "file:hostserv.log");
- const char *nick, *modes;
- if((nick = conf_get_data("modules/hostserv/nick", RECDB_QSTRING))) {
- modes = conf_get_data("modules/hostserv/modes", RECDB_QSTRING);
- hostserv = AddLocalUser(nick, nick, NULL, "Host Service", modes);
- hostserv_service = service_register(hostserv);
- hostserv_service->trigger = '*';
- }
-
- conf_register_reload(hostserv_conf_read);
- reg_exit_func(hostserv_db_cleanup);
- saxdb_register("HostServ", hostserv_saxdb_read, hostserv_saxdb_write);
- hostserv_module = module_register("HostServ", HS_LOG, "mod-hostserv.help", NULL);
- modcmd_register(hostserv_module, "view", cmd_view, 0, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "addmanager", cmd_addmanager, 3, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "delmanager", cmd_delmanager, 3, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "set", cmd_set, 2, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "assign", cmd_assign, 3, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "revoke", cmd_revoke, 3, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "addhost", cmd_addhost, 2, MODCMD_REQUIRE_AUTHED, NULL);
- modcmd_register(hostserv_module, "delhost", cmd_delhost, 2, MODCMD_REQUIRE_AUTHED, NULL);
- message_register_table(msgtab);
- return 1;
+ const char *nick, *modes;
+ if((nick = conf_get_data("modules/hostserv/nick", RECDB_QSTRING))) {
+ modes = conf_get_data("modules/hostserv/modes", RECDB_QSTRING);
+ hostserv = AddLocalUser(nick, nick, NULL, "Host Service", modes);
+ hostserv_service = service_register(hostserv);
+ hostserv_service->trigger = '*';
+ }
+
+ conf_register_reload(hostserv_conf_read);
+ reg_exit_func(hostserv_db_cleanup);
+ saxdb_register("HostServ", hostserv_saxdb_read, hostserv_saxdb_write);
+ hostserv_module = module_register("HostServ", HS_LOG, "mod-hostserv.help", NULL);
+ modcmd_register(hostserv_module, "view", cmd_view, 0, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "addmanager", cmd_addmanager, 3, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "delmanager", cmd_delmanager, 3, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "set", cmd_set, 2, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "assign", cmd_assign, 3, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "revoke", cmd_revoke, 3, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "addhost", cmd_addhost, 2, MODCMD_REQUIRE_AUTHED, NULL);
+ modcmd_register(hostserv_module, "delhost", cmd_delhost, 2, MODCMD_REQUIRE_AUTHED, NULL);
+ message_register_table(msgtab);
+ return 1;
}
int hostserv_finalize(void) {
- dict_t conf_node;
- const char *str;
+ dict_t conf_node;
+ const char *str;
str = "modules/hostserv";
if (!(conf_node = conf_get_data(str, RECDB_OBJECT))) {