UltimateIRCd Development > UltimateIRCd 3.1 (Development) Support

Help Needed with hiding links,map from normal users


Evening all
i just installed the latest version of UltimatIRCd
running with anope services

I`m trying to find out how to stop normal users doing a /links or /map
is this possible, if so where is it hiding

very hard question then ?

# Do you want to hide U lined servers from /LIST's for non Opers?
# Generally a good idea and required on many Networks.
Set hideulinedservs ............: 1

well it cant be that can it ?

i thought the idea of a U line added to a server is to give
services access NO !
if so why adding a U line to all my servers are they not hidden from the public view when they do /links or /map

If you want takeovers happening on netsplits and other fun things, go on and add U:Lines for all your servers. Believe me, you don't want to do it.

Furthermore, we're all volenteers and not slamming F5 on the forums all day so be a little patient.

If you want to block links and map for users you'll need to make some source modifications.. Just check wether the user is an oper or not (IsOper(client_p) or something) at the top of the links and map functions.

Sorry bud i was just frustrated

What i ment was by adding U:lines for (services)
on each box, not servers, i was under the impression that
i needed to add U:lines << just for services Only on each box

so your answer is that we need to get some 1 to tinker with the source ?

Cheers Gaz

You want to hide servers from /LINKS and /MAP right ??

This means you have to modify alot of commands.



I'll give you a few examples of codes you need to alter.
Locate: src/whowas.c
Find the section:

--- Code: ---
          sendto_one (source_p, rpl_str (RPL_WHOISSERVER),
                      me.name, parv[0], temp->name,
                      temp->servername, myctime (temp->logoff));
--- End code ---

and replace it with something like this below:

--- Code: ---
        /* erich - In case of whowas, only show the real server to opers */
        if (IsAnOper (source_p)) {
          sendto_one (source_p, rpl_str (RPL_WHOISSERVER),
                      me.name, parv[0], temp->name,
                      temp->servername, myctime (temp->logoff));
        } else {
          sendto_one (source_p, rpl_str (RPL_WHOISSERVER),
                      me.name, parv[0], temp->name,
                      "irc.After-All.org", myctime (temp->logoff));

--- End code ---

LINKS is in src/s_serv.c around line 2120-2150. I've done it so that it only shows the round robin dns names. Like this:

--- Code: ---
    sendto_one (source_p, rpl_str (RPL_LINKS),
                me.name, parv[0], "irc.After-All.org", "irc.After-All.org",
                1, "(Unknown Location)");
    sendto_one (source_p, rpl_str (RPL_LINKS),
                me.name, parv[0], "eu.After-All.org", "irc.After-All.org",
                1, "Europe");
    sendto_one (source_p, rpl_str (RPL_LINKS),
                me.name, parv[0], "us.After-All.org", "irc.After-All.org",
                1, "USA");

--- End code ---

WHOIS is in src/s_user.c around line 2700. Again I've modified the function to work normally for OPERs but only show "irc.After-All.org" as connected to for a normal user.

But thats up to you how you like it to act. Modifying the code isn't very hard. Just give it a GO!!


[0] Message Index

Go to full version