diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/os_jupe.c | 3 | ||||
-rw-r--r-- | src/servers.c | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/core/os_jupe.c b/src/core/os_jupe.c index 9243e953d..ce4c1978f 100644 --- a/src/core/os_jupe.c +++ b/src/core/os_jupe.c @@ -26,9 +26,12 @@ class CommandOSJupe : public Command { const char *jserver = params[0].c_str(); const char *reason = params.size() > 1 ? params[1].c_str() : NULL; + Server *server = findserver(servlist, jserver); if (!isValidHost(jserver, 3)) notice_lang(s_OperServ, u, OPER_JUPE_HOST_ERROR); + else if (server && ((server->flags & SERVER_ISME) || (server->flags & SERVER_ISUPLINK))) + notice_lang(s_OperServ, u, OPER_JUPE_INVALID_SERVER); else { char rbuf[256]; snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", u->nick, reason ? ": " : "", reason ? reason : ""); diff --git a/src/servers.c b/src/servers.c index 640d9c699..18a809762 100644 --- a/src/servers.c +++ b/src/servers.c @@ -158,8 +158,10 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc, server_uplink->links = serv; } /* Check if this is our uplink server */ - if ((server_uplink == me_server) && !(flags & SERVER_JUPED)) + if ((server_uplink == me_server) && !(flags & SERVER_JUPED)) { serv_uplink = serv; + serv->flags |= SERVER_ISUPLINK; + } return serv; } |