View Issue Details

IDProjectCategoryView StatusLast Update
0002701unrealircdpublic2010-07-02 10:24
ReporterRobby22 Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status acknowledgedResolutionopen 
Platformi586OSRed Hat LinuxOS Version7.3
Product Version3.2.4 
Summary0002701: Excepting some servers from a deny version block (like services)
DescriptionI was thinking if there was such an option but it seems there isn't...
The reason being that I set a deny version block like so:
deny version {
        mask *;
        version <2306;
        flags eZ;
};

..and now services can't link unless I remove it again, so maybe it would be handy to be able to specify a server which is to be excepted from the version check like for example the Services server, while still being able to block all (*) other real servers not matching the deny version block.
TagsNo tags attached.
3rd party modules

Activities

w00t

2005-11-20 21:31

reporter   ~0010787

What services are they? Most (sensible) services send UnProto *, meaning all versions - which should make them exempt. Might want to talk to your Services people about that one :P.

(Auspice is the only one I know that doesn't follow this, by the way.)

Robby22

2005-11-21 00:14

reporter   ~0010789

The services I use is Anope.

If they do send * too, then it could be because of the flags setting, that's why I thought that it would be a handy feature to be able to except services from/in a deny version block.

aquanight

2005-11-21 12:40

reporter   ~0010791

I think there's a misdocumentation somewhere, either that or a bug, because I remember looking at the VL code and it wants a 0 for the version flags to be exempt, rather than a *:

                                        if (*vflags == '*' || !strcmp(flags, "0"
))
                                                result = 0;
(vflags is the deny version::flags field, and flags is the flags passed in SERVER)

w00t

2005-11-21 19:16

reporter   ~0010793

Hm @ aquanight, don't know where I heard *, but apparantly it's wrong :).

Robby: What I'm saying is generally if the services are well designed, they don't use a specific protocol version anyway-- I'm pretty sure Anope doesn't even send a NETINFO, though I may be wrong.

Robby22

2005-11-21 22:38

reporter   ~0010794

@ aquanight: Yes but that will remove compile flags that I specified that are required to link wouldn't it? I just want something like an exception-option for the protocolversion/flags-check for a specified server, so that it can link while still being able to keep a block on * without eZ compile flags.

e.g. something like:

deny version {
        mask *;
        version <2306;
        flags eZ;
        except-server "Services.Blah.Net";
};



@ w00t:
I do see some netinfo code in unreal32.c:

void unreal_cmd_netinfo(int ac, char **av)
{
    send_cmd(NULL, "%s %ld %ld %d %s 0 0 0 :%s",
             send_token("NETINFO", "AO"), (long int) maxusercnt,
             (long int) time(NULL), atoi(av[2]), av[3], av[7]);
}

/* netinfo
 * argv[0] = max global count
 * argv[1] = time of end sync
 * argv[2] = unreal protocol using (numeric)
 * argv[3] = cloak-crc (> u2302)
 * argv[4] = free(**)
 * argv[5] = free(**)
 * argv[6] = free(**)
 * argv[7] = ircnet
 */
int anope_event_netinfo(char *source, int ac, char **av)
{
    unreal_cmd_netinfo(ac, av);
    return MOD_CONT;
}


and:


    .....
    m = createMessage("NETINFO", anope_event_netinfo); addCoreMessage(IRCD,m);
    if (UseTokens) {
     m = createMessage("AO", anope_event_netinfo); addCoreMessage(IRCD,m);
    }
    ....

aquanight

2005-11-21 23:12

reporter   ~0010795

I don't mean the flags in deny version. I mean for anope to properly "exclude itself" from the checking it must report its version flags as "0" not "*".

w00t

2005-11-22 21:47

reporter   ~0010796

Which it looks like it's doing

aquanight

2005-11-23 15:45

reporter   ~0010797

NETINFO has nothing to do with it. VL information is sent in the SERVER message.

w00t

2005-11-24 00:59

reporter   ~0010802

Am I missing something? UnProto version is sent in the NETINFO message, are we talking about banning older UnProto's? Or something different :P

aquanight

2005-11-24 02:28

reporter   ~0010803

I was referring to the version flags (that doesn't appear in NETINFO).

(Btw - VL checking is done at the SERVER message before the link is even accepted, so the info in NETINFO wouldn't matter toward that anyway :) .)

w00t

2005-11-25 02:41

reporter   ~0010804

mm, point taken. :p.

stskeeps

2007-04-27 04:26

reporter   ~0013789

Bump, still an issue?

Robby22

2010-04-16 14:08

reporter   ~0016076

Yes, still an issue. Can't forbid older servers from linking, else services can't link either...

syzop

2010-07-02 10:24

administrator   ~0016136

fine with me *acknowledge*, but I probably won't do it (other priorities).

Issue History

Date Modified Username Field Change
2005-11-19 03:09 Robby22 New Issue
2005-11-20 21:31 w00t Note Added: 0010787
2005-11-21 00:14 Robby22 Note Added: 0010789
2005-11-21 12:40 aquanight Note Added: 0010791
2005-11-21 19:16 w00t Note Added: 0010793
2005-11-21 22:38 Robby22 Note Added: 0010794
2005-11-21 23:12 aquanight Note Added: 0010795
2005-11-22 21:47 w00t Note Added: 0010796
2005-11-23 15:45 aquanight Note Added: 0010797
2005-11-24 00:59 w00t Note Added: 0010802
2005-11-24 02:28 aquanight Note Added: 0010803
2005-11-25 02:41 w00t Note Added: 0010804
2007-04-27 04:26 stskeeps Note Added: 0013789
2007-04-27 04:26 stskeeps Status new => feedback
2010-04-16 14:08 Robby22 Note Added: 0016076
2010-07-02 10:24 syzop QA => Not touched yet by developer
2010-07-02 10:24 syzop U4: Need for upstream patch => No need for upstream InspIRCd patch
2010-07-02 10:24 syzop U4: Upstream notification of bug => Not decided
2010-07-02 10:24 syzop U4: Contributor working on this => None
2010-07-02 10:24 syzop Note Added: 0016136
2010-07-02 10:24 syzop Status feedback => acknowledged