summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2001-01-29 01:35:06 +0000
committerbrian <brian@FreeBSD.org>2001-01-29 01:35:06 +0000
commita814a5c65302a3e23434ad3b038e8067f0162df9 (patch)
tree289e5d91b5f2196492ecc29311ba656cd44c5cb1 /usr.sbin
parent5728ea1f1d0346a88fd4dd9f320ddf922cd13dad (diff)
downloadFreeBSD-src-a814a5c65302a3e23434ad3b038e8067f0162df9.zip
FreeBSD-src-a814a5c65302a3e23434ad3b038e8067f0162df9.tar.gz
Only remove socket files with ``set server open''.
Only show the mask in ``show bundle'' when it's been specified. Complain about unexpected arguments after ``set server {none,open,closed}'' Log re-open failures as warnings rather than phase messages. Fix some markup for the ``set server'' man page description.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ppp/bundle.c11
-rw-r--r--usr.sbin/ppp/command.c8
-rw-r--r--usr.sbin/ppp/ppp.813
-rw-r--r--usr.sbin/ppp/ppp.8.m413
-rw-r--r--usr.sbin/ppp/server.c7
5 files changed, 31 insertions, 21 deletions
diff --git a/usr.sbin/ppp/bundle.c b/usr.sbin/ppp/bundle.c
index 1005ed2..9aea891 100644
--- a/usr.sbin/ppp/bundle.c
+++ b/usr.sbin/ppp/bundle.c
@@ -1183,11 +1183,12 @@ bundle_ShowStatus(struct cmdargs const *arg)
prompt_Printf(arg->prompt, " Auth name: %s\n",
arg->bundle->cfg.auth.name);
prompt_Printf(arg->prompt, " Diagnostic socket: ");
- if (*server.cfg.sockname != '\0')
- prompt_Printf(arg->prompt, "%s, mask 0%03o%s\n",
- server.cfg.sockname, (int)server.cfg.mask,
- server.fd == -1 ? " (not open)" : "");
- else if (server.cfg.port != 0)
+ if (*server.cfg.sockname != '\0') {
+ prompt_Printf(arg->prompt, "%s", server.cfg.sockname);
+ if (server.cfg.mask != (mode_t)-1)
+ prompt_Printf(arg->prompt, ", mask 0%03o", (int)server.cfg.mask);
+ prompt_Printf(arg->prompt, "%s\n", server.fd == -1 ? " (not open)" : "");
+ } else if (server.cfg.port != 0)
prompt_Printf(arg->prompt, "TCP port %d%s\n", server.cfg.port,
server.fd == -1 ? " (not open)" : "");
else
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index ae68092..dd9da83 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -1286,7 +1286,9 @@ SetServer(struct cmdargs const *arg)
arg->argv[arg->argn - 2], arg->argv[arg->argn - 1], mask);
return -1;
}
- } else if (strcasecmp(port, "none") == 0) {
+ } else if (arg->argc != arg->argn + 1)
+ return -1;
+ else if (strcasecmp(port, "none") == 0) {
if (server_Clear(arg->bundle))
log_Printf(LogPHASE, "Disabled server socket\n");
return 0;
@@ -1295,10 +1297,10 @@ SetServer(struct cmdargs const *arg)
case SERVER_OK:
return 0;
case SERVER_FAILED:
- log_Printf(LogPHASE, "Failed to reopen server port\n");
+ log_Printf(LogWARN, "Failed to reopen server port\n");
return 1;
case SERVER_UNSET:
- log_Printf(LogPHASE, "Cannot reopen unset server socket\n");
+ log_Printf(LogWARN, "Cannot reopen unset server socket\n");
return 1;
default:
break;
diff --git a/usr.sbin/ppp/ppp.8 b/usr.sbin/ppp/ppp.8
index 4d41a4d..34045f3 100644
--- a/usr.sbin/ppp/ppp.8
+++ b/usr.sbin/ppp/ppp.8
@@ -5148,7 +5148,10 @@ The optimum value is just over twice the MTU value.
If
.Ar value
is unspecified or zero, the default kernel controlled value is used.
-.It "set server|socket" Ar TcpPort|LocalName|none|open|closed Op password Op Ar mask
+.It "set server|socket" Ar TcpPort Ns No \&| Ns Xo
+.Ar LocalName Ns No |none|open|closed
+.Op password Op Ar mask
+.Xc
This command tells
.Nm
to listen on the given socket or
@@ -5156,17 +5159,17 @@ to listen on the given socket or
for incoming command connections.
.Pp
The word
-.Ar none
+.Dq none
instructs
.Nm
to close any existing socket and clear the socket configuration.
The word
-.Ar open
+.Dq open
instructs
.Nm
to attempt to re-open the port.
The word
-.Ar closed
+.Dq closed
instructs
.Nm
to close the open port.
@@ -5175,7 +5178,7 @@ If you wish to specify a local domain socket,
.Ar LocalName
must be specified as an absolute file name, otherwise it is assumed
to be the name or number of a TCP port.
-You must specify the octal umask to be used with a local domain socket.
+You may specify the octal umask to be used with a local domain socket.
Refer to
.Xr umask 2
for umask details.
diff --git a/usr.sbin/ppp/ppp.8.m4 b/usr.sbin/ppp/ppp.8.m4
index 4d41a4d..34045f3 100644
--- a/usr.sbin/ppp/ppp.8.m4
+++ b/usr.sbin/ppp/ppp.8.m4
@@ -5148,7 +5148,10 @@ The optimum value is just over twice the MTU value.
If
.Ar value
is unspecified or zero, the default kernel controlled value is used.
-.It "set server|socket" Ar TcpPort|LocalName|none|open|closed Op password Op Ar mask
+.It "set server|socket" Ar TcpPort Ns No \&| Ns Xo
+.Ar LocalName Ns No |none|open|closed
+.Op password Op Ar mask
+.Xc
This command tells
.Nm
to listen on the given socket or
@@ -5156,17 +5159,17 @@ to listen on the given socket or
for incoming command connections.
.Pp
The word
-.Ar none
+.Dq none
instructs
.Nm
to close any existing socket and clear the socket configuration.
The word
-.Ar open
+.Dq open
instructs
.Nm
to attempt to re-open the port.
The word
-.Ar closed
+.Dq closed
instructs
.Nm
to close the open port.
@@ -5175,7 +5178,7 @@ If you wish to specify a local domain socket,
.Ar LocalName
must be specified as an absolute file name, otherwise it is assumed
to be the name or number of a TCP port.
-You must specify the octal umask to be used with a local domain socket.
+You may specify the octal umask to be used with a local domain socket.
Refer to
.Xr umask 2
for umask details.
diff --git a/usr.sbin/ppp/server.c b/usr.sbin/ppp/server.c
index 5d29c8b..5203d7c 100644
--- a/usr.sbin/ppp/server.c
+++ b/usr.sbin/ppp/server.c
@@ -185,6 +185,7 @@ enum server_stat
server_Reopen(struct bundle *bundle)
{
char name[sizeof server.cfg.sockname];
+ struct stat st;
u_short port;
mode_t mask;
enum server_stat ret;
@@ -193,9 +194,9 @@ server_Reopen(struct bundle *bundle)
strcpy(name, server.cfg.sockname);
mask = server.cfg.mask;
server_Close(bundle);
- if (server.cfg.sockname[0] != '\0')
- /* blow it away - and hope nobody else is using it */
- unlink(server.cfg.sockname);
+ if (server.cfg.sockname[0] != '\0' && stat(server.cfg.sockname, &st) == 0)
+ if (!(st.st_mode & S_IFSOCK) || unlink(server.cfg.sockname) != 0)
+ return SERVER_FAILED;
ret = server_LocalOpen(bundle, name, mask);
} else if (server.cfg.port != 0) {
port = server.cfg.port;
OpenPOWER on IntegriCloud