Allow kern.ipc.maxsockets to be set to current value without error

Normally setting kern.ipc.maxsockets returns EINVAL if the new value
is not greater than the previous value. This can cause spurious
error messages when sysctl.conf is processed multiple times, or when
automation systems try to ensure the sysctl is set to the correct
value. If the value is unchanged, then just do nothing.

PR:	243532
Reviewed by:	markj
Sponsored by:	Modirum MDPay
Sponsored by:	Klara Inc.

(cherry picked from commit c441592a0e)
This commit is contained in:
Allan Jude 2021-11-04 12:55:33 +00:00 committed by Mark Johnston
parent e7867aaa35
commit 4f69c57599

View File

@ -363,7 +363,7 @@ sysctl_maxsockets(SYSCTL_HANDLER_ARGS)
newmaxsockets = maxsockets;
error = sysctl_handle_int(oidp, &newmaxsockets, 0, req);
if (error == 0 && req->newptr) {
if (error == 0 && req->newptr && newmaxsockets != maxsockets) {
if (newmaxsockets > maxsockets &&
newmaxsockets <= maxfiles) {
maxsockets = newmaxsockets;