File services-Do-not-require-non-standard-entries-in-etc-services.patch of Package mrsh

From: Egbert Eich <eich@suse.de>
Date: Mon Oct 17 21:24:57 2016 +0200
Subject: [PATCH]services: Do not require non-standard entries in etc/services
Git-commit: 8802798e0454c7d350b3046e0917222590b321cb
References: 
Signed-off-by: Egbert Eich <eich@suse.com>

Non standard modifications of /etc/services are not allowed
on a default SUSE installation.
If no mrsh service specification exists, fall back to port
541/tcp.
if no msell service specification exists, fall back to port
21212/tcp.

Signed-off-by: Egbert Eich <eich@suse.de>
---
 doc/mrlogind.8    | 2 ++
 doc/mrshd.8       | 2 ++
 mrcp/mrcp.c       | 5 ++---
 mrlogin/mrlogin.c | 5 ++---
 mrsh/mrsh.c       | 5 ++---
 5 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/doc/mrlogind.8 b/doc/mrlogind.8
index 73ed84c..22ecc70 100644
--- a/doc/mrlogind.8
+++ b/doc/mrlogind.8
@@ -95,6 +95,8 @@ Output package and protocol version.
 listens for service requests at the port indicated in
 the ``mlogin'' service specification; see
 .Xr services 5 .
+If no ``mlogin'' service specification exits, it falls back
+to port 541/tcp.
 .Pp
 Transport-level keepalive messages are enabled unless the
 .Fl n
diff --git a/doc/mrshd.8 b/doc/mrshd.8
index c0e3d15..80186c7 100644
--- a/doc/mrshd.8
+++ b/doc/mrshd.8
@@ -86,6 +86,8 @@ server
 listens for service requests at the port indicated in
 the ``mshell'' service specification; see
 .Xr services 5 .
+If no ``mshell'' service specification exits, it falls back
+to port 21212/tcp.
 .Pp
 Transport-level keepalive messages are enabled unless the
 .Fl n
diff --git a/mrcp/mrcp.c b/mrcp/mrcp.c
index d3f280d..1adc198 100644
--- a/mrcp/mrcp.c
+++ b/mrcp/mrcp.c
@@ -193,9 +193,8 @@ main(int argc, char *argv[])
 	argv += optind;
 
 	sp = getservbyname(shell = "mshell", "tcp");
-	if (sp == NULL) {
-		(void)fprintf(stderr, "mrcp: %s/tcp: unknown service\n", shell);
-		exit(1);
+	if (sp == NULL && service_port == 0) {
+		service_port = htons(21212);
 	}
 	port = (service_port) ? service_port : sp->s_port;
 
diff --git a/mrlogin/mrlogin.c b/mrlogin/mrlogin.c
index ccde09e..3ab0854 100644
--- a/mrlogin/mrlogin.c
+++ b/mrlogin/mrlogin.c
@@ -301,9 +301,8 @@ main(int argc, char **argv)
 	sp = NULL;
 	if (sp == NULL)
 		sp = getservbyname("mlogin", "tcp");
-	if (sp == NULL) {
-		fprintf(stderr, "mrlogin: mlogin/tcp: unknown service.\n");
-		exit(1);
+	if (sp == NULL && service_port == 0) {
+		service_port = htons(541);
 	}
 
 	t = getenv("TERM");
diff --git a/mrsh/mrsh.c b/mrsh/mrsh.c
index d2ce36d..9ed4a01 100644
--- a/mrsh/mrsh.c
+++ b/mrsh/mrsh.c
@@ -206,9 +206,8 @@ main(int argc, char *argv[])
 	sp = NULL;
 	if (sp == NULL)
 		sp = getservbyname("mshell", "tcp");
-	if (sp == NULL) {
-		fprintf(stderr, "mrsh: mshell/tcp: unknown service.\n");
-		exit(1);
+	if (sp == NULL && service_port == 0) {
+		service_port = htons(21212);
 	}
 
 	rem = mcmd(&host,