summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/services.h1
-rw-r--r--lang/cat.l4
-rw-r--r--lang/de.l4
-rw-r--r--lang/en_us.l2
-rw-r--r--lang/es.l4
-rw-r--r--lang/fr.l4
-rw-r--r--lang/gr.l4
-rw-r--r--lang/hun.l2
-rw-r--r--lang/it.l2
-rw-r--r--lang/nl.l2
-rw-r--r--lang/pl.l3
-rw-r--r--lang/pt.l2
-rw-r--r--lang/ru.l2
-rw-r--r--lang/tr.l4
-rw-r--r--src/core/os_jupe.c3
-rw-r--r--src/servers.c4
16 files changed, 34 insertions, 13 deletions
diff --git a/include/services.h b/include/services.h
index 8b4cbeeac..13cb293c7 100644
--- a/include/services.h
+++ b/include/services.h
@@ -831,6 +831,7 @@ struct server_ {
#define SERVER_ISME 0x0001
#define SERVER_JUPED 0x0002
+#define SERVER_ISUPLINK 0x0004
/*************************************************************************/
#include "users.h"
diff --git a/lang/cat.l b/lang/cat.l
index 5e6a4e90d..2467897ca 100644
--- a/lang/cat.l
+++ b/lang/cat.l
@@ -2939,10 +2939,10 @@ OPER_NOOP_REVOKE
# JUPE responses
OPER_JUPE_SYNTAX
JUPE nom-del-servidor [raó]
-
-# RAW responses
OPER_JUPE_HOST_ERROR
Please use a valid server name when juping
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/de.l b/lang/de.l
index 1a5ba0cac..aa5de364e 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -2905,10 +2905,10 @@ OPER_NOOP_REVOKE
# JUPE responses
OPER_JUPE_SYNTAX
JUPE Servername [Grund]
-
-# RAW responses
OPER_JUPE_HOST_ERROR
Benutze bitte einen gültigen hostnamen, wenn du jupiterst
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/en_us.l b/lang/en_us.l
index ff5119e6c..44ead6387 100644
--- a/lang/en_us.l
+++ b/lang/en_us.l
@@ -2857,6 +2857,8 @@ OPER_JUPE_SYNTAX
JUPE servername [reason]
OPER_JUPE_HOST_ERROR
Please use a valid server name when juping
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/es.l b/lang/es.l
index a921c2b98..65583f813 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -2910,10 +2910,10 @@ OPER_NOOP_REVOKE
# JUPE responses
OPER_JUPE_SYNTAX
JUPE nombre-del-servidor [razon]
-
-# RAW responses
OPER_JUPE_HOST_ERROR
Por favor usa un nombre de servidor valido cuando use JUPE
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/fr.l b/lang/fr.l
index ec409f9d6..4d8a5e87d 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -2963,10 +2963,10 @@ OPER_NOOP_REVOKE
# JUPE responses
OPER_JUPE_SYNTAX
JUPE nom-du-serveur [raison]
-
-# RAW responses
OPER_JUPE_HOST_ERROR
Veuillez indiquer un nom de serveur valide pour JUPE.
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/gr.l b/lang/gr.l
index a771f369f..6e828a5bf 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -2942,10 +2942,10 @@ OPER_NOOP_REVOKE
# JUPE responses
OPER_JUPE_SYNTAX
JUPE servername [reason]
-
-# RAW responses
OPER_JUPE_HOST_ERROR
Please use a valid server name when juping
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/hun.l b/lang/hun.l
index a94c8ce18..7a3a76e9e 100644
--- a/lang/hun.l
+++ b/lang/hun.l
@@ -2903,6 +2903,8 @@ OPER_JUPE_SYNTAX
JUPE szervernév [leírás]
OPER_JUPE_HOST_ERROR
Kérlek használj érvényes szerver nevet amikor jupolsz!
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW válaszok
OPER_RAW_SYNTAX
diff --git a/lang/it.l b/lang/it.l
index 39976886f..204fc099d 100644
--- a/lang/it.l
+++ b/lang/it.l
@@ -2869,6 +2869,8 @@ OPER_JUPE_SYNTAX
JUPE nomeserver [motivo]
OPER_JUPE_HOST_ERROR
Prego utilizzare un nome server valido per jupe
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/nl.l b/lang/nl.l
index a6f4c3aec..313371e03 100644
--- a/lang/nl.l
+++ b/lang/nl.l
@@ -2910,6 +2910,8 @@ OPER_JUPE_SYNTAX
JUPE servername [reden]
OPER_JUPE_HOST_ERROR
Gebruik een geldige servernaam bij het jupen
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/pl.l b/lang/pl.l
index 55535b605..f0a13f005 100644
--- a/lang/pl.l
+++ b/lang/pl.l
@@ -3846,6 +3846,9 @@ OPER_JUPE_SYNTAX
OPER_JUPE_HOST_ERROR
Proszê u¿yæ prawid³owej nazwy serwera.
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
+
# RAW responses
OPER_RAW_SYNTAX
RAW tekst
diff --git a/lang/pt.l b/lang/pt.l
index 97b90fe29..69d355f52 100644
--- a/lang/pt.l
+++ b/lang/pt.l
@@ -2881,6 +2881,8 @@ OPER_JUPE_SYNTAX
JUPE servidor [motivo]
OPER_JUPE_HOST_ERROR
Por favor, use um nome de servidor válido quando estiver "jupando".
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/ru.l b/lang/ru.l
index 42cb0e7e7..b9059008e 100644
--- a/lang/ru.l
+++ b/lang/ru.l
@@ -2853,6 +2853,8 @@ OPER_JUPE_SYNTAX
JUPE èìÿ_ñåðâåðà [ïðè÷èíà]
OPER_JUPE_HOST_ERROR
 êà÷åñòâå îñíîâíîãî ïàðàìåòðà âû äîëæíû óêàçàòü ðåàëüíîå èìÿ ñåðåâåðà
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
diff --git a/lang/tr.l b/lang/tr.l
index 5cdf2c3db..6f3e25917 100644
--- a/lang/tr.l
+++ b/lang/tr.l
@@ -2936,10 +2936,10 @@ OPER_NOOP_REVOKE
# JUPE responses
OPER_JUPE_SYNTAX
JUPE serverismi [sebep]
-
-# RAW responses
OPER_JUPE_HOST_ERROR
Please use a valid server name when juping
+OPER_JUPE_INVALID_SERVER
+ You can not jupe your services server or your uplink server.
# RAW responses
OPER_RAW_SYNTAX
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;
}