Page MenuHomeFreeBSD

Permit sysctl(8) to set an array of numeric values for a single node.
ClosedPublic

Authored by jhb on Mar 2 2018, 11:43 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Jan 2, 1:38 PM
Unknown Object (File)
Tue, Dec 31, 9:44 AM
Unknown Object (File)
Tue, Dec 17, 6:58 PM
Unknown Object (File)
Oct 9 2024, 9:27 PM
Unknown Object (File)
Oct 4 2024, 11:19 PM
Unknown Object (File)
Oct 2 2024, 8:03 PM
Unknown Object (File)
Oct 2 2024, 3:33 AM
Unknown Object (File)
Sep 21 2024, 7:03 AM

Details

Summary

Most sysctl nodes only return a single value, but some nodes return an
array of values (e.g. kern.cp_time). sysctl(8) understand how to display
the values of a node that returns multiple values (it prints out each
numeric value separated by spaces). However, until now sysctl(8) has
only been able to set sysctl nodes to a single value. This change
allows sysctl to accept a new value for a numeric sysctl node that contains
multiple values separated by either spaces or commas. sysctl(8) parses
this list into an array of values and passes the array as the "new" value
to sysctl(2).

Test Plan
  • used with a sysctl in the cxgbe TLS TOE patches that add a writable sysctl node that holds an array of integer values (tls_rx_ports).

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Modulo adding a comment, LGTM.

sbin/sysctl/sysctl.c
329 ↗(On Diff #39899)

A comment explaining why CTLTYPE_STRING is intentionally leftout of this switch would be good.

This revision is now accepted and ready to land.Mar 9 2018, 10:47 PM
This revision was automatically updated to reflect the committed changes.